Backend: - services/ocr: PDF-Text via PyMuPDF, OCR (Tesseract) für Scans/Bilder, heuristischer Parser (Datum + Betrag je Zeile, CH/DE/US-Beträge). - routers/documents: /documents/preview (Upload -> Text -> Kandidaten -> gemeinsame Prüf-/Buchungslogik des CSV-Imports). csv_import refaktoriert: detect_rows() von CSV und Beleg gemeinsam genutzt. - requirements: PyMuPDF, pytesseract, pillow; install.sh installiert tesseract-ocr (+ deu). pytest: Heuristik-Parser und PDF-Vorschau. Frontend: - Import-Seite: CSV/PDF-Umschalter; PDF-Modus mit Beleg-Auslesen, extrahiertem Text zur Kontrolle und Best-Effort-Hinweis; gleiche Prüfansicht + Buchen. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1.7 KiB
Fahrplan
Jede Phase ist für sich lauffähig und wird nach Fertigstellung committet/gepusht.
Phase 0 – Gerüst ✅
Repo-Struktur, FastAPI + SQLite + Alembic, Multi-User-Login (Server-Sitzungen, Cookie), Erst-Admin + Benutzerverwaltung (Temporär-Passwort), React-App-Shell, Design-Tokens (Light/Dark), i18n (DE/EN), Einstellungen je Benutzer, ein systemd-Dienst mit API + SPA auf einem Port, Install-/Update-Skript.
Phase 1 – Konten, Kategorien, Transaktionen, Währung ✅
Konten (feste Währung EUR/CHF, Typ, mehrere Identifikatoren, Anfangssaldo+Stichtag), Kategorien (Gruppen→Kategorien, Einnahme/Ausgabe, SVG-Icons), Transaktionen (Ausgabe/Einnahme/Transfer), EZB-Wechselkurse zum Buchungsdatum (lokal gecacht, pro Buchung überschreibbar), Kontostände.
Phase 2 – Budget-Engine ✅
Einstellbarer Budget-Monat-Starttag, Standard-Budget als Vorlage (Snapshot-on- Customize), geplante Einnahmen mit Zielkonto, Soll/Ist-Tabelle (grün/rot), kein Rollover in v1.
Phase 3 – Dashboard ✅
Konfigurierbares Karten-Grid: Budget-Donut, Kontostände, Vermögensverlauf, Budget-Fortschritt, Einnahmen/Ausgaben, letzte Buchungen.
Phase 4 – CSV-Import ✅
Bank-Templates (Trennzeichen/Dezimal/Datum/Spaltenmapping/Vorzeichen), lernende Auto-Kategorisierung, Prüfansicht, Duplikat-Erkennung, interne-Transfer-Erkennung via IBAN, Batch-Undo. Vorgefertigte Bank-Templates folgen aus Nutzer-Beispielen.
Phase 5 – PDF/Bild-Import (Stretch) ✅
Lokal: PyMuPDF (PDF-Text) + Tesseract-OCR (Scans/Bilder), heuristischer Zeilen-Parser (Datum + Betrag), speist dieselbe Prüfansicht. Best-Effort.
Querschnitt – Backup/Export
DB-Backup-Download + Export je Entität (CSV/JSON); dokumentierte LXC-Sicherung.