Deployment

1 Technisches Deployment

1.1 1. Lokale Ausführung

Die gesamte Pipeline lässt sich in vier Schritten lokal reproduzieren:

  1. Python-Umgebung aufsetzen. Wir nutzen uv für reproduzierbares Dependency-Management.

    uv sync
  2. Datenbeschaffung (NDJSON → Parquet). Konvertiert die OpenParlData-Rohdaten effizient ins Spaltenformat.

    uv run python eda/1_gather_data.py
  3. ETL für die Altersanalyse. Filtert auf Bundesebene, joinst Personen × Parlamentsmitgliedschaften und erzeugt drei kompakte Parquets.

    uv run python eda/2_etl_politicians.py
  4. Interaktive 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 docs

Die 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.