From 1bdd8af9ac7525108a7d6f42420a05d52a3ca18f Mon Sep 17 00:00:00 2001 From: Floke Date: Fri, 20 Mar 2026 20:41:03 +0000 Subject: [PATCH] docs: finalize status for fotograf-de-scraper including persistence blocker [32788f42] --- GEMINI.md | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/GEMINI.md b/GEMINI.md index 08a8ad95..b03a2c98 100644 --- a/GEMINI.md +++ b/GEMINI.md @@ -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. ---