The goal of this master module was to implement two versions of the same Software and compare them. A monolithic implementation and a microservice implementation.
This is the microservice implementation, you can find the monolithic implementation here.
This software traces the movements of users, create heat maps of movement hotspots and provide an interface for sending notifications of contacts with infected individuals.
The goal of this software was to implement a technical showcase rather than a useful real world application.
name | default port |
type | description |
---|---|---|---|
data-generator | 8080 | Quarkus | A helper service that is able to generate multiple users with multiple movements. |
analyse | 8081 | Quarkus | Provides the processed data for the webpages. |
data-acceptance | 8082 | Quarkus | Handles the raw movements and the buffer database. |
preprocessing | 8083 | Quarkus | Reads the buffer database and saves the aggregated data in the main database |
landingpage | 8084 | Wildfly | The jsf page: landingpage (a set of operations to test the hole application) |
visualization | 8085 | Wildfly | The jsf page: visualization (visualizes user movement on a map and displays all movements as heatmap) |
trend | 8086 | Wildfly | The jsf page: trend (calculates statistics such as infection figures, groups them by area and visualizes them on a map.) |
contact-tracking | 8087 | Quarkus | tracks the actual movements |
db-main | 5432 | PostgreSQL | the main database (nachverfolgung) |
db-buffer | 5433 <- host 5432 <- container |
PostgreSQL | the buffer database (movement_data) |
From the host are all container available at http://localhost:{port number}
Other container can communicate over a podman network http://{service name}:{port number}
- Clone this repo
git clone https://github.com/ixLikro/master-ami-java-contact-tracing-services.git
- cd into the cloned directory
cd master-ami-java-contact-tracing-services/
- give execution privilege to the two scripts
chmod u+x build-all.bash chmod u+x run-all.bash
- build all images
Take some caffe and enjoy the show, this takes a while. Five Quarkus uber jars, three wildfly bootable jars and two database images will be built.
./build-all.bash
if you have successfully built all services you can run them:
./run-all.bash
This script stats all ten Services and opens the landingpage in firefox.
** We are using Podman, but docker should be working too. Just replace all podman occurrences with docker inside the .bash scripts.
Leaflet
License: BSD
https://github.com/Leaflet/Leaflet/blob/master/LICENSE
Leaflet.heat
License: BSD 2
https://github.com/Leaflet/Leaflet.heat/blob/gh-pages/LICENSE
Chart.js
License: MIT
https://github.com/chartjs/Chart.js/blob/master/LICENSE.md
Geodaten
Geodatenzentrum ©GeoBasis-DE / BKG 2018 (VG250 31.12., Daten verändert)
https://gdz.bkg.bund.de/
Einwohnerzahlen
Statistisches Bundesamt, Wiesbaden 2019 - Gemeindeverzeichnis
https://www.destatis.de/DE/Themen/Laender-Regionen/Regionales/Gemeindeverzeichnis/_inhalt.html