# DocuMentor

**Professionelle XSL-Transformations-Verwaltung und PDF-Generierung**

DocuMentor ist eine leistungsstarke PySide6-basierte Desktop-Anwendung zur Verwaltung und Validierung von XSL-Transformationen mit automatischer PDF-Generierung. Die Anwendung bietet eine intuitive GUI zur Konfiguration von Transformations-Toolchains (Saxon, Apache FOP, diff-pdf) und zur Verwaltung komplexer PDF-Generierungsprojekte mit PostgreSQL-Datenbankintegration.

## Features

### 🌳 Hierarchische Projektverwaltung
- Organisieren Sie Ihre XSL-Transformationen in einer übersichtlichen Baumstruktur
- Flexible Workflow-Definitionen mit verschachtelten Knoten
- Projektspezifische Konfiguration mit `project.yaml`

### ⚡ Asynchrone Batch-Verarbeitung
- Verarbeiten Sie große Mengen von XML-Dateien im Hintergrund
- Fortschrittsanzeige für lange Transformationen
- Parallelisierte XSLT-Transformationen durch eine Worker-Pool-Architektur

### 🔍 Intelligente Duplikatserkennung
- Automatische Hash-basierte Erkennung von identischen XML-Dateien (Blake2b)
- Verhindert Redundanzen und spart Speicherplatz
- Asynchrone Hash-Berechnung im Hintergrund

### 📄 PDF-Vergleichsansicht
- Drei-Panel-Ansicht (Referenz, Diff, Neu)
- Alpha-Blending für visuellen Vergleich
- Zoom- und Pan-Funktionalität

### 🗄️ PostgreSQL-Integration
- Nahtlose Datenbankanbindung mit Polars und ConnectorX
- Performante SQL-Abfragen und Datenverarbeitung
- SSL-Modus-Unterstützung

### 🛠️ Konfigurierbare Toolchains
- Flexible Verwaltung von Saxon, Apache FOP und diff-pdf
- Versionierung von Tools
- Plattformübergreifende Unterstützung (Linux, Windows, macOS)

### 🎨 Modernes UI
- Dark/Light-Theme-Unterstützung
- Drag-and-Drop für XML-Dateien
- Responsive und intuitive Benutzeroberfläche

## Installation

### Voraussetzungen

- Python 3.13 oder höher
- [uv](https://github.com/astral-sh/uv) Paketmanager

### Abhängigkeiten installieren

```bash
# Mit uv (empfohlen)
uv sync

# Oder mit pip
pip install -e .
```

### Externe Tools

Für die volle Funktionalität benötigen Sie:

- **Saxon-HE**: XSLT 3.0 Prozessor ([Download](https://www.saxonica.com/download/))
- **Apache FOP**: PDF-Generierung aus XSL-FO ([Download](https://xmlgraphics.apache.org/fop/download.html))
- **diff-pdf**: PDF-Vergleich ([GitHub](https://github.com/vslavik/diff-pdf))
- **OpenJDK/JRE**: für Saxon und Apache FOP. JDK empfohlen für Worker-Pools ([Eclipse Temurin](https://adoptium.net))

## Verwendung

### Anwendung starten

```bash
uv run python src/main.py
```

### Erste Start
Konfigurieren Sie Ihre Tools (Saxon, Apache FOP, diff-pdf) in den Einstellungen

### Projekt erstellen

1. Legen Sie ein neues Projekt an
2. Organisieren Sie XSL-Stylesheets und XML-Dateien in der Baumstruktur
3. Führen Sie Transformationen aus

### Konfiguration

Die Anwendung speichert Konfigurationsdateien an folgenden Orten:

- **Linux**: `~/.config/DocuMentor/config.json`
- **Windows**: `%APPDATA%\DocuMentor\config.json`
- **macOS**: `~/Library/Application Support/DocuMentor/config.json`

Projektdaten werden in `project.yaml` im jeweiligen Projektverzeichnis gespeichert.

## Entwicklung

### Code-Qualität

```bash
# Code-Style prüfen
uv run ruff check

# Code formatieren
uv run ruff format
```

### Tests

```bash
# Hash-Implementierung testen
uv run python test_hash_implementation.py

# Duplikatserkennung testen
uv run python test_xml_hash_duplicate_detection.py
```

### Architektur

- **PySide6**: Native Qt-basierte GUI
- **Pydantic**: Typsichere Konfigurationsverwaltung
- **Polars**: Lightning-fast DataFrame-Verarbeitung
- **Blake2b**: Kryptographische Hash-Funktion für Integritätsprüfung

Siehe [CLAUDE.md](CLAUDE.md) für detaillierte Entwicklerdokumentation.

## Lizenz

DocuMentor ist unter der [MIT License](LICENSE) lizenziert.

### Third-Party-Lizenzen

Diese Software verwendet folgende Open-Source-Bibliotheken:

- **PySide6** - LGPL-3.0 OR GPL-2.0 OR GPL-3.0
- **Pydantic** - MIT License
- **Polars** - MIT License
- **pyqtdarktheme** - MIT License
- Weitere siehe [THIRD_PARTY_LICENSES.txt](THIRD_PARTY_LICENSES.txt)

Externe Tools (separat zu installieren):
- **Saxon-HE** - Mozilla Public License 2.0
- **Apache FOP** - Apache License 2.0

Vollständige Lizenzanalyse: [LICENSES.md](LICENSES.md)

## Danksagungen

Vielen Dank an alle Entwickler der verwendeten Open-Source-Bibliotheken!

---

**DocuMentor** - Professionelle XSL-Transformations-Verwaltung für anspruchsvolle Projekte
