125 lines
6.4 KiB
Markdown
125 lines
6.4 KiB
Markdown
# GTM Engine: Automatisierte Unternehmensbewertung & Lead-Generierung (v3.0)
|
|
|
|
**Current Status (März 2026):** Production-Ready Microservice Architecture.
|
|
|
|
Dieses Projekt ist eine modulare "Lead Enrichment Factory", die darauf ausgelegt ist, Unternehmensdaten aus einem D365-CRM-System automatisiert anzureichern, zu analysieren und für Marketing- & Vertriebszwecke aufzubereiten. Die Architektur basiert auf Docker-Containern und einer zentralen Nginx-Gateway-Lösung.
|
|
|
|
---
|
|
|
|
## ‼️ Aktueller Fokus: Migration & Betrieb
|
|
|
|
**Das System wurde für den Umzug auf die Ubuntu VM (`docker1`) stabilisiert.**
|
|
|
|
* **Migrationsplan & Netzwerkanforderungen:** [➡️ `RELOCATION.md`](./RELOCATION.md)
|
|
* **Legacy-Dokumentation (Python-Skripte):** [📂 `ARCHIVE_legacy_scripts/README_LEGACY.md`](./ARCHIVE_legacy_scripts/README_LEGACY.md)
|
|
|
|
---
|
|
|
|
## 🏗️ System-Architektur (Microservices)
|
|
|
|
Das System besteht aus mehreren spezialisierten Diensten, die über ein zentrales Gateway (`nginx`) erreichbar sind. Jeder Dienst ist isoliert und besitzt (wo nötig) eigene persistente Datenvolumes.
|
|
|
|
### 🌐 Zentraler Zugang (Gateway)
|
|
Alle Dienste sind über Port **8090** (oder `https://floke-ai.duckdns.org` bei entsprechender DNS-Konfiguration) erreichbar und durch Basic Auth geschützt.
|
|
|
|
| Modul | Icon | Pfad | Beschreibung | Doku |
|
|
| :--- | :---: | :--- | :--- | :--- |
|
|
| **Dashboard** | 🏠 | `/` | Zentrale Einstiegsseite. | - |
|
|
| **GTM Architect** | 🏛️ | `/gtm/` | **"The Brain"**. Go-to-Market Strategie & Architektur. | [README](./gtm-architect/README.md) |
|
|
| **Company Explorer** | 🤖 | `/ce/` | **"The Data Core"**. CRM-Data-Mining & Enrichment. | [README](./company-explorer/README.md) |
|
|
| **Lead Engine** | 📈 | `/lead/` | **"Trading Twins"**. Lead-Management & Kalender. | [README](./lead-engine/README.md) |
|
|
| **Content Engine** | ✍️ | `/content/` | **"The Mouth"**. SEO- & Sales-Content Generierung. | [README](./content-engine/README.md) |
|
|
| **B2B Assistant** | 🚀 | `/b2b/` | Persona- & Pain-Point-Analyse. | [README](./b2b-marketing-assistant/README.md) |
|
|
| **Market Intel** | 📊 | `/market/` | Marktanalyse & Recherche-Agent. | [README](./general-market-intelligence/README.md) |
|
|
| **Competitor Analysis** | ⚔️ | `/competitor/` | Wettbewerber-Analyse & Battlecards. | [README](./competitor-analysis-app/README.md) |
|
|
| **Connector** | 🔌 | `/connector/` | **"The Muscle"**. SuperOffice CRM Synchronisation. | [README](./connector-superoffice/README.md) |
|
|
| **Meeting Assistant** | 🎙️ | `/tr/` | Meeting-Transkription via Gemini 2.0. | [README](./transcription-tool/README.md) |
|
|
| **Heatmap Tool** | 🗺️ | `/heatmap/` | Visualisierung von Excel-Daten auf PLZ-Karte. | [README](./heatmap-tool/README.md) |
|
|
| **Listen-Generator** | 📄 | `/list-generator/` | Erstellt PDF-Listen aus CSV-Dateien. | [README](./list-generator/README.md) |
|
|
| **Fotograf.de Scraper**| 📸 | `/fotograf-de/` | Holt Auftragsdaten von Fotograf.de. | [README](./fotograf-de-scraper/README.md) |
|
|
|
|
|
|
---
|
|
|
|
## 🛠️ Technische Spezifikationen
|
|
|
|
### Architektur & Ports
|
|
Die GTM Engine basiert auf einer Microservice-Architektur, orchestriert via `docker-compose.yml`. Detaillierte Informationen zu Ports, Volumes und Routing finden Sie in der [➡️ Infrastruktur-Dokumentation](./docs/INFRASTRUCTURE.md).
|
|
|
|
* **Zentraler Zugang:** Port `8090` (extern).
|
|
* **Sicherheit:** Einheitliche Authentifizierung via Nginx-Gateway.
|
|
* **Connectivity:** Automatisches DNS-Update via DuckDNS.
|
|
|
|
### Persistenz & Environment
|
|
* **Volumes:** Alle kritischen Daten werden in benannten Docker-Volumes gespeichert.
|
|
* **Secrets:** Konfiguration erfolgt ausschließlich über eine zentrale `.env` Datei. Hardcoded Credentials sind nicht zulässig.
|
|
|
|
## ✅ Qualitätssicherung (Testing)
|
|
|
|
Um die Stabilität des Systems zu gewährleisten, wurden zwei Mechanismen implementiert:
|
|
|
|
### System-Health-Check
|
|
Das Skript `health_check.sh` prüft den Docker-Status und die internen API-Endpunkte aller laufenden Dienste. Es ist der schnellste Weg, um zu verifizieren, ob das Gesamtsystem betriebsbereit ist.
|
|
```bash
|
|
bash health_check.sh
|
|
```
|
|
|
|
### Automatisierte Tests
|
|
Für die kritischen Backend-Dienste existieren automatisierte Integrationstests (`pytest`). Diese mocken externe APIs und validieren die Kernlogik. Detaillierte Anweisungen zur Ausführung finden Sie in [➡️ `docs/TESTING.md`](./docs/TESTING.md).
|
|
|
|
---
|
|
|
|
## 🚀 Deployment (Quickstart)
|
|
|
|
Um den Stack auf einer neuen Maschine (z.B. `docker1`) zu starten:
|
|
|
|
1. **Repository klonen:**
|
|
```bash
|
|
git clone <REPO_URL> /opt/gtm-engine
|
|
cd /opt/gtm-engine
|
|
```
|
|
|
|
2. **Environment konfigurieren:**
|
|
Kopieren Sie die `.env.example` zu `.env` und tragen Sie Ihre API-Schlüssel ein.
|
|
|
|
3. **Volumes wiederherstellen (Optional):**
|
|
Falls Sie Daten migrieren, stellen Sie die Docker-Volumes **vor** dem ersten Start wieder her (siehe `RELOCATION.md`).
|
|
|
|
4. **Starten:**
|
|
```bash
|
|
docker-compose up -d --build
|
|
```
|
|
|
|
5. **Verifizierung:**
|
|
Öffnen Sie `http://<HOST_IP>:8090` im Browser.
|
|
|
|
## 🤖 Status-Update (2026-03-21 10:05 Berlin Time)
|
|
```yaml
|
|
Investierte Zeit in dieser Session: 01:51
|
|
|
|
Arbeitszusammenfassung:
|
|
Keine Zusammenfassung angegeben.
|
|
```
|
|
|
|
|
|
## 🤖 Status-Update (2026-03-21 14:35 Berlin Time)
|
|
```yaml
|
|
Investierte Zeit in dieser Session: 00:22
|
|
|
|
Arbeitszusammenfassung:
|
|
Investierte Zeit in dieser Session: 00:30
|
|
|
|
Arbeitszusammenfassung:
|
|
Zusammenfassung der Ergebnisse:
|
|
|
|
1. QR-Karten Tool (Feinschliff):
|
|
* Die Y-Achse für den Andruck wurde um 9 mm nach unten korrigiert, sodass die Texte nun perfekt auf den Linien der Blankokarten sitzen. Die X-Achse bleibt bei 72 mm.
|
|
* Zeitzonen-Unterstützung integriert: Die aus der Calendly-API importierten Termine (UTC) werden jetzt automatisch in die Mitteleuropäische Zeit (Europe/Berlin) konvertiert (z. B. 12:00 Uhr statt 10:00 Uhr).
|
|
* Einwilligungs-Feature: Die Skripte prüfen nun, ob in Calendly der Veröffentlichung von Bildern ("Ja, gerne") zugestimmt wurde. Falls ja, wird ein manuell gezeichnetes Checkbox-Häkchen (☑) vor dem Namen im PDF angedruckt.
|
|
|
|
Neue Anforderungen für die nächste Session (im System erfasst):
|
|
* Workflow-Änderung: Das QR-Karten-Tool wird vom globalen Header in die auftragsspezifische Ansicht verschoben.
|
|
* Dynamische Event-Auswahl: Nutzer müssen pro Auftrag das spezifische Calendly-Event auswählen. Die Datumsauswahl entfällt dadurch.
|
|
* Neues PDF-Feature: Erstellung einer Übersichtsliste aller Termine (inklusive Lücken / Blank-Spacing für nicht gebuchte Termine im 6-Minuten-Takt).
|
|
```
|