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