Neu drin: die vier Regeln, die man nicht sieht, aber merkt, wenn sie fehlen
(Teilaenderung schickt nur Gesetztes, leere Tag-Liste bedeutet etwas, kein
Kategorie beim Uebertrag, planned_cents bleibt bei "berechnet" unberuehrt),
und warum die Waehrung eines bestehenden Kontos nicht aenderbar ist.
Dazu der Befehl, mit dem man fehlende Uebersetzungen findet - ein unbekannter
Schluessel uebersetzt anstandslos und zeigt dem Nutzer den Schluessel.
Festgehalten, was aus Stufe 3 bewusst nicht mitkam: Vertragslogo und
Kontoreihenfolge. Und wo der 409-Fall wartet: an POST
/transactions/{id}/transfer, also in Stufe 4.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
3.1 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 (Admin) + Export je Entität (CSV/JSON); dokumentierte LXC-Sicherung (docs/BACKUP.md).
Querschnitt – Schlagwörter & Kategorie-Auswahl ✅
Manuelle Schlagwörter je Kategorie (Popup, Doppelklick zum Bearbeiten); Treffer über Empfänger ODER Verwendungszweck, längstes Schlagwort gewinnt, nur bei künftigen Importen. Korrektur-Erkennung: ab 5 Anwendungen und ≥ 1/3 Korrekturen Prüf-Meldung in den Einstellungen (Behalten/Entfernen). Auf-/zuklappbares Kategorie-Dropdown mit Suche (ersetzt das native optgroup-Select) in Buchungen und Import-Prüfansicht.
Phase 6 – iOS-App 🚧
Native App in ios/, die sich über die Server-Adresse ans selbe Backend hängt.
Anmeldung über eine Gerätemarke der Reichweite app (kein Passwort auf dem
Gerät, kein 30-Tage-Ablauf, einzeln widerrufbar). Deutsch und Englisch, iPad
zweispaltig, offline der letzte Stand mit Datum.
Stufe 1 ✅: Gerüst, Netzwerkschicht, Anmeldung samt zweitem Faktor und
Pflicht-Passwortwechsel, Kontenliste. Stufe 2 ✅: Übersicht, Budget-Monat,
Buchungsliste mit Suche, Vertragsliste. Stufe 3 ✅: Buchungen, Budget-Zeilen,
Verträge und Konten anlegen, ändern und löschen. Übersetzt fehlerfrei,
49 Tests grün, läuft im Simulator; das Xcode-Projekt entsteht aus
ios/project.yml, die Modelle werden gegen echte Serverantworten geprüft.
Stufen 4–7 (Arbeitsliste, Nebenräume, Erweiterungen, voller CSV-Import)
stehen aus.
Stand, Entscheidungen und offene Punkte: ios/UEBERGABE.md.