Git Product home page Git Product logo

2019-net-i's Introduction

By EKPO, RANCHA GODAGE, POUL DOUST & TCYSIN

Instructions on how to build, run, and test your project

Running the hub

There are no external libraries required to install "EMMA Torrent" Hub.

Recommended Python Version 3.5+

Supported Operating Systems: Linux, Windows 7+

Before running the hub, check out config.py file's constants used section to specify the parameters of the server. Make sure the PORT is unoccupied.

After that, just execute the hub.py file to boot up a server.

How to Install and Run Player

There are no external libraries required to install "EMMA Torrent" Player.

Recommended Python Version 3.5+

Supported Operating Systems: Linux, Windows 7+

Open your terminal / Command Line Interface Browse to the Player folder where the main.py is located Execute the below command

Python main.py

The console interface of Player will initilize the Setup procedure on the first execution. You will be required to provide the below details

  • HUB Port ( Type skip to use default value of remote HUB PORT )
  • HUB IP ( Type skip to use default value of remote HUB IP )
  • Distributor Port (Socket Server Port, Type 0 for random port)

Once the setup process completed, your configurations will be saved and the main menu of the console interface will be displayed as show below



| EMMA TORRENT |

  1. Upload File
  2. Download File
  3. View Download
  4. View Logs
  5. View Services
  6. Settings
  7. About
  8. Exit

Choose an action:


Note that you can change the settings provided during the setup process by choosing Menu 6 (Settings)

Let's describe every menu on the interface

Menu 1: Upload File

This Option allows a user to upload a file and thus generate a Library file that is sharable to every player. The Generated Player will be in <PLAYER_FOLDER>/data/libs/lib_<library_id>.lib Type "exit" to quit this section

Menu 2: Download a File

This Section allow a user to aquire a file assuming that the adequated Library file has been manually placed in the library Folder (<PLAYER_FOLDER>/data/libs) Type "exit" to quit this section

Menu 3: View Download

This Menu allow the user to track the Libraries pending download and downloaded so far 

Menu 4: View Logs

This Option allows the user to view all the Events , Service and Debug and Error Logs of the system

Menu 5: View Services

"View Services" provides the current states [ RUNNING, OFF ] of the Services of the Player.

Menu 6: Settings

This option allow a user to view and modify some setting of the Player

Menu 7: About

Display a message about Player

Menu 8: Exit

To quit the Application

Description of the architecture (what parts interacts how with what other parts)

Librarifier

Small sub-module used to generate .lib meta-file description of an original file.

Tracker (or hub)

Keeps track of players in a database, handles their requests.

Players connect to the hub using its address and port, then send their reqeusts. Then they get an answer.

Player

The Player Module handles exchange of files beteen peers and provide a user interface to view and manage the files , services and the system configurations.

The Emma services is essentially made up three main Services

Maestro : Master service that supervised subservices (Requestor, Distributed) states and can attempt to restart them in case they unexpectely go offline

Distributor : Sub service that intializes a socket server and Manages all incoming peers request such as GET_AVAILABLE_BOOKS, REQUEST BOOK ...

Requestor : Sub service that loads the library to be downloaded , interract with the hub and request books from candidate peers (peers that have a book of the desired libraries) according to a Priorty Queue Policy.

2019-net-i's People

Contributors

beteko avatar pauldoust avatar rgmprabodha avatar twitwi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.