This project was developed for the Distributed Systems course at the University of Helsinki in the accademic year 2020 - 2021. Pusblished in arXiv: https://arxiv.org/abs/2102.09813.
This project simulates a contact tracing application where each node represents a person (or a unique device attached to someone) that send signals to each other when in range and communicate the data collected to a server using the publish-subscribe pattern. The server, called broker, can then be polled by a node called consumer that will send the data to a database. A front-end application then requests this data and displays the movement and the latest updates via the browser.
The idea came from simulating this kind of movements with Arduino boards capable of communicating between themselves using the nrf24l01 and to the broker with esp8266. Unfortunately this was not possible given the relatively strict amount of time that each of the students involved could dedicate to the project and the waiting time to get the necessary hardware.
Here is the architecture of the whole system.
The programming task can be found in the Programming Task file. A more complete description of the project can be found in the essay.pdf file and a video simulation can be found here.
To start the project just execute the script ./init-project.sh
in the repository's main folder.
This script will ask for the configuration parameters, will run a docker-compose up --build
command to build the network and main components, will allow for scaling up the number of nodes and desmantling the docker containers with a final docker-compose down -v
command.
This project was developed by:
- Coronavirus icon: https://www.flaticon.com/authors/freepik
- Zombie icon: https://www.flaticon.com/authors/dinosoftlabs
- Human icon: https://www.flaticon.com/authors/freepik
- Tombstone icon: https://www.flaticon.com/authors/freepik