Docker Compose mit drei Services (nginx auf Port 8000), Migrationsmechanik, Update- und Backup-Skript. Anwendung: Router mit CSRF-Prüfung, Anmeldung und Ersteinrichtung, zentraler Einstellungsdialog mit Reitern, ein- und ausschaltbares Debug-Log mit Maskierung von Zugangsdaten. Layout nach Vorbild des FinanzManagers: feste Navigation links, Werkzeugleiste oben, Tab-Leiste; Farbschema hell/dunkel/System. Tests: 51 PHP-Prüfungen und 7 Playwright-Tests, alle grün.
69 lines
2.4 KiB
Markdown
69 lines
2.4 KiB
Markdown
# Finanzmanager
|
||
|
||
Persönliche Finanzverwaltung als Web-Anwendung: Konten, Buchungen mit Kategorien und
|
||
Klassen, Jahresbudget, Monatsabschluss, Auswertungen, Online-Banking über FinTS und
|
||
Wertpapierdepots.
|
||
|
||
Ersetzt den Lexware FinanzManager Deluxe, läuft auf einem Debian-Server statt auf einem
|
||
Windows-Client. Die fachlichen Begriffe bleiben bewusst identisch zum Original – im
|
||
Haushalt wird beides parallel genutzt.
|
||
|
||
## Stand
|
||
|
||
Phase 0 (Grundgerüst) ist gebaut: Anmeldung, zentraler Einstellungsdialog, Debug-Log,
|
||
Migrationsmechanik, Test-Harness. Die fachlichen Module folgen nach `PLAN.md`.
|
||
|
||
## Technik
|
||
|
||
| | |
|
||
|---|---|
|
||
| Sprache | PHP 8.3, kein Framework, eigenes MVC |
|
||
| Datenbank | MariaDB 11 |
|
||
| Webserver | nginx + php-fpm |
|
||
| Betrieb | Docker Compose (drei Services) |
|
||
| Frontend | serverseitiges HTML, Vanilla JS, CSS Custom Properties |
|
||
| Fremdbibliotheken | keine im Kern; FinTS folgt in Phase 5 als eigener Fork |
|
||
|
||
Diagramme werden als eigenes SVG erzeugt, PDF-Berichte gehen über die Druckfunktion des
|
||
Browsers – bewusst keine Chart- oder PDF-Bibliothek.
|
||
|
||
## Start
|
||
|
||
```bash
|
||
cp .env.example .env # Werte anpassen, APP_KEY erzeugen
|
||
docker compose up -d
|
||
```
|
||
|
||
Danach http://localhost:8000 aufrufen. Beim ersten Aufruf führt die Anwendung zur
|
||
Ersteinrichtung und legt den ersten Benutzer an.
|
||
|
||
```bash
|
||
./scripts/run-tests.sh # Tests
|
||
./scripts/backup.sh # Backup mit Rotation
|
||
./scripts/update.sh # Update (auf dem Produktionsserver)
|
||
```
|
||
|
||
## Verzeichnisse
|
||
|
||
```
|
||
src/ Anwendungscode (Controllers, Models, Services, Views)
|
||
public/ Front-Controller und statische Dateien
|
||
migrations/ nummerierte SQL-Migrationen, laufen beim Containerstart
|
||
scripts/ Migration, Update, Backup, Tests
|
||
tests/ PHP-Testsuite; tests/e2e/ für Playwright
|
||
data/ Nutzdaten: mariadb, logs, import (nicht im Repository)
|
||
Altdaten/ Screenshots und QIF-Export der Altanwendung (nicht im Repository)
|
||
```
|
||
|
||
## Migration der Altdaten
|
||
|
||
Datenquelle ist der **QIF-Export** aus dem FinanzManager – die `.QDF`-Datei ist
|
||
verschlüsselt und nicht auswertbar. Der Importer liest Klassen, Kategorien, Konten,
|
||
Buchungen samt Splits sowie Wertpapierbuchungen. Einzelheiten zum Format und den
|
||
Fallstricken stehen in `PLAN.md`, Kapitel 4.
|
||
|
||
## Dokumentation
|
||
|
||
- `PLAN.md` – Projektplan mit allen Phasen
|
||
- `CLAUDE.md` – Entwicklungsregeln
|
||
- `Changes.md` – Änderungsprotokoll
|