<<<<<<< HEAD # docker.dateiverwaltung ======= # Dateiverwaltung Modulares Dokumenten-Management-System für automatische Verarbeitung, Sortierung und Benennung von Dokumenten. ## Features - **Mail-Abruf**: Automatischer Abruf von Attachments aus IMAP-Postfächern - **PDF-Verarbeitung**: Text-Extraktion und OCR für gescannte Dokumente - **ZUGFeRD-Erkennung**: Automatische Erkennung und separate Ablage von ZUGFeRD-Rechnungen - **Regel-Engine**: Flexible, erweiterbare Regeln für Erkennung und Benennung - **Pipeline-System**: Mehrere unabhängige Pipelines (Firma, Privat, etc.) ## Schnellstart ### Mit Docker (empfohlen) ```bash # Image bauen und starten docker-compose up -d # Logs ansehen docker-compose logs -f # Stoppen docker-compose down ``` Dann im Browser öffnen: http://localhost:8000 ### Ohne Docker ```bash # Virtuelle Umgebung erstellen cd backend python -m venv venv source venv/bin/activate # Linux/Mac # oder: venv\Scripts\activate # Windows # Abhängigkeiten installieren pip install -r requirements.txt # Starten uvicorn app.main:app --reload --host 0.0.0.0 --port 8000 ``` ## Benennungsschema ### Wiederkehrende Dokumente (Rechnungen) ``` {Jahr}.{Monat}.{Tag} - {Kategorie} - {Ersteller} - {Dokumentennummer} - {Sammelbegriff} - {Preis} EUR.pdf Beispiel: 2026.02.01 - Rechnung - Sonepar - 10023934 - Material - 1600 EUR.pdf ``` ### Einmalige Dokumente (Verträge, Zeugnisse) ``` {Typ} - {Aussteller} - {Beschreibung} - {Jahr}.pdf Beispiel: Zeugnis - Schule X - Grundschulzeugnis - 2026.pdf ``` ## Projektstruktur ``` dateiverwaltung/ ├── backend/ │ ├── app/ │ │ ├── models/ # Datenbank-Modelle │ │ ├── modules/ # Kernmodule (Mail, PDF, Sorter) │ │ ├── routes/ # API Endpoints │ │ ├── services/ # Business Logic │ │ └── main.py # FastAPI App │ └── requirements.txt ├── frontend/ │ ├── static/ │ │ ├── css/ │ │ └── js/ │ └── templates/ ├── data/ # Persistente Daten │ ├── inbox/ # Neue Dateien │ ├── processed/ # Verarbeitete Dateien │ ├── archive/ # Sortierte Dateien │ └── zugferd/ # ZUGFeRD-Rechnungen ├── regeln/ # Regel-Beispiele ├── docker-compose.yml ├── Dockerfile └── README.md ``` ## Module ### Mail-Fetcher Holt Attachments aus IMAP-Postfächern mit konfigurierbaren Filtern: - Dateitypen (.pdf, .jpg, etc.) - Maximale Größe - IMAP-Ordner ### PDF-Processor - **Text-Extraktion**: Mit pdfplumber/pypdf - **OCR**: Mit ocrmypdf + Tesseract (deutsch) - **ZUGFeRD**: Erkennung via factur-x Library ### Sorter Regelbasierte Erkennung und Benennung: - Pattern-Matching (Text, Absender, Dateiname) - Regex-basierte Feldextraktion - Konfigurierbares Namensschema ## API Endpoints | Methode | Endpoint | Beschreibung | |---------|----------|--------------| | GET | /api/pipelines | Alle Pipelines | | POST | /api/pipelines | Neue Pipeline | | POST | /api/pipelines/{id}/run | Pipeline ausführen | | GET | /api/pipelines/{id}/mail-configs | Mail-Konfigurationen | | POST | /api/pipelines/{id}/mail-configs | Postfach hinzufügen | | GET | /api/pipelines/{id}/regeln | Sortier-Regeln | | POST | /api/pipelines/{id}/regeln | Regel hinzufügen | | POST | /api/regeln/test | Regel testen | | GET | /api/dokumente | Verarbeitete Dokumente | | GET | /api/stats | Statistiken | ## Regex-Beispiele für Regeln ```yaml # Datum (DD.MM.YYYY) (\d{2}[./]\d{2}[./]\d{4}) # Rechnungsnummer (?:Rechnungsnummer|Invoice)[:\s]*(\d+) # Betrag mit EUR (?:Gesamtbetrag|Summe)[:\s]*([\d.,]+)\s*(?:EUR|€) ``` ## Erweiterungen (geplant) - [ ] Claude API Integration für KI-Validierung - [ ] Scheduler für automatische Ausführung - [ ] Dolibarr-Integration - [ ] Dashboard mit Grafiken >>>>>>> 8585cc3 (Dateiverwaltung Email attachment abruf läuft)