FEUP M.EIC Y1S1
Link to the YouTube video
- Abílio Epalanga - up202300492
- Daniel Rodrigues - up202006562
- Martim Videira - up202006289
- Miguel Silva - up202007972
- The presentation slides are in the amazoff_slides.pdf file, last updated on 10/11/2023.
- The system's architecture is detailed in the architecture.pdf file, last updated on 07/11/2023.
- The following software must be installed:
- Node.js v20.0.1
- Nginx
sudo apt install nginx
To run:
cd amazoff-client
npm install
npm run devRun bash script present in nginx folder to start Nginx, which will redirect requests made to port 8080 to one of the multiple intermediary server replicas. That will alter your nginx.conf file in order to support its reverse-proxy cabalities, and redirect requests to the defined upstream backend entries.
To run:
cd nginx
chmod +x start_nginx.sh
./start_nginx.shTo start servers, go to server folder, and inside src folder just run npm run cloud. That will create five node instances and two distinct intermediary servers with the same list of nodes on ports 3000 and 3001. The nodes will store the data in server/src/data folder.
Before running the cloud, you must have a running instance of Nginx, as described above.
To run:
cd server
npm install
npm run cloudTo run:
cd crdts-client
npm install
# Or run any other server of your choice like vscode live server
python3 -m http.server 8081The following endpoints are the ones most relevant to see the state of the system and to interact with it:
GET <Client Interface address>/admin: Accesses the admin page.GET <Node address>/ring: Retrieves the ring state specific to that node.GET <Node address>/ring/nodes: Displays the list of nodes within the ring for that particular node.
Additionally, there are other endpoints specifically utilized by the client interface.
/amazoff-client
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
Svelte 7 57 4 938
JavaScript 6 41 14 277
HTML 1 3 0 17
TypeScript 1 1 6 5
-------------------------------------------------------------------------------
SUM: 15 102 24 1237
-------------------------------------------------------------------------------
/server
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
JavaScript 5 153 7 546
JSON 1 0 0 16
-------------------------------------------------------------------------------
SUM: 6 153 7 562
-------------------------------------------------------------------------------
/crdts
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
JavaScript 23 201 30 1015
HTML 1 5 0 18
JSON 1 0 0 15
-------------------------------------------------------------------------------
SUM: 25 206 30 1048
-------------------------------------------------------------------------------
/crdts-client
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
JavaScript 7 67 2 502
HTML 1 22 0 110
JSON 3 0 0 73
-------------------------------------------------------------------------------
SUM: 11 89 2 685
-------------------------------------------------------------------------------