Globale Suche (Volltext + erweiterte Suche)

This commit is contained in:
2026-09-14 16:06:47 +02:00
parent 18f35657c0
commit d35e089a4c
+68 -67
View File
@@ -1,67 +1,68 @@
# Dokumentation perinco CRM # Dokumentation perinco CRM
Technische Dokumentation mit Funktionszeichnungen. Die Diagramme sind Mermaid und Technische Dokumentation mit Funktionszeichnungen. Die Diagramme sind Mermaid und
werden von Gitea direkt gerendert. werden von Gitea direkt gerendert.
**Neu hier?** Wer die Anwendung *benutzen* will, fängt bei **Neu hier?** Wer die Anwendung *benutzen* will, fängt bei
[07 Anleitung für Benutzer](07-anleitung-benutzer.md) an. Wer daran *entwickeln* [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 will, bei [08 Anleitung für Entwickler](08-anleitung-entwickler.md). Beide setzen
keine Vorkenntnisse voraus. keine Vorkenntnisse voraus.
| Kapitel | Inhalt | | Kapitel | Inhalt |
| --- | --- | | --- | --- |
| [01 Architektur](01-architektur.md) | Topologie, Prozesse, Ports, Anfrageweg, Rollen | | [01 Architektur](01-architektur.md) | Topologie, Prozesse, Ports, Anfrageweg, Rollen |
| [02 Datenmodell](02-datenmodell.md) | Tabellen beider Datenbanken als ER-Diagramme | | [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 | | [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 | | [04 Diktat](04-diktat.md) | Spracherkennung im Browser, Modell-Lebenszyklus |
| [05 Frontend](05-frontend.md) | Ansichten, Menü, Komponentenkarte, Zustand | | [05 Frontend](05-frontend.md) | Ansichten, Menü, Komponentenkarte, Zustand |
| [06 Betrieb](06-betrieb.md) | Deployment, Umgebungsvariablen, Dienste, Störungssuche | | [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 | | [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 | | [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 | | [09 Quellcode-Referenz](09-quellcode.md) | jede Datei, ihre Exporte und Zusagen |
| [10 Glossar](10-glossar.md) | Agent, Match, Lead, Opportunity, Status- und Portalwerte | | [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 | | [11 Postfachanbindung](11-postfach.md) | crm@perinco.de über Microsoft Graph, Kontakte aus Mails |
| [12 Globale Suche](12-suche.md) | Volltext und erweiterte Suche im Kopf der Anwendung |
Die Designentscheidungen und die Messwerte zur Spracherkennung stehen im
[README des Projekts](../README.md). Die Designentscheidungen und die Messwerte zur Spracherkennung stehen im
[README des Projekts](../README.md).
## Das Ganze in einem Bild
## Das Ganze in einem Bild
```mermaid
flowchart TB ```mermaid
subgraph Browser flowchart TB
SPA["React-SPA<br/>Vite-Build"] subgraph Browser
WSP["Whisper im Web Worker<br/>WebGPU / WASM"] SPA["React-SPA<br/>Vite-Build"]
end WSP["Whisper im Web Worker<br/>WebGPU / WASM"]
end
subgraph Server["Server 212.227.135.41"]
AP["Apache<br/>:443"] subgraph Server["Server 212.227.135.41"]
API["Express-Backend<br/>127.0.0.1:5006"] AP["Apache<br/>:443"]
SCH["Scanner-Scheduler<br/>node-cron"] API["Express-Backend<br/>127.0.0.1:5006"]
MSCH["Mail-Scheduler<br/>node-cron"] SCH["Scanner-Scheduler<br/>node-cron"]
PW["Playwright<br/>Chromium"] MSCH["Mail-Scheduler<br/>node-cron"]
DB1[("MariaDB<br/>perinco_CRM")] PW["Playwright<br/>Chromium"]
DB2[("MariaDB<br/>perinco_scanner")] DB1[("MariaDB<br/>perinco_CRM")]
end DB2[("MariaDB<br/>perinco_scanner")]
end
OAI["OpenAI<br/>gpt-4o-mini"]
BOERSE["Projektbörsen<br/>freelancermap, hays, ..."] OAI["OpenAI<br/>gpt-4o-mini"]
GRAPH["Microsoft Graph<br/>crm@perinco.de"] BOERSE["Projektbörsen<br/>freelancermap, hays, ..."]
GRAPH["Microsoft Graph<br/>crm@perinco.de"]
SPA -->|"HTTPS /api"| AP
AP --> API SPA -->|"HTTPS /api"| AP
API --> DB1 AP --> API
API --> DB2 API --> DB1
SCH --> PW API --> DB2
PW --> BOERSE SCH --> PW
SCH --> OAI PW --> BOERSE
SCH --> DB2 SCH --> OAI
API -.-> SCH SCH --> DB2
API -.-> MSCH API -.-> SCH
MSCH -->|"Delta Query, nur lesend"| GRAPH API -.-> MSCH
MSCH --> DB1 MSCH -->|"Delta Query, nur lesend"| GRAPH
SPA -.->|"Audio bleibt im Browser"| WSP 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. Die ursprüngliche Scanner-App unter `scanner.perinco.de` ist am 09.09.2026
zurückgebaut worden; das CRM ist seither die einzige Instanz.