# 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. Stufen 2–7 (Lesen, Schreiben, Arbeitsliste, Nebenräume, Erweiterungen, voller CSV-Import) stehen aus. **Stand, Entscheidungen und offene Punkte: `ios/UEBERGABE.md`.**