149 lines
3.9 KiB
Markdown
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)
|