/** * SystemInfoSection Configurations * * Pre-defined configurations for each admin module. * Extracted from SystemInfoSection.tsx for better maintainability. */ import type { SystemInfoConfig } from './types' export const SYSTEM_INFO_CONFIGS: Record = { // Dashboard dashboard: { title: 'Dashboard System-Info', description: 'Zentrale Uebersicht aller BreakPilot-Module und deren Status.', version: '2.0', architecture: { layers: [ { title: 'Frontend (Next.js 15)', components: ['Dashboard UI', 'Chart.js', 'Realtime Updates'], color: '#3b82f6' }, { title: 'API Gateway', components: ['Next.js API Routes', 'Auth Middleware', 'Rate Limiting'], color: '#8b5cf6' }, { title: 'Microservices', components: ['Consent Service', 'Klausur Service', 'School Service'], color: '#10b981' }, { title: 'Datenbanken', components: ['PostgreSQL', 'Qdrant', 'Valkey (Redis)'], color: '#f59e0b' }, ], }, features: [ { name: 'Service Health Monitoring', status: 'active', description: 'Echtzeit-Status aller Microservices' }, { name: 'Metriken-Aggregation', status: 'active', description: 'Zusammenfassung wichtiger KPIs' }, { name: 'Alerting System', status: 'planned', description: 'Benachrichtigungen bei Problemen' }, { name: 'Custom Dashboards', status: 'planned', description: 'Benutzerdefinierte Dashboard-Layouts' }, ], roadmap: [ { phase: 'Phase 1: Monitoring (Q1)', priority: 'high', items: ['Prometheus Integration', 'Grafana Dashboards', 'Service Health Checks', 'Error Rate Tracking'] }, { phase: 'Phase 2: Alerting (Q2)', priority: 'medium', items: ['Slack/Teams Integration', 'E-Mail Alerts', 'Eskalations-Regeln', 'On-Call Rotation'] }, { phase: 'Phase 3: Analytics (Q3)', priority: 'low', items: ['Usage Analytics', 'Cost Tracking', 'Trend-Analysen', 'Kapazitaetsplanung'] }, ], technicalDetails: [ { component: 'Frontend', technology: 'Next.js', version: '15.x', description: 'React Server Components' }, { component: 'Styling', technology: 'Tailwind CSS', version: '3.x', description: 'Utility-first CSS' }, { component: 'State', technology: 'React Hooks', version: '19.x', description: 'Lokaler State' }, { component: 'Charts', technology: 'Chart.js', version: '4.x', description: 'Datenvisualisierung' }, ], }, // GPU Infrastruktur gpu: { title: 'GPU Infrastruktur System-Info', description: 'vast.ai GPU-Management fuer KI-Workloads und Training.', version: '1.5', privacyNotes: [ 'GPU-Workloads werden isoliert in Docker-Containern ausgefuehrt', 'Keine persistente Speicherung von Trainingsdaten auf GPU-Instanzen', 'SSH-Keys werden regelmaessig rotiert', 'Audit-Log fuer alle GPU-Operationen', ], architecture: { layers: [ { title: 'Admin UI', components: ['GPU Dashboard', 'Instance Manager', 'Cost Calculator'], color: '#3b82f6' }, { title: 'vast.ai API', components: ['Instance API', 'Billing API', 'SSH Management'], color: '#8b5cf6' }, { title: 'GPU Instances', components: ['RTX 4090', 'A100', 'H100'], color: '#10b981' }, { title: 'Workloads', components: ['Model Training', 'Inference', 'Fine-Tuning'], color: '#f59e0b' }, ], }, features: [ { name: 'Instance Management', status: 'active', description: 'Start/Stop/Destroy von GPU-Instanzen' }, { name: 'SSH Key Management', status: 'active', description: 'Automatische SSH-Key Rotation' }, { name: 'Cost Tracking', status: 'active', description: 'Echtzeit-Kostenüberwachung' }, { name: 'Auto-Scaling', status: 'planned', description: 'Automatische Skalierung bei Last' }, { name: 'Spot Instance Management', status: 'planned', description: 'Kostenoptimierung durch Spot-Instances' }, ], roadmap: [ { phase: 'Phase 1: Automation (Q1)', priority: 'high', items: ['Auto-Start bei Bedarf', 'Auto-Stop bei Inaktivitaet', 'Scheduled Instances', 'Budget Alerts'] }, { phase: 'Phase 2: Multi-Cloud (Q2)', priority: 'medium', items: ['Lambda Labs Integration', 'RunPod Integration', 'Cloud-uebergreifende Orchestrierung', 'Preisvergleich'] }, { phase: 'Phase 3: ML Ops (Q3)', priority: 'medium', items: ['Model Registry', 'Experiment Tracking', 'A/B Testing', 'Model Versioning'] }, ], technicalDetails: [ { component: 'API', technology: 'vast.ai REST API', version: 'v1', description: 'GPU-Marktplatz' }, { component: 'SSH', technology: 'OpenSSH', version: '9.x', description: 'Sichere Verbindung' }, { component: 'Container', technology: 'Docker', version: '24.x', description: 'Workload-Isolation' }, { component: 'ML Framework', technology: 'PyTorch', version: '2.x', description: 'Model Training' }, ], auditInfo: [ { category: 'Sicherheit & Zugriffskontrolle', items: [ { label: 'Authentifizierung', value: 'API-Key + SSH-Key', status: 'ok' }, { label: 'Verschluesselung', value: 'TLS 1.3', status: 'ok' }, { label: 'Key Rotation', value: 'Alle 30 Tage', status: 'ok' }, { label: 'Audit-Log', value: 'Aktiviert', status: 'ok' }, ], }, { category: 'Kosten & Ressourcen', items: [ { label: 'Budget-Limit', value: 'Konfigurierbar', status: 'ok' }, { label: 'Auto-Shutdown', value: '30 Min Inaktivitaet', status: 'ok' }, { label: 'Spot-Instances', value: 'Geplant', status: 'warning' }, { label: 'Multi-Cloud', value: 'Geplant', status: 'warning' }, ], }, { category: 'Compliance', items: [ { label: 'Daten-Residenz', value: 'EU/US waehlbar', status: 'ok' }, { label: 'DSGVO-Konformitaet', value: 'Ja', status: 'ok' }, { label: 'SOC 2 Type II', value: 'vast.ai zertifiziert', status: 'ok' }, ], }, ], fullDocumentation: `

GPU Infrastructure Management

1. Uebersicht

Das GPU-Infrastruktur-Modul ermoeglicht die Verwaltung von Cloud-GPU-Ressourcen ueber vast.ai fuer KI-Workloads wie Model Training, Fine-Tuning und Inference.

2. Architektur

┌─────────────────────────────────────────────────────────────┐
│                      Admin Dashboard                         │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────────┐ │
│  │ Start/Stop  │  │   Status    │  │   Cost Tracking     │ │
│  └──────┬──────┘  └──────┬──────┘  └──────────┬──────────┘ │
└─────────┼───────────────┼─────────────────────┼─────────────┘
          │               │                     │
          v               v                     v
┌─────────────────────────────────────────────────────────────┐
│                      Backend API                             │
│  ┌─────────────────────────────────────────────────────┐   │
│  │  /infra/vast/*  -  vast.ai Proxy mit Auth           │   │
│  └─────────────────────────────────────────────────────┘   │
└──────────────────────────┬──────────────────────────────────┘
                           │
                           v
┌─────────────────────────────────────────────────────────────┐
│                      vast.ai Cloud                           │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────┐    │
│  │ RTX 4090 │  │   A100   │  │   H100   │  │ RTX 3090 │    │
│  └──────────┘  └──────────┘  └──────────┘  └──────────┘    │
└─────────────────────────────────────────────────────────────┘

3. API Endpoints

EndpointMethodeBeschreibung
/infra/vast/statusGETAktueller Status der GPU-Instanz
/infra/vast/power/onPOSTGPU-Instanz starten
/infra/vast/power/offPOSTGPU-Instanz stoppen
/infra/vast/auditGETAudit-Log der letzten Aktionen

4. Sicherheitskonzept

5. Kostenmanagement

GPUPreis/StundeVRAMUse Case
RTX 4090~$0.4024 GBTraining, Inference
A100~$1.5080 GBLarge Model Training
H100~$3.0080 GBEnterprise Training

6. Auto-Shutdown Policy

GPU-Instanzen werden automatisch nach 30 Minuten Inaktivitaet gestoppt, um Kosten zu sparen. Bei jedem LLM-Request wird die Aktivitaet aufgezeichnet.

7. Audit-relevante Informationen

8. Notfallprozeduren

  1. Bei Kostenüberschreitung: Automatischer Stop aller Instanzen
  2. Bei API-Ausfall: Fallback auf manuelles vast.ai Dashboard
  3. Bei Sicherheitsvorfall: Sofortiges Destroy aller Instanzen
`, }, // Consent Verwaltung consent: { title: 'Consent Management System-Info', description: 'DSGVO-konforme Verwaltung von Einwilligungen und rechtlichen Dokumenten.', version: '3.0', privacyNotes: [ 'Alle Consent-Daten werden verschluesselt gespeichert', 'Audit-Trail fuer alle Aenderungen', 'Automatische Datenlöschung nach Widerruf', 'DSGVO Art. 7 konforme Einwilligungsverwaltung', ], architecture: { layers: [ { title: 'Frontend', components: ['Consent Banner', 'Praeferenz-Center', 'Admin UI'], color: '#3b82f6' }, { title: 'Consent Service (Go)', components: ['Consent API', 'Version Control', 'Audit Logger'], color: '#00ADD8' }, { title: 'Backend (Python)', components: ['GDPR Export', 'Analytics', 'Reporting'], color: '#3776AB' }, { title: 'PostgreSQL', components: ['Consents', 'Documents', 'Audit Logs'], color: '#336791' }, ], }, features: [ { name: 'Dokumenten-Versionierung', status: 'active', description: 'Vollstaendige Historie aller Versionen' }, { name: 'Multi-Mandanten', status: 'active', description: 'Tenant-isolierte Consent-Verwaltung' }, { name: 'Approval Workflow', status: 'active', description: 'DSB-Freigabe fuer neue Versionen' }, { name: 'A/B Testing', status: 'planned', description: 'Consent-Rate Optimierung' }, { name: 'Analytics Dashboard', status: 'planned', description: 'Consent-Metriken und Trends' }, ], roadmap: [ { phase: 'Phase 1: Compliance (Q1)', priority: 'high', items: ['TCF 2.2 Integration', 'IAB GPP Support', 'Cookie Scanning', 'Compliance Reports'] }, { phase: 'Phase 2: UX (Q2)', priority: 'medium', items: ['Banner A/B Testing', 'Conversion Tracking', 'Dark Pattern Detection', 'Accessibility (WCAG)'] }, { phase: 'Phase 3: Integration (Q3)', priority: 'low', items: ['Google Consent Mode v2', 'Meta CAPI Integration', 'CRM Sync', 'Marketing Automation'] }, ], technicalDetails: [ { component: 'Backend', technology: 'Go + Gin', version: '1.21+', description: 'High-Performance API' }, { component: 'Database', technology: 'PostgreSQL', version: '16', description: 'ACID-konform' }, { component: 'Cache', technology: 'Valkey', version: '8.x', description: 'Redis-kompatibel' }, { component: 'Encryption', technology: 'AES-256', description: 'At-rest Verschluesselung' }, ], auditInfo: [ { category: 'DSGVO-Compliance', items: [ { label: 'Art. 7 Einwilligung', value: 'Implementiert', status: 'ok' }, { label: 'Art. 13/14 Informationspflichten', value: 'Implementiert', status: 'ok' }, { label: 'Art. 17 Recht auf Loeschung', value: 'Implementiert', status: 'ok' }, { label: 'Art. 20 Datenportabilitaet', value: 'Implementiert', status: 'ok' }, ], }, { category: 'Technische Sicherheit', items: [ { label: 'Verschluesselung', value: 'AES-256 at rest', status: 'ok' }, { label: 'TLS', value: '1.3', status: 'ok' }, { label: 'Audit-Log', value: 'Lueckenlos', status: 'ok' }, { label: 'Backup', value: 'Taeglich, 30 Tage', status: 'ok' }, ], }, { category: 'Dokumenten-Status', items: [ { label: 'AGB', value: 'v2.1 - Aktiv', status: 'ok' }, { label: 'Datenschutz', value: 'v3.0 - Aktiv', status: 'ok' }, { label: 'Cookie-Policy', value: 'v1.5 - Aktiv', status: 'ok' }, { label: 'Impressum', value: 'v1.0 - Aktiv', status: 'ok' }, ], }, ], fullDocumentation: `

Consent Management System

1. Uebersicht

Das Consent Management System (CMS) verwaltet alle rechtlichen Einwilligungen fuer die BreakPilot-Plattform gemaess DSGVO Art. 6 und Art. 7.

2. Dokumenttypen

TypBeschreibungPflicht
termsAllgemeine GeschaeftsbedingungenJa
privacyDatenschutzerklaerungJa
cookiesCookie-RichtlinieJa
communityCommunity GuidelinesNein
imprintImpressumNein

3. Versions-Workflow

    ┌──────────┐    ┌──────────┐    ┌───────────┐    ┌───────────┐
    │  draft   │ -> │  review  │ -> │  approved │ -> │ published │
    └──────────┘    └────┬─────┘    └───────────┘    └───────────┘
                         │
                         v
                    ┌──────────┐
                    │ rejected │ -> zurueck zu draft
                    └──────────┘

4. API Endpoints

EndpointMethodeBeschreibung
/api/consent/documentsGETAlle Dokumente listen
/api/consent/documents/{type}/latestGETAktuelle Version
/api/consent/check/{type}GETConsent-Status pruefen
/api/consent/grantPOSTConsent erteilen
/api/consent/revokePOSTConsent widerrufen

5. Cookie-Kategorien

KategorieBeschreibungDefault
essentialTechnisch notwendigImmer aktiv
functionalErweiterte FunktionenOpt-in
analyticsNutzungsanalyseOpt-in
marketingWerbung & TrackingOpt-in

6. Audit-Trail

Alle Consent-Aenderungen werden mit folgenden Daten protokolliert:

7. DSGVO-Rechte

ArtikelRechtStatus
Art. 7Widerruf der Einwilligung✓ Implementiert
Art. 15Auskunftsrecht✓ Implementiert
Art. 16Recht auf Berichtigung✓ Implementiert
Art. 17Recht auf Loeschung✓ Implementiert
Art. 20Datenportabilitaet✓ Implementiert

8. Compliance-Pruefungen

  1. Woechentlich: Automatischer Consent-Rate Report
  2. Monatlich: Dokumenten-Review durch DSB
  3. Quartalsweise: Compliance-Audit
  4. Jaehrlich: Externer Datenschutz-Audit

9. Notfallprozeduren

`, }, // DSR (Datenschutzanfragen) dsr: { title: 'DSR Management System-Info', description: 'Bearbeitung von DSGVO-Betroffenenrechten (Art. 15-22).', version: '2.0', privacyNotes: [ 'Automatische Fristenueberwachung (30 Tage)', 'Identitaetsverifizierung vor Datenauskunft', 'Verschluesselte Datenexporte', 'Protokollierung aller Bearbeitungsschritte', ], architecture: { layers: [ { title: 'Request Portal', components: ['Antragsformular', 'Status-Tracking', 'Upload'], color: '#3b82f6' }, { title: 'Processing Engine', components: ['Workflow Engine', 'Data Collector', 'Export Generator'], color: '#8b5cf6' }, { title: 'Data Sources', components: ['PostgreSQL', 'MinIO', 'External APIs'], color: '#10b981' }, { title: 'Notification', components: ['E-Mail', 'Audit Log', 'Reports'], color: '#f59e0b' }, ], }, features: [ { name: 'Art. 15 Auskunft', status: 'active', description: 'Automatisierter Datenexport' }, { name: 'Art. 17 Löschung', status: 'active', description: 'Kaskadierte Datenlöschung' }, { name: 'Art. 20 Portabilitaet', status: 'active', description: 'JSON/CSV Export' }, { name: 'Art. 16 Berichtigung', status: 'active', description: 'Datenkorrektur-Workflow' }, { name: 'KI-Assistenz', status: 'planned', description: 'Automatische Kategorisierung' }, ], roadmap: [ { phase: 'Phase 1: Automation (Q1)', priority: 'high', items: ['Automatische Datensammlung', 'Template-basierte Antworten', 'Fristen-Alerts', 'Batch-Verarbeitung'] }, { phase: 'Phase 2: Self-Service (Q2)', priority: 'medium', items: ['Nutzer-Portal', 'Echtzeit-Status', 'Sofort-Download', 'Identitaets-Verifizierung'] }, { phase: 'Phase 3: Analytics (Q3)', priority: 'low', items: ['DSR-Metriken', 'Trend-Analyse', 'Compliance-Scoring', 'Benchmarking'] }, ], technicalDetails: [ { component: 'Workflow', technology: 'State Machine', description: 'Definierte Bearbeitungsstatus' }, { component: 'Export', technology: 'JSON/CSV/PDF', description: 'Maschinenlesbare Formate' }, { component: 'Encryption', technology: 'AES-256-GCM', description: 'Export-Verschluesselung' }, { component: 'Verification', technology: 'TOTP/E-Mail', description: 'Zwei-Faktor' }, ], auditInfo: [ { category: 'DSGVO-Rechte Implementation', items: [ { label: 'Art. 15 Auskunft', value: 'Automatisiert', status: 'ok' }, { label: 'Art. 16 Berichtigung', value: 'Workflow', status: 'ok' }, { label: 'Art. 17 Loeschung', value: 'Kaskadiert', status: 'ok' }, { label: 'Art. 20 Portabilitaet', value: 'JSON/CSV', status: 'ok' }, { label: 'Art. 21 Widerspruch', value: 'Implementiert', status: 'ok' }, ], }, { category: 'Fristen & SLAs', items: [ { label: 'Bearbeitungsfrist', value: '30 Tage', status: 'ok' }, { label: 'Fristverlängerung', value: '+60 Tage moeglich', status: 'ok' }, { label: 'Automatische Erinnerung', value: '7 Tage vor Ablauf', status: 'ok' }, { label: 'Eskalation', value: 'Nach 25 Tagen', status: 'ok' }, ], }, { category: 'Sicherheit', items: [ { label: 'Identitaetspruefung', value: 'Zweistufig', status: 'ok' }, { label: 'Export-Verschluesselung', value: 'AES-256-GCM', status: 'ok' }, { label: 'Zugriffskontrolle', value: 'RBAC', status: 'ok' }, { label: 'Audit-Log', value: 'Lueckenlos', status: 'ok' }, ], }, ], fullDocumentation: `

Datenschutzanfragen (DSR) Management

1. Uebersicht

Das DSR-Modul verarbeitet alle Betroffenenrechte-Anfragen gemaess DSGVO Art. 15-22. Es automatisiert den Prozess von der Anfrage bis zur Erfuellung und stellt die Einhaltung der gesetzlichen Fristen sicher.

2. Unterstuetzte Anfragetypen

ArtikelRechtAutomatisierungSLA
Art. 15AuskunftVollautomatisch30 Tage
Art. 16BerichtigungWorkflow30 Tage
Art. 17LoeschungKaskadiert30 Tage
Art. 18EinschraenkungWorkflow30 Tage
Art. 20PortabilitaetVollautomatisch30 Tage
Art. 21WiderspruchWorkflow30 Tage

3. Workflow-Architektur

┌─────────────┐     ┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│   Anfrage   │ --> │ Verifizierung│ --> │ Bearbeitung │ --> │  Erfuellung │
│   eingang   │     │  Identitaet  │     │   (Auto/Man)│     │   & Export  │
└─────────────┘     └─────────────┘     └─────────────┘     └─────────────┘
      │                    │                   │                   │
      v                    v                   v                   v
┌─────────────┐     ┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│  Ticket     │     │   E-Mail    │     │ Datensammlung│    │   Audit     │
│  erstellt   │     │   OTP Code  │     │ aus Systemen │     │   Log       │
└─────────────┘     └─────────────┘     └─────────────┘     └─────────────┘

4. API Endpoints

EndpointMethodeBeschreibung
/api/dsr/requestsGETAlle Anfragen listen
/api/dsr/requestsPOSTNeue Anfrage erstellen
/api/dsr/requests/{id}GETAnfrage-Details
/api/dsr/requests/{id}/verifyPOSTIdentitaet verifizieren
/api/dsr/requests/{id}/processPOSTBearbeitung starten
/api/dsr/requests/{id}/exportGETDatenexport herunterladen

5. Datensammlung

Bei einer Auskunftsanfrage werden Daten aus folgenden Quellen gesammelt:

6. Export-Formate

FormatInhaltUse Case
JSONStrukturierte DatenMaschinenlesbar, Portabilitaet
CSVTabellarische DatenExcel-kompatibel
PDFFormatierter ReportMenschenlesbar
ZIPAlle Formate + DateienVollstaendiger Export

7. Identitaetsverifizierung

Zweistufige Verifizierung zum Schutz vor unbefugten Anfragen:

  1. Stufe 1: E-Mail-Verifizierung mit OTP-Code (6-stellig, 15 Min gueltig)
  2. Stufe 2: Bei sensiblen Daten: Ausweiskopie oder Video-Ident

8. Loeschprozess (Art. 17)

Loeschanfrage
     │
     v
┌────────────────────────────────────────────────────────────┐
│                    Pruefung Ausnahmen                       │
│  - Rechtliche Aufbewahrungspflichten?                      │
│  - Laufende Vertraege?                                     │
│  - Berechtigtes Interesse?                                 │
└────────────────────────────────────────────────────────────┘
     │
     ├── Ausnahme greift --> Teilloeschung + Begruendung
     │
     v
┌────────────────────────────────────────────────────────────┐
│                   Kaskadierte Loeschung                     │
│  1. Anwendungsdaten (PostgreSQL)                           │
│  2. Dateien (MinIO)                                        │
│  3. Embeddings (Qdrant)                                    │
│  4. Backups (nach Retention-Policy)                        │
└────────────────────────────────────────────────────────────┘

9. Audit-Trail

Jede DSR-Anfrage wird vollstaendig protokolliert:

10. Metriken & KPIs

MetrikZielAktuell
Durchschnittliche Bearbeitungszeit< 14 TageTracking aktiv
Fristenueberschreitung0%Alerting aktiv
Automatisierungsgrad> 80%Art. 15/20
Identitaetspruefung-Erfolgsrate> 95%Tracking aktiv
`, }, // LLM Vergleich llmCompare: { title: 'LLM Vergleich System-Info', description: 'Vergleich und Benchmarking verschiedener KI-Provider und Modelle.', version: '1.0', architecture: { layers: [ { title: 'Vergleichs-UI', components: ['Provider-Auswahl', 'Prompt-Editor', 'Ergebnis-Vergleich'], color: '#3b82f6' }, { title: 'Provider Adapters', components: ['OpenAI', 'Anthropic', 'Google', 'Local'], color: '#8b5cf6' }, { title: 'Evaluation Engine', components: ['Latenz-Messung', 'Qualitaets-Scoring', 'Cost Calculator'], color: '#10b981' }, { title: 'Logging', components: ['Request Logs', 'Token Tracking', 'Error Logs'], color: '#f59e0b' }, ], }, features: [ { name: 'Multi-Provider Vergleich', status: 'active', description: 'Parallele Anfragen an mehrere LLMs' }, { name: 'Latenz-Tracking', status: 'active', description: 'Echtzeit-Performance-Messung' }, { name: 'Kosten-Kalkulation', status: 'active', description: 'Token-basierte Kostenberechnung' }, { name: 'Qualitaets-Bewertung', status: 'planned', description: 'Automatisches Scoring der Antworten' }, { name: 'A/B Testing', status: 'planned', description: 'Statistische Signifikanz-Tests' }, ], roadmap: [ { phase: 'Phase 1: Provider (Q1)', priority: 'high', items: ['Mistral Integration', 'Llama 3 Integration', 'Gemini Pro Integration', 'Rate Limiting'] }, { phase: 'Phase 2: Evaluation (Q2)', priority: 'high', items: ['Automatisches Scoring', 'Benchmark-Suite', 'Domain-spezifische Tests', 'Halluzinations-Erkennung'] }, { phase: 'Phase 3: Optimierung (Q3)', priority: 'medium', items: ['Prompt-Optimierung', 'Modell-Routing', 'Fallback-Strategien', 'Caching'] }, ], technicalDetails: [ { component: 'OpenAI', technology: 'GPT-4o / o1', description: 'Haupt-Provider' }, { component: 'Anthropic', technology: 'Claude 3.5', description: 'Alternative' }, { component: 'Google', technology: 'Gemini 2.0', description: 'Multimodal' }, { component: 'Local', technology: 'Ollama', description: 'Self-hosted' }, ], auditInfo: [ { category: 'Provider-Status', items: [ { label: 'OpenAI', value: 'Aktiv', status: 'ok' }, { label: 'Anthropic', value: 'Aktiv', status: 'ok' }, { label: 'Google Gemini', value: 'Aktiv', status: 'ok' }, { label: 'Ollama (Local)', value: 'Verfuegbar', status: 'ok' }, ], }, { category: 'Kosten & Limits', items: [ { label: 'Monatliches Budget', value: 'Konfigurierbar', status: 'ok' }, { label: 'Rate Limiting', value: 'Pro Provider', status: 'ok' }, { label: 'Token Tracking', value: 'Aktiviert', status: 'ok' }, { label: 'Cost Alerts', value: 'E-Mail', status: 'ok' }, ], }, { category: 'Datenschutz', items: [ { label: 'Prompt-Logging', value: 'Optional', status: 'ok' }, { label: 'PII Detection', value: 'Geplant', status: 'warning' }, { label: 'Data Residency', value: 'EU verfuegbar', status: 'ok' }, { label: 'Audit-Log', value: 'Aktiviert', status: 'ok' }, ], }, ], fullDocumentation: `

LLM Provider Vergleich & Benchmarking

1. Uebersicht

Das LLM-Vergleichsmodul ermoeglicht den direkten Vergleich verschiedener KI-Provider hinsichtlich Qualitaet, Latenz und Kosten. Es dient der Auswahl des optimalen Modells fuer spezifische Use Cases.

2. Unterstuetzte Provider

ProviderModelleStaerkenPreisbereich
OpenAIGPT-4o, GPT-4o-mini, o1Allrounder, Coding$0.15-15/1M Token
AnthropicClaude 3.5 Sonnet/HaikuLange Kontexte, Safety$0.25-15/1M Token
GoogleGemini 2.0 Flash/ProMultimodal, Speed$0.075-5/1M Token
OllamaLlama 3, Mistral, PhiLokal, DatenschutzNur Hardware-Kosten

3. Vergleichs-Architektur

┌────────────────────────────────────────────────────────────────┐
│                        Frontend UI                              │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────────────┐ │
│  │ Prompt Input │  │ Provider Sel │  │ Results Comparison   │ │
│  └──────────────┘  └──────────────┘  └──────────────────────┘ │
└────────────────────────────────────────────────────────────────┘
                              │
                              v
┌────────────────────────────────────────────────────────────────┐
│                    Backend Orchestrator                         │
│  ┌──────────────────────────────────────────────────────────┐ │
│  │  Parallel Request Handler  |  Response Aggregator        │ │
│  └──────────────────────────────────────────────────────────┘ │
└────────────────────────────────────────────────────────────────┘
          │              │              │              │
          v              v              v              v
     ┌─────────┐   ┌─────────┐   ┌─────────┐   ┌─────────┐
     │ OpenAI  │   │Anthropic│   │ Google  │   │ Ollama  │
     └─────────┘   └─────────┘   └─────────┘   └─────────┘

4. Metriken

MetrikBeschreibungMessung
TTFBTime to First ByteMillisekunden
Total LatencyGesamtantwortzeitMillisekunden
Tokens/SekundeGenerierungsgeschwindigkeitOutput Tokens/s
KostenGesamtkostenUSD
QualitaetManuelle/Auto Bewertung1-5 Sterne

5. API Endpoints

EndpointMethodeBeschreibung
/api/llm/comparePOSTParallelen Vergleich starten
/api/llm/providersGETVerfuegbare Provider listen
/api/llm/statsGETNutzungsstatistiken
/api/llm/benchmarkPOSTBenchmark-Suite ausfuehren

6. Benchmark-Suite

Vordefinierte Tests fuer verschiedene Use Cases:

7. Kostenmanagement

Budgetkontrolle
     │
     ├── Monatliches Limit pro Provider
     ├── Echtzeit-Kostentracking
     ├── Alerts bei 80%/90%/100%
     └── Auto-Fallback bei Limit

8. Datenschutz-Konfiguration

EinstellungOptionenDefault
Prompt-LoggingEin/Aus/AnonymisiertAnonymisiert
Response-SpeicherungEin/Aus/24h24h
Metriken-Retention30/90/365 Tage90 Tage
PII-FilterEin/AusEin (geplant)

9. Fehlerbehandlung

10. Best Practices

  1. Immer mindestens 3 Provider fuer aussagekraeftigen Vergleich
  2. Benchmark-Suite fuer reproduzierbare Ergebnisse nutzen
  3. Kosten und Qualitaet gemeinsam bewerten
  4. Lokale Modelle fuer sensible Daten bevorzugen
`, }, // Security security: { title: 'Security System-Info', description: 'DevSecOps Dashboard mit Vulnerability Scanning und Compliance Checks.', version: '2.0', privacyNotes: [ 'Automatische CVE-Pruefung aller Dependencies', 'OWASP Top 10 Compliance', 'Container Security Scanning', 'Secret Detection in Code', ], architecture: { layers: [ { title: 'Security Dashboard', components: ['Vulnerability Overview', 'Compliance Status', 'Alerts'], color: '#ef4444' }, { title: 'Scanners', components: ['Trivy', 'Semgrep', 'Gitleaks', 'OWASP ZAP'], color: '#8b5cf6' }, { title: 'CI/CD Integration', components: ['GitHub Actions', 'Pre-commit Hooks', 'PR Checks'], color: '#10b981' }, { title: 'Reporting', components: ['SARIF', 'SBOM', 'Audit Reports'], color: '#f59e0b' }, ], }, features: [ { name: 'Vulnerability Scanning', status: 'active', description: 'Automatische CVE-Pruefung' }, { name: 'SBOM Generation', status: 'active', description: 'Software Bill of Materials' }, { name: 'Secret Detection', status: 'active', description: 'Gitleaks Integration' }, { name: 'DAST Scanning', status: 'planned', description: 'Dynamic Application Security Testing' }, { name: 'Penetration Testing', status: 'planned', description: 'Automatisierte Pen-Tests' }, ], roadmap: [ { phase: 'Phase 1: SAST (Q1)', priority: 'high', items: ['Semgrep Rules', 'CodeQL Integration', 'Custom Rules', 'False Positive Management'] }, { phase: 'Phase 2: Runtime (Q2)', priority: 'high', items: ['Runtime Protection', 'WAF Integration', 'Anomaly Detection', 'Incident Response'] }, { phase: 'Phase 3: Compliance (Q3)', priority: 'medium', items: ['SOC 2 Readiness', 'ISO 27001 Mapping', 'GDPR Technical Measures', 'Audit Automation'] }, ], technicalDetails: [ { component: 'Container Scan', technology: 'Trivy', version: '0.50+', description: 'Image Vulnerabilities' }, { component: 'SAST', technology: 'Semgrep', version: '1.x', description: 'Code Analysis' }, { component: 'Secrets', technology: 'Gitleaks', version: '8.x', description: 'Secret Detection' }, { component: 'SBOM', technology: 'CycloneDX', version: '1.5', description: 'Dependency List' }, ], auditInfo: [ { category: 'Vulnerability Status', items: [ { label: 'Kritische CVEs', value: '0', status: 'ok' }, { label: 'Hohe CVEs', value: '0', status: 'ok' }, { label: 'Mittlere CVEs', value: 'Tracking', status: 'warning' }, { label: 'Letzte Pruefung', value: 'Taeglich', status: 'ok' }, ], }, { category: 'Compliance', items: [ { label: 'OWASP Top 10', value: 'Geprueft', status: 'ok' }, { label: 'Secret Detection', value: 'Aktiv', status: 'ok' }, { label: 'Container Hardening', value: 'Umgesetzt', status: 'ok' }, { label: 'Dependency Updates', value: 'Woechentlich', status: 'ok' }, ], }, { category: 'Monitoring', items: [ { label: 'Echtzeit-Alerts', value: 'Aktiviert', status: 'ok' }, { label: 'SIEM Integration', value: 'Geplant', status: 'warning' }, { label: 'Penetration Tests', value: 'Quartalsweise', status: 'ok' }, { label: 'Bug Bounty', value: 'In Planung', status: 'warning' }, ], }, ], fullDocumentation: `

Security & DevSecOps Dashboard

1. Uebersicht

Das Security-Modul integriert Sicherheitspruefungen in den gesamten Entwicklungs- und Deployment-Prozess (DevSecOps). Es kombiniert statische Analyse, Container-Scanning und Laufzeitschutz.

2. Security-Tools

ToolKategorieFunktionIntegration
TrivyContainerImage Vulnerability ScanningCI/CD
SemgrepSASTCode Pattern MatchingPre-commit, CI
GitleaksSecretsCredential DetectionPre-commit, CI
OWASP ZAPDASTWeb App ScanningStaging

3. Scanning-Pipeline

┌─────────────────────────────────────────────────────────────────────┐
│                        Development Phase                             │
├─────────────────────────────────────────────────────────────────────┤
│  Pre-commit Hooks                                                    │
│  ├── Gitleaks (Secrets)                                             │
│  ├── Semgrep (Quick Rules)                                          │
│  └── Formatting/Linting                                             │
└─────────────────────────────────────────────────────────────────────┘
                                 │
                                 v
┌─────────────────────────────────────────────────────────────────────┐
│                           CI Pipeline                                │
├─────────────────────────────────────────────────────────────────────┤
│  ├── Full SAST Scan (Semgrep)                                       │
│  ├── Dependency Check (npm audit, go vuln)                          │
│  ├── Container Scan (Trivy)                                         │
│  ├── SBOM Generation (Syft)                                         │
│  └── License Compliance                                             │
└─────────────────────────────────────────────────────────────────────┘
                                 │
                                 v
┌─────────────────────────────────────────────────────────────────────┐
│                          Staging/Prod                                │
├─────────────────────────────────────────────────────────────────────┤
│  ├── DAST Scan (OWASP ZAP)                                          │
│  ├── Runtime Protection                                              │
│  └── Anomaly Detection                                               │
└─────────────────────────────────────────────────────────────────────┘

4. OWASP Top 10 Abdeckung

#RisikoMassnahmeStatus
A01Broken Access ControlRBAC, JWT Validation
A02Cryptographic FailuresTLS 1.3, AES-256
A03InjectionParameterized Queries, Input Validation
A04Insecure DesignThreat Modeling, Code Review
A05Security MisconfigurationHardened Defaults, IaC Scanning
A06Vulnerable ComponentsDependency Scanning, SBOM
A07Auth FailuresMFA, Session Management
A08Software IntegritySigned Commits, SBOM
A09Logging FailuresStructured Logging, Audit Trail
A10SSRFURL Validation, Network Policies

5. Vulnerability Management

CVE Discovered
      │
      v
┌───────────────────┐
│ Severity Rating   │
│ Critical/High/Med │
└─────────┬─────────┘
          │
    ┌─────┴─────┐
    │ Critical? │
    └─────┬─────┘
      Yes │ No
      │   └──> Backlog mit Frist
      v
┌───────────────────┐
│ Immediate Action  │
│ - Block Deploy    │
│ - Notify Team     │
│ - Hotfix Branch   │
└───────────────────┘

6. Secret Management

7. Container Security

MassnahmeImplementation
Base ImagesAlpine/Distroless, regelmaessig aktualisiert
Non-root UserAlle Container als non-root
Read-only FSWo moeglich aktiviert
Resource LimitsCPU/Memory Limits gesetzt
Network PoliciesKubernetes NetworkPolicy

8. Incident Response

  1. Detection: Automatische Alerts, Monitoring
  2. Triage: Schweregrad-Bewertung, Scope
  3. Containment: Isolation, Zugriffssperre
  4. Eradication: Ursachenbehandlung
  5. Recovery: Wiederherstellung, Monitoring
  6. Lessons Learned: Post-Mortem, Verbesserungen

9. Compliance-Reports

Automatisch generierte Reports:

10. Metriken

MetrikZielMessung
Mean Time to Remediate (Critical)< 24hAutomatisch
Mean Time to Remediate (High)< 7 TageAutomatisch
Scan Coverage100%CI Pipeline
False Positive Rate< 10%Review
`, }, // Middleware middleware: { title: 'Middleware System-Info', description: 'Middleware-Stack mit Test-Wizard fuer Integration Tests.', version: '1.5', architecture: { layers: [ { title: 'Test Wizard UI', components: ['Test Runner', 'Result Viewer', 'Coverage Report'], color: '#3b82f6' }, { title: 'API Gateway', components: ['Traefik', 'Rate Limiter', 'Auth Proxy'], color: '#8b5cf6' }, { title: 'Services', components: ['Consent', 'Klausur', 'School', 'Backend'], color: '#10b981' }, { title: 'Infrastructure', components: ['PostgreSQL', 'Valkey', 'MinIO', 'Qdrant'], color: '#f59e0b' }, ], }, features: [ { name: 'Integration Tests', status: 'active', description: 'End-to-End API Tests' }, { name: 'Health Checks', status: 'active', description: 'Service-Status Pruefung' }, { name: 'Test Wizard', status: 'active', description: 'Interaktive Test-Suite' }, { name: 'Load Testing', status: 'planned', description: 'Performance-Tests' }, { name: 'Chaos Engineering', status: 'planned', description: 'Resilienz-Tests' }, ], roadmap: [ { phase: 'Phase 1: Testing (Q1)', priority: 'high', items: ['API Test Suite', 'Database Tests', 'Auth Flow Tests', 'Error Handling Tests'] }, { phase: 'Phase 2: Performance (Q2)', priority: 'medium', items: ['k6 Load Tests', 'Latency Benchmarks', 'Throughput Tests', 'Memory Profiling'] }, { phase: 'Phase 3: Resilience (Q3)', priority: 'low', items: ['Chaos Monkey', 'Failover Tests', 'Circuit Breaker', 'Graceful Degradation'] }, ], technicalDetails: [ { component: 'API Gateway', technology: 'Traefik', version: '3.x', description: 'Reverse Proxy' }, { component: 'Cache', technology: 'Valkey', version: '8.x', description: 'In-Memory Store' }, { component: 'Storage', technology: 'MinIO', version: 'Latest', description: 'S3-kompatibel' }, { component: 'Vector DB', technology: 'Qdrant', version: '1.12+', description: 'Similarity Search' }, ], auditInfo: [ { category: 'Service Health', items: [ { label: 'API Gateway (Traefik)', value: 'Online', status: 'ok' }, { label: 'PostgreSQL', value: 'Online', status: 'ok' }, { label: 'Valkey (Cache)', value: 'Online', status: 'ok' }, { label: 'Qdrant', value: 'Online', status: 'ok' }, ], }, { category: 'Test Coverage', items: [ { label: 'Integration Tests', value: 'Aktiv', status: 'ok' }, { label: 'Auth Flow Tests', value: 'Implementiert', status: 'ok' }, { label: 'Load Tests', value: 'Geplant', status: 'warning' }, { label: 'Chaos Tests', value: 'Geplant', status: 'warning' }, ], }, { category: 'Performance', items: [ { label: 'Avg. Response Time', value: '< 100ms', status: 'ok' }, { label: 'Uptime (30 Tage)', value: '> 99.9%', status: 'ok' }, { label: 'Error Rate', value: '< 0.1%', status: 'ok' }, { label: 'Cache Hit Ratio', value: '> 90%', status: 'ok' }, ], }, ], fullDocumentation: `

Middleware & Integration Testing

1. Uebersicht

Das Middleware-Modul verwaltet den gesamten Service-Stack und bietet einen Test-Wizard fuer Integration Tests. Es stellt sicher, dass alle Services korrekt miteinander kommunizieren.

2. Service-Architektur

┌─────────────────────────────────────────────────────────────────────┐
│                          Traefik Gateway                             │
│  ├── TLS Termination                                                │
│  ├── Rate Limiting                                                  │
│  ├── Request Routing                                                │
│  └── Health Checks                                                  │
└────────────────────────────────┬────────────────────────────────────┘
                                 │
          ┌──────────────────────┼──────────────────────┐
          │                      │                      │
          v                      v                      v
┌─────────────────┐   ┌─────────────────┐   ┌─────────────────┐
│  Website (3000) │   │  Backend (8000) │   │ Consent (8081)  │
│    Next.js      │   │    FastAPI      │   │      Gin        │
└────────┬────────┘   └────────┬────────┘   └────────┬────────┘
         │                     │                     │
         └──────────────────┬──┴─────────────────────┘
                            │
          ┌─────────────────┼─────────────────┐
          │                 │                 │
          v                 v                 v
┌─────────────────┐  ┌────────────┐  ┌─────────────────┐
│   PostgreSQL    │  │   Valkey   │  │     Qdrant      │
│     (5432)      │  │   (6379)   │  │     (6333)      │
└─────────────────┘  └────────────┘  └─────────────────┘

3. Test-Wizard Funktionen

Test-KategorieBeschreibungStatus
Health ChecksService-ErreichbarkeitAutomatisch
Auth FlowLogin, Token-Refresh, LogoutImplementiert
Consent CRUDDokumente erstellen, lesen, aktualisierenImplementiert
DatabaseConnection Pool, Query PerformanceImplementiert
CacheSet/Get, InvalidierungImplementiert
Vector SearchEmbedding, Similarity SearchImplementiert

4. API Endpoints

EndpointMethodeBeschreibung
/api/middleware/healthGETAlle Service Health Checks
/api/middleware/testsGETVerfuegbare Test-Suites
/api/middleware/tests/runPOSTTest-Suite ausfuehren
/api/middleware/metricsGETPerformance-Metriken

5. Health Check Format

{
  "status": "healthy",
  "timestamp": "2025-01-14T10:00:00Z",
  "services": {
    "postgres": {
      "status": "up",
      "latency_ms": 2,
      "details": {"connections": 10, "max": 100}
    },
    "valkey": {
      "status": "up",
      "latency_ms": 1,
      "details": {"memory_used": "50MB"}
    },
    "qdrant": {
      "status": "up",
      "latency_ms": 5,
      "details": {"collections": 3}
    }
  }
}

6. Test-Ausfuehrung

Test Request
     │
     v
┌───────────────────────────────────────┐
│         Test Runner Engine            │
├───────────────────────────────────────┤
│  1. Setup (Fixtures, Test Data)       │
│  2. Execute (Sequential/Parallel)     │
│  3. Assert (Expected vs Actual)       │
│  4. Cleanup (Remove Test Data)        │
│  5. Report (Results, Timings)         │
└───────────────────────────────────────┘
     │
     v
┌───────────────────────────────────────┐
│           Test Report                  │
│  ├── Total: 25, Passed: 24, Failed: 1 │
│  ├── Duration: 5.2s                   │
│  └── Details per Test Case            │
└───────────────────────────────────────┘

7. Rate Limiting

Endpoint-TypLimitWindow
Public API100 req1 Minute
Authenticated API1000 req1 Minute
Admin API5000 req1 Minute
File Upload10 req1 Minute

8. Caching-Strategie

9. Monitoring & Alerts

AlertSchwelleAktion
Service Down3 failed checksPagerDuty, Slack
High Latency> 500ms avgSlack
High Error Rate> 1%Slack
DB Connections High> 80%E-Mail

10. Troubleshooting

Problem: Service nicht erreichbar
├── Check: Docker Container Status
├── Check: Port-Mapping
├── Check: Network (docker network ls)
└── Check: Logs (docker logs service-name)

Problem: Hohe Latenz
├── Check: Database Query Performance
├── Check: Cache Hit Ratio
├── Check: CPU/Memory Usage
└── Check: Network Latency
`, }, // Communication (Matrix/Jitsi/Jibri/Transcription) communication: { title: 'Communication System-Info', description: 'Matrix Homeserver, Jitsi Videokonferenz, Jibri Recording und KI-Transkription.', version: '2.0', architecture: { layers: [ { title: 'Frontend', components: ['BreakPilot Meet', 'Recording UI', 'Transcript Viewer'], color: '#3b82f6' }, { title: 'Videokonferenz', components: ['Jitsi Meet', 'Videobridge', 'Jicofo', 'Prosody'], color: '#17a2b8' }, { title: 'Recording', components: ['Jibri', 'Xvfb', 'FFmpeg', 'MinIO Upload'], color: '#28a745' }, { title: 'Transkription', components: ['faster-whisper', 'pyannote.audio', 'RQ Worker'], color: '#6f42c1' }, { title: 'Matrix Chat', components: ['Synapse', 'Federation', 'Media Store'], color: '#0DBD8B' }, { title: 'Infrastructure', components: ['PostgreSQL', 'Valkey', 'MinIO', 'TURN'], color: '#f59e0b' }, ], }, features: [ { name: 'Jitsi Videokonferenz', status: 'active', description: 'WebRTC-basierte Videokonferenzen' }, { name: 'Matrix Chat', status: 'active', description: 'E2EE Messaging mit Synapse' }, { name: 'Jibri Recording', status: 'active', description: 'Meeting-Aufzeichnung mit Consent' }, { name: 'KI-Transkription', status: 'active', description: 'Whisper + Speaker Diarization' }, { name: 'KI Meeting-Protokolle', status: 'active', description: 'LLM-generierte Zusammenfassungen mit Action Items' }, { name: 'Untertitel Export', status: 'active', description: 'WebVTT und SRT Export' }, { name: 'PDF Export', status: 'active', description: 'Protokolle als PDF exportieren' }, ], roadmap: [ { phase: 'Phase 1: Recording (Abgeschlossen)', priority: 'high', items: ['Jibri Integration', 'MinIO Storage', 'Consent Management', 'Webhook Pipeline'] }, { phase: 'Phase 2: Transkription (Abgeschlossen)', priority: 'high', items: ['Whisper large-v3', 'Speaker Diarization', 'VTT/SRT Export', 'Segment-Suche'] }, { phase: 'Phase 3: Protokolle (Abgeschlossen)', priority: 'high', items: ['LLM Gateway Integration', 'Action Items', 'Zusammenfassungen', 'MD/HTML/PDF Export'] }, { phase: 'Phase 4: Erweiterte KI (Q2)', priority: 'medium', items: ['Sprecher-Namensverknuepfung', 'Themen-Clustering', 'Sentiment-Analyse', 'Automatische Agenda'] }, ], technicalDetails: [ { component: 'Video', technology: 'Jitsi Meet', version: 'stable-9823', description: 'WebRTC Konferenz' }, { component: 'Recording', technology: 'Jibri', version: 'stable-9823', description: 'Meeting Recording' }, { component: 'Transkription', technology: 'faster-whisper', version: '1.0+', description: 'GPU-optimiert (MIT)' }, { component: 'Diarization', technology: 'pyannote.audio', version: '3.x', description: 'Speaker ID (MIT)' }, { component: 'Meeting Minutes', technology: 'LLM Gateway', version: '1.0', description: 'Ollama/Llama 3.1' }, { component: 'Queue', technology: 'RQ/Valkey', version: '1.x', description: 'Task Processing' }, { component: 'Storage', technology: 'MinIO', version: 'latest', description: 'S3-kompatibel' }, { component: 'Chat', technology: 'Matrix Synapse', version: '1.x', description: 'E2EE Homeserver' }, { component: 'TURN', technology: 'Coturn', version: '4.x', description: 'NAT Traversal' }, ], auditInfo: [ { category: 'Jitsi Videokonferenz', items: [ { label: 'Videobridge', value: 'Online', status: 'ok' }, { label: 'Max. Teilnehmer', value: '100', status: 'ok' }, { label: 'E2E Encryption', value: 'Verfuegbar', status: 'ok' }, { label: 'TURN Server', value: 'Aktiv', status: 'ok' }, ], }, { category: 'Jibri Recording', items: [ { label: 'Recording Service', value: 'Aktiv', status: 'ok' }, { label: 'Consent-Pflicht', value: 'Aktiviert', status: 'ok' }, { label: 'Storage', value: 'MinIO (Self-hosted)', status: 'ok' }, { label: 'Retention', value: '365 Tage', status: 'ok' }, ], }, { category: 'KI-Transkription', items: [ { label: 'Whisper Modell', value: 'large-v3 (lokal)', status: 'ok' }, { label: 'Speaker Diarization', value: 'pyannote (lokal)', status: 'ok' }, { label: 'Datenverarbeitung', value: '100% On-Premise', status: 'ok' }, { label: 'Export-Formate', value: 'VTT, SRT, JSON', status: 'ok' }, ], }, { category: 'KI Meeting-Protokolle', items: [ { label: 'LLM Backend', value: 'Ollama (lokal)', status: 'ok' }, { label: 'Modell', value: 'Llama 3.1 8B/70B', status: 'ok' }, { label: 'Verarbeitung', value: '100% On-Premise', status: 'ok' }, { label: 'Export-Formate', value: 'MD, HTML, PDF', status: 'ok' }, ], }, { category: 'Matrix Homeserver', items: [ { label: 'Server Status', value: 'Online', status: 'ok' }, { label: 'Federation', value: 'Aktiviert', status: 'ok' }, { label: 'E2E Encryption', value: 'Standard', status: 'ok' }, { label: 'Media Retention', value: '90 Tage', status: 'ok' }, ], }, { category: 'DSGVO-Compliance', items: [ { label: 'Daten-Residenz', value: 'EU (Self-hosted)', status: 'ok' }, { label: 'Consent-Management', value: 'Implementiert', status: 'ok' }, { label: 'Audit-Logging', value: 'Aktiviert', status: 'ok' }, { label: 'Loeschrecht (Art. 17)', value: 'Implementiert', status: 'ok' }, ], }, { category: 'Open Source Lizenzen', items: [ { label: 'Jitsi/Jibri', value: 'Apache-2.0', status: 'ok' }, { label: 'faster-whisper', value: 'MIT', status: 'ok' }, { label: 'pyannote.audio', value: 'MIT', status: 'ok' }, { label: 'Matrix Synapse', value: 'AGPL-3.0', status: 'ok' }, ], }, ], fullDocumentation: `

BreakPilot Communication Platform

Version: 2.0.0 | Stand: Januar 2026 | Autor: BreakPilot Development Team

Audit-Relevante Informationen

Dieses Dokument dient als technische Dokumentation fuer das Kommunikationssystem der BreakPilot Plattform. Es ist fuer Audits durch Bildungstraeger und Datenschutzbeauftragte konzipiert.

Ziel des Kommunikationssystems

Das System ermoeglicht sichere Videokonferenzen und Messaging fuer Bildungseinrichtungen mit:

Datenschutz-Compliance


1. Systemarchitektur

Gesamtarchitektur

┌─────────────────────────────────────────────────────────────────────────────┐
│                            BreakPilot Meet Frontend                          │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐    │
│  │ Lobby/Rooms  │  │  Jitsi UI    │  │  Recording   │  │ Transcript   │    │
│  │              │  │              │  │   Consent    │  │   Viewer     │    │
│  └──────────────┘  └──────────────┘  └──────────────┘  └──────────────┘    │
└─────────────────────────────────┬───────────────────────────────────────────┘
                                  │
                                  v
┌─────────────────────────────────────────────────────────────────────────────┐
│                              Jitsi Meet Stack                                │
│  ┌────────────────┐  ┌────────────────┐  ┌────────────────┐                 │
│  │    Jicofo      │  │   Videobridge  │  │    Prosody     │                 │
│  │ (Orchestrator) │  │    (WebRTC)    │  │     (XMPP)     │                 │
│  └───────┬────────┘  └───────┬────────┘  └───────┬────────┘                 │
│          └───────────────────┼───────────────────┘                          │
│                              │                                               │
│  ┌────────────────────────────v────────────────────────────┐                │
│  │                      Jibri                               │                │
│  │  ┌──────────┐  ┌──────────┐  ┌──────────┐              │                │
│  │  │   Xvfb   │  │ Chromium │  │  FFmpeg  │              │                │
│  │  │ (Display)│  │ (Capture)│  │ (Encode) │              │                │
│  │  └──────────┘  └──────────┘  └──────────┘              │                │
│  │                      │                                  │                │
│  │               finalize.sh (Upload)                      │                │
│  └──────────────────────┬──────────────────────────────────┘                │
└─────────────────────────┼───────────────────────────────────────────────────┘
                          │
                          v
┌─────────────────────────────────────────────────────────────────────────────┐
│                           Storage & Processing                               │
│                                                                              │
│  ┌────────────────┐              ┌────────────────────────────────────┐     │
│  │     MinIO      │              │     Transcription Worker           │     │
│  │  ┌──────────┐  │   Webhook    │  ┌────────────┐  ┌────────────┐   │     │
│  │  │recordings│  │─────────────>│  │faster-     │  │pyannote.   │   │     │
│  │  │  /video  │  │              │  │whisper     │  │audio       │   │     │
│  │  │  /audio  │  │              │  │(large-v3)  │  │(diarize)   │   │     │
│  │  │  /vtt    │  │              │  └─────┬──────┘  └─────┬──────┘   │     │
│  │  └──────────┘  │              │        └───────┬───────┘          │     │
│  └────────────────┘              │                v                   │     │
│                                  │        ┌────────────┐              │     │
│                                  │        │  Aligner   │              │     │
│                                  │        │  + Export  │              │     │
│                                  │        └────────────┘              │     │
│                                  └────────────────────────────────────┘     │
│                                                                              │
│  ┌────────────────┐  ┌────────────────┐  ┌────────────────┐                 │
│  │   PostgreSQL   │  │     Valkey     │  │    Coturn      │                 │
│  │   (Metadata)   │  │  (Task Queue)  │  │  (TURN/STUN)   │                 │
│  └────────────────┘  └────────────────┘  └────────────────┘                 │
└─────────────────────────────────────────────────────────────────────────────┘

Datenfluss bei Aufzeichnung

1. Meeting-Host aktiviert Recording
           │
           v
2. Consent-Abfrage an alle Teilnehmer
           │
           ├── Alle stimmen zu ──────────────────────────────>│
           │                                                   │
           └── Mindestens einer lehnt ab ──> Recording nicht   │
                                             moeglich          │
                                                               v
3. Jibri verbindet sich als unsichtbarer Teilnehmer
           │
           v
4. Xvfb + Chromium + FFmpeg nehmen Meeting auf
           │
           v
5. Meeting endet ──> finalize.sh wird ausgefuehrt
           │
           ├── Video (MP4) wird zu MinIO hochgeladen
           │
           ├── Audio (WAV 16kHz) wird extrahiert
           │
           └── Backend-Webhook wird aufgerufen
                       │
                       v
6. Transcription Job wird in Valkey Queue gestellt
           │
           v
7. Worker verarbeitet Audio:
   ├── faster-whisper: Spracherkennung
   ├── pyannote.audio: Sprechererkennung
   └── Aligner: Text + Sprecher zusammenfuehren
           │
           v
8. Export: VTT, SRT, JSON werden generiert
           │
           v
9. Ergebnisse in MinIO + Datenbank gespeichert

2. Jibri Recording Service

Technische Details

KomponenteTechnologieBeschreibung
Base Imagejitsi/jibri:stable-9823Offizielles Jitsi Recording Image
DisplayXvfbVirtual Framebuffer (kein echter Monitor noetig)
BrowserChromiumTritt Meeting bei und rendert Video
EncodingFFmpegMP4 (H.264/AAC) + WAV Audio-Extraktion
UploadMinIO Client (mc)S3-kompatibler Upload

X11/Xvfb Konfiguration

Jibri benoetigt einen X11-Display. In Docker wird dies mit Xvfb (Virtual Framebuffer) realisiert:

# Konfiguration
DISPLAY=:0
RESOLUTION=1920x1080x24

# Start-Sequenz
1. Xvfb :0 -screen 0 1920x1080x24 startet
2. Chromium verbindet sich zum virtuellen Display
3. FFmpeg captured den Display-Inhalt
4. Video wird als MP4 gespeichert

Finalize Script (Post-Recording)

Nach Beendigung einer Aufzeichnung wird automatisch finalize.sh ausgefuehrt:

  1. Video (MP4) zu MinIO hochladen
  2. Audio (WAV 16kHz mono) fuer Transkription extrahieren
  3. Audio zu MinIO hochladen
  4. Backend-Webhook mit Metadaten aufrufen
  5. Lokale Dateien aufraeumen

3. KI-Transkription

Whisper Modell (faster-whisper)

EigenschaftWertBedeutung
Modelllarge-v3Hoechste Genauigkeit
LizenzMITKommerziell nutzbar
Verarbeitung100% lokalKeine Cloud-Abhaengigkeit
Sprachen99+ (inkl. Deutsch)Automatische Erkennung
VRAM~10GB (GPU)CPU-Fallback verfuegbar

Speaker Diarization (pyannote.audio)

Erkennt und unterscheidet verschiedene Sprecher im Audio:

FeatureBeschreibung
Speaker DetectionAutomatische Erkennung der Anzahl Sprecher
Speaker IDKonsistente Zuweisung (SPEAKER_00, SPEAKER_01, ...)
Overlap HandlingErkennung ueberlappender Sprache
LizenzMIT (kommerziell nutzbar)

Verarbeitungsgeschwindigkeit

HardwareGeschwindigkeit1h Audio
GPU (CUDA)~10x Echtzeit~6 Minuten
CPU (int8)~0.5x Echtzeit~2 Stunden

Export-Formate

FormatVerwendungBeispiel
WebVTT (.vtt)Browser-Untertitel00:00:01.500 --> 00:00:03.200
Guten Tag, willkommen zum Meeting.
SRT (.srt)Video-Player1
00:00:01,500 --> 00:00:03,200
Guten Tag, willkommen zum Meeting.
JSONProgrammatischSegmente mit Zeitstempel, Text, Sprecher, Konfidenz

4. DSGVO-Konformitaet

Rechtsgrundlage (Art. 6 DSGVO)

VerarbeitungRechtsgrundlageUmsetzung
VideokonferenzArt. 6(1)(b) - VertragserfuellungNotwendig fuer Unterricht
RecordingArt. 6(1)(a) - EinwilligungExplizite Zustimmung aller Teilnehmer
TranskriptionArt. 6(1)(a) - EinwilligungAbgeleitet von Recording-Consent
ProtokolleArt. 6(1)(a) - EinwilligungOpt-in fuer KI-Zusammenfassung

Consent-Management

Recording-Anfrage
       │
       v
┌─────────────────────────────────────┐
│  Consent-Dialog an alle Teilnehmer  │
│                                     │
│  "Die Aufzeichnung dieses Meetings  │
│   wurde angefragt. Stimmen Sie zu?" │
│                                     │
│  [ Zustimmen ]    [ Ablehnen ]      │
└─────────────────┬───────────────────┘
                  │
    ┌─────────────┴─────────────┐
    │                           │
    v                           v
Alle stimmen zu           Mind. 1 lehnt ab
    │                           │
    v                           v
Recording startet         Recording wird
                          nicht gestartet

Audit-Logging (Art. 30 DSGVO)

Alle Zugriffe auf Aufzeichnungen werden protokolliert:

AktionProtokollierte Daten
Recording erstelltZeitpunkt, Meeting-ID, Ersteller
Recording angesehenZeitpunkt, Nutzer-ID, IP (anonymisiert)
Transkription abgerufenZeitpunkt, Nutzer-ID, Format
Recording geloeschtZeitpunkt, Nutzer-ID, Grund

Loeschrecht (Art. 17 DSGVO)

Technische Datenschutz-Massnahmen

MassnahmeUmsetzungWirkung
Verschluesselung at-restMinIO Server-Side EncryptionSchutz gespeicherter Daten
Verschluesselung in-transitTLS 1.3Schutz bei Uebertragung
ZugangskontrolleRBAC (Role-Based Access)Nur autorisierter Zugriff
Anonymisierte Speaker-IDsSPEAKER_00, SPEAKER_01Keine Namensverknuepfung
Lokale KI-VerarbeitungOn-Premise Whisper/pyannoteKein Datenabfluss

5. API Endpoints

Recordings API

EndpointMethodeBeschreibung
/api/recordingsGETRecordings auflisten (paginiert)
/api/recordings/{id}GETRecording Details abrufen
/api/recordings/{id}DELETERecording loeschen (DSGVO Art. 17)
/api/recordings/webhookPOSTJibri Upload Callback
/api/recordings/{id}/transcribePOSTTranskription starten
/api/recordings/{id}/transcriptionGETTranskriptions-Status
/api/recordings/{id}/transcription/textGETVolltext abrufen
/api/recordings/{id}/transcription/vttGETWebVTT herunterladen
/api/recordings/{id}/transcription/srtGETSRT herunterladen

Meeting Consent API

EndpointMethodeBeschreibung
/api/meeting-consent/{meeting_id}GETConsent-Status abfragen
/api/meeting-consent/requestPOSTRecording-Consent anfordern
/api/meeting-consent/{meeting_id}/participantPOSTTeilnehmer-Consent abgeben
/api/meeting-consent/{meeting_id}/withdrawPOSTConsent zurueckziehen

6. Datenbank-Schema

Recordings Tabelle

recordings (
    id UUID PRIMARY KEY,
    meeting_id VARCHAR(255) NOT NULL,
    title VARCHAR(500),
    storage_path VARCHAR(1000),      -- MinIO Pfad
    audio_path VARCHAR(1000),        -- Audio fuer Transkription
    duration_seconds INTEGER,
    participant_count INTEGER,
    status VARCHAR(50),              -- uploaded, processing, ready, failed
    created_by UUID,
    recorded_at TIMESTAMP,
    retention_days INTEGER DEFAULT 365,
    deleted_at TIMESTAMP             -- Soft-Delete
)

Transcriptions Tabelle

transcriptions (
    id UUID PRIMARY KEY,
    recording_id UUID REFERENCES recordings(id),
    language VARCHAR(10) DEFAULT 'de',
    model VARCHAR(100) DEFAULT 'large-v3',
    status VARCHAR(50),              -- pending, processing, completed, failed
    full_text TEXT,
    vtt_path VARCHAR(1000),
    srt_path VARCHAR(1000),
    confidence_score FLOAT,
    word_count INTEGER,
    processing_duration_seconds INTEGER,
    created_at TIMESTAMP
)

Consent Tabelle

meeting_recording_consents (
    id UUID PRIMARY KEY,
    meeting_id VARCHAR(255) NOT NULL,
    user_id UUID REFERENCES users(id),
    consent_type VARCHAR(50),        -- opt_in, announced
    all_participants_consented BOOLEAN,
    consented_at TIMESTAMP,
    withdrawn_at TIMESTAMP
)

Audit Log

recording_audit_log (
    id UUID PRIMARY KEY,
    recording_id UUID,
    user_id UUID,
    action VARCHAR(100),             -- created, viewed, deleted, exported
    ip_address_hash VARCHAR(64),     -- SHA-256 fuer Anonymisierung
    created_at TIMESTAMP
)

7. Open Source Lizenzen (SBOM)

Jitsi Stack

KomponenteLizenzKommerziellQuelle
Jitsi MeetApache-2.0Jagithub.com/jitsi/jitsi-meet
JibriApache-2.0Jagithub.com/jitsi/jibri
JicofoApache-2.0Jagithub.com/jitsi/jicofo
VideobridgeApache-2.0Jagithub.com/jitsi/jitsi-videobridge

Transkription

KomponenteLizenzKommerziellQuelle
faster-whisperMITJagithub.com/SYSTRAN/faster-whisper
pyannote.audioMITJagithub.com/pyannote/pyannote-audio
FFmpegLGPL/GPLJa*ffmpeg.org (*dynamisch gelinkt)
RQBSD-2-ClauseJagithub.com/rq/rq

Infrastruktur

KomponenteLizenzKommerziellQuelle
MinIOAGPL-3.0Jagithub.com/minio/minio
PostgreSQLPostgreSQLJapostgresql.org
ValkeyBSD-3-ClauseJagithub.com/valkey-io/valkey
CoturnBSD-3-ClauseJagithub.com/coturn/coturn

8. KI-Protokoll Generator (Geplant)

Meetily Integration

Fuer automatische Meeting-Protokolle ist die Integration von Meetily geplant:

FeatureBeschreibung
ZusammenfassungKI-generierte Kurzfassung des Meetings
Action ItemsAutomatisch erkannte Aufgaben
Themen-GliederungStrukturierte Themenuebersicht
EntscheidungenDokumentierte Beschluesse

Technologie-Stack


9. Betrieb & Monitoring

Health Checks

ServiceEndpointErwartung
Jitsi Videobridge/about/health200 OK
Jibri/jibri/api/v1.0/healthIDLE/BUSY
MinIO/minio/health/live200 OK
Transcription WorkerRQ Queue StatusWorkers > 0

Backup-Strategie

Backup-Komponenten:
├── PostgreSQL: Taeglich, 30 Tage Retention
├── MinIO Recordings: Woechentlich, 365 Tage Retention
├── Konfiguration: Git-versioniert
└── Secrets: Extern verschluesselt gespeichert

Notfallprozeduren

  1. Jibri Recording fehlgeschlagen: Logs pruefen, Xvfb neu starten
  2. Transkription haengt: Worker-Queue leeren, Worker neu starten
  3. Storage voll: Alte Recordings gemaess Retention loeschen
  4. Datenpanne: Betroffene Recordings isolieren, DSB informieren

10. Kontakt & Support

`, }, // Mail/Unified Inbox mail: { title: 'Unified Inbox System-Info', description: 'E-Mail-Management mit KI-Analyse und Automatisierung.', version: '1.0', architecture: { layers: [ { title: 'Inbox UI', components: ['Mail List', 'Compose', 'AI Summary'], color: '#3b82f6' }, { title: 'Mail Service', components: ['IMAP Sync', 'SMTP Send', 'Parser'], color: '#8b5cf6' }, { title: 'AI Pipeline', components: ['Classification', 'Summarization', 'Response Draft'], color: '#10b981' }, { title: 'Storage', components: ['PostgreSQL', 'MinIO (Attachments)', 'Vector DB'], color: '#f59e0b' }, ], }, features: [ { name: 'Multi-Account Support', status: 'active', description: 'Mehrere E-Mail-Konten' }, { name: 'KI-Zusammenfassung', status: 'planned', description: 'Automatische E-Mail-Zusammenfassung' }, { name: 'Smart Categorization', status: 'planned', description: 'KI-basierte Kategorisierung' }, { name: 'Response Suggestions', status: 'planned', description: 'Antwort-Vorschlaege' }, ], roadmap: [ { phase: 'Phase 1: Core (Q1)', priority: 'high', items: ['IMAP/SMTP Integration', 'Multi-Account', 'Search', 'Attachments'] }, { phase: 'Phase 2: AI (Q2)', priority: 'high', items: ['E-Mail Classification', 'Priority Detection', 'Sentiment Analysis', 'Spam Detection'] }, { phase: 'Phase 3: Automation (Q3)', priority: 'medium', items: ['Auto-Responses', 'Rules Engine', 'Workflow Triggers', 'CRM Integration'] }, ], technicalDetails: [ { component: 'IMAP', technology: 'imaplib/imapclient', description: 'E-Mail Empfang' }, { component: 'SMTP', technology: 'smtplib', description: 'E-Mail Versand' }, { component: 'AI', technology: 'OpenAI GPT-4', description: 'Text Analysis' }, { component: 'Search', technology: 'PostgreSQL FTS', description: 'Volltextsuche' }, ], auditInfo: [ { category: 'E-Mail Konten', items: [ { label: 'Konfigurierte Konten', value: 'Variabel', status: 'ok' }, { label: 'IMAP Sync', value: 'Aktiviert', status: 'ok' }, { label: 'SMTP Versand', value: 'Aktiviert', status: 'ok' }, { label: 'OAuth2 Support', value: 'Google, Microsoft', status: 'ok' }, ], }, { category: 'Sicherheit', items: [ { label: 'Verschluesselung', value: 'TLS Required', status: 'ok' }, { label: 'Credential Storage', value: 'Encrypted', status: 'ok' }, { label: 'Spam-Filter', value: 'SpamAssassin', status: 'ok' }, { label: 'Virus-Scan', value: 'ClamAV', status: 'ok' }, ], }, { category: 'KI-Features', items: [ { label: 'Kategorisierung', value: 'Geplant', status: 'warning' }, { label: 'Zusammenfassung', value: 'Geplant', status: 'warning' }, { label: 'Antwort-Vorschlaege', value: 'Geplant', status: 'warning' }, { label: 'Sentiment Analysis', value: 'Geplant', status: 'warning' }, ], }, ], fullDocumentation: `

Unified Inbox - E-Mail Management

1. Uebersicht

Der Unified Inbox aggregiert E-Mails aus mehreren Konten in einer zentralen Oberflaeche. Geplant ist die Integration von KI-Features fuer automatische Kategorisierung und Zusammenfassung.

2. Architektur

┌─────────────────────────────────────────────────────────────────────┐
│                         Unified Inbox UI                             │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────────────────┐  │
│  │   Inbox      │  │   Compose    │  │   AI Summary (planned)   │  │
│  └──────────────┘  └──────────────┘  └──────────────────────────┘  │
└─────────────────────────────┬───────────────────────────────────────┘
                              │
                              v
┌─────────────────────────────────────────────────────────────────────┐
│                        Mail Service                                  │
│  ┌────────────┐  ┌────────────┐  ┌────────────┐  ┌────────────┐    │
│  │ IMAP Sync  │  │ SMTP Send  │  │  Parser    │  │ AI Pipeline│    │
│  └────────────┘  └────────────┘  └────────────┘  └────────────┘    │
└─────────────────────────────┬───────────────────────────────────────┘
                              │
          ┌───────────────────┴───────────────────┐
          │                                       │
          v                                       v
┌─────────────────────────┐         ┌─────────────────────────┐
│    External Mail        │         │    Internal Storage     │
│  ├── Gmail              │         │  ├── PostgreSQL         │
│  ├── Outlook            │         │  ├── MinIO (Attachments)│
│  └── Custom IMAP        │         │  └── Qdrant (Embeddings)│
└─────────────────────────┘         └─────────────────────────┘

3. Unterstuetzte Provider

ProviderAuth-MethodeFeatures
GmailOAuth2Labels, Push-Sync
Outlook/365OAuth2Folders, Categories
Custom IMAPUser/PassStandard IMAP
ExchangeOAuth2/EWSGeplant

4. API Endpoints

EndpointMethodeBeschreibung
/api/mail/accountsGETKonfigurierte Konten
/api/mail/accountsPOSTKonto hinzufuegen
/api/mail/messagesGETE-Mails abrufen
/api/mail/messagesPOSTE-Mail senden
/api/mail/messages/{id}GETE-Mail-Details
/api/mail/syncPOSTManueller Sync

5. Sync-Strategie

Initial Sync
     │
     v
┌───────────────────────────────────────┐
│  1. Fetch Folder Structure            │
│  2. Sync Last 30 Days                 │
│  3. Index Messages                    │
│  4. Generate Embeddings (optional)    │
└─────────────────┬─────────────────────┘
                  │
                  v
Incremental Sync (alle 5 Min)
     │
     v
┌───────────────────────────────────────┐
│  1. Check for new Messages (IDLE)     │
│  2. Fetch new Messages                │
│  3. Update Index                      │
│  4. Process AI Pipeline               │
└───────────────────────────────────────┘

6. KI-Pipeline (Geplant)

FeatureModellBeschreibung
KategorisierungFine-tuned ClassifierInbox, Support, Newsletter, etc.
PrioritaetSentiment + RulesHoch, Mittel, Niedrig
ZusammenfassungGPT-4o-miniKurzfassung langer E-Mails
Antwort-DraftGPT-4oVorgeschlagene Antworten

7. Sicherheit

8. Datenschutz

AspektMassnahme
E-Mail-InhalteLokal gespeichert, nicht an Dritte
KI-VerarbeitungOpt-in, PII-Filterung
RetentionSpiegelt Provider-Einstellung
LoeschungSync mit Provider

9. Suche

Suchanfrage
     │
     ├── Volltext (PostgreSQL FTS)
     │   └── Subject, Body, Sender
     │
     ├── Semantisch (Qdrant - geplant)
     │   └── Bedeutungsbasierte Suche
     │
     └── Filter
         ├── Datum
         ├── Konto
         ├── Folder
         └── Has Attachment

10. Troubleshooting

ProblemUrsacheLoesung
Sync fehlgeschlagenCredentials abgelaufenRe-Auth via OAuth
E-Mails fehlenFolder nicht subscribedFolder-Auswahl pruefen
Versand fehlgeschlagenSMTP-Limit erreichtProvider-Limits beachten
Langsamer SyncGrosse MailboxIncremental Sync nutzen
`, }, // SBOM sbom: { title: 'SBOM System-Info', description: 'Software Bill of Materials fuer Compliance und Security.', version: '1.0', architecture: { layers: [ { title: 'SBOM Dashboard', components: ['Dependency Tree', 'License Overview', 'CVE Alerts'], color: '#3b82f6' }, { title: 'Generators', components: ['Syft', 'Trivy', 'CycloneDX'], color: '#8b5cf6' }, { title: 'Analysis', components: ['License Checker', 'CVE Matcher', 'Outdated Detector'], color: '#10b981' }, { title: 'Reports', components: ['JSON', 'SPDX', 'CycloneDX'], color: '#f59e0b' }, ], }, features: [ { name: 'Dependency Scanning', status: 'active', description: 'Automatische Erkennung' }, { name: 'License Compliance', status: 'active', description: 'Lizenz-Pruefung' }, { name: 'CVE Matching', status: 'active', description: 'Schwachstellen-Erkennung' }, { name: 'Automatic Updates', status: 'planned', description: 'Dependabot-artige Updates' }, ], roadmap: [ { phase: 'Phase 1: Generation (Q1)', priority: 'high', items: ['Multi-Format Export', 'CI/CD Integration', 'Container SBOM', 'Runtime SBOM'] }, { phase: 'Phase 2: Analysis (Q2)', priority: 'medium', items: ['License Risk Scoring', 'Transitive Dependencies', 'Version Comparison', 'Diff Reports'] }, { phase: 'Phase 3: Governance (Q3)', priority: 'low', items: ['Policy Engine', 'Approval Workflow', 'Audit Trail', 'Supplier Management'] }, ], technicalDetails: [ { component: 'Generator', technology: 'Syft', version: '1.x', description: 'SBOM Creation' }, { component: 'Format', technology: 'CycloneDX', version: '1.5', description: 'Standard Format' }, { component: 'CVE DB', technology: 'NVD/OSV', description: 'Vulnerability Data' }, { component: 'License DB', technology: 'SPDX', description: 'License Identifiers' }, ], auditInfo: [ { category: 'SBOM Status', items: [ { label: 'Letzte Generierung', value: 'CI/CD', status: 'ok' }, { label: 'Format', value: 'CycloneDX 1.5', status: 'ok' }, { label: 'Komponenten', value: 'Alle erfasst', status: 'ok' }, { label: 'Transitive Deps', value: 'Inkludiert', status: 'ok' }, ], }, { category: 'Vulnerability Status', items: [ { label: 'Kritische CVEs', value: '0', status: 'ok' }, { label: 'Hohe CVEs', value: '0', status: 'ok' }, { label: 'Outdated Packages', value: 'Tracking', status: 'warning' }, { label: 'EOL Dependencies', value: '0', status: 'ok' }, ], }, { category: 'License Compliance', items: [ { label: 'Erlaubte Lizenzen', value: 'MIT, Apache, BSD', status: 'ok' }, { label: 'Copyleft (GPL)', value: '0', status: 'ok' }, { label: 'Unbekannte Lizenzen', value: '0', status: 'ok' }, { label: 'Kommerzielle', value: 'Review erforderlich', status: 'warning' }, ], }, ], fullDocumentation: `

Software Bill of Materials (SBOM)

1. Uebersicht

Das SBOM-Modul generiert und analysiert die vollstaendige Komponentenliste aller Software-Abhaengigkeiten. Es dient der Compliance, Sicherheit und Supply-Chain-Transparenz.

2. SBOM-Generierung

Source Code
     │
     v
┌───────────────────────────────────────────────────────────────┐
│                     SBOM Generators                           │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────────┐   │
│  │    Syft     │  │   Trivy     │  │  Native Tooling     │   │
│  │  (Primary)  │  │ (Validation)│  │ (npm, go mod, pip)  │   │
│  └──────┬──────┘  └──────┬──────┘  └──────────┬──────────┘   │
└─────────┼────────────────┼────────────────────┼───────────────┘
          │                │                    │
          └────────────────┴────────────────────┘
                           │
                           v
                  ┌────────────────┐
                  │   CycloneDX    │
                  │    Format      │
                  └────────────────┘

3. Erfasste Komponenten

TypQuelleBeispiele
npm packagespackage-lock.jsonreact, next, tailwindcss
Go modulesgo.sumgin, gorm, jwt-go
Python packagesrequirements.txtfastapi, pydantic, httpx
Container ImagesDockerfilenode:20-alpine, postgres:16
OS Packagesapk, aptopenssl, libpq

4. API Endpoints

EndpointMethodeBeschreibung
/api/sbom/generatePOSTSBOM neu generieren
/api/sbom/latestGETAktuelles SBOM
/api/sbom/vulnerabilitiesGETCVE-Liste
/api/sbom/licensesGETLizenz-Uebersicht
/api/sbom/diffGETVergleich mit vorheriger Version

5. Vulnerability Scanning

SBOM
  │
  v
┌────────────────────────────────────────┐
│         Vulnerability Databases        │
│  ├── NVD (National Vulnerability DB)  │
│  ├── OSV (Open Source Vulnerabilities)│
│  ├── GitHub Advisory Database         │
│  └── Vendor-specific (npm, Go, PyPI)  │
└──────────────────┬─────────────────────┘
                   │
                   v
┌────────────────────────────────────────┐
│          CVE Matching Engine           │
│  ├── Version Range Checking            │
│  ├── CVSS Scoring                      │
│  └── Exploitability Assessment         │
└──────────────────┬─────────────────────┘
                   │
                   v
┌────────────────────────────────────────┐
│           Alert & Report               │
│  ├── Kritisch: Sofort-Benachrichtigung│
│  ├── Hoch: Tages-Report               │
│  └── Mittel/Niedrig: Wochen-Report    │
└────────────────────────────────────────┘

6. License Compliance

KategorieLizenzenStatus
Permissive (erlaubt)MIT, Apache 2.0, BSD, ISC✓ OK
Weak CopyleftLGPL, MPL⚠ Review
Strong CopyleftGPL, AGPL✗ Nicht erlaubt
ProprietaerCommercial⚠ Genehmigung

7. CI/CD Integration

CI Pipeline
     │
     ├── Build Stage
     │   └── SBOM generieren
     │
     ├── Security Stage
     │   ├── CVE Scan
     │   └── License Check
     │
     ├── Gate
     │   ├── Critical CVE → Block
     │   ├── GPL License → Block
     │   └── High CVE → Warning
     │
     └── Publish Stage
         └── SBOM archivieren

8. SBOM Format (CycloneDX)

{
  "bomFormat": "CycloneDX",
  "specVersion": "1.5",
  "version": 1,
  "metadata": {
    "timestamp": "2025-01-14T10:00:00Z",
    "component": {
      "name": "breakpilot-pwa",
      "version": "1.0.0"
    }
  },
  "components": [
    {
      "type": "library",
      "name": "react",
      "version": "19.0.0",
      "purl": "pkg:npm/react@19.0.0",
      "licenses": [{"id": "MIT"}],
      "hashes": [{"alg": "SHA-256", "content": "..."}]
    }
  ]
}

9. Diff-Report

AenderungDetailsRisiko
Neu hinzugefuegtPackage + VersionLicense/CVE Check
AktualisiertAlte → Neue VersionBreaking Changes
EntferntPackage entferntDependency Check
CVE behobenCVE-IDPositiv

10. Aufbewahrung & Compliance

`, }, // Brandbook brandbook: { title: 'Brandbook System-Info', description: 'Corporate Design Guidelines und Style Guide.', version: '1.0', architecture: { layers: [ { title: 'Style Guide UI', components: ['Colors', 'Typography', 'Components'], color: '#3b82f6' }, { title: 'Design Tokens', components: ['CSS Variables', 'Tailwind Config', 'Figma Tokens'], color: '#8b5cf6' }, { title: 'Assets', components: ['Logo', 'Icons', 'Illustrations'], color: '#10b981' }, { title: 'Documentation', components: ['Usage Guidelines', 'Examples', 'Do/Donts'], color: '#f59e0b' }, ], }, features: [ { name: 'Farb-Palette', status: 'active', description: 'Primaer- und Sekundaerfarben' }, { name: 'Typografie', status: 'active', description: 'Schriftarten und -groessen' }, { name: 'Komponenten-Bibliothek', status: 'active', description: 'UI-Komponenten-Dokumentation' }, { name: 'Figma Sync', status: 'planned', description: 'Design Token Synchronisation' }, ], roadmap: [ { phase: 'Phase 1: Foundation (Q1)', priority: 'high', items: ['Design Tokens', 'Color System', 'Typography Scale', 'Spacing System'] }, { phase: 'Phase 2: Components (Q2)', priority: 'medium', items: ['Button Variants', 'Form Elements', 'Cards', 'Navigation'] }, { phase: 'Phase 3: Templates (Q3)', priority: 'low', items: ['Page Templates', 'E-Mail Templates', 'Print Templates', 'Social Media'] }, ], technicalDetails: [ { component: 'CSS', technology: 'Tailwind CSS', version: '3.x', description: 'Utility Classes' }, { component: 'Icons', technology: 'Heroicons', version: '2.x', description: 'SVG Icons' }, { component: 'Fonts', technology: 'Inter/System', description: 'Web Fonts' }, { component: 'Design', technology: 'Figma', description: 'Design Source' }, ], auditInfo: [ { category: 'Design System Status', items: [ { label: 'Farbpalette', value: 'Definiert', status: 'ok' }, { label: 'Typografie', value: 'Definiert', status: 'ok' }, { label: 'Komponenten', value: '15+ Komponenten', status: 'ok' }, { label: 'Figma Sync', value: 'Geplant', status: 'warning' }, ], }, { category: 'Dokumentation', items: [ { label: 'Usage Guidelines', value: 'Vorhanden', status: 'ok' }, { label: 'Code Examples', value: 'Vorhanden', status: 'ok' }, { label: 'Do/Donts', value: 'Vorhanden', status: 'ok' }, { label: 'Accessibility', value: 'WCAG 2.1 AA', status: 'ok' }, ], }, ], fullDocumentation: `

Brandbook & Design System

1. Uebersicht

Das Brandbook definiert alle visuellen Elemente der BreakPilot-Marke. Es dient als zentrale Referenz fuer konsistentes Design ueber alle Produkte und Plattformen.

2. Farbpalette

NameHexVerwendung
Primary#3B82F6Buttons, Links, Akzente
Primary Dark#1E40AFHover States
Secondary#8B5CF6Sekundaere Aktionen
Success#10B981Erfolg, Bestaetigung
Warning#F59E0BWarnungen
Error#EF4444Fehler, Loeschung
Slate 900#0F172AText, Headings
Slate 500#64748BSekundaerer Text

3. Typografie

Font Family: Inter (System Fallback)

Scale:
├── Display:  2.25rem (36px) / Bold
├── H1:       1.875rem (30px) / Semibold
├── H2:       1.5rem (24px) / Semibold
├── H3:       1.25rem (20px) / Medium
├── Body:     1rem (16px) / Regular
├── Small:    0.875rem (14px) / Regular
└── Caption:  0.75rem (12px) / Regular

4. Spacing System

TokenWertVerwendung
space-14pxInline-Elemente
space-28pxEng verwandte Elemente
space-312pxStandard-Gap
space-416pxSections
space-624pxGrosse Sections
space-832pxPage Sections

5. Komponenten-Bibliothek

Components/
├── Buttons/
│   ├── Primary Button
│   ├── Secondary Button
│   ├── Ghost Button
│   └── Icon Button
├── Forms/
│   ├── Input
│   ├── Select
│   ├── Checkbox
│   └── Radio
├── Feedback/
│   ├── Alert
│   ├── Toast
│   └── Badge
├── Layout/
│   ├── Card
│   ├── Modal
│   └── Sidebar
└── Navigation/
    ├── Tabs
    ├── Breadcrumb
    └── Pagination

6. Icon-System

7. Logo-Verwendung

VarianteVerwendungMin. Groesse
Primary (Farbe)Helle Hintergruende120px breit
WhiteDunkle Hintergruende120px breit
Icon OnlyFavicon, App Icon32px

8. Accessibility

9. Do's and Don'ts

✓ Do:
  - Konsistente Spacing verwenden
  - Primary Color fuer CTAs
  - Ausreichend Weissraum
  - Hierarchie durch Typografie

✗ Don't:
  - Farben mischen
  - Logo verzerren
  - Zu viele Schriftgroessen
  - Zu wenig Kontrast

10. Design Token Export

Tokens sind verfuegbar als:

`, }, // DSMS (Datenschutz-Management-System) dsms: { title: 'DSMS System-Info', description: 'Datenschutz-Management-System fuer DSGVO-Compliance.', version: '1.0', privacyNotes: [ 'Zentrale Verwaltung aller Datenschutz-Prozesse', 'Verzeichnis der Verarbeitungstaetigkeiten (VVT)', 'TOM-Dokumentation', 'Datenschutz-Folgenabschaetzung (DSFA)', ], architecture: { layers: [ { title: 'DSMS Dashboard', components: ['VVT Editor', 'TOM Manager', 'DSFA Tool'], color: '#3b82f6' }, { title: 'Compliance Engine', components: ['Risk Assessment', 'Gap Analysis', 'Audit Trail'], color: '#8b5cf6' }, { title: 'Document Management', components: ['Policies', 'Procedures', 'Records'], color: '#10b981' }, { title: 'Reporting', components: ['Compliance Reports', 'DPA Dashboard', 'Exports'], color: '#f59e0b' }, ], }, features: [ { name: 'VVT-Verwaltung', status: 'active', description: 'Verzeichnis der Verarbeitungstaetigkeiten' }, { name: 'TOM-Dokumentation', status: 'active', description: 'Technische und organisatorische Massnahmen' }, { name: 'DSFA-Tool', status: 'planned', description: 'Datenschutz-Folgenabschaetzung' }, { name: 'Audit-Management', status: 'planned', description: 'Interne und externe Audits' }, ], roadmap: [ { phase: 'Phase 1: Dokumentation (Q1)', priority: 'high', items: ['VVT-Erstellung', 'TOM-Katalog', 'Policy-Templates', 'Rollenkonzept'] }, { phase: 'Phase 2: Compliance (Q2)', priority: 'high', items: ['Gap-Analyse', 'Risk-Scoring', 'Massnahmen-Tracking', 'Deadline-Management'] }, { phase: 'Phase 3: Automation (Q3)', priority: 'medium', items: ['Auto-Assessments', 'Compliance-Monitoring', 'Alert-System', 'Report-Generator'] }, ], technicalDetails: [ { component: 'Framework', technology: 'DSGVO/GDPR', description: 'EU-Verordnung' }, { component: 'Standards', technology: 'ISO 27701', description: 'Privacy Management' }, { component: 'Storage', technology: 'PostgreSQL', description: 'Verschluesselt' }, { component: 'Export', technology: 'PDF/Excel', description: 'Audit-Reports' }, ], auditInfo: [ { category: 'DSGVO-Dokumentation', items: [ { label: 'VVT vorhanden', value: 'Ja', status: 'ok' }, { label: 'TOM dokumentiert', value: 'Ja', status: 'ok' }, { label: 'DSFA durchgefuehrt', value: 'Geplant', status: 'warning' }, { label: 'Auftragsverarbeitung', value: 'Dokumentiert', status: 'ok' }, ], }, { category: 'Organisatorisch', items: [ { label: 'DSB benannt', value: 'Ja', status: 'ok' }, { label: 'Schulungen', value: 'Jaehrlich', status: 'ok' }, { label: 'Incident Response', value: 'Definiert', status: 'ok' }, { label: 'Policies aktuell', value: 'Review faellig', status: 'warning' }, ], }, { category: 'Technisch', items: [ { label: 'Verschluesselung', value: 'AES-256', status: 'ok' }, { label: 'Zugriffskontrolle', value: 'RBAC', status: 'ok' }, { label: 'Logging', value: 'Aktiviert', status: 'ok' }, { label: 'Backup', value: 'Taeglich', status: 'ok' }, ], }, ], fullDocumentation: `

Datenschutz-Management-System (DSMS)

1. Uebersicht

Das DSMS bildet alle datenschutzrelevanten Prozesse und Dokumentationen ab. Es dient der Nachweispflicht gemaess DSGVO Art. 5 Abs. 2 (Rechenschaftspflicht).

2. Kernkomponenten

DSMS
├── Verzeichnis der Verarbeitungstaetigkeiten (VVT)
│   └── Art. 30 DSGVO
├── Technisch-Organisatorische Massnahmen (TOM)
│   └── Art. 32 DSGVO
├── Datenschutz-Folgenabschaetzung (DSFA)
│   └── Art. 35 DSGVO
├── Auftragsverarbeitung (AVV)
│   └── Art. 28 DSGVO
└── Policies & Schulungen
    └── Interne Richtlinien

3. VVT-Struktur

FeldBeschreibungBeispiel
BezeichnungName der VerarbeitungNutzerregistrierung
ZweckVerarbeitungszweckVertragserfuellung
RechtsgrundlageArt. 6 DSGVOArt. 6 Abs. 1 lit. b
Kategorien BetroffenerPersonengruppenSchueler, Lehrer
DatenkategorienArt der DatenStammdaten, E-Mail
EmpfaengerDatenempfaengerIntern, Auftragsverarbeiter
DrittlandtransferUebermittlungNein / Mit SCC
LoeschfristAufbewahrungNach Vertragsende

4. TOM-Katalog

Technisch-Organisatorische Massnahmen:

Vertraulichkeit (Art. 32 Abs. 1 lit. b):
├── Zutrittskontrolle: Rechenzentrum gesichert
├── Zugangskontrolle: SSH-Keys, MFA
├── Zugriffskontrolle: RBAC, Least Privilege
└── Weitergabekontrolle: TLS 1.3, Verschluesselung

Integritaet (Art. 32 Abs. 1 lit. b):
├── Eingabekontrolle: Audit-Logs
├── Trennungskontrolle: Multi-Tenant Isolation
└── Uebertragungskontrolle: API Authentication

Verfuegbarkeit (Art. 32 Abs. 1 lit. b):
├── Backup: Taeglich, 30 Tage Retention
├── Redundanz: Multi-AZ Deployment
└── Notfallplan: Dokumentiert

5. DSFA-Prozess

SchrittBeschreibungVerantwortlich
1. Schwellwert-AnalyseDSFA erforderlich?DSB
2. BeschreibungVerarbeitung dokumentierenFachbereich
3. RisikobewertungEintrittswahrscheinlichkeit x SchadenDSB + IT
4. MassnahmenRisikominimierungIT
5. RestrisikoBewertung, ggf. KonsultationDSB
6. DokumentationDSFA-ReportDSB

6. Auftragsverarbeitung

Auftragsverarbeiter-Uebersicht:

┌────────────────────────────────────────────────────┐
│ Anbieter        │ Zweck          │ Standort │ AVV │
├────────────────────────────────────────────────────┤
│ Hetzner         │ Hosting        │ DE       │ ✓   │
│ vast.ai         │ GPU Computing  │ US/EU    │ ✓   │
│ OpenAI          │ LLM API        │ US       │ SCC │
│ Anthropic       │ LLM API        │ US       │ SCC │
└────────────────────────────────────────────────────┘

7. Schulungen

8. Incident Response

Datenpanne erkannt
       │
       v
┌──────────────────────────────────────┐
│ 1. Sofortmassnahmen (Containment)   │
│    - Zugriff sperren                 │
│    - Beweis sichern                  │
└─────────────────┬────────────────────┘
                  │
                  v
┌──────────────────────────────────────┐
│ 2. Bewertung (24h)                   │
│    - Schwere einschaetzen            │
│    - Betroffene identifizieren       │
└─────────────────┬────────────────────┘
                  │
                  v
┌──────────────────────────────────────┐
│ 3. Meldung (72h)                     │
│    - Aufsichtsbehoerde (Art. 33)     │
│    - Betroffene (Art. 34)            │
└─────────────────┬────────────────────┘
                  │
                  v
┌──────────────────────────────────────┐
│ 4. Nachbereitung                     │
│    - Root Cause Analysis             │
│    - Massnahmen umsetzen             │
│    - Dokumentation                   │
└──────────────────────────────────────┘

9. Compliance-Dashboard

BereichStatusNaechste Pruefung
VVT✓ AktuellQuartalsweise
TOM✓ AktuellJaehrlich
AVV✓ AktuellBei Aenderung
Schulungen✓ DurchgefuehrtJaehrlich
DSFA⚠ OffenBei neuer Verarbeitung

10. Export & Reporting

`, }, // PCA Platform pcaPlatform: { title: 'PCA Platform System-Info', description: 'Partner Content Access Platform fuer Content-Partner.', version: '1.0', architecture: { layers: [ { title: 'Partner Portal', components: ['Dashboard', 'Content Upload', 'Analytics'], color: '#3b82f6' }, { title: 'Content Pipeline', components: ['Ingestion', 'Processing', 'Quality Check'], color: '#8b5cf6' }, { title: 'Distribution', components: ['CDN', 'API Access', 'Embed Codes'], color: '#10b981' }, { title: 'Monetization', components: ['Usage Tracking', 'Revenue Share', 'Invoicing'], color: '#f59e0b' }, ], }, features: [ { name: 'Partner Onboarding', status: 'active', description: 'Self-Service Registrierung' }, { name: 'Content Upload', status: 'active', description: 'Bulk-Upload und Metadaten' }, { name: 'Analytics Dashboard', status: 'active', description: 'Nutzungsstatistiken' }, { name: 'Revenue Tracking', status: 'planned', description: 'Umsatzbeteiligung' }, ], roadmap: [ { phase: 'Phase 1: Core (Q1)', priority: 'high', items: ['Partner-Registrierung', 'Content-Upload', 'Basic Analytics', 'API Documentation'] }, { phase: 'Phase 2: Quality (Q2)', priority: 'medium', items: ['Auto-Transcoding', 'Quality Gates', 'Metadata Validation', 'Preview System'] }, { phase: 'Phase 3: Monetization (Q3)', priority: 'medium', items: ['Usage-based Billing', 'Revenue Reports', 'Payment Integration', 'Contract Management'] }, ], technicalDetails: [ { component: 'Upload', technology: 'TUS Protocol', description: 'Resumable Uploads' }, { component: 'Storage', technology: 'MinIO/S3', description: 'Object Storage' }, { component: 'CDN', technology: 'CloudFlare', description: 'Content Delivery' }, { component: 'API', technology: 'REST/GraphQL', description: 'Partner Access' }, ], auditInfo: [ { category: 'Partner-Status', items: [ { label: 'Aktive Partner', value: 'Variabel', status: 'ok' }, { label: 'Pending Approvals', value: 'Dashboard', status: 'ok' }, { label: 'Content-Uploads', value: 'Tracking', status: 'ok' }, { label: 'API-Nutzung', value: 'Metered', status: 'ok' }, ], }, { category: 'Content Pipeline', items: [ { label: 'Upload-Status', value: 'Aktiv', status: 'ok' }, { label: 'Transcoding', value: 'Automatisch', status: 'ok' }, { label: 'Quality Gates', value: 'Aktiviert', status: 'ok' }, { label: 'CDN Distribution', value: 'CloudFlare', status: 'ok' }, ], }, { category: 'Monetarisierung', items: [ { label: 'Usage Tracking', value: 'Aktiv', status: 'ok' }, { label: 'Revenue Share', value: 'Geplant', status: 'warning' }, { label: 'Invoicing', value: 'Geplant', status: 'warning' }, { label: 'Payout', value: 'Geplant', status: 'warning' }, ], }, ], fullDocumentation: `

Partner Content Access (PCA) Platform

1. Uebersicht

Die PCA-Plattform ermoeglicht Content-Partnern das Hochladen, Verwalten und Monetarisieren ihrer Bildungsinhalte. Sie bietet Self-Service-Tools fuer Onboarding und Analytics.

2. Partner-Workflow

Partner Journey:

Registrierung
     │
     v
┌─────────────────────────┐
│   Onboarding Wizard     │
│   - Firmendaten         │
│   - Vertrag / AGB       │
│   - API-Key Generierung │
└───────────┬─────────────┘
            │
            v
┌─────────────────────────┐
│   Content Upload        │
│   - Bulk Upload         │
│   - Metadata Editor     │
│   - Preview             │
└───────────┬─────────────┘
            │
            v
┌─────────────────────────┐
│   Quality Check         │
│   - Format Validation   │
│   - Metadata Check      │
│   - Review (optional)   │
└───────────┬─────────────┘
            │
            v
┌─────────────────────────┐
│   Publishing            │
│   - CDN Distribution    │
│   - API Access          │
│   - Embed Codes         │
└───────────┬─────────────┘
            │
            v
┌─────────────────────────┐
│   Analytics & Payout    │
│   - Views/Downloads     │
│   - Revenue Tracking    │
│   - Monthly Reports     │
└─────────────────────────┘

3. Content-Typen

TypFormateMax. GroesseProcessing
VideoMP4, MOV, MKV5 GBTranscoding
AudioMP3, WAV, FLAC500 MBNormalisierung
DokumentPDF, DOCX100 MBPreview Gen
BildJPG, PNG, WEBP50 MBThumbnails
InteraktivH5P, SCORM200 MBPackaging

4. API Endpoints

EndpointMethodeBeschreibung
/api/pca/partnersGETPartner-Liste
/api/pca/partners/{id}GETPartner-Details
/api/pca/contentPOSTContent hochladen
/api/pca/content/{id}GETContent-Details
/api/pca/analyticsGETNutzungsstatistiken
/api/pca/embed/{id}GETEmbed-Code

5. Upload-Protokoll (TUS)

Resumable Upload Flow:

1. POST /uploads
   → Location: /uploads/abc123

2. PATCH /uploads/abc123
   Upload-Offset: 0
   Content-Length: 1000000
   [Binary Data]

3. HEAD /uploads/abc123
   Upload-Offset: 1000000
   Upload-Length: 5000000

4. Repeat PATCH until complete

5. Processing triggered

6. Metadaten-Schema

{
  "title": "Mathematik Grundlagen",
  "description": "Einfuehrung in...",
  "subject": "Mathematik",
  "grade_level": ["5", "6", "7"],
  "content_type": "video",
  "duration_minutes": 15,
  "language": "de",
  "license": "CC-BY-SA-4.0",
  "tags": ["Algebra", "Grundlagen"],
  "author": {
    "name": "Max Mustermann",
    "organization": "Muster Verlag"
  }
}

7. Revenue Model

ModellBeschreibungSplit
ViewsPro Aufruf70/30
DownloadsPro Download70/30
SubscriptionAnteilig60/40
EnterpriseLizenzIndividuell

8. Quality Gates

9. Analytics-Dashboard

MetrikBeschreibungGranularitaet
ViewsGesamtaufrufeTaeglich
Unique ViewsEindeutige NutzerTaeglich
Watch TimeGesamtdauerPro Content
Completion Rate% bis EndePro Content
DownloadsAnzahl DownloadsTaeglich

10. Partner-Support

Support-Kanaele:
├── Dokumentation (Self-Service)
├── API Reference (OpenAPI)
├── E-Mail Support (48h SLA)
├── Dedicated Manager (Enterprise)
└── Status Page (status.example.com)
`, }, // Education Search eduSearch: { title: 'Education Search System-Info', description: 'Semantische Suche fuer Bildungsinhalte und Lehrmaterialien.', version: '2.0', architecture: { layers: [ { title: 'Search UI', components: ['Search Bar', 'Filters', 'Results Grid'], color: '#3b82f6' }, { title: 'Search Engine', components: ['Query Parser', 'Ranking', 'Faceting'], color: '#8b5cf6' }, { title: 'Indexing', components: ['Crawler', 'Text Extraction', 'Embedding Generator'], color: '#10b981' }, { title: 'Data Layer', components: ['Qdrant', 'PostgreSQL', 'Elasticsearch'], color: '#f59e0b' }, ], }, features: [ { name: 'Semantische Suche', status: 'active', description: 'Bedeutungsbasierte Suche mit Embeddings' }, { name: 'Facettensuche', status: 'active', description: 'Filter nach Fach, Klassenstufe, Typ' }, { name: 'Synonymerkennung', status: 'active', description: 'Automatische Begriffsexpansion' }, { name: 'Personalisierung', status: 'planned', description: 'Nutzerspezifische Ergebnisse' }, ], roadmap: [ { phase: 'Phase 1: Quality (Q1)', priority: 'high', items: ['Relevanz-Tuning', 'Spell Correction', 'Query Suggestions', 'Did-you-mean'] }, { phase: 'Phase 2: Features (Q2)', priority: 'medium', items: ['Saved Searches', 'Search History', 'Alerts', 'Export Results'] }, { phase: 'Phase 3: AI (Q3)', priority: 'medium', items: ['Query Understanding', 'Intent Classification', 'Answer Extraction', 'Knowledge Graph'] }, ], technicalDetails: [ { component: 'Vector DB', technology: 'Qdrant', version: '1.12+', description: 'Semantic Search' }, { component: 'Embeddings', technology: 'OpenAI', description: 'text-embedding-3-large' }, { component: 'Full-Text', technology: 'PostgreSQL FTS', description: 'Keyword Search' }, { component: 'UI', technology: 'React', description: 'Search Components' }, ], auditInfo: [ { category: 'Search Performance', items: [ { label: 'Avg. Latency', value: '< 200ms', status: 'ok' }, { label: 'Index Size', value: 'Skalierbar', status: 'ok' }, { label: 'Uptime', value: '> 99.9%', status: 'ok' }, { label: 'Cache Hit Ratio', value: '> 85%', status: 'ok' }, ], }, { category: 'Content Coverage', items: [ { label: 'Indizierte Dokumente', value: 'Tracking', status: 'ok' }, { label: 'Faecherabdeckung', value: 'Alle Kernfaecher', status: 'ok' }, { label: 'Klassenstufen', value: '1-13', status: 'ok' }, { label: 'Aktualitaet', value: 'Taeglich', status: 'ok' }, ], }, { category: 'AI Features', items: [ { label: 'Semantic Search', value: 'Aktiv', status: 'ok' }, { label: 'Embedding Model', value: 'text-embedding-3', status: 'ok' }, { label: 'Query Expansion', value: 'Geplant', status: 'warning' }, { label: 'Personalisierung', value: 'Geplant', status: 'warning' }, ], }, ], fullDocumentation: `

Education Search - Semantische Bildungssuche

1. Uebersicht

Die Education Search kombiniert klassische Volltextsuche mit semantischer Vektorsuche fuer hochrelevante Suchergebnisse in Bildungsinhalten.

2. Such-Architektur

Suchanfrage
     │
     v
┌─────────────────────────────────────────────────────────────────┐
│                      Query Processor                             │
│  ┌────────────────┐  ┌────────────────┐  ┌────────────────────┐│
│  │ Tokenization   │  │ Spell Check    │  │ Query Expansion    ││
│  └────────────────┘  └────────────────┘  └────────────────────┘│
└──────────────────────────────┬──────────────────────────────────┘
                               │
              ┌────────────────┴────────────────┐
              │                                 │
              v                                 v
┌─────────────────────────┐       ┌─────────────────────────┐
│   Keyword Search        │       │   Semantic Search       │
│   (PostgreSQL FTS)      │       │   (Qdrant)              │
│   ┌─────────────────┐   │       │   ┌─────────────────┐   │
│   │ GIN Index       │   │       │   │ HNSW Index      │   │
│   └─────────────────┘   │       │   └─────────────────┘   │
└───────────┬─────────────┘       └───────────┬─────────────┘
            │                                 │
            └─────────────────┬───────────────┘
                              │
                              v
                  ┌───────────────────────┐
                  │   Result Fusion       │
                  │   (RRF Algorithm)     │
                  └───────────┬───────────┘
                              │
                              v
                  ┌───────────────────────┐
                  │   Re-Ranking          │
                  │   (Relevance Model)   │
                  └───────────────────────┘

3. Facetten-Filter

FacetteOptionenTyp
FachMathematik, Deutsch, Englisch, ...Multi-Select
Klassenstufe1-13Range
Content-TypVideo, PDF, Arbeitsblatt, ...Multi-Select
LizenzCC-BY, CC-BY-SA, ...Multi-Select
SpracheDE, EN, FR, ...Single-Select

4. API Endpoints

EndpointMethodeBeschreibung
/api/edu-search/searchGETSuche ausfuehren
/api/edu-search/suggestGETAutocomplete
/api/edu-search/facetsGETFacetten-Counts
/api/edu-search/similar/{id}GETAehnliche Inhalte

5. Embedding-Pipeline

Neues Dokument
      │
      v
┌─────────────────────────────┐
│  1. Text Extraction         │
│     - PDF: PyMuPDF          │
│     - Video: Whisper        │
│     - HTML: BeautifulSoup   │
└───────────┬─────────────────┘
            │
            v
┌─────────────────────────────┐
│  2. Chunking                │
│     - 512 Token Chunks      │
│     - 50 Token Overlap      │
└───────────┬─────────────────┘
            │
            v
┌─────────────────────────────┐
│  3. Embedding Generation    │
│     - OpenAI text-embedding │
│     - 3072 Dimensions       │
└───────────┬─────────────────┘
            │
            v
┌─────────────────────────────┐
│  4. Vector Storage          │
│     - Qdrant Collection     │
│     - HNSW Index            │
└─────────────────────────────┘

6. Relevanz-Tuning

SignalGewichtBeschreibung
Titel-Match3.0xQuery im Titel
Semantic Score1.5xCosine Similarity
Freshness1.2xNeuere Inhalte
Popularity1.1xViews/Downloads
Quality Score1.0xBewertungen

7. Performance-Optimierung

8. Monitoring

MetrikZielAlert
P99 Latency< 500ms> 1s
Zero Results Rate< 5%> 10%
Click-Through Rate> 30%< 20%
Index Lag< 1h> 4h

9. Datenschutz

10. Geplante Features

  1. Query Understanding: Intent-Erkennung
  2. Personalisierung: Basierend auf Historie
  3. Federated Search: Externe Quellen
  4. Answer Extraction: Direkte Antworten
`, }, // Note: staffSearch and uniCrawler removed (person-crawling discontinued) // System only crawls institution data (schools, universities) - no person data __removed_person_crawling_note: { title: 'Removed Configs Note', description: 'staffSearch and uniCrawler configs removed', version: '1.0', architecture: { layers: [], }, features: [], roadmap: [], technicalDetails: [], auditInfo: [], fullDocumentation: 'Person crawling functionality removed. System only crawls institution data.', }, // Backlog backlog: { title: 'Backlog System-Info', description: 'Produkt-Backlog und Feature-Tracking.', version: '1.0', architecture: { layers: [ { title: 'Backlog UI', components: ['Board View', 'List View', 'Roadmap'], color: '#3b82f6' }, { title: 'Planning', components: ['Sprint Planning', 'Estimation', 'Prioritization'], color: '#8b5cf6' }, { title: 'Tracking', components: ['Progress', 'Velocity', 'Burndown'], color: '#10b981' }, { title: 'Integration', components: ['GitHub', 'Jira', 'Notion'], color: '#f59e0b' }, ], }, features: [ { name: 'Feature Tracking', status: 'active', description: 'Anforderungsverwaltung' }, { name: 'Prioritization', status: 'active', description: 'MoSCoW/RICE Methoden' }, { name: 'Sprint Planning', status: 'active', description: 'Agile Planung' }, { name: 'Dependency Tracking', status: 'planned', description: 'Feature-Abhaengigkeiten' }, ], roadmap: [ { phase: 'Phase 1: Core (Q1)', priority: 'high', items: ['Kanban Board', 'Story Points', 'Labels/Tags', 'Assignees'] }, { phase: 'Phase 2: Planning (Q2)', priority: 'medium', items: ['Sprint Backlog', 'Velocity Charts', 'Capacity Planning', 'Release Planning'] }, { phase: 'Phase 3: Intelligence (Q3)', priority: 'low', items: ['Auto-Prioritization', 'Effort Prediction', 'Risk Identification', 'Stakeholder Reports'] }, ], technicalDetails: [ { component: 'UI', technology: 'React DnD', description: 'Drag & Drop' }, { component: 'Storage', technology: 'PostgreSQL', description: 'Relational Data' }, { component: 'Sync', technology: 'GitHub API', description: 'Issue Sync' }, { component: 'Export', technology: 'CSV/JSON', description: 'Data Export' }, ], auditInfo: [ { category: 'Backlog Status', items: [ { label: 'Offene Items', value: 'Tracking', status: 'ok' }, { label: 'In Progress', value: 'Tracking', status: 'ok' }, { label: 'Completed (Sprint)', value: 'Tracking', status: 'ok' }, { label: 'Backlog Grooming', value: 'Woechentlich', status: 'ok' }, ], }, { category: 'Priorisierung', items: [ { label: 'Must Have', value: 'Tracking', status: 'ok' }, { label: 'Should Have', value: 'Tracking', status: 'ok' }, { label: 'Could Have', value: 'Tracking', status: 'ok' }, { label: 'Wont Have', value: 'Tracking', status: 'ok' }, ], }, { category: 'Integration', items: [ { label: 'GitHub Sync', value: 'Aktiv', status: 'ok' }, { label: 'Jira Sync', value: 'Optional', status: 'ok' }, { label: 'Slack Notifications', value: 'Konfigurierbar', status: 'ok' }, { label: 'Webhooks', value: 'Aktiv', status: 'ok' }, ], }, ], fullDocumentation: `

Backlog Management System

1. Uebersicht

Das Backlog-Modul verwaltet alle Feature-Anfragen, Bugs und Verbesserungen. Es unterstuetzt agile Methoden wie Scrum und Kanban.

2. Item-Typen

TypIconBeschreibung
EpicGrosses Feature, mehrere Stories
Story📖User Story mit Akzeptanzkriterien
TaskTechnische Aufgabe
Bug🐛Fehlerbericht
Improvement💡Verbesserungsvorschlag

3. Workflow

┌──────────┐   ┌──────────┐   ┌──────────┐   ┌──────────┐   ┌──────────┐
│ Backlog  │ → │ Selected │ → │ In Dev   │ → │ Review   │ → │ Done     │
└──────────┘   └──────────┘   └──────────┘   └──────────┘   └──────────┘
     │              │              │              │              │
     │              │              │              │              │
  Priorisiert   Sprint       Entwicklung      Code Review    Abgeschlossen
               Planning      & Testing        & QA

4. Item-Struktur

{
  "id": "BP-123",
  "type": "story",
  "title": "Als Nutzer moechte ich...",
  "description": "...",
  "acceptance_criteria": [
    "Gegeben..., Wenn..., Dann..."
  ],
  "priority": "must_have",
  "story_points": 5,
  "labels": ["frontend", "ux"],
  "assignee": "user_id",
  "sprint": "Sprint 12",
  "epic": "BP-100",
  "created_at": "2025-01-14T10:00:00Z",
  "updated_at": "2025-01-14T12:00:00Z"
}

5. Priorisierung (MoSCoW)

PrioritaetBeschreibungBehandlung
Must HaveUnverzichtbarIm naechsten Sprint
Should HaveWichtigBaldmoeglichst
Could HaveWuenschenswertWenn Zeit
Wont HaveNicht jetztSpaeter evaluieren

6. API Endpoints

EndpointMethodeBeschreibung
/api/backlog/itemsGETItems listen
/api/backlog/itemsPOSTNeues Item
/api/backlog/items/{id}PATCHItem aktualisieren
/api/backlog/sprintsGETSprints listen
/api/backlog/kanbanGETBoard-Ansicht

7. Sprint Planning

Sprint Planning Flow:

1. Velocity berechnen
   └── Durchschnitt der letzten 3 Sprints

2. Kapazitaet ermitteln
   └── Teamgroesse × Verfuegbarkeit

3. Items auswaehlen
   ├── Priorisierte Items
   ├── Story Points summieren
   └── Kapazitaet nicht ueberschreiten

4. Sprint Goal definieren
   └── Uebergreifendes Ziel

5. Sprint starten
   └── 2 Wochen Timeebox

8. Metriken

MetrikBeschreibungZiel
VelocityStory Points/SprintStabil
Cycle TimeZeit bis DoneSinkend
Lead TimeBacklog bis DoneSinkend
BurndownRemaining WorkLinear

9. GitHub Integration

Sync-Konfiguration:

GitHub Issues → Backlog Items
├── Labels → Typ-Mapping
├── Milestones → Sprints
├── Assignees → Team-Members
└── Comments → Bidirektional

Automatisierung:
├── PR merged → Item nach Done
├── Branch erstellt → Item nach In Dev
└── Review requested → Item nach Review

10. Reporting

`, }, // Zeugnisse Crawler zeugnisseCrawler: { title: 'Zeugnisse Crawler System-Info', description: 'Crawler fuer Zeugnisformulierungen und Bewertungstexte.', version: '1.0', privacyNotes: [ 'Nur anonymisierte Textbausteine', 'Keine personenbezogenen Daten', 'Quellennachweis fuer alle Texte', ], architecture: { layers: [ { title: 'Admin UI', components: ['Source Manager', 'Text Editor', 'Categories'], color: '#3b82f6' }, { title: 'Crawler', components: ['PDF Parser', 'Text Extractor', 'Classifier'], color: '#8b5cf6' }, { title: 'Processing', components: ['Deduplication', 'Quality Check', 'Tagging'], color: '#10b981' }, { title: 'Database', components: ['Text Corpus', 'Categories', 'Search Index'], color: '#f59e0b' }, ], }, features: [ { name: 'PDF-Parsing', status: 'active', description: 'Extraktion aus Zeugnis-PDFs' }, { name: 'Kategorisierung', status: 'active', description: 'Automatische Einordnung' }, { name: 'Qualitaetssicherung', status: 'active', description: 'Review-Workflow' }, { name: 'KI-Generierung', status: 'planned', description: 'Neue Formulierungen' }, ], roadmap: [ { phase: 'Phase 1: Corpus (Q1)', priority: 'high', items: ['PDF Import', 'Text Cleaning', 'Category System', 'Search Function'] }, { phase: 'Phase 2: Quality (Q2)', priority: 'medium', items: ['Duplicate Detection', 'Quality Scoring', 'Source Tracking', 'Review Workflow'] }, { phase: 'Phase 3: AI (Q3)', priority: 'medium', items: ['Style Analysis', 'Generation', 'Personalization', 'Compliance Check'] }, ], technicalDetails: [ { component: 'PDF', technology: 'PyMuPDF', description: 'PDF Parsing' }, { component: 'NLP', technology: 'spaCy', description: 'Text Analysis' }, { component: 'Search', technology: 'Qdrant', description: 'Semantic Search' }, { component: 'Storage', technology: 'PostgreSQL', description: 'Text Database' }, ], auditInfo: [ { category: 'Corpus Status', items: [ { label: 'Formulierungen', value: 'Tracking', status: 'ok' }, { label: 'Kategorien', value: 'Definiert', status: 'ok' }, { label: 'Qualitaet geprueft', value: 'Review', status: 'ok' }, { label: 'Letzte Aktualisierung', value: 'Woechentlich', status: 'ok' }, ], }, { category: 'Datenschutz', items: [ { label: 'Anonymisierung', value: 'Vollstaendig', status: 'ok' }, { label: 'Quellennachweis', value: 'Vorhanden', status: 'ok' }, { label: 'Keine PII', value: 'Verifiziert', status: 'ok' }, { label: 'Lizenzstatus', value: 'Geprueft', status: 'ok' }, ], }, { category: 'KI-Features', items: [ { label: 'Kategorisierung', value: 'Automatisch', status: 'ok' }, { label: 'Stilanalyse', value: 'Geplant', status: 'warning' }, { label: 'Generierung', value: 'Geplant', status: 'warning' }, { label: 'Qualitaets-Scoring', value: 'Aktiv', status: 'ok' }, ], }, ], fullDocumentation: `

Zeugnisse Crawler - Formulierungsdatenbank

1. Uebersicht

Der Zeugnisse Crawler sammelt und kategorisiert anonymisierte Zeugnisformulierungen. Er dient als Referenzdatenbank fuer die Erstellung von Arbeitszeugnissen.

2. Datenquellen

Quellen:
├── Oeffentliche Muster-Zeugnisse
│   └── Arbeitsagentur, IHK
├── Anonymisierte Beispiele
│   └── Von Nutzern eingereicht
├── Fachliteratur
│   └── Zeugnis-Handbuecher
└── Generierte Beispiele
    └── KI-erweitert (geplant)

3. Kategorie-System

KategorieUnterkategorienBeispiel
Leistungsehr gut, gut, befriedigend, ..."stets zur vollsten Zufriedenheit"
SozialverhaltenKollegen, Vorgesetzte, Kunden"war bei allen beliebt"
FachwissenTheorie, Praxis, Weiterbildung"verfuegt ueber fundiertes..."
ArbeitsweiseSelbstaendigkeit, Sorgfalt, ..."arbeitet aeusserst zuverlaessig"
SchlussformelDanksagung, Wuensche"Wir wuenschen alles Gute..."

4. Formulierungs-Schema

{
  "id": "zeug-123",
  "text": "Herr/Frau X hat die ihm/ihr uebertragenen Aufgaben...",
  "category": "leistung",
  "subcategory": "gesamtbewertung",
  "rating": 2,  // 1=sehr gut, 6=ungenuegend
  "gender_neutral": true,
  "source": "muster_vorlage",
  "verified": true,
  "usage_count": 150,
  "created_at": "2025-01-14T10:00:00Z"
}

5. API Endpoints

EndpointMethodeBeschreibung
/api/zeugnisse/searchGETFormulierungen suchen
/api/zeugnisse/categoriesGETKategorien listen
/api/zeugnisse/suggestPOSTPassende Formulierungen
/api/zeugnisse/contributePOSTNeue Formulierung einreichen

6. PDF-Parsing Pipeline

PDF-Dokument
      │
      v
┌───────────────────────────────────────┐
│  1. Text Extraction (PyMuPDF)         │
│     - OCR falls noetig (Tesseract)    │
└─────────────────┬─────────────────────┘
                  │
                  v
┌───────────────────────────────────────┐
│  2. Anonymisierung                    │
│     - Namen entfernen                 │
│     - Firmennamen entfernen           │
│     - Daten generalisieren            │
└─────────────────┬─────────────────────┘
                  │
                  v
┌───────────────────────────────────────┐
│  3. Segmentierung                     │
│     - Absaetze trennen                │
│     - Formulierungen extrahieren      │
└─────────────────┬─────────────────────┘
                  │
                  v
┌───────────────────────────────────────┐
│  4. Klassifizierung                   │
│     - Kategorie zuordnen              │
│     - Rating ableiten                 │
│     - Qualitaet bewerten              │
└───────────────────────────────────────┘

7. Rating-Dekodierung

FormulierungRatingBedeutung
"stets zur vollsten Zufriedenheit"1Sehr gut
"zur vollsten Zufriedenheit"2Gut
"zur vollen Zufriedenheit"3Befriedigend
"zur Zufriedenheit"4Ausreichend
"im Grossen und Ganzen..."5Mangelhaft
"hat sich bemueht"6Ungenuegend

8. Qualitaetssicherung

9. Semantische Suche

Suchanfrage: "gute Teamarbeit"
      │
      v
┌───────────────────────────────────────┐
│  1. Embedding generieren              │
│  2. Qdrant Vector Search              │
│  3. Keyword-Filter anwenden           │
│  4. Rating-Filter anwenden            │
│  5. Ergebnisse ranken                 │
└───────────────────────────────────────┘
      │
      v
Ergebnisse:
├── "war ein geschaetztes Teammitglied" (0.95)
├── "fuegte sich gut ins Team ein" (0.89)
└── "trug aktiv zur Teamarbeit bei" (0.85)

10. Compliance

`, }, // Training training: { title: 'Training System-Info', description: 'ML Model Training und Fine-Tuning Dashboard.', version: '1.0', architecture: { layers: [ { title: 'Training UI', components: ['Experiment Tracker', 'Metrics Dashboard', 'Model Registry'], color: '#3b82f6' }, { title: 'Training Pipeline', components: ['Data Loader', 'Trainer', 'Evaluator'], color: '#8b5cf6' }, { title: 'Compute', components: ['GPU Cluster', 'Job Scheduler', 'Resource Manager'], color: '#10b981' }, { title: 'Storage', components: ['Dataset Store', 'Model Artifacts', 'Checkpoints'], color: '#f59e0b' }, ], }, features: [ { name: 'Experiment Tracking', status: 'active', description: 'Versuchsprotokollierung' }, { name: 'Hyperparameter Tuning', status: 'active', description: 'Automatische Optimierung' }, { name: 'Model Versioning', status: 'active', description: 'Modellversionierung' }, { name: 'Distributed Training', status: 'planned', description: 'Multi-GPU Training' }, ], roadmap: [ { phase: 'Phase 1: MLOps (Q1)', priority: 'high', items: ['Experiment Tracking', 'Model Registry', 'Artifact Storage', 'Reproducibility'] }, { phase: 'Phase 2: Automation (Q2)', priority: 'medium', items: ['Auto-Tuning', 'Pipeline Orchestration', 'A/B Deployment', 'Rollback'] }, { phase: 'Phase 3: Scale (Q3)', priority: 'medium', items: ['Distributed Training', 'Cost Optimization', 'Resource Scheduling', 'Multi-Cloud'] }, ], technicalDetails: [ { component: 'ML', technology: 'PyTorch', version: '2.x', description: 'Training Framework' }, { component: 'Tracking', technology: 'MLflow/W&B', description: 'Experiment Tracking' }, { component: 'GPU', technology: 'vast.ai', description: 'Cloud GPUs' }, { component: 'Storage', technology: 'MinIO', description: 'Artifact Store' }, ], auditInfo: [ { category: 'Training Pipeline', items: [ { label: 'Aktive Jobs', value: 'Tracking', status: 'ok' }, { label: 'GPU Verfuegbarkeit', value: 'vast.ai', status: 'ok' }, { label: 'Model Registry', value: 'MLflow', status: 'ok' }, { label: 'Experiment Tracking', value: 'Aktiviert', status: 'ok' }, ], }, { category: 'Ressourcen', items: [ { label: 'GPU Budget', value: 'Konfiguriert', status: 'ok' }, { label: 'Storage', value: 'MinIO', status: 'ok' }, { label: 'Compute Limits', value: 'Definiert', status: 'ok' }, { label: 'Auto-Shutdown', value: 'Aktiviert', status: 'ok' }, ], }, { category: 'Compliance', items: [ { label: 'Datensatz-Herkunft', value: 'Dokumentiert', status: 'ok' }, { label: 'Model Cards', value: 'Vorhanden', status: 'ok' }, { label: 'Bias-Pruefung', value: 'Geplant', status: 'warning' }, { label: 'Audit Trail', value: 'Aktiviert', status: 'ok' }, ], }, ], fullDocumentation: `

ML Training Dashboard

1. Uebersicht

Das Training-Modul ermoeglicht das Training und Fine-Tuning von ML-Modellen mit Experiment-Tracking, Model Registry und GPU-Management.

2. Training-Architektur

┌─────────────────────────────────────────────────────────────────┐
│                      Training Dashboard                          │
│  ┌────────────────┐  ┌────────────────┐  ┌────────────────────┐│
│  │ Experiment     │  │ Model          │  │ Resource           ││
│  │ Tracker        │  │ Registry       │  │ Monitor            ││
│  └────────────────┘  └────────────────┘  └────────────────────┘│
└────────────────────────────┬────────────────────────────────────┘
                             │
                             v
┌─────────────────────────────────────────────────────────────────┐
│                      Training Pipeline                           │
│  ┌────────────────┐  ┌────────────────┐  ┌────────────────────┐│
│  │ Data Loader    │  │ Trainer        │  │ Evaluator          ││
│  └────────────────┘  └────────────────┘  └────────────────────┘│
└────────────────────────────┬────────────────────────────────────┘
                             │
          ┌──────────────────┴──────────────────┐
          │                                     │
          v                                     v
┌─────────────────────────┐       ┌─────────────────────────┐
│   GPU Cluster           │       │   Storage               │
│   (vast.ai)             │       │   (MinIO)               │
│   ├── RTX 4090          │       │   ├── Datasets          │
│   ├── A100              │       │   ├── Checkpoints       │
│   └── H100              │       │   └── Models            │
└─────────────────────────┘       └─────────────────────────┘

3. Experiment-Struktur

{
  "experiment_id": "exp-20250114-001",
  "name": "Fine-tune GPT for Education",
  "model_type": "causal_lm",
  "base_model": "meta-llama/Llama-2-7b",
  "dataset": "education-qa-v2",
  "hyperparameters": {
    "learning_rate": 2e-5,
    "batch_size": 16,
    "epochs": 3,
    "warmup_steps": 500,
    "weight_decay": 0.01
  },
  "metrics": {
    "train_loss": 0.45,
    "eval_loss": 0.52,
    "eval_accuracy": 0.89
  },
  "status": "completed",
  "gpu": "A100-80GB",
  "duration_hours": 4.5,
  "cost_usd": 6.75
}

4. API Endpoints

EndpointMethodeBeschreibung
/api/training/experimentsGETExperimente listen
/api/training/experimentsPOSTNeues Experiment
/api/training/experiments/{id}GETExperiment-Details
/api/training/modelsGETModel Registry
/api/training/runs/{id}/stopPOSTTraining stoppen

5. Training-Workflow

Neues Experiment
       │
       v
┌───────────────────────────────────────┐
│  1. Konfiguration                     │
│     - Modell auswaehlen               │
│     - Dataset zuweisen                │
│     - Hyperparameter setzen           │
└─────────────────┬─────────────────────┘
                  │
                  v
┌───────────────────────────────────────┐
│  2. Ressourcen-Allokation             │
│     - GPU-Instanz starten             │
│     - Daten laden                     │
│     - Environment setup               │
└─────────────────┬─────────────────────┘
                  │
                  v
┌───────────────────────────────────────┐
│  3. Training                          │
│     - Forward/Backward Pass           │
│     - Metriken loggen                 │
│     - Checkpoints speichern           │
└─────────────────┬─────────────────────┘
                  │
                  v
┌───────────────────────────────────────┐
│  4. Evaluation                        │
│     - Validation Set                  │
│     - Benchmarks                      │
│     - A/B Vergleich                   │
└─────────────────┬─────────────────────┘
                  │
                  v
┌───────────────────────────────────────┐
│  5. Deployment (optional)             │
│     - Model Registry                  │
│     - Staging/Production              │
│     - Rollout                         │
└───────────────────────────────────────┘

6. Hyperparameter-Tuning

MethodeBeschreibungUse Case
Grid SearchAlle KombinationenKleine Suchräume
Random SearchZufaellige StichprobenGrosse Suchräume
BayesianInformierte SucheTeure Experimente
Population BasedEvolutionaerKontinuierliches Training

7. Metriken & Monitoring

Tracking:
├── Loss (Train/Eval)
├── Accuracy/F1/BLEU
├── Learning Rate Schedule
├── GPU Utilization
├── Memory Usage
└── Training Speed (samples/sec)

Alerts:
├── Loss exploding
├── GPU OOM
├── Training stalled
└── Budget exceeded

8. Model Registry

StatusBeschreibungAktion
DraftIn EntwicklungExperimentieren
StagingZur EvaluationA/B Testing
ProductionLiveServing
ArchivedVeraltetBackup

9. Kostenmanagement

10. Best Practices

  1. Immer Baseline-Experiment als Referenz
  2. Checkpoints alle N Schritte speichern
  3. Early Stopping bei Overfitting
  4. Model Card fuer jedes produktive Modell
  5. Reproduzierbarkeit durch Seed-Setting
`, }, // Content Management content: { title: 'Content Management System-Info', description: 'Verwaltung von Bildungsinhalten und Medien.', version: '1.5', architecture: { layers: [ { title: 'Content UI', components: ['Media Library', 'Editor', 'Preview'], color: '#3b82f6' }, { title: 'Processing', components: ['Transcoding', 'Thumbnail Gen', 'OCR'], color: '#8b5cf6' }, { title: 'Delivery', components: ['CDN', 'Streaming', 'Download'], color: '#10b981' }, { title: 'Storage', components: ['MinIO', 'PostgreSQL', 'Qdrant'], color: '#f59e0b' }, ], }, features: [ { name: 'Media Upload', status: 'active', description: 'Multi-Format Upload' }, { name: 'Auto-Processing', status: 'active', description: 'Automatische Konvertierung' }, { name: 'Search & Filter', status: 'active', description: 'Content-Suche' }, { name: 'Version Control', status: 'planned', description: 'Inhaltsversionierung' }, ], roadmap: [ { phase: 'Phase 1: Core (Q1)', priority: 'high', items: ['Bulk Upload', 'Metadata Editor', 'Tagging System', 'Folder Structure'] }, { phase: 'Phase 2: Media (Q2)', priority: 'medium', items: ['Video Streaming', 'Adaptive Bitrate', 'Subtitle Support', 'Audio Transcription'] }, { phase: 'Phase 3: AI (Q3)', priority: 'low', items: ['Auto-Tagging', 'Content Moderation', 'Similarity Search', 'Auto-Description'] }, ], technicalDetails: [ { component: 'Storage', technology: 'MinIO', description: 'S3-Compatible' }, { component: 'Video', technology: 'FFmpeg', description: 'Transcoding' }, { component: 'CDN', technology: 'CloudFlare', description: 'Delivery' }, { component: 'Search', technology: 'Qdrant', description: 'Similarity' }, ], auditInfo: [ { category: 'Content Status', items: [ { label: 'Gesamt-Assets', value: 'Tracking', status: 'ok' }, { label: 'Veroeffentlicht', value: 'Tracking', status: 'ok' }, { label: 'In Review', value: 'Tracking', status: 'ok' }, { label: 'Storage genutzt', value: 'Monitoring', status: 'ok' }, ], }, { category: 'Processing', items: [ { label: 'Transcoding Queue', value: 'Aktiv', status: 'ok' }, { label: 'Thumbnail Gen', value: 'Automatisch', status: 'ok' }, { label: 'OCR Pipeline', value: 'Aktiv', status: 'ok' }, { label: 'CDN Sync', value: 'Aktiv', status: 'ok' }, ], }, { category: 'Qualitaet', items: [ { label: 'Format-Standards', value: 'Definiert', status: 'ok' }, { label: 'Metadata-Validierung', value: 'Aktiv', status: 'ok' }, { label: 'Content-Moderation', value: 'Geplant', status: 'warning' }, { label: 'Accessibility', value: 'In Arbeit', status: 'warning' }, ], }, ], fullDocumentation: `

Content Management System

1. Uebersicht

Das CMS verwaltet alle Bildungsinhalte: Videos, PDFs, Arbeitsblätter und interaktive Medien. Es bietet Upload, Verarbeitung, Suche und Auslieferung.

2. Content-Architektur

┌─────────────────────────────────────────────────────────────────┐
│                      Content Dashboard                           │
│  ┌────────────────┐  ┌────────────────┐  ┌────────────────────┐│
│  │ Media Library  │  │ Editor         │  │ Preview            ││
│  └────────────────┘  └────────────────┘  └────────────────────┘│
└────────────────────────────┬────────────────────────────────────┘
                             │
                             v
┌─────────────────────────────────────────────────────────────────┐
│                      Processing Pipeline                         │
│  ┌────────────────┐  ┌────────────────┐  ┌────────────────────┐│
│  │ Upload Handler │  │ Transcoder     │  │ Indexer            ││
│  │ (TUS Protocol) │  │ (FFmpeg)       │  │ (Embeddings)       ││
│  └────────────────┘  └────────────────┘  └────────────────────┘│
└────────────────────────────┬────────────────────────────────────┘
                             │
          ┌──────────────────┴──────────────────┐
          │                                     │
          v                                     v
┌─────────────────────────┐       ┌─────────────────────────┐
│   Object Storage        │       │   CDN                   │
│   (MinIO)               │       │   (CloudFlare)          │
│   ├── Originals         │       │   ├── Thumbnails        │
│   ├── Transcoded        │       │   ├── Streaming         │
│   └── Thumbnails        │       │   └── Downloads         │
└─────────────────────────┘       └─────────────────────────┘

3. Unterstuetzte Formate

TypEingabeAusgabeMax Groesse
VideoMP4, MOV, MKV, AVIMP4 (H.264), HLS5 GB
AudioMP3, WAV, FLAC, M4AMP3, AAC500 MB
DokumentPDF, DOCX, PPTXPDF, Thumbnails100 MB
BildJPG, PNG, WEBP, GIFWEBP, Thumbnails50 MB
InteraktivH5P, SCORMPackage200 MB

4. API Endpoints

EndpointMethodeBeschreibung
/api/content/uploadPOSTUpload initiieren (TUS)
/api/content/assetsGETAssets listen
/api/content/assets/{id}GETAsset-Details
/api/content/assets/{id}PATCHMetadaten aktualisieren
/api/content/searchGETContent suchen

5. Metadata-Schema

{
  "id": "asset-uuid",
  "title": "Mathematik Erklaervideo",
  "description": "...",
  "type": "video",
  "subject": "Mathematik",
  "grade_levels": [5, 6, 7],
  "language": "de",
  "duration_seconds": 600,
  "file_size_bytes": 150000000,
  "mime_type": "video/mp4",
  "dimensions": { "width": 1920, "height": 1080 },
  "thumbnail_url": "https://cdn.../thumb.webp",
  "stream_url": "https://cdn.../stream.m3u8",
  "download_url": "https://cdn.../download.mp4",
  "tags": ["Algebra", "Grundlagen"],
  "license": "CC-BY-SA-4.0",
  "created_at": "2025-01-14T10:00:00Z",
  "status": "published"
}

6. Video-Transcoding

Input Video
     │
     v
┌───────────────────────────────────────┐
│  1. Analyse                           │
│     - Codec, Resolution, Bitrate      │
│     - Audio Channels                  │
└─────────────────┬─────────────────────┘
                  │
                  v
┌───────────────────────────────────────┐
│  2. Transcoding (FFmpeg)              │
│     - 1080p (5 Mbps)                  │
│     - 720p (2.5 Mbps)                 │
│     - 480p (1 Mbps)                   │
│     - 360p (0.5 Mbps)                 │
└─────────────────┬─────────────────────┘
                  │
                  v
┌───────────────────────────────────────┐
│  3. HLS Packaging                     │
│     - Segmente (10s)                  │
│     - Master Playlist                 │
│     - Adaptive Bitrate                │
└─────────────────┬─────────────────────┘
                  │
                  v
┌───────────────────────────────────────┐
│  4. CDN Upload                        │
│     - Edge Caching                    │
│     - Signed URLs                     │
└───────────────────────────────────────┘

7. Ordner-Struktur

Content Library/
├── Faecher/
│   ├── Mathematik/
│   │   ├── Klasse 5/
│   │   └── Klasse 6/
│   ├── Deutsch/
│   └── Englisch/
├── Sammlungen/
│   ├── Pruefungsvorbereitung/
│   └── Ferienkurse/
└── Archiv/

8. Suche & Filter

9. Workflow-Status

StatusBeschreibungSichtbar
UploadingUpload laeuftNein
ProcessingTranscoding/ThumbnailNein
DraftEntwurfNur Autor
ReviewIn PruefungReviewer
PublishedVeroeffentlichtAlle
ArchivedArchiviertAdmin

10. Monitoring

MetrikBeschreibungAlert
Storage UsageGenutzter Speicher> 80%
Processing QueueWartende Jobs> 100
CDN BandwidthTraffic> Limit
Error RateFehlgeschlagene Jobs> 5%
`, }, // Documentation docs: { title: 'Documentation System-Info', description: 'Zentrale Dokumentationsplattform und Wissensmanagement.', version: '1.0', architecture: { layers: [ { title: 'Docs UI', components: ['Reader', 'Search', 'Navigation'], color: '#3b82f6' }, { title: 'Content Engine', components: ['Markdown Parser', 'Version Control', 'Export'], color: '#8b5cf6' }, { title: 'Search', components: ['Full-Text', 'Semantic', 'Facets'], color: '#10b981' }, { title: 'Storage', components: ['Git Repo', 'PostgreSQL', 'Qdrant'], color: '#f59e0b' }, ], }, features: [ { name: 'Markdown Support', status: 'active', description: 'GitHub-Flavored Markdown' }, { name: 'Search', status: 'active', description: 'Volltext- und semantische Suche' }, { name: 'Versioning', status: 'active', description: 'Git-basierte Versionierung' }, { name: 'API Docs', status: 'planned', description: 'OpenAPI Integration' }, ], roadmap: [ { phase: 'Phase 1: Core (Q1)', priority: 'high', items: ['Markdown Rendering', 'Navigation Tree', 'Search Index', 'Dark Mode'] }, { phase: 'Phase 2: Features (Q2)', priority: 'medium', items: ['API Reference', 'Code Examples', 'Interactive Demos', 'Feedback System'] }, { phase: 'Phase 3: AI (Q3)', priority: 'low', items: ['AI Search', 'Auto-Suggestions', 'Translation', 'Doc Generation'] }, ], technicalDetails: [ { component: 'Renderer', technology: 'MDX', description: 'Enhanced Markdown' }, { component: 'Search', technology: 'Algolia/Qdrant', description: 'Fast Search' }, { component: 'Hosting', technology: 'Next.js', description: 'Static Generation' }, { component: 'Version', technology: 'Git', description: 'Source Control' }, ], auditInfo: [ { category: 'Dokumentation Status', items: [ { label: 'Seiten gesamt', value: 'Tracking', status: 'ok' }, { label: 'Letzte Aktualisierung', value: 'Git-basiert', status: 'ok' }, { label: 'Broken Links', value: 'Geprueft', status: 'ok' }, { label: 'Search Index', value: 'Aktuell', status: 'ok' }, ], }, { category: 'API Documentation', items: [ { label: 'OpenAPI Spec', value: 'Vorhanden', status: 'ok' }, { label: 'Code Examples', value: 'Vorhanden', status: 'ok' }, { label: 'Changelog', value: 'Aktuell', status: 'ok' }, { label: 'Versioning', value: 'Aktiviert', status: 'ok' }, ], }, { category: 'Accessibility', items: [ { label: 'Dark Mode', value: 'Vorhanden', status: 'ok' }, { label: 'Keyboard Navigation', value: 'Funktioniert', status: 'ok' }, { label: 'Screen Reader', value: 'Kompatibel', status: 'ok' }, { label: 'Mobile', value: 'Responsive', status: 'ok' }, ], }, ], fullDocumentation: `

Documentation Platform

1. Uebersicht

Die Dokumentationsplattform bietet zentrale technische Dokumentation fuer Entwickler, APIs und Endnutzer. Sie unterstuetzt Markdown, Versionierung und semantische Suche.

2. Architektur

┌─────────────────────────────────────────────────────────────────┐
│                      Documentation Site                          │
│  ┌────────────────┐  ┌────────────────┐  ┌────────────────────┐│
│  │ Navigation     │  │ Content        │  │ Search             ││
│  │ (Sidebar)      │  │ (MDX Render)   │  │ (Algolia/Qdrant)   ││
│  └────────────────┘  └────────────────┘  └────────────────────┘│
└────────────────────────────┬────────────────────────────────────┘
                             │
                             v
┌─────────────────────────────────────────────────────────────────┐
│                      Build Pipeline                              │
│  ├── Markdown/MDX Parsing                                       │
│  ├── Static Site Generation (Next.js)                           │
│  ├── Search Index Generation                                    │
│  └── Link Validation                                            │
└────────────────────────────┬────────────────────────────────────┘
                             │
                             v
┌─────────────────────────────────────────────────────────────────┐
│                      Source                                      │
│  ├── Git Repository (Versioned)                                 │
│  ├── OpenAPI Specs (Auto-generated)                             │
│  └── Code Comments (Extracted)                                  │
└─────────────────────────────────────────────────────────────────┘

3. Content-Typen

TypFormatBeschreibung
GuidesMDXSchritt-fuer-Schritt Anleitungen
API ReferenceOpenAPIEndpoint-Dokumentation
ConceptsMDXErklaerungen und Konzepte
TutorialsMDX + CodeHands-on Beispiele
ChangelogMarkdownVersionshistorie

4. MDX Features

Erweiterte Markdown-Syntax:

# Standard Markdown
**bold**, *italic*, \`code\`

# Code-Bloecke mit Highlighting
\`\`\`typescript
const example = "code"
\`\`\`

# Custom Components

  Wichtiger Hinweis



  ...
  ...


# Interaktive Elemente

5. API Endpoints

EndpointMethodeBeschreibung
/api/docs/searchGETDokumentation durchsuchen
/api/docs/pagesGETSeitenstruktur
/api/docs/feedbackPOSTFeedback einreichen
/api/docs/versionsGETVerfuegbare Versionen

6. Suche

Suchanfrage
     │
     v
┌───────────────────────────────────────┐
│  1. Query Processing                  │
│     - Tokenization                    │
│     - Stemming                        │
│     - Synonyme                        │
└─────────────────┬─────────────────────┘
                  │
          ┌───────┴───────┐
          │               │
          v               v
┌─────────────────┐  ┌─────────────────┐
│ Keyword Search  │  │ Semantic Search │
│ (Algolia)       │  │ (Qdrant)        │
└────────┬────────┘  └────────┬────────┘
         │                    │
         └──────────┬─────────┘
                    │
                    v
         ┌─────────────────────┐
         │ Result Ranking      │
         │ - Relevance Score   │
         │ - Recency           │
         │ - Popularity        │
         └─────────────────────┘

7. Versionierung

VersionBranchStatus
v3.x (latest)mainAktuell
v2.xv2Maintained
v1.xv1Deprecated

8. Contribution Workflow

Dokumentation aendern:

1. Fork/Branch erstellen
2. Markdown bearbeiten
3. Lokal pruefen (npm run dev)
4. Pull Request erstellen
5. Review & Merge
6. Auto-Deploy

9. Analytics

10. Qualitaetssicherung

CheckToolCI-Integration
Broken LinksCustom ScriptJa
SpellingcspellJa
FormattingPrettierJa
Code Samplesmdx-lintJa
`, }, // Game (Unity WebGL) game: { title: 'Game System-Info', description: 'Unity WebGL Spiel-Integration fuer Gamification.', version: '1.0', architecture: { layers: [ { title: 'Game UI', components: ['Game Canvas', 'Loading Screen', 'Score Display'], color: '#3b82f6' }, { title: 'Unity Runtime', components: ['WebGL Player', 'Asset Bundles', 'Physics'], color: '#000000' }, { title: 'Backend Bridge', components: ['Score API', 'Progress Sync', 'Leaderboard'], color: '#10b981' }, { title: 'Storage', components: ['Player Data', 'Achievements', 'Analytics'], color: '#f59e0b' }, ], }, features: [ { name: 'WebGL Rendering', status: 'active', description: 'Browser-basiertes Spiel' }, { name: 'Progress Tracking', status: 'active', description: 'Fortschrittsspeicherung' }, { name: 'Leaderboard', status: 'planned', description: 'Bestenlisten' }, { name: 'Achievements', status: 'planned', description: 'Erfolge und Badges' }, ], roadmap: [ { phase: 'Phase 1: Core (Q1)', priority: 'high', items: ['WebGL Optimization', 'Mobile Support', 'Save System', 'Auth Integration'] }, { phase: 'Phase 2: Social (Q2)', priority: 'medium', items: ['Multiplayer', 'Chat', 'Friend System', 'Challenges'] }, { phase: 'Phase 3: Gamification (Q3)', priority: 'low', items: ['Achievement System', 'Rewards', 'Seasons', 'Events'] }, ], technicalDetails: [ { component: 'Engine', technology: 'Unity', version: '2022 LTS', description: 'Game Engine' }, { component: 'Platform', technology: 'WebGL 2.0', description: 'Browser Runtime' }, { component: 'Compression', technology: 'Brotli', description: 'Asset Compression' }, { component: 'API', technology: 'REST/WebSocket', description: 'Backend Communication' }, ], auditInfo: [ { category: 'Game Status', items: [ { label: 'Build Version', value: 'Tracking', status: 'ok' }, { label: 'WebGL Kompatibilitaet', value: 'Getestet', status: 'ok' }, { label: 'Mobile Support', value: 'In Arbeit', status: 'warning' }, { label: 'Performance', value: 'Optimiert', status: 'ok' }, ], }, { category: 'Integration', items: [ { label: 'Auth Integration', value: 'Aktiv', status: 'ok' }, { label: 'Progress Sync', value: 'Aktiv', status: 'ok' }, { label: 'Leaderboard', value: 'Geplant', status: 'warning' }, { label: 'Achievements', value: 'Geplant', status: 'warning' }, ], }, { category: 'Assets', items: [ { label: 'Bundle Size', value: 'Optimiert', status: 'ok' }, { label: 'Kompression', value: 'Brotli', status: 'ok' }, { label: 'Lazy Loading', value: 'Aktiviert', status: 'ok' }, { label: 'CDN', value: 'CloudFlare', status: 'ok' }, ], }, ], fullDocumentation: `

Unity WebGL Game Integration

1. Uebersicht

Das Game-Modul integriert Unity-basierte Lernspiele als WebGL-Anwendungen in die Web-Plattform. Es ermoeglicht Gamification von Lerninhalten.

2. Architektur

┌─────────────────────────────────────────────────────────────────┐
│                      Web Application                             │
│  ┌────────────────────────────────────────────────────────────┐ │
│  │                    Game Container                           │ │
│  │  ┌───────────────────────────────────────────────────────┐ │ │
│  │  │              Unity WebGL Canvas                        │ │ │
│  │  │                                                        │ │ │
│  │  │    ┌─────────────┐    ┌─────────────┐                 │ │ │
│  │  │    │   Scene     │    │   UI        │                 │ │ │
│  │  │    │   Objects   │    │   Layer     │                 │ │ │
│  │  │    └─────────────┘    └─────────────┘                 │ │ │
│  │  │                                                        │ │ │
│  │  └───────────────────────────────────────────────────────┘ │ │
│  └────────────────────────────────────────────────────────────┘ │
│                              │                                   │
│                              v                                   │
│  ┌────────────────────────────────────────────────────────────┐ │
│  │                    Unity Bridge (jslib)                     │ │
│  └────────────────────────────────────────────────────────────┘ │
└────────────────────────────┬────────────────────────────────────┘
                             │
                             v
┌─────────────────────────────────────────────────────────────────┐
│                      Backend API                                 │
│  ├── /api/game/auth        (JWT Validation)                    │
│  ├── /api/game/progress    (Save/Load)                         │
│  ├── /api/game/leaderboard (Rankings)                          │
│  └── /api/game/events      (Analytics)                         │
└─────────────────────────────────────────────────────────────────┘

3. Unity Build Settings

EinstellungWertGrund
CompressionBrotliBeste Kompression
Code StrippingMediumBundle-Groesse
WebGL Memory256 MBStabil
Exception HandlingExplicitly ThrownPerformance
Graphics APIWebGL 2.0Features

4. API Endpoints

EndpointMethodeBeschreibung
/api/game/sessionPOSTSession starten
/api/game/progressGETSpielstand laden
/api/game/progressPOSTSpielstand speichern
/api/game/leaderboardGETBestenliste
/api/game/eventsPOSTAnalytics-Events

5. Bridge Communication

JavaScript → Unity:
├── SendMessage(objectName, methodName, value)
├── JSON Serialization fuer komplexe Daten
└── Event Queue fuer Batch-Operationen

Unity → JavaScript:
├── jslib Plugin: [DllImport("__Internal")]
├── Callback Pattern
└── JSON Response

6. Save System

{
  "player_id": "user-uuid",
  "game_id": "math-adventure",
  "progress": {
    "level": 5,
    "score": 1250,
    "stars": [3, 3, 2, 2, 1],
    "unlocked": ["item-1", "item-2"],
    "last_checkpoint": "level5-mid"
  },
  "settings": {
    "sound": true,
    "music_volume": 0.7,
    "difficulty": "normal"
  },
  "updated_at": "2025-01-14T12:00:00Z"
}

7. Performance-Optimierung

8. Loading Flow

Seite geladen
     │
     v
┌───────────────────────────────────────┐
│  1. Container initialisieren          │
│     - Canvas vorbereiten              │
│     - Loading UI anzeigen             │
└─────────────────┬─────────────────────┘
                  │
                  v
┌───────────────────────────────────────┐
│  2. Unity Loader                      │
│     - .data (Assets)                  │
│     - .wasm (Code)                    │
│     - .js (Framework)                 │
└─────────────────┬─────────────────────┘
                  │
                  v
┌───────────────────────────────────────┐
│  3. Initialisierung                   │
│     - User Auth pruefen               │
│     - Progress laden                  │
│     - Scene starten                   │
└─────────────────┬─────────────────────┘
                  │
                  v
┌───────────────────────────────────────┐
│  4. Game Ready                        │
│     - Loading UI ausblenden           │
│     - Input aktivieren                │
└───────────────────────────────────────┘

9. Analytics Events

EventDatenVerwendung
game_startsession_idSession Tracking
level_completelevel, score, timeProgression
achievementachievement_idEngagement
errorerror_type, detailsDebugging
game_endsession_durationRetention

10. Browser-Kompatibilitaet

BrowserDesktopMobile
Chrome
Firefox
Safari⚠ (iOS Limits)
Edge
`, }, // Onboarding onboarding: { title: 'Onboarding System-Info', description: 'Benutzer- und Schul-Onboarding Workflow.', version: '2.0', architecture: { layers: [ { title: 'Onboarding UI', components: ['Wizard', 'Progress Bar', 'Tutorials'], color: '#3b82f6' }, { title: 'Workflow Engine', components: ['Step Manager', 'Validation', 'Skip Logic'], color: '#8b5cf6' }, { title: 'Data Collection', components: ['Forms', 'File Upload', 'Verification'], color: '#10b981' }, { title: 'Integration', components: ['CRM', 'School Service', 'Notification'], color: '#f59e0b' }, ], }, features: [ { name: 'Multi-Step Wizard', status: 'active', description: 'Gefuehrter Prozess' }, { name: 'Progress Tracking', status: 'active', description: 'Fortschrittsanzeige' }, { name: 'Document Upload', status: 'active', description: 'Vertragsuploads' }, { name: 'Self-Service', status: 'planned', description: 'Autonomes Onboarding' }, ], roadmap: [ { phase: 'Phase 1: UX (Q1)', priority: 'high', items: ['Wizard Redesign', 'Mobile Optimization', 'Error Handling', 'Help System'] }, { phase: 'Phase 2: Automation (Q2)', priority: 'medium', items: ['Auto-Verification', 'Document OCR', 'Pre-fill Data', 'Status Updates'] }, { phase: 'Phase 3: Analytics (Q3)', priority: 'low', items: ['Funnel Analysis', 'Drop-off Points', 'A/B Testing', 'Conversion Optimization'] }, ], technicalDetails: [ { component: 'Wizard', technology: 'React Hook Form', description: 'Form Management' }, { component: 'Validation', technology: 'Zod', description: 'Schema Validation' }, { component: 'Storage', technology: 'PostgreSQL', description: 'Progress Data' }, { component: 'Files', technology: 'MinIO', description: 'Document Storage' }, ], auditInfo: [ { category: 'Onboarding Status', items: [ { label: 'Conversion Rate', value: 'Tracking', status: 'ok' }, { label: 'Avg. Completion Time', value: 'Tracking', status: 'ok' }, { label: 'Drop-off Points', value: 'Analysiert', status: 'ok' }, { label: 'Support Tickets', value: 'Tracking', status: 'ok' }, ], }, { category: 'Prozess', items: [ { label: 'Wizard Steps', value: 'Konfiguriert', status: 'ok' }, { label: 'Validation', value: 'Aktiv', status: 'ok' }, { label: 'Document Upload', value: 'Aktiv', status: 'ok' }, { label: 'Auto-Verification', value: 'Geplant', status: 'warning' }, ], }, { category: 'Integration', items: [ { label: 'CRM Sync', value: 'Aktiv', status: 'ok' }, { label: 'E-Mail Notifications', value: 'Aktiv', status: 'ok' }, { label: 'School Service', value: 'Aktiv', status: 'ok' }, { label: 'Billing', value: 'Aktiv', status: 'ok' }, ], }, ], fullDocumentation: `

Onboarding Wizard

1. Uebersicht

Der Onboarding Wizard fuehrt neue Nutzer und Schulen durch den Registrierungsprozess. Er sammelt notwendige Daten, Dokumente und Consents.

2. Wizard-Architektur

┌─────────────────────────────────────────────────────────────────┐
│                      Onboarding Wizard UI                        │
│  ┌────────────────────────────────────────────────────────────┐ │
│  │ Progress Bar: [=====>                              ] 40%    │ │
│  └────────────────────────────────────────────────────────────┘ │
│  ┌────────────────────────────────────────────────────────────┐ │
│  │                    Current Step                             │ │
│  │                                                             │ │
│  │    ┌─────────────────────────────────────────────────┐     │ │
│  │    │              Form / Upload / Info                │     │ │
│  │    └─────────────────────────────────────────────────┘     │ │
│  │                                                             │ │
│  │    [  Zurueck  ]                          [  Weiter  ]     │ │
│  └────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘

3. Wizard Steps (Schulen)

StepTitelFelderPflicht
1SchuldatenName, Typ, BundeslandJa
2AnsprechpartnerName, E-Mail, TelefonJa
3AdresseStrasse, PLZ, OrtJa
4VertragPaket-Auswahl, UploadJa
5DatenschutzAVV, ConsentsJa
6BestaetigungZusammenfassung-

4. API Endpoints

EndpointMethodeBeschreibung
/api/onboarding/startPOSTWizard starten
/api/onboarding/{id}/step/{n}GETStep-Daten laden
/api/onboarding/{id}/step/{n}POSTStep speichern
/api/onboarding/{id}/completePOSTAbschliessen
/api/onboarding/{id}/statusGETFortschritt

5. Validation-Schema

const schoolDataSchema = z.object({
  name: z.string().min(2).max(100),
  type: z.enum([
    "grundschule",
    "hauptschule",
    "realschule",
    "gymnasium",
    "gesamtschule",
    "berufsschule"
  ]),
  bundesland: z.enum([...bundeslaender]),
  studentCount: z.number().positive().optional(),
  website: z.string().url().optional()
});

6. Document Upload

Dokument-Upload Flow:

1. Datei auswaehlen
   └── Typ-Pruefung (PDF, max 10 MB)

2. Upload starten
   └── Progress-Anzeige

3. Virus-Scan
   └── ClamAV

4. Speicherung
   └── MinIO mit Verschluesselung

5. Verifikation (optional)
   └── Manuell oder OCR

7. Status-Workflow

┌──────────┐   ┌──────────┐   ┌───────────┐   ┌───────────┐
│ Started  │ → │ Progress │ → │ Submitted │ → │ Verified  │
└──────────┘   └──────────┘   └───────────┘   └───────────┘
                                    │              │
                                    │              v
                                    │         ┌───────────┐
                                    │         │ Activated │
                                    │         └───────────┘
                                    v
                              ┌───────────┐
                              │ Incomplete│
                              └───────────┘

8. E-Mail-Benachrichtigungen

TriggerTemplateEmpfaenger
StartWillkommenAnsprechpartner
Pausiert (7 Tage)ErinnerungAnsprechpartner
SubmittedBestaetigungAnsprechpartner
VerifiedAktivierungAnsprechpartner
IncompleteFehlende DatenAnsprechpartner

9. Analytics

10. A/B Testing (geplant)

Test-Varianten:
├── Step-Reihenfolge
├── Formular-Layout
├── CTA-Texte
├── Hilfe-Inhalte
└── Erfolgsmeldungen

Metriken:
├── Conversion Rate
├── Time to Complete
└── Drop-off Rate
`, }, // Unity Bridge unityBridge: { title: 'Unity Bridge System-Info', description: 'Kommunikationsschicht zwischen Web-App und Unity WebGL.', version: '1.0', architecture: { layers: [ { title: 'Web Interface', components: ['Message Bus', 'Event Handlers', 'State Sync'], color: '#3b82f6' }, { title: 'Bridge Layer', components: ['jslib Interface', 'Message Queue', 'Serialization'], color: '#8b5cf6' }, { title: 'Unity Side', components: ['C# Handlers', 'Event System', 'Data Models'], color: '#000000' }, { title: 'Shared', components: ['Protocol Buffers', 'Type Definitions', 'Validation'], color: '#f59e0b' }, ], }, features: [ { name: 'Bidirektionale Kommunikation', status: 'active', description: 'Web <-> Unity Messaging' }, { name: 'State Synchronisation', status: 'active', description: 'Zustandsabgleich' }, { name: 'Event System', status: 'active', description: 'Event-basierte Kommunikation' }, { name: 'Type Safety', status: 'planned', description: 'Typsichere Schnittstelle' }, ], roadmap: [ { phase: 'Phase 1: Stability (Q1)', priority: 'high', items: ['Error Handling', 'Reconnection Logic', 'Message Validation', 'Logging'] }, { phase: 'Phase 2: Performance (Q2)', priority: 'medium', items: ['Message Batching', 'Compression', 'Lazy Loading', 'Memory Management'] }, { phase: 'Phase 3: Features (Q3)', priority: 'low', items: ['Binary Protocol', 'Streaming', 'Debugging Tools', 'Hot Reload'] }, ], technicalDetails: [ { component: 'Web', technology: 'TypeScript', description: 'Type-safe JS' }, { component: 'Bridge', technology: 'jslib', description: 'Unity Plugin' }, { component: 'Unity', technology: 'C#', description: 'Game Logic' }, { component: 'Protocol', technology: 'JSON/Binary', description: 'Message Format' }, ], auditInfo: [ { category: 'Bridge Status', items: [ { label: 'Connection', value: 'Aktiv', status: 'ok' }, { label: 'Message Queue', value: 'Stabil', status: 'ok' }, { label: 'Error Rate', value: '< 0.1%', status: 'ok' }, { label: 'Latency', value: '< 10ms', status: 'ok' }, ], }, { category: 'Protokoll', items: [ { label: 'Serialization', value: 'JSON', status: 'ok' }, { label: 'Validation', value: 'Aktiv', status: 'ok' }, { label: 'Compression', value: 'Geplant', status: 'warning' }, { label: 'Binary Mode', value: 'Geplant', status: 'warning' }, ], }, { category: 'Debugging', items: [ { label: 'Message Logging', value: 'Optional', status: 'ok' }, { label: 'Performance Monitor', value: 'Aktiv', status: 'ok' }, { label: 'Error Tracking', value: 'Sentry', status: 'ok' }, { label: 'Dev Tools', value: 'In Entwicklung', status: 'warning' }, ], }, ], fullDocumentation: `

Unity Bridge - Web-Unity Kommunikation

1. Uebersicht

Die Unity Bridge ermoeglicht bidirektionale Kommunikation zwischen der Web-Anwendung (JavaScript/TypeScript) und Unity WebGL (C#). Sie abstrahiert die jslib-Schnittstelle.

2. Architektur

┌─────────────────────────────────────────────────────────────────┐
│                      Web Application                             │
│  ┌────────────────────────────────────────────────────────────┐ │
│  │                   UnityBridge (TypeScript)                  │ │
│  │  ├── MessageBus                                            │ │
│  │  ├── EventEmitter                                          │ │
│  │  ├── StateSync                                             │ │
│  │  └── ErrorHandler                                          │ │
│  └────────────────────────────────────────────────────────────┘ │
│                              │                                   │
│                              │ SendMessage / Callback            │
│                              │                                   │
└──────────────────────────────┼───────────────────────────────────┘
                               │
┌──────────────────────────────┼───────────────────────────────────┐
│                      Unity WebGL                                 │
│                              │                                   │
│  ┌────────────────────────────────────────────────────────────┐ │
│  │                   BridgeManager (C#)                        │ │
│  │  ├── MessageReceiver                                       │ │
│  │  ├── EventDispatcher                                       │ │
│  │  ├── StateManager                                          │ │
│  │  └── ExternalInterface (jslib)                             │ │
│  └────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘

3. Message-Protokoll

{
  "type": "event" | "command" | "query" | "response",
  "id": "msg-uuid",
  "timestamp": 1705234800000,
  "channel": "game" | "ui" | "system",
  "payload": {
    "action": "player_score",
    "data": {
      "score": 100,
      "level": 5
    }
  }
}

4. JavaScript API

// Bridge initialisieren
const bridge = new UnityBridge({
  unityInstance: unityRef,
  gameObjectName: "BridgeManager"
});

// Event an Unity senden
bridge.send("player.action", {
  action: "jump",
  force: 10
});

// Event von Unity empfangen
bridge.on("game.score", (data) => {
  console.log("Score:", data.score);
});

// Query mit Response
const result = await bridge.query("game.state");
console.log("Current level:", result.level);

5. C# API

// BridgeManager.cs
public class BridgeManager : MonoBehaviour
{
    // Von JavaScript empfangen
    public void OnBridgeMessage(string json)
    {
        var message = JsonUtility.FromJson(json);
        HandleMessage(message);
    }

    // An JavaScript senden
    public void SendToWeb(string channel, object data)
    {
        var json = JsonUtility.ToJson(data);
        WebBridge.SendMessage(channel, json);
    }
}

6. Event-Kanaele

KanalRichtungBeschreibung
game.*Unity → WebGame Events
player.*BidirektionalPlayer Actions
ui.*Web → UnityUI Commands
system.*BidirektionalSystem Events
auth.*Web → UnityAuth State

7. State Synchronisation

Web State                  Unity State
    │                          │
    │    ┌────────────────┐    │
    ├───>│  State Sync    │<───┤
    │    │  (Bidirectional)    │
    │    └────────────────┘    │
    │                          │
    v                          v
┌─────────┐              ┌─────────┐
│ React   │              │ Unity   │
│ Store   │              │ State   │
└─────────┘              └─────────┘

Sync Events:
├── Initial Sync (Game Load)
├── Delta Sync (Changes only)
└── Full Sync (Recovery)

8. Error Handling

Error Types:
├── ConnectionError: Bridge nicht verbunden
├── TimeoutError: Keine Antwort
├── ParseError: JSON ungueltig
├── ValidationError: Schema-Fehler
└── UnityError: C#-Exception

Recovery:
├── Auto-Reconnect (3 Versuche)
├── Message Queue (bis reconnect)
└── Fallback UI (bei Dauerfehler)

9. Performance

MetrikZielMessung
Latency< 10msPer-Message
Throughput1000 msg/sBatch Test
Memory< 1MB QueueMonitoring
CPU< 1%Profiler

10. Debugging

// Debug Mode aktivieren
bridge.setDebug(true);

// Message Inspector
bridge.onAny((channel, data) => {
  console.log(\`[\${channel}]\`, data);
});

// Performance Monitor
bridge.getMetrics();
// {
//   messagesSent: 1234,
//   messagesReceived: 5678,
//   avgLatency: 5.2,
//   errors: 2
// }
`, }, // RAG System rag: { title: 'RAG System-Info', description: 'Retrieval Augmented Generation fuer intelligente Dokumentensuche.', version: '2.5', architecture: { layers: [ { title: 'RAG UI', components: ['Chat Interface', 'Document Viewer', 'Source Citations'], color: '#3b82f6' }, { title: 'RAG Pipeline', components: ['Query Processor', 'Retriever', 'Generator'], color: '#8b5cf6' }, { title: 'Vector Store', components: ['Qdrant', 'Embedding Service', 'Index Manager'], color: '#10b981' }, { title: 'Document Store', components: ['MinIO', 'PostgreSQL', 'Chunk Cache'], color: '#f59e0b' }, ], }, features: [ { name: 'Semantic Search', status: 'active', description: 'Bedeutungsbasierte Suche' }, { name: 'Source Citations', status: 'active', description: 'Quellenangaben in Antworten' }, { name: 'Multi-Document', status: 'active', description: 'Suche ueber mehrere Dokumente' }, { name: 'Hybrid Search', status: 'active', description: 'Kombination semantisch + keyword' }, { name: 'Conversation Memory', status: 'planned', description: 'Kontextbewahrung' }, ], roadmap: [ { phase: 'Phase 1: Quality (Q1)', priority: 'high', items: ['Relevanz-Tuning', 'Chunk Optimization', 'Re-Ranking', 'Answer Quality'] }, { phase: 'Phase 2: Scale (Q2)', priority: 'high', items: ['Index Sharding', 'Cache Layer', 'Batch Processing', 'Multi-Tenant'] }, { phase: 'Phase 3: Intelligence (Q3)', priority: 'medium', items: ['Query Expansion', 'Self-Reflection', 'Multi-Hop QA', 'Knowledge Graph'] }, ], technicalDetails: [ { component: 'Vector DB', technology: 'Qdrant', version: '1.12+', description: 'Similarity Search' }, { component: 'Embeddings', technology: 'OpenAI', description: 'text-embedding-3-large' }, { component: 'LLM', technology: 'GPT-4o / Claude', description: 'Answer Generation' }, { component: 'Chunking', technology: 'LangChain', description: 'Document Processing' }, ], privacyNotes: [ 'Dokumente werden lokal verarbeitet', 'Embeddings enthalten keine Klartextdaten', 'LLM-Anfragen sind tenant-isoliert', ], auditInfo: [ { category: 'RAG Pipeline', items: [ { label: 'Indexierte Dokumente', value: 'Tracking', status: 'ok' }, { label: 'Vector DB Status', value: 'Qdrant Online', status: 'ok' }, { label: 'Embedding Model', value: 'text-embedding-3', status: 'ok' }, { label: 'LLM Provider', value: 'Multi-Provider', status: 'ok' }, ], }, { category: 'Qualitaet', items: [ { label: 'Retrieval Precision', value: 'Tracking', status: 'ok' }, { label: 'Answer Accuracy', value: 'Evaluation', status: 'ok' }, { label: 'Halluzinations-Rate', value: 'Monitoring', status: 'ok' }, { label: 'Citation Accuracy', value: '> 95%', status: 'ok' }, ], }, { category: 'Performance', items: [ { label: 'Avg. Latency', value: '< 3s', status: 'ok' }, { label: 'Cache Hit Rate', value: '> 30%', status: 'ok' }, { label: 'Concurrent Users', value: 'Skalierbar', status: 'ok' }, { label: 'Cost per Query', value: 'Tracking', status: 'ok' }, ], }, ], fullDocumentation: `

RAG System - Retrieval Augmented Generation

1. Uebersicht

Das RAG-System kombiniert Dokumenten-Retrieval mit LLM-Generation fuer praezise, quellenbasierte Antworten auf Nutzeranfragen.

2. RAG-Pipeline

User Query
     │
     v
┌───────────────────────────────────────────────────────────────┐
│                      Query Processing                          │
│  ├── Query Analysis (Intent, Entities)                        │
│  ├── Query Expansion (Synonyme, Reformulierung)               │
│  └── Embedding Generation                                      │
└────────────────────────────┬──────────────────────────────────┘
                             │
                             v
┌───────────────────────────────────────────────────────────────┐
│                      Retrieval                                 │
│  ┌─────────────────┐    ┌─────────────────┐                   │
│  │ Vector Search   │    │ Keyword Search  │                   │
│  │ (Qdrant)        │    │ (PostgreSQL)    │                   │
│  └────────┬────────┘    └────────┬────────┘                   │
│           │                      │                             │
│           └──────────┬───────────┘                             │
│                      v                                         │
│           ┌─────────────────────┐                              │
│           │   Hybrid Fusion     │                              │
│           │   (RRF Algorithm)   │                              │
│           └─────────────────────┘                              │
└────────────────────────┬──────────────────────────────────────┘
                         │
                         v
┌───────────────────────────────────────────────────────────────┐
│                      Re-Ranking                                │
│  ├── Cross-Encoder Scoring                                    │
│  ├── Metadata Filtering                                       │
│  └── Diversity Sampling                                       │
└────────────────────────┬──────────────────────────────────────┘
                         │
                         v
┌───────────────────────────────────────────────────────────────┐
│                      Generation                                │
│  ├── Context Assembly                                         │
│  ├── Prompt Engineering                                       │
│  ├── LLM Call (GPT-4o / Claude)                               │
│  └── Citation Extraction                                      │
└────────────────────────┬──────────────────────────────────────┘
                         │
                         v
┌───────────────────────────────────────────────────────────────┐
│                      Response                                  │
│  ├── Answer Text                                              │
│  ├── Source Citations                                         │
│  └── Confidence Score                                         │
└───────────────────────────────────────────────────────────────┘

3. Chunking-Strategie

ParameterWertGrund
Chunk Size512 TokensOptimal fuer Retrieval
Overlap50 TokensKontext-Erhalt
SplitterSemanticNatuerliche Grenzen
MetadataDocument, Page, SectionZitation

4. API Endpoints

EndpointMethodeBeschreibung
/api/rag/queryPOSTFrage stellen
/api/rag/documentsGETDokumente listen
/api/rag/documentsPOSTDokument indexieren
/api/rag/collectionsGETSammlungen
/api/rag/evaluatePOSTAntwort bewerten

5. Prompt-Template

System:
Du bist ein hilfreicher Assistent fuer Bildungsinhalte.
Beantworte Fragen basierend auf den gegebenen Dokumenten.
Zitiere immer die Quellen in [1], [2] Format.
Wenn du dir nicht sicher bist, sage es.

Context:
[1] {chunk_1_text}
[2] {chunk_2_text}
[3] {chunk_3_text}

User:
{user_question}

Regeln:
- Nur Informationen aus dem Kontext verwenden
- Bei Unsicherheit "Ich weiss nicht" sagen
- Quellen mit [n] zitieren
- Praezise und strukturiert antworten

6. Qualitaets-Metriken

MetrikBeschreibungZiel
Precision@KRelevante unter Top-K> 80%
Recall@KGefundene Relevante> 70%
NDCGRanking-Qualitaet> 0.85
Answer RelevanceLLM-Evaluation> 4/5
FaithfulnessFakten-Treue> 95%

7. Caching

Cache-Strategie:
├── Query Cache
│   ├── Key: Query Embedding Hash
│   ├── TTL: 24 Stunden
│   └── Invalidierung: Bei Index-Update
│
├── Retrieval Cache
│   ├── Key: Query + Collection
│   ├── TTL: 1 Stunde
│   └── Top-K Results
│
└── Answer Cache
    ├── Key: Query Hash + Context Hash
    ├── TTL: 24 Stunden
    └── Full Response

8. Multi-Tenant

9. Evaluation-Pipeline

Test-Datensatz
     │
     ├── Frage-Antwort-Paare (Golden Set)
     │
     v
┌───────────────────────────────────────┐
│  RAG Pipeline                         │
└─────────────────┬─────────────────────┘
                  │
                  v
┌───────────────────────────────────────┐
│  Evaluation Metrics                   │
│  ├── Retrieval: Precision, Recall     │
│  ├── Generation: BLEU, ROUGE          │
│  ├── LLM-as-Judge: Relevance, Correct │
│  └── Human Eval: Subset               │
└─────────────────┬─────────────────────┘
                  │
                  v
┌───────────────────────────────────────┐
│  Report & Regression Detection        │
└───────────────────────────────────────┘

10. Optimierungs-Roadmap

  1. Hybrid Search: Kombination Vektor + Keyword (✓)
  2. Re-Ranking: Cross-Encoder (✓)
  3. Query Expansion: LLM-basiert (In Arbeit)
  4. Multi-Hop QA: Verkettete Abfragen (Geplant)
  5. Self-Reflection: Antwort-Pruefung (Geplant)
`, }, workflow: { title: 'BPMN Workflow Engine', description: 'Camunda 7 basierte Geschaeftsprozess-Automatisierung', version: '7.21.0', architecture: { layers: [ { title: 'Frontend', color: '#3b82f6', components: ['bpmn-js Editor', 'React Components', 'Python Studio Module'] }, { title: 'Backend', color: '#8b5cf6', components: ['FastAPI Proxy', 'Camunda REST API', 'Task Management'] }, { title: 'BPMN Engine', color: '#10b981', components: ['Camunda 7', 'Process Executor', 'Job Executor'] }, { title: 'Datenbank', color: '#f59e0b', components: ['PostgreSQL', 'Camunda Schema', 'Process History'] } ] }, features: [ { name: 'BPMN 2.0 Modellierung', status: 'active' as const, description: 'Visueller Prozess-Editor mit bpmn-js' }, { name: 'Process Deployment', status: 'active' as const, description: 'Prozesse in Camunda deployen' }, { name: 'Task Management', status: 'active' as const, description: 'User Tasks bearbeiten und delegieren' }, { name: 'Service Tasks', status: 'active' as const, description: 'Automatische Serviceaufrufe' }, { name: 'Timer Events', status: 'active' as const, description: 'Zeitgesteuerte Prozessschritte' }, { name: 'Process History', status: 'planned' as const, description: 'Historische Prozessdaten und Analytics' } ], roadmap: [ { phase: 'Phase 1: Editor & Deployment', priority: 'high' as const, items: ['bpmn-js Editor Integration', 'Camunda Docker Setup', 'REST API Proxy', 'Task Inbox'] }, { phase: 'Phase 2: Consent Workflow', priority: 'high' as const, items: ['Document Status BPMN', 'DSB Approval Task', 'Scheduled Publishing', 'Notification Tasks'] }, { phase: 'Phase 3: GDPR Workflows', priority: 'medium' as const, items: ['DSR Request Processing', 'Deadline Monitoring', 'Data Export Automation', 'Deletion Workflow'] } ], technicalDetails: [ { component: 'BPMN Engine', technology: 'Camunda 7.21.0', description: 'Apache 2.0 Lizenz' }, { component: 'Editor Library', technology: 'bpmn-js', version: '17.11.1' }, { component: 'API Port', technology: '8089', description: 'REST API Proxy' }, { component: 'Datenbank', technology: 'PostgreSQL', description: 'camunda Schema' } ], privacyNotes: [ 'Prozessdaten werden lokal in PostgreSQL gespeichert', 'Keine externen Cloud-Dienste fuer BPMN-Engine', 'Camunda Community Edition unter Apache 2.0 Lizenz', 'Audit-Trail fuer alle Prozessaktivitaeten' ], auditInfo: [ { category: 'Camunda Engine', items: [ { label: 'Version', value: '7.21.0', status: 'ok' as const }, { label: 'Lizenz', value: 'Apache 2.0', status: 'ok' as const }, { label: 'Health Check', value: '/api/bpmn/health', status: 'ok' as const } ] }, { category: 'Datenschutz', items: [ { label: 'Datenstandort', value: 'Lokal (PostgreSQL)', status: 'ok' as const }, { label: 'Audit-Trail', value: 'Aktiviert', status: 'ok' as const }, { label: 'Externe Dienste', value: 'Keine', status: 'ok' as const } ] } ], fullDocumentation: `

BPMN Workflow Engine - Dokumentation

1. Uebersicht

Die BPMN Workflow Engine basiert auf Camunda 7 (Apache 2.0 Lizenz) und ermoeglicht die Modellierung und Automatisierung von Geschaeftsprozessen.

2. API-Endpoints

EndpointMethodeBeschreibung
/api/bpmn/healthGETEngine Health-Check
/api/bpmn/process-definitionGETAlle Prozess-Definitionen
/api/bpmn/process-definition/{key}/startPOSTProzess starten
/api/bpmn/taskGETOffene Tasks
/api/bpmn/task/{id}/completePOSTTask abschliessen
/api/bpmn/deployment/createPOSTBPMN deployen

3. Camunda starten

# Mit BPMN-Profil starten
docker-compose --profile bpmn up -d camunda

# Web UI oeffnen
open http://localhost:8089/camunda

4. Lizenz

Apache License 2.0 - Die Camunda Community Edition ist vollstaendig Open Source und darf ohne Einschraenkungen kommerziell genutzt werden.

`, }, }