Git Product home page Git Product logo

marhcouto / distributed-timeline-service Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 5.45 MB

:postal_horn: HONK - Distributed timeline application (distributed Twitter) that runs on a P2P network - SDLE -> M.EIC - FEUP

License: GNU General Public License v3.0

JavaScript 91.10% HTML 6.54% CSS 2.36%
distributed-systems feup feup-meic feup-sdle kademlia kademlia-dht node-js p2p p2p-network reactjs

distributed-timeline-service's Introduction

SDLE Second Assignment

License: GPL v3

HONK - Distributed P2P Timeline Application

SDLE Second Assignment of group T06G14

Group members:

  1. Marcelo Couto [email protected]
  2. Francisco Oliveira [email protected]
  3. Miguel Amorim [email protected]
  4. André Santos [email protected]

How to run our application

Both our frontend and our backend were developed in Javascript. To run Javascript in a computer node must be installed. We used the latest lts version of node a the date of writting 18.12.1.

Run the frontend

To run our frontend directly, run the following steps need to be taken:

Installation of dependencies:

 npm install --force

To run the frontend:

  npm start

However this commands are mostly useless because our frontend is prepared to run as static files served by our backend and running it directly will result in host not found errors.

Run the backend

Firstly the needed dependencies must be installed:

npm install

Pre-configured nodes

We have prepared three backend nodes that are called respectively: initial, second and third they can be ran with the following commands:

npm run start:initial
npm run start:second
npm run start:third

Keep in mind that the nodes called initial and second use node third as bootstrap so the latter must be started first.

User configured nodes

The user can configure it's own node by providing a JSON configuration files as command line arguments. To use that configuration file the user must launch our backend using the following command:

node main.mjs --config-file [path to config file]

More options can be found by calling our backed with the following argument:

node main.mjs -h

Configuration file syntax

The configuration JSON has the following parameters:

  • userName: string representing the user's name in the system
  • peerFinderPort: port used to make kademlia communications
  • timelineServerPort: port used in internode communication
  • bootstrapNodes: a list of IP addresses of bootstrap nodes

distributed-timeline-service's People

Contributors

andrelds11 avatar frpdoliv3 avatar marhcouto avatar miguel26-pixel avatar pfs-fe-up-pt-github avatar

Stargazers

 avatar

Watchers

 avatar  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.