# Dokumentation perinco CRM Technische Dokumentation mit Funktionszeichnungen. Die Diagramme sind Mermaid und werden von Gitea direkt gerendert. **Neu hier?** Wer die Anwendung *benutzen* will, faengt bei [07 Anleitung fuer Benutzer](07-anleitung-benutzer.md) an. Wer daran *entwickeln* will, bei [08 Anleitung fuer 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 Boerse bis zum Treffer, Parallelbetrieb | | [04 Diktat](04-diktat.md) | Spracherkennung im Browser, Modell-Lebenszyklus | | [05 Frontend](05-frontend.md) | Ansichten, Menue, Komponentenkarte, Zustand | | [06 Betrieb](06-betrieb.md) | Deployment, Umgebungsvariablen, Dienste, Stoerungssuche | | [07 Anleitung fuer Benutzer](07-anleitung-benutzer.md) | Bedienung aller Bereiche, Schritt fuer Schritt | | [08 Anleitung fuer 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 | 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
Vite-Build"] WSP["Whisper im Web Worker
WebGPU / WASM"] end subgraph Server["Server 212.227.135.41"] AP["Apache
:443"] API["Express-Backend
127.0.0.1:5006"] SCH["Scanner-Scheduler
node-cron"] PW["Playwright
Chromium"] DB1[("MariaDB
perinco_CRM")] DB2[("MariaDB
perinco_scanner")] ALT["alte Scanner-App
:5005"] DB3[("MariaDB
project_scanner")] end OAI["OpenAI
gpt-4o-mini"] BOERSE["Projektboersen
freelancermap, hays, ..."] SPA -->|"HTTPS /api"| AP AP --> API API --> DB1 API --> DB2 SCH --> PW PW --> BOERSE SCH --> OAI SCH --> DB2 API -.-> SCH ALT --> DB3 ALT --> BOERSE SPA -.->|"Audio bleibt im Browser"| WSP classDef alt fill:#f7f7f7,stroke:#9a9a9a,stroke-dasharray: 4 3 class ALT,DB3 alt ``` Gestrichelt: die urspruengliche Scanner-App, die bis zur Ablosung parallel weiterlaeuft. Sie hat ihre eigene Datenbank und wird vom CRM nicht angefasst.