Guido and Claude Opus 4.8
7461fddb7a
feat: Phase 5 – PDF/Bild-Beleg-Import (lokal, Tesseract-OCR)
...
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 >
2026-08-19 20:25:32 +02:00
Guido and Claude Opus 4.8
1381967aae
feat: Phase 4 – CSV-Import (Templates, Prüfansicht, Duplikat/Transfer-Erkennung, Undo)
...
Backend:
- Modelle + Migration 0005: import_templates, import_batches, categorization_rules;
transactions um import_batch_id + import_hash erweitert.
- services/csv_import: Datei parsen (Trennzeichen, Dezimal-/Datumsformat, Kodierung,
Header/Skip, Vorzeichen vs. Soll/Haben), Vorschau mit Duplikat-Erkennung (Hash),
interner-Transfer-Erkennung via IBAN, lernender Auto-Kategorisierung; Buchen mit
Batch und Undo.
- routers/imports: Templates (CRUD), Roh-Vorschau, Prüf-Vorschau, Buchen, Verlauf,
Rückgängig. pytest: Parsing, Duplikate, Transfer, Buchen, Undo, Lernen.
Frontend:
- Import-Seite: Konto+Datei, Format/Spaltenzuordnung (mit Roh-Vorschau),
editierbare Prüfansicht (Kategorie/Typ/Zielkonto, Duplikate markiert),
Buchen, Import-Verlauf mit Undo; Vorlagen speichern; i18n DE/EN.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-19 20:06:50 +02:00
Guido and Claude Opus 4.8
2dd8f9cd35
fix: systemd ohne ProtectHome (venv unter /root sichtbar) + Phase-3-Backend
...
Deployment-Fixes (Dienst startete nicht -> 203/EXEC "uvicorn not found"):
- Unit ohne ProtectHome/ProtectSystem: Repo/venv dürfen unter /root oder /home
liegen (ProtectHome=true blendete diese Pfade für den Dienst aus).
- install.sh: Python-3.11+-Prüfung mit klarer Meldung; prüft nach der Installation,
dass uvicorn wirklich in der venv liegt.
- EZB-Kursabruf läuft beim Start jetzt im Hintergrund (blockiert den Start nie).
Phase-3-Backend (Dashboard):
- Modell + Migration 0004: dashboard_layouts (JSON-Layout je Nutzer).
- routers/dashboard: Layout speichern/laden/zurücksetzen + Kartendaten
(Budget-Donut, Budget-Fortschritt, Einnahmen/Ausgaben, Kontostände,
Vermögensverlauf, letzte Buchungen).
- Frontend-Infrastruktur: Chart-Komponenten (Donut/Line), palette, API-Methoden,
react-grid-layout. (Dashboard-Seite folgt im nächsten Commit.)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-19 19:31:55 +02:00
Guido and Claude Opus 4.8
8ed4bf5254
feat: Phase 2 – Budget-Engine + Direktzugriff ( http://IP:Port )
...
Budget:
- Modelle + Migration 0003: budget_template_lines, planned_income_lines,
budget_periods, budget_period_lines.
- services/budget: Perioden-Grenzen (einstellbarer Starttag, Label nach Endmonat),
Standard-Vorlage vs. Monats-Override (Snapshot-on-Customize), Soll/Ist inkl.
budgetierter Sparen-Transfers, geplante Einnahmen (Soll/Ist).
- routers/budgets: Vorlage, geplante Einnahmen (CRUD), Monats-Soll/Ist,
Monats-Override, Zurücksetzen. pytest: Perioden, Soll/Ist, Override/Reset, Einnahmen.
- Frontend: Budget-Seite (Monat + Standard-Budget), Fortschrittsbalken grün/rot,
Monats-Navigation, editierbare Soll-Beträge; Sparen-Option im Transfer-Formular.
Deployment-Fix (Nutzer-Anforderung: http://IP:Port muss funktionieren):
- Dienst bindet an APP_BIND_HOST=0.0.0.0 (direkt im LAN erreichbar).
- APP_COOKIE_SECURE=false als Standard (sonst kein Login über reines HTTP);
für reinen HTTPS-Betrieb umstellbar. Doku + install.sh entsprechend angepasst.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-19 19:16:27 +02:00
Guido and Claude Opus 4.8
1b7107b9bd
feat: Phase 1 – Konten, Kategorien, Transaktionen, EZB-Währungsumrechnung
...
Backend:
- Modelle + Migration 0002: accounts, account_identifiers, category_groups,
categories, transactions, exchange_rates (alle owner-gescoped).
- EZB-Kursdienst (90-Tage/Historie) + Backfill-Skript; Umrechnung EUR<->CHF zum
Buchungsdatum mit lokalem Cache und manueller Übersteuerung; EUR-Pivot
(amount_eur_cents) eingefroren.
- Kontostände + Netto-Vermögen (Umrechnung in Hauptwährung).
- Router: accounts (inkl. IBAN-Identifikatoren), categories (Gruppen+Kategorien),
transactions (Ausgabe/Einnahme/Transfer, cross-currency), rates.
- Gruppierte Standard-Kategorien je Nutzer beim Anlegen.
- pytest-Suite: Währung, Salden, Cross-Currency-Transfer, Nutzer-Isolation.
Frontend:
- Seiten Konten, Kategorien, Buchungen; Icon-Chip, Geldbetrag mit Umrechnung,
Icon-/Farbwähler, Modal; erweitertes SVG-Icon-Set (Konto-/Kategorie-Icons).
- Währungs-/Datumsformatierung (EUR de-DE, CHF de-CH), i18n DE/EN erweitert.
- Live-Umrechnungs-Vorschau im Transfer-Formular.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-19 18:59:24 +02:00
Guido and Claude Opus 4.8
2c795a57c8
feat: Phase 0 – Gerüst (FastAPI+SQLite, Multi-User-Login, React-App-Shell, Deploy)
...
Grundgerüst für Certain Finance:
- Backend: FastAPI + SQLAlchemy + SQLite, Alembic-Migrationen (Batch-Mode),
argon2-Passwort-Hashing, server-seitige Sitzungen im Cookie, Erst-Admin,
Benutzerverwaltung mit Temporär-Passwort, Einstellungen je Benutzer.
- Ein Prozess, ein Port: uvicorn liefert API (/api) und gebautes SPA aus,
inkl. SPA-Deeplink-Fallback.
- Frontend: React 18 + Vite + JSX, Design-Tokens (Light/Dark), i18n DE/EN,
Inline-SVG-Icons (keine Emojis), Login, Passwort-ändern, Dashboard-Platzhalter,
Benutzer- und Einstellungsseiten.
- Deploy: nativer LXC-Installer + Update-Skript (systemd), env-Vorlage, Doku.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-19 18:27:42 +02:00