Deployment
1 Technisches Deployment
1.1 1. Lokale Ausführung
Die gesamte Pipeline lässt sich in vier Schritten lokal reproduzieren:
Python-Umgebung aufsetzen. Wir nutzen
uvfür reproduzierbares Dependency-Management.uv syncDatenbeschaffung (NDJSON → Parquet). Konvertiert die OpenParlData-Rohdaten effizient ins Spaltenformat.
uv run python eda/1_gather_data.pyETL für die Altersanalyse. Filtert auf Bundesebene, joinst Personen × Parlamentsmitgliedschaften und erzeugt drei kompakte Parquets.
uv run python eda/2_etl_politicians.pyInteraktive Datenstory starten.
uv run streamlit run deployment/app.py
1.2 2. Quarto-Dokumentation
Die Begleitdokumentation (Charta, Datenbericht, Designbericht) wird statisch über Quarto generiert:
uv run quarto render docsDie gerenderte Version wird über GitHub Actions automatisch auf GitHub Pages publiziert (vdss.cboss.dev).
1.3 3. Streamlit-App
Die interaktive Datenstory läuft als Container hinter einem Reverse-Proxy unter dem Pfad /streamlit. Der Dockerfile in deployment/ baut das Image auf Basis von python:3.11-slim. Beim Start wird app.py direkt mit streamlit run ausgeführt; die Parquets unter data/processed/ werden zur Build-Zeit eingebunden, so dass die App ohne externe DB lauffähig ist.