Backend

Das Backend des Corona-Dashboards besteht aus PostgreSQL-/PostGIS-Datenbanken sowie den Schnittstellen FastAPI und GeoServer. Die gesamte Backend-Infrastruktur wurde zunächst lokal auf einem Laptop entwickelt und anschliessend auf einen Raspberry Pi 5 übertragen.

Datenbank

Die Daten werden in PostGIS-Datenbanken gespeichert und mit dem Programm pgAdmin 4 verwaltet. Sämtliche im Projekt verwendeten Daten sind in einzelnen Tabellen organisiert und bilden gemeinsam die Datenbank Corona_DB. Die wichtigsten Tabellen des Projekts sind:

Die Beziehungen zwischen den Tabellen werden im folgenden Schema dargestellt:

Tabellen Schema

Zusätzlich werden in der Datenbank weitere Kennzahlen berechnet, darunter tägliche Neuansteckungen, durchschnittliche Ansteckungen pro Tag sowie schweizweite Gesamtwerte.

Berechnungen

Schnittstellen (API / GeoServer)

Die Kommunikation zwischen Backend und Frontend erfolgt über FastAPI und GeoServer. Die Kantonsflächen werden über den GeoServer als WMS-Dienst publiziert und anschliessend mit OpenLayers im Frontend dargestellt. Alle weiteren Daten werden über FastAPI bereitgestellt.

Dabei stehen mehrere API-Endpunkte zur Verfügung:

/corona?kanton=${kanton}

/corona-map?datum=${datum}

/schweiz?datum=${datum}

/schweiz-verlauf

/flaechen?kanton=${kanton}

/durchschnitt?kanton=${kanton}

Die Daten werden über GET-Anfragen vom Frontend abgerufen und anschliessend an die entsprechenden Komponenten der Benutzeroberfläche weitergegeben.

×