docs: finalize status for fotograf-de-scraper including persistence blocker [32788f42]

This commit is contained in:
2026-03-20 20:41:03 +00:00
parent ffc47e02e7
commit 1bdd8af9ac

View File

@@ -59,12 +59,20 @@ Das System läuft stabil und ist für den Produktivbetrieb vorbereitet. Wesentli
* **Erfolgreich reaktiviert:** Der DynDNS-Service läuft und aktualisiert die IP, die Netzwerk-Konnektivität ist stabil.
### 6. Fotograf.de Scraper (In Development)
* **Architektur:** Ein neuer, eigenständiger Microservice wurde unter `/fotograf-de-scraper` angelegt. Er folgt dem Standard-Pattern mit einem FastAPI-Backend (Python/Selenium) und einem React-Frontend (TypeScript/Vite).
* **Status:**
* Das Grundgerüst für Backend, Frontend und Docker-Compose ist vollständig implementiert und lauffähig.
* Der Selenium-basierte Login-Prozess ist **erfolgreich und stabil**. Der Scraper kann sich mit den hinterlegten Zugangsdaten authentifizieren und die Session nutzen.
* Der Scraper navigiert nach dem Login korrekt zur Auftragsübersicht (`/config_jobs/index`).
* **Nächster Schritt:** Die Datenextraktion schlägt fehl. Der Selektor zum Auslesen der einzelnen Auftragszeilen und deren Spalten (Jobname, Status, etc.) von der Auftragsliste muss analysiert und im Code (`main.py`) korrigiert werden.
* **Architektur:** Ein neuer, eigenständiger Microservice wurde unter `/fotograf-de-scraper` angelegt. FastAPI-Backend (Python/Selenium) + React-Frontend (TypeScript/Vite/Tailwind).
* **Status (20. März 2026):**
* **Grundgerüst & Login:** Erfolgreich implementiert. Der Selenium-Bot loggt sich stabil ein.
* **Auftragsliste:** Das Abrufen und Cachen der Aufträge (`/config_jobs/index`) im Frontend funktioniert.
* **Feature 1 (Teilnehmerliste PDF): ERFOLGREICH.** Der Scraper navigiert zum Auftrag, lädt die CSV-Anmeldeliste versteckt herunter, formatiert sie via WeasyPrint/Jinja2 (Logik aus List-Generator übernommen) und liefert das finale PDF an den Browser aus.
* **Frontend UI:** Erste Version eines kachelbasierten Dashboards mit Detail-Modal implementiert. (Benötigt weiteres Feintuning nach User-Feedback).
* **Kritischer Blocker (Infrastruktur):**
* **Datenbank-Persistenz fehlerhaft:** Trotz Umstellung der `docker-compose.yml` auf lokale Bind-Mounts (`./company-explorer/data:/data`, etc.) sind die SQLite-Datenbanken nach einem Container-Rebuild (`--force-recreate`) leer.
* *Verdacht:* Rechteprobleme auf der Synology Diskstation oder Initialisierungsskripte im Container, die die DB bei jedem Start überschreiben. **Muss offline vom User auf Host-Ebene geprüft werden.**
* **Nächste Schritte (Für die nächste Session):**
1. **Infrastruktur:** Verifizierung, dass das DB-Persistenz-Problem gelöst ist.
2. **Feature 4 (Statistik):** Reaktivierung der bestehenden Skript-Logik (`process_statistics_mode`) zur Auswertung der Verkaufszahlen. Integration in einen neuen API-Endpunkt und Anzeige im Frontend-Modal.
3. **Feature 3 (Nachfass-Emails):** Reaktivierung der bestehenden Logik (`process_reminder_mode`).
4. **Feature 2 (QR-Karten):** Backend-Endpunkt zur PDF-Manipulation (Overlay von Text) basierend auf CSV/Calendly-Daten.
---