Unser Wahlinformationssystem und die zugehörige API ist für jeden zugänglich.
Eine interaktive Übersicht ist ebenfalls verfügbar.
- Datenenmodell, bearbeitbar auf LucidChart
- Lastenheft
- Pflichtenheft
- Vorgehen bei der Berechnung der Sitzverteilung
- Dokumentation der Stimmabgabe
- Technologiestack
- Benchmark-Ergebnisse
- Abschlusspräsentation
Sämtliche Artefakte und Dokumentation, wie sie oben aufgelistet sind.
- data/
- Datenquellen (hauptsächlich vom Bundeswahlleiter)
- logic/
- Einlesen der Daten (initialization)
- Applikationslogik (mit z.T. eingebetettem SQL)
- Hilfsfunktionen zur Kommunikation mit der Datenbank
- sql/
- bundestag/
- Berechnung der Sitzverteilung und Mandat
- Besondere Trigger
- init/
- Schemaerstellung (init.sql)
- Indizes
- Trigger
- queries/
- Daten, die an das Frontend weitergegeben werden
- bundestag/
- test/
- Korrrekt der Sitzverteilung
- Korrektheit der Überhangmandate
- Korrektheit der MDB
- server.py
- API-Schnittstelle
- locustfile.py
- Definition des Benchmarks (Wartezeit t und Anfrageverteilung)
- results/
- Messreihen
Hier liegen sämtliche Dateien und Logik, die für die Visualisierung und Bereitstellung der Webschnittstelle benötigt werden.
- Linux
- PostgreSQL (Ver. 14 empfohlen)
- python (>= 3.9 empfohlen) mit pip
- Node.js (>= 16.x.x empfohlen) mit npm
- Evtl. muss libpq-dev installiert werden.
- Klone dieses Repository:
git clone https://gitlab.db.in.tum.de/Toemmsche/datenbanken-projekt.git
- Lege in PostgreSQL eine neue Datenbank an und setze die Umgebungsvariable
$DATABASE_URL
auf den entsprenden Connection string. - Starte das Backend:
cd backend
pip install -r requirements.txt
python waitress_server.py
Nach einer kurzen Initialisierungsphase sollte INFO:waitress:Serving on http://0.0.0.0:5000
ausgegeben werden.
- Starte das Frontend:
cd frontend
npm install -g @angular/cli
npm install
ng serve
Nach einer kurzen Wartezeit sollte die Benutzeroberfläche unter http://localhost:4200
erreichbar sein.
Zum Ausführen der Tests wird eine laufende Version der Datenbank benötigt.
cd backend
pip install -r requirements.txt
export $DATABASE_URL=(connection_string)
python -m unittest test/*.py
Made by Tom & Felix