Skip to content

Releases: Sleepwalker86/Haushaltsbuch

Release v1.1.0

02 Jan 08:37

Choose a tag to compare

Release Notes - Version 1.1.0

Veröffentlichungsdatum: 2025-01-02
Git Commit: [Wird beim Tag-Erstellen aktualisiert]

🎉 Neue Features

Umstrukturierung der Datenverzeichnisse

  • Neue Datenstruktur: Alle Daten werden jetzt unter /data organisiert
    • data/invoices/ - Belege (Fotos/PDFs) zu Buchungen, organisiert nach Jahr/Monat
    • data/paperless/ - Bilder für Paperless-Upload
    • data/log/ - Log-Dateien der Anwendung
  • Konsistentere Struktur: Alle persistenten Daten an einem Ort
  • Einfachere Wartung: Ein Volume für alle Daten (./data:/app/data)

Umfassendes Logging-System

  • Zentrales Logging mit automatischer Rotation
    • Tägliche Rotation der Log-Dateien (behält 30 Tage)
    • Log-Level konfigurierbar über Umgebungsvariable LOG_LEVEL (Standard: INFO)
    • Log-Verzeichnis konfigurierbar über LOG_DIR (Standard: ./data/log)
    • Download-Funktion für Log-Dateien in den Einstellungen (Tab "Export")
  • Detailliertes Logging für alle wichtigen Aktionen:
    • Buchungen (Erstellen, Bearbeiten, Löschen)
    • CSV-Import/Export mit Statistiken
    • Beleg-Upload/Download
    • Settings-Änderungen (Konten, Keywords, Kategorien)
    • Fehlerbehandlung mit vollständigen Stack-Traces
  • Console-Logging im Debug-Modus für Entwicklung

Verbesserte Import-Feedback

  • Detaillierte Import-Statistiken in der Upload-Seite
    • Anzeige der Anzahl erfolgreich importierter Datensätze
    • Anzeige der Anzahl fehlerhafter Zeilen
    • Übersichtliche Darstellung mit Icons und farbigen Badges
    • Echtzeit-Feedback nach CSV-Upload

Datenbank-Migrationen

  • Verbesserte Migration-Struktur
    • schema_migrations Tabelle wird jetzt in der initialen Migration erstellt
    • Konsistentere Datenbankstruktur
    • Bessere Dokumentation der Migrationen
    • Verbesserte Fehlerbehandlung und Logging bei Migrationen

🔧 Verbesserungen

Docker-Integration

  • Optimierte Volumes:
    • Ein data-Volume für alle persistenten Daten
    • Separate Volumes nur noch für import/ (CSV-Dateien)
    • Logs sind jetzt Teil des data-Volumes
  • Dockerfile: Erstellt automatisch alle benötigten Unterverzeichnisse
  • Beide docker-compose Dateien aktualisiert

Code-Qualität

  • Verbesserte Fehlerbehandlung in Settings-Routen
  • Konsistente Logging-Integration in allen Modulen
  • Bessere Code-Struktur und Kommentierung
  • Robustere Fehlerbehandlung bei fehlenden Dateien

Paperless-Integration

  • Neue Ordnerstruktur: Paperless-Dokumente werden in data/paperless/ gespeichert
  • Verbesserte Fehlerbehandlung: Dateien bleiben erhalten bei Upload-Fehlern
  • Klarere Logging: Detaillierte Ausgaben bei Paperless-Uploads

🐛 Bugfixes

Settings-Seite

  • Behebung von Einrückungsfehlern in routes/settings.py
  • Korrektur der POST/GET-Request-Verarbeitung
  • Fehlerbehandlung für fehlende Log-Datei-Downloads
  • Verbesserte Exception-Handling mit detailliertem Logging

Upload-Funktionalität

  • Verbesserte Fehlerbehandlung bei CSV-Import
  • Detailliertere Fehlermeldungen mit Statistiken
  • Robustere Dateiverarbeitung

Beleg-Verwaltung

  • Automatische Bereinigung von "toten" Datenbankeinträgen (Datei fehlt)
  • Verbesserte Fehlerbehandlung beim Download fehlender Belege
  • Konsistente Pfad-Verwaltung mit neuer Datenstruktur

📦 Technische Details

Neue Abhängigkeiten

  • Keine neuen Abhängigkeiten (verwendet Standard-Python-Logging)

Konfiguration

  • LOG_LEVEL: Umgebungsvariable für Log-Level (INFO, DEBUG, WARNING, ERROR)
  • LOG_DIR: Umgebungsvariable für Log-Verzeichnis (Standard: ./data/log)
  • BELEG_BASE_DIR: Umgebungsvariable für Beleg-Verzeichnis (Standard: ./data/invoices)

Migrationen

  • Migration 001: schema_migrations Tabelle hinzugefügt

Datenstruktur

data/
├── invoices/          # Belege zu Buchungen (Fotos/PDFs)
│   └── YYYY/
│       └── MM/
├── paperless/         # Bilder für Paperless-Upload
└── log/               # Log-Dateien der Anwendung
    └── finanzapp.log

🚀 Upgrade-Anleitung

1. Backup erstellen

# Datenbank-Backup
docker compose exec db mysqldump -u root -p${MYSQL_ROOT_PASSWORD} ${MYSQL_DATABASE} > backup_$(date +%Y%m%d).sql

# Daten-Backup (falls vorhanden)
tar -czf data_backup_$(date +%Y%m%d).tar.gz data/ image/ logs/ 2>/dev/null || true

2. Daten migrieren (wichtig!)

# Erstelle neue Struktur
mkdir -p data/invoices data/paperless data/log

# Migriere alte Daten (falls vorhanden)
if [ -d "image" ]; then
    # Alte Belege migrieren (falls vorhanden)
    find image -type f -exec mv {} data/paperless/ \; 2>/dev/null || true
    # Alte Paperless-Dateien migrieren
    mv image/* data/paperless/ 2>/dev/null || true
fi

# Alte Logs migrieren (falls vorhanden)
if [ -d "logs" ]; then
    mv logs/* data/log/ 2>/dev/null || true
fi

3. Container aktualisieren

# Stoppe Container
docker compose down

# Aktualisiere Image
docker compose pull

# Starte Container neu
docker compose up -d

4. Migrationen prüfen

# Prüfe, ob Migrationen erfolgreich waren
docker compose exec app python migrate.py

5. Verifikation

# Prüfe Logs
docker compose logs app | tail -20

# Prüfe Datenstruktur
ls -la data/

⚠️ Breaking Changes

Datenstruktur-Änderungen

  • Alter Pfad: ./imageNeuer Pfad: ./data/invoices (für Belege)
  • Alter Pfad: ./imageNeuer Pfad: ./data/paperless (für Paperless)
  • Alter Pfad: ./logsNeuer Pfad: ./data/log (für Logs)

Wichtig: Bestehende Installationen müssen die Daten manuell migrieren (siehe Upgrade-Anleitung).

Docker Volumes

  • Das separate logs-Volume wurde entfernt
  • Alle Daten werden jetzt über das data-Volume gemountet

📝 Hinweise

  • Log-Dateien: Werden automatisch nach 30 Tagen gelöscht
  • Log-Download: Verfügbar über Settings → Export Tab
  • Belege: Werden automatisch nach Jahr/Monat organisiert
  • Paperless: Dokumente werden in data/paperless/ gespeichert und nach Upload gelöscht

🔗 Weitere Informationen


Vollständige Änderungsliste: Siehe Git Commits seit v1.0.1

v1.0.1

21 Dec 11:30

Choose a tag to compare

Release Notes - Version 1.0.1

🎉 Neue Features

Versionsprüfung und Update-Benachrichtigungen

  • System-Tab in den Einstellungen: Neuer Tab zeigt aktuelle Version und prüft automatisch auf Updates
  • Docker Hub Integration: Automatische Versionsprüfung über Docker Hub API
  • Update-Benachrichtigungen: Benutzer werden informiert, wenn eine neuere Version verfügbar ist
  • Update-Anleitung: Direkte Anweisungen zum Aktualisieren der Docker-Container

Erweiterte Analyse-Funktionen

  • Kategorien-Analysen: Detaillierte Aufschlüsselung der Ausgaben nach Kategorien
  • Top-Kategorien nach Ausgaben: Übersicht der größten Ausgabenposten
  • Anteil je Kategorie (%): Prozentuale Verteilung der Ausgaben als Tortendiagramm
  • Jahresvergleich: Flexibler Vergleich mit auswählbarem Vergleichsjahr (statt nur Vorjahr)

Verbesserte CSV-Import-Funktionalität

  • Robuster CSV-Parser: Automatische Erkennung verschiedener Bankformate
  • Automatische Format-Erkennung:
    • Encoding (UTF-8, Latin-1, Windows-1252, etc.)
    • Trennzeichen (Semikolon, Komma, Tab, Pipe)
    • Spaltennamen (verschiedene Varianten werden erkannt)
    • Datumsformate (DD.MM.YYYY, YYYY-MM-DD, etc.)
    • Betragsformate (deutsche und englische Formate)
  • IBAN-Erkennung: Automatische Erkennung der eigenen IBAN aus CSV-Dateien
  • Import-Feedback: Anzeige der Anzahl importierter Buchungen nach dem Upload

Datenexport und -import

  • CSV-Export aller Buchungen: Neuer Tab in den Einstellungen zum Exportieren aller Buchungen
  • CSV-Reimport: Möglichkeit, CSV-Dateien erneut zu importieren
  • Duplikatsprüfung: Automatische Erkennung und Vermeidung von Duplikaten beim Import

Verbesserte Filterung

  • Beschreibungssuche: Neues Suchfeld zum Filtern nach Begriffen in der Beschreibung
  • Erweiterte Filteroptionen: Kombination mehrerer Filter für präzise Suche

🔧 Verbesserungen

Benutzerfreundlichkeit

  • Intelligente Weiterleitung: Nach Bearbeitung/Löschen von Buchungen wird korrekt zur vorherigen Seite zurückgeleitet
  • Verbesserte Dokumentation: README.md wurde benutzerfreundlicher gestaltet
  • Info-Popover: Erklärungen zu Funktionen direkt in der Oberfläche verfügbar
  • Bildergalerie: Screenshots in der Dokumentation für bessere Orientierung

Code-Qualität

  • Modulare Struktur: Refactoring von app.py in separate Route-Module
  • Robuste Fehlerbehandlung: Verbesserte Fehlermeldungen und Logging
  • Code-Organisation: Bessere Strukturierung in routes/, services/, utils/

🐛 Bugfixes

  • NaN-Werte in Beschreibung: Korrekte Behandlung leerer CSV-Felder (keine "nan"-Strings mehr)
  • Weiterleitung nach Bearbeitung: Korrekte Rückkehr zur Buchungen-Seite oder Dashboard je nach Herkunft
  • Docker-Container: Verbesserte Fehlerbehandlung bei Datenbankverbindungen
  • Einrückung in app.py: Korrigierte Code-Formatierung

📦 Docker & Deployment

Docker Hub Integration

  • Multi-Architecture Builds: Unterstützung für AMD64 und ARM64
  • Automatisierte Builds: Scripts für einfaches Builden und Pushen
  • Docker Compose Templates: Separate Dateien für interne und externe Datenbanken
  • Verbesserte Dokumentation: Detaillierte Anleitungen in DOCKER.md und DOCKER_HUB.md

Container-Verbesserungen

  • Robuste DB-Verbindungstests: Verbesserte Prüfung bei externen Datenbanken
  • Netzwerk-Diagnose: Netcat-Tests für bessere Fehlerdiagnose
  • Config.json Regeneration: Automatische Aktualisierung bei Container-Start

📚 Dokumentation

  • Benutzerfreundliche README: Weniger technische Begriffe, mehr Fokus auf Endbenutzer
  • Bildergalerie: Screenshots der wichtigsten Funktionen
  • Docker-Anleitungen: Umfassende Dokumentation für Docker-Setup
  • CSV-Import-Dokumentation: Detaillierte Beschreibung unterstützter Formate

🔄 Technische Details

Abhängigkeiten

  • packaging>=23.0 für Versionsvergleiche
  • chardet>=5.0.0 für Encoding-Erkennung
  • pandas>=2.0.0 für robuste CSV-Verarbeitung

Vollständige Änderungsliste: Siehe Git-Commits zwischen v1.0.0 und v1.0.1