Die eigenstaendige Vorgaenger-App unter scanner.perinco.de ist auf dem Server entfernt: Unit project-scanner-backend (Port 5005), beide Apache-Vhosts, das Let's-Encrypt-Zertifikat samt Renewal-Config, /var/www/Projekt Scanner (486 MB) und die Datenbank project_scanner (Dump unter /root/backups). Damit entfallen die LEGACY_*-Variablen und das Importskript, dessen Quelle es nicht mehr gibt. /root/.cache/ms-playwright bleibt bewusst stehen: der Cache stammt aus der Installation der alten App, liegt aber ausserhalb beider Verzeichnisse und wird vom CRM-Scanner benutzt - playwright ist auf 1.60.0 gepinnt, damit es genau dieser Build (chromium-1223) bleibt. Der Hinweis steht jetzt in README und docs/06-betrieb.md, damit ihn beim naechsten Aufraeumen niemand mitnimmt. SCANNER_SCHEDULER_OFFSET geht auf 0: der Versatz sollte verhindern, dass beide Instanzen mit denselben Portal-Cookies gleichzeitig losziehen. Ohne zweite Instanz hat er keinen Zweck mehr, die Mechanik bleibt fuer kuenftige Erststarts im Code. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
68 lines
2.6 KiB
Markdown
68 lines
2.6 KiB
Markdown
# Dokumentation perinco CRM
|
|
|
|
Technische Dokumentation mit Funktionszeichnungen. Die Diagramme sind Mermaid und
|
|
werden von Gitea direkt gerendert.
|
|
|
|
**Neu hier?** Wer die Anwendung *benutzen* will, fängt bei
|
|
[07 Anleitung für Benutzer](07-anleitung-benutzer.md) an. Wer daran *entwickeln*
|
|
will, bei [08 Anleitung für Entwickler](08-anleitung-entwickler.md). Beide setzen
|
|
keine Vorkenntnisse voraus.
|
|
|
|
| Kapitel | Inhalt |
|
|
| --- | --- |
|
|
| [01 Architektur](01-architektur.md) | Topologie, Prozesse, Ports, Anfrageweg, Rollen |
|
|
| [02 Datenmodell](02-datenmodell.md) | Tabellen beider Datenbanken als ER-Diagramme |
|
|
| [03 Projekt Scanner](03-scanner.md) | Suchlauf von der Börse bis zum Treffer, Rückbau der alten App |
|
|
| [04 Diktat](04-diktat.md) | Spracherkennung im Browser, Modell-Lebenszyklus |
|
|
| [05 Frontend](05-frontend.md) | Ansichten, Menü, Komponentenkarte, Zustand |
|
|
| [06 Betrieb](06-betrieb.md) | Deployment, Umgebungsvariablen, Dienste, Störungssuche |
|
|
| [07 Anleitung für Benutzer](07-anleitung-benutzer.md) | Bedienung aller Bereiche, Schritt für Schritt |
|
|
| [08 Anleitung für Entwickler](08-anleitung-entwickler.md) | Einrichten, erweitern, bekannte Fallen |
|
|
| [09 Quellcode-Referenz](09-quellcode.md) | jede Datei, ihre Exporte und Zusagen |
|
|
| [10 Glossar](10-glossar.md) | Agent, Match, Lead, Opportunity, Status- und Portalwerte |
|
|
| [11 Postfachanbindung](11-postfach.md) | crm@perinco.de über Microsoft Graph, Kontakte aus Mails |
|
|
|
|
Die Designentscheidungen und die Messwerte zur Spracherkennung stehen im
|
|
[README des Projekts](../README.md).
|
|
|
|
## Das Ganze in einem Bild
|
|
|
|
```mermaid
|
|
flowchart TB
|
|
subgraph Browser
|
|
SPA["React-SPA<br/>Vite-Build"]
|
|
WSP["Whisper im Web Worker<br/>WebGPU / WASM"]
|
|
end
|
|
|
|
subgraph Server["Server 212.227.135.41"]
|
|
AP["Apache<br/>:443"]
|
|
API["Express-Backend<br/>127.0.0.1:5006"]
|
|
SCH["Scanner-Scheduler<br/>node-cron"]
|
|
MSCH["Mail-Scheduler<br/>node-cron"]
|
|
PW["Playwright<br/>Chromium"]
|
|
DB1[("MariaDB<br/>perinco_CRM")]
|
|
DB2[("MariaDB<br/>perinco_scanner")]
|
|
end
|
|
|
|
OAI["OpenAI<br/>gpt-4o-mini"]
|
|
BOERSE["Projektbörsen<br/>freelancermap, hays, ..."]
|
|
GRAPH["Microsoft Graph<br/>crm@perinco.de"]
|
|
|
|
SPA -->|"HTTPS /api"| AP
|
|
AP --> API
|
|
API --> DB1
|
|
API --> DB2
|
|
SCH --> PW
|
|
PW --> BOERSE
|
|
SCH --> OAI
|
|
SCH --> DB2
|
|
API -.-> SCH
|
|
API -.-> MSCH
|
|
MSCH -->|"Delta Query, nur lesend"| GRAPH
|
|
MSCH --> DB1
|
|
SPA -.->|"Audio bleibt im Browser"| WSP
|
|
```
|
|
|
|
Die ursprüngliche Scanner-App unter `scanner.perinco.de` ist am 09.09.2026
|
|
zurückgebaut worden; das CRM ist seither die einzige Instanz.
|