Guido and Claude Opus 4.8
f375fc5eaa
feat: Backup/Export + Import-UX klarer + Raiffeisen-Preset-Fix
...
Backup & Export:
- routers/backup: /backup/db (Admin, konsistentes SQLite-Online-Backup),
/export/transactions.csv|json und /export/all.json (owner-gescoped).
- Einstellungen: Bereich „Backup & Export" mit Download-Buttons. docs/BACKUP.md
(Wiederherstellung + LXC-Sicherung). pytest für Export + Admin-Schutz.
Import-Verbesserungen (Nutzer-Feedback zum Ablauf):
- Klarer Hinweis, dass die Zuordnungstabelle nur Beispielzeilen zeigt und
„Vorschau erstellen" die vollständige Prüfliste + Buchen-Button erzeugt.
- Zusammenfassung (erkannt/gebucht) und Warnung, wenn keine gültige Zeile erkannt
wurde (Hinweis auf Format/Bank-Vorlage).
- Fix: Raiffeisen-Preset hat has_header=true (der Export hat eine Kopfzeile).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-19 20:35:02 +02:00
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
b871815a46
feat: Phase 3 – konfigurierbares Karten-Dashboard
...
Frontend:
- Dashboard-Seite mit react-grid-layout: Karten frei verschieben/skalieren,
hinzufügen/entfernen, Standard-Layout zurücksetzen; Layout je Nutzer gespeichert.
- Sechs Karten: Kontostände, Budget-Donut, Vermögensverlauf (Linien-Chart),
Budget-Fortschritt (grün/rot), Einnahmen/Ausgaben, letzte Buchungen.
- SVG-Charts (Donut/Line) mit währungsbewusster Formatierung; i18n DE/EN.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-19 19:42:14 +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
d692c04cc1
docs: Phase 1 als erledigt markiert
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-19 19:00:01 +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