Skip to content

EdgeAware is a virtual edge-network service that permits peer-to-peer data transfer between individual nodes and employs a sophisticated decision-making algorithm to determine if data in the cloud should be available at the edge.

Notifications You must be signed in to change notification settings

deekshith39/Edge-Aware

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EdgeAware

EdgeAware is a virtual edge-network service that permits peer-to-peer data transfer between individual nodes and employs a sophisticated decision-making algorithm to determine if data in the cloud should be available at the edge.

About the Project

diagram

A user having a storage bucket in a certain region can connect to the service to send and receive data. Using a machine-learning algorithm, the priority of the data is predicted and then transmitted asynchronously to the edge of other users in different locations so that it is easily available to them, at their edge.

Data is categorised according to priority as follows:

  • High : Data will be available in the sender's bucket, the receiver's bucket, and the receiver's local computer.
  • Medium : Data will be available in both the sender's and receiver's buckets.
  • Low : Data will only be available in the sender's bucket.

Commands

Register - Register a user and configure account and bucket information

register

Login - Sign in to use the service, and send or receive files

login <username> <password>

Reset Password - Get the password reset link to your email

reset_password <email>

Send - Send a file to a user with predicted priority (or with optional provided priority)

send <to_username> <filepath> [<priority>]

Check - Check sent or received tracked files, along with their priority and sync status

check

Sync - Sync all files (or a specific file) according to their priority automatically

sync [<file_id>]

Delete - Delete a file from all tracked buckets

delete <file_id>

Logout - Logout and stop the service

logout

Utility commands such as record and playback can be use to save and execute commands from a file.

Technologies used

  • Amazon S3 ‒ Cloud storage service
  • Firebase ‒ User authentication and file commits
  • Boto3 ‒ Low-level API to access to AWS services
  • Scikit-learn ‒ Machine learning algorithm
  • Heroku ‒ Cloud platform to deploy service worker

Local setup

  • Clone this repository
git clone https://github.com/aravrs/EdgeAware.git
cd EdgeAware
  • Install requirements
pip install -r requirements.txt
  • Setup credentials

    • Add firebase app config credentials to config.json file.
    • Setup up and run the service worker file, worker/tansfer.py on any cloud platform (we used heroku) or run it locally.
  • Start the EdgeAware CLI to execute commands

python cli.py

About

EdgeAware is a virtual edge-network service that permits peer-to-peer data transfer between individual nodes and employs a sophisticated decision-making algorithm to determine if data in the cloud should be available at the edge.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages