Dotty Dotter
c2f7db6b52
feat: Geocoding + Karten-Clustering ( #5 , #6 )
...
Closes #5 , Closes #6
2026-04-02 15:42:31 +02:00
Dotty Dotter
c3e9f4b3e8
feat: Automatischer OParl-Sync ( #3 )
...
- scripts/sync_oparl.py: 5-Phasen-Sync (Import → Scrape → Ketten → Status → FTS5)
- Inkrementell: Nur neue Papers, stoppt nach 3 leeren Seiten
- Dry-Run-Modus (--dry-run)
- API: GET /api/sync/status + POST /api/sync/trigger
- Cron-fähig (Exit 0/1, stdout-Logging)
- Sync-State in data/sync_state.json
- 11 neue Vorlagen beim Dry-Run erkannt
Closes #3
2026-04-02 15:26:34 +02:00
Dotty Dotter
4d13b6828e
feat: Deploy-Scripts für VServer ( #8 )
...
- scripts/deploy.sh: Code-Sync + Docker-Build + Container-Restart + Health-Check
- scripts/deploy-db.sh: DB-Upload + Migrationen (FTS5, Strang, Fristen)
- Dockerfile: Multi-stage Build (Node 20 + Python 3.12)
- Production deployed + verifiziert (antraege.toppyr.de health OK)
Closes #8
2026-04-02 15:23:36 +02:00
Dotty Dotter
0e7aa065e5
feat: Fristen-Tracking — Termine und Wiedervorlagen an Ketten ( #17 )
...
Neue Features:
- fristen-Tabelle: Typ, Datum, Status (offen/überfällig/erfüllt), Quelle (manuell/KI)
- API: GET/POST/PATCH/DELETE /api/fristen + /api/fristen/ueberfaellig
- KI-Extraktion: Prompts extrahieren automatisch Fristen aus Beschlusstexten
- /fristen Seite: Tabelle/Cards mit Farbcodierung + Filter + Pagination
- Explorer Panel 2: Fristen pro Kette + Formular zum Hinzufügen
- Dashboard: Überfällige-Fristen-Kachel (rot wenn > 0)
- Navigation: Fristen-Link
Closes #17
2026-04-02 00:43:40 +02:00
Dotty Dotter
f8bc893a54
feat: Strang-basierte Klassifikation + Explorer + Ampel ( #16 )
...
Neue Features:
- 4 Verfahrensstränge: Antrag, Anfrage, Beschlussvorlage, Mitteilung
- Ampel-Visualisierung pro Kette (Fortschrittsanzeige mit Abzweigungen)
- 3-Panel Explorer (/explorer): Liste | Kette+Ampel | Vorlage-Detail
- KI-Bewertungs-Versionierung (alte Versionen aufklappbar)
- Neubewertung triggert automatisch Umsetzungs-Score
- Bewertungs-Log (bewertungs_log Tabelle)
- Umsetzungsgrad an Kette (Score + Begründung)
- Antragsteller + Beratungsergebnis pro Kettenglied
- HAK und Hagen Aktiv als getrennte Fraktionen
- Status-Filter im Explorer
- Suche durchsucht Aktenzeichen + Betreff
Backend:
- tracker/core/ampel.py — Ampel-Definition + get_ampel()
- tracker/core/perioden.py — Shared Perioden-Filter
- Neues Feld: ketten.strang, ki_bewertungen.kette_id
- GET /api/ampel/definition, erweiterte Ketten/Vorlagen-APIs
Closes #16
2026-04-02 00:36:30 +02:00
Dotty Dotter
401cd3acb0
fix: 43 verwaiste Suffix-Vorlagen in Ketten zusammengeführt
...
- fix_orphan_chains.py: Findet Suffix-Dokumente (z.B. 0010/2025-1) ohne Kette
- Matcht automatisch mit Basis-Vorlage (0010/2025) → erstellt Kette
- 43 neue Ketten, 5 bestehende erweitert, 3 übersprungen (Basis fehlt)
- Status-Engine auf alle neuen Ketten angewendet
- Beispiel: Rüggeweg 0010/2025 + 0010/2025-1 → Kette 6313
2026-04-01 14:07:01 +02:00
Dotty Dotter
2ab8046b78
feat: FTS5 Volltextsuche mit Snippet-Highlighting ( #11 )
...
- SQLite FTS5 Virtual Table (vorlagen_fts) über Betreff, Volltext, Zusammenfassung
- Tokenizer unicode61 mit Diakritik-Entfernung
- API: FTS5 MATCH statt LIKE, LIKE als Fallback wenn kein Index
- Snippet-Highlights (<mark>) in Suchergebnissen
- Migrations-Script: scripts/migrate_fts5.py
- 22.337 Einträge indexiert, ~4.200 Treffer für 'Klimaschutz'
Closes #11
2026-04-01 13:17:27 +02:00
Dotty Dotter
1801f8f7fd
chore: restore-db.sh für Restic/Hetzner + Production-Server Restore
2026-04-01 13:02:46 +02:00
Dotty Dotter
9d8a73e2a9
feat: Parteien-Filter, Klassifikation, Umsetzungsbewertung, KI-Neubewertung
...
- Vorlagen + Ketten: Partei-Dropdown-Filter mit Badges (#9 )
- Vorlagen-Detail: Ketten-Klassifikation mit Begründung anzeigen
- Vorlagen-Detail: Umsetzungsbewertungen mit Score + Begründung
- SPA-Routing: Catch-All für direkten URL-Zugriff
- Status-Engine: Begründungen für alle Ketten-Status generieren
- Kurze Beschlusstexte (<=5 Zeichen) nicht mehr als Beschluss werten
- POST /api/bewertung/vorlagen/{id} + /ketten/{id} für KI-Neubewertung
- Frontend: 'Neu bewerten' Button + Kommentarfeld auf beiden Detailseiten
- Job-Status-Polling mit Spinner
- ALLRIS-Rescrape vor Bewertung noch offen (#10 )
Closes #9
2026-04-01 10:36:22 +02:00
Dotty Dotter
17606ab237
feat: Initial commit — Antragstracker Hagen
...
Vollständige Pipeline zur Analyse kommunaler Vorlagen aus ALLRIS:
- OParl-Import: 20.149 Vorlagen
- PDF-Extraktion: 10.045 Volltexte (adaptives Throttling)
- KI-Zusammenfassungen: 10.026 via Qwen Plus (parallelisiert)
- Beratungsfolge-Scraper: Beschlusstexte + Wortprotokolle
- Abstimmungs-Analyse mit Koalitionsmatrix
- Georeferenzierung (Nominatim)
Stack: FastAPI + SvelteKit + SQLite
Deployment: Docker + Traefik auf VServer
Daten (DB, Logs) nicht im Repo — siehe Restic-Backup.
Repo-Setup: scripts/setup.sh für Neuaufbau aus OParl-API.
2026-03-30 16:37:58 +02:00