Roadmap: Adapter-Implementierungs-Reihenfolge nach Aufwand/Synergie #49

Closed
opened 2026-04-08 23:16:34 +02:00 by tobias · 1 comment
Owner

Zweck

Master-Tracking-Issue für die 12 Scraper + 12 UI-Aktivierungen + 5 TODOs + 1 Klassifikations-Fix. Sortiert nach Aufwand und Synergie, nicht nach Wahltermin (das wäre die naive Reihenfolge und würde das schwerste Issue zuerst angehen).

Filter via Labels: phase-0, phase-1, phase-2, phase-3, plus die Type-Labels scraper, ui-aktivierung, todo.

Phase 0 — Voraussetzung (5 min, sofort)

  • #48 bundeslaender.py: doku_system-Klassifikation für TH, HB, SN korrigieren

Warum zuerst: Wenn nicht gefixt, läuft jemand möglicherweise ins falsche Adapter-Template.

Phase 1 — Schnelle Wiederverwendungen (Tag 1, ~4–6h)

  • #29 BW PARLIS — PortalaAdapter-Subklasse, ~2h
  • #28 HH ParlDok — ParLDokAdapter-Reuse wenn 8.x SPA, ~30 min (vor Pickup verifizieren mit curl buergerschaft-hh.de/parldok/)
  • #25 TH ParlDok — analog HH

Synergie-Hinweis: alle drei nutzen einen bereits existierenden Adapter mit anderen Konstruktor-Parametern. Konkretes Code-Beispiel im jeweiligen Issue-Body bzw. dokukratie-Annotations-Kommentar.

Phase 2 — StarWeb-Familie + SH-Eigenständig (Tag 2–3, ~6–8h)

  • #27 BB als Template-Issue — generischer StarWebAdapter, ~4h. Konstruktor-Parameter sind im Body skizziert.
  • #21 HB — StarWebAdapter-Reuse (PARiS-Skin), ~30 min
  • #22 NI — StarWebAdapter-Reuse (NILAS, andere Field-Names Suchzeile5/6/7/8), ~30 min
  • #24 HE — StarWebAdapter-Reuse (LIS, eigene Field-Names), ~30 min
  • #30 RP — StarWebAdapter-Reuse (OPAL_extern, Field-Präfix _PDOKU_*), ~30 min
  • #20 SH — NICHT StarWebAdapter, sondern eigener StarFinderCGIAdapter (alte Starfinder-CGI), ~3–4h

Phase 3 — Eigenständige Reverse-Engineerings (~16–24h)

  • #23 BY — HTML-Scraping mit Query-String, ~4–6h
  • #19 SL — Umbraco JSON-API mit Pagination.Skip/Take, ~4–6h
  • #26 SN — ASP.NET-Webforms mit __VIEWSTATE/__CALLBACKID-Postbacks, ~6–12h (schwerster Brocken)

UI-Aktivierungen (depend on Scraper-Issues)

Pro Scraper-Issue genau ein UI-Aktivierungs-Issue (#31–#42). Reihenfolge danach doch wieder nach Wahltermin sortieren — die Wahlprogramme der jeweiligen WP müssen vor der Wahl indexiert sein, damit das Live-System für echte Anträge sinnvoll bewertet:

  • #31 SL (Wahl 2027-04-18) → blockt auf #19
  • #32 SH (2027-04-18) → blockt auf #20
  • #33 HB (2027-05-09) → blockt auf #21
  • #34 NI (2027-10-10) → blockt auf #22
  • #35 BY (2028-10-08) → blockt auf #23
  • #36 HE (2028-10-22) → blockt auf #24
  • #37 TH (2029-09-01) → blockt auf #25
  • #38 SN (2029-09-02) → blockt auf #26
  • #39 BB (2029-09-23) → blockt auf #27
  • #40 HH (2030-03-03) → blockt auf #28
  • #41 BW (2031-03-08) → blockt auf #29
  • #42 RP (2031-03-22) → blockt auf #30

Querschnitts-TODOs (unabhängig, jederzeit pickbar)

  • #46 pytest-Suite — sinnvoll früh, ~3–4h, spart in jeder weiteren Phase Zeit (drei Bugs aus der April-Session wären gefangen worden)
  • #16 UI-Trennung DB-Suche vs. Landtag-Suche
  • #43 Keycloak SSO
  • #44 Batch-Analyse für größere Antrags-Mengen
  • #45 CSV-/Excel-Export der Bewertungen
  • #47 Zitat-Highlighting in PDFs

Empfohlene Reihenfolge im Klartext

  1. Tag 0: #48 (5 min) → #46 pytest-Suite (3–4h), damit alle weiteren Phasen Tests haben
  2. Tag 1: #29 BW → #28 HH (verifizieren!) → #25 TH (verifizieren!) — Phase 1 komplett
  3. Tag 2: #27 BB Template → #21 HB → #22 NI → #24 HE → #30 RP — Phase 2 ohne SH
  4. Tag 3: #20 SH eigenständig
  5. Tag 4–5: #23 BY oder #19 SL (parallelisierbar)
  6. Tag 6+: #26 SN — der schwerste, nicht zuerst

UI-Aktivierungen werden danach pro Bundesland abgehandelt, getrieben vom jeweiligen Wahltermin.

Live-Wartung

Wenn nach jeder Wahl die Wahlperiode wechselt, muss bundeslaender.py aktualisiert werden (wahlperiode, wahlperiode_start, regierungsfraktionen, landtagsfraktionen) und die neuen WP-Wahlprogramme indexiert. Die nächsten drei Wahlen sind 2026-09-06 (LSA), 2026-09-20 (BE+MV) — also bevor irgendeines der Phase-1/2/3-Issues fertig sein dürfte. Plan dafür: nach den September-Wahlen die drei aktiven Bundesländer aktualisieren, dann Phase 1.

## Zweck Master-Tracking-Issue für die 12 Scraper + 12 UI-Aktivierungen + 5 TODOs + 1 Klassifikations-Fix. Sortiert nach Aufwand und Synergie, **nicht** nach Wahltermin (das wäre die naive Reihenfolge und würde das schwerste Issue zuerst angehen). Filter via Labels: `phase-0`, `phase-1`, `phase-2`, `phase-3`, plus die Type-Labels `scraper`, `ui-aktivierung`, `todo`. ## Phase 0 — Voraussetzung (5 min, sofort) - [ ] #48 bundeslaender.py: doku_system-Klassifikation für TH, HB, SN korrigieren **Warum zuerst:** Wenn nicht gefixt, läuft jemand möglicherweise ins falsche Adapter-Template. ## Phase 1 — Schnelle Wiederverwendungen (Tag 1, ~4–6h) - [ ] #29 BW PARLIS — `PortalaAdapter`-Subklasse, ~2h - [ ] #28 HH ParlDok — `ParLDokAdapter`-Reuse wenn 8.x SPA, ~30 min (vor Pickup verifizieren mit `curl buergerschaft-hh.de/parldok/`) - [ ] #25 TH ParlDok — analog HH **Synergie-Hinweis:** alle drei nutzen einen bereits existierenden Adapter mit anderen Konstruktor-Parametern. Konkretes Code-Beispiel im jeweiligen Issue-Body bzw. dokukratie-Annotations-Kommentar. ## Phase 2 — StarWeb-Familie + SH-Eigenständig (Tag 2–3, ~6–8h) - [ ] #27 BB als **Template-Issue** — generischer `StarWebAdapter`, ~4h. Konstruktor-Parameter sind im Body skizziert. - [ ] #21 HB — StarWebAdapter-Reuse (PARiS-Skin), ~30 min - [ ] #22 NI — StarWebAdapter-Reuse (NILAS, andere Field-Names `Suchzeile5/6/7/8`), ~30 min - [ ] #24 HE — StarWebAdapter-Reuse (LIS, eigene Field-Names), ~30 min - [ ] #30 RP — StarWebAdapter-Reuse (OPAL_extern, Field-Präfix `_PDOKU_*`), ~30 min - [ ] #20 SH — **NICHT** StarWebAdapter, sondern eigener `StarFinderCGIAdapter` (alte Starfinder-CGI), ~3–4h ## Phase 3 — Eigenständige Reverse-Engineerings (~16–24h) - [ ] #23 BY — HTML-Scraping mit Query-String, ~4–6h - [ ] #19 SL — Umbraco JSON-API mit `Pagination.Skip/Take`, ~4–6h - [ ] #26 SN — ASP.NET-Webforms mit `__VIEWSTATE`/`__CALLBACKID`-Postbacks, ~6–12h (schwerster Brocken) ## UI-Aktivierungen (depend on Scraper-Issues) Pro Scraper-Issue genau ein UI-Aktivierungs-Issue (#31–#42). Reihenfolge danach **doch** wieder nach Wahltermin sortieren — die Wahlprogramme der jeweiligen WP müssen vor der Wahl indexiert sein, damit das Live-System für echte Anträge sinnvoll bewertet: - #31 SL (Wahl 2027-04-18) → blockt auf #19 - #32 SH (2027-04-18) → blockt auf #20 - #33 HB (2027-05-09) → blockt auf #21 - #34 NI (2027-10-10) → blockt auf #22 - #35 BY (2028-10-08) → blockt auf #23 - #36 HE (2028-10-22) → blockt auf #24 - #37 TH (2029-09-01) → blockt auf #25 - #38 SN (2029-09-02) → blockt auf #26 - #39 BB (2029-09-23) → blockt auf #27 - #40 HH (2030-03-03) → blockt auf #28 - #41 BW (2031-03-08) → blockt auf #29 - #42 RP (2031-03-22) → blockt auf #30 ## Querschnitts-TODOs (unabhängig, jederzeit pickbar) - [ ] #46 **pytest-Suite** — sinnvoll früh, ~3–4h, spart in jeder weiteren Phase Zeit (drei Bugs aus der April-Session wären gefangen worden) - [ ] #16 UI-Trennung DB-Suche vs. Landtag-Suche - [ ] #43 Keycloak SSO - [ ] #44 Batch-Analyse für größere Antrags-Mengen - [ ] #45 CSV-/Excel-Export der Bewertungen - [ ] #47 Zitat-Highlighting in PDFs ## Empfohlene Reihenfolge im Klartext 1. **Tag 0:** #48 (5 min) → #46 pytest-Suite (3–4h), damit alle weiteren Phasen Tests haben 2. **Tag 1:** #29 BW → #28 HH (verifizieren!) → #25 TH (verifizieren!) — Phase 1 komplett 3. **Tag 2:** #27 BB Template → #21 HB → #22 NI → #24 HE → #30 RP — Phase 2 ohne SH 4. **Tag 3:** #20 SH eigenständig 5. **Tag 4–5:** #23 BY oder #19 SL (parallelisierbar) 6. **Tag 6+:** #26 SN — der schwerste, nicht zuerst UI-Aktivierungen werden danach pro Bundesland abgehandelt, getrieben vom jeweiligen Wahltermin. ## Live-Wartung Wenn nach jeder Wahl die Wahlperiode wechselt, muss `bundeslaender.py` aktualisiert werden (`wahlperiode`, `wahlperiode_start`, `regierungsfraktionen`, `landtagsfraktionen`) und die neuen WP-Wahlprogramme indexiert. Die nächsten drei Wahlen sind 2026-09-06 (LSA), 2026-09-20 (BE+MV) — also bevor irgendeines der Phase-1/2/3-Issues fertig sein dürfte. Plan dafür: nach den September-Wahlen die drei aktiven Bundesländer aktualisieren, dann Phase 1.
tobias added the
roadmap
label 2026-04-08 23:16:35 +02:00
Author
Owner

Alle 17 Parlamente (16 BL + BUND) haben funktionierende Adapter. Alle 69 Wahlprogramme indexiert. UI-Aktivierung fuer alle BLs abgeschlossen. Roadmap-Tracking nicht mehr noetig — einzelne offene Features sind als separate Issues erfasst (#94 Bookmarks). Closing.

Alle 17 Parlamente (16 BL + BUND) haben funktionierende Adapter. Alle 69 Wahlprogramme indexiert. UI-Aktivierung fuer alle BLs abgeschlossen. Roadmap-Tracking nicht mehr noetig — einzelne offene Features sind als separate Issues erfasst (#94 Bookmarks). Closing.
Sign in to join this conversation.
No description provided.