docker.dateiverwaltung/README.md

149 lines
3.9 KiB
Markdown

<<<<<<< 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)