""" BreakPilot Studio - System Info Module Zeigt System-Informationen und Dokumentation an, analog zu den Admin-Seiten im Next.js Frontend. """ class SystemInfoModule: """System-Info Modul fuer BreakPilot Studio.""" @staticmethod def get_css() -> str: """CSS fuer das System-Info Panel.""" return """ /* ========================================== SYSTEM INFO MODULE ========================================== */ #panel-system-info { display: none; flex-direction: column; padding: 24px; min-height: calc(100vh - 104px); } #panel-system-info.active { display: flex; } .system-info-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 24px; } .system-info-title { font-size: 24px; font-weight: 700; color: var(--bp-text); margin-bottom: 4px; } .system-info-subtitle { font-size: 14px; color: var(--bp-text-muted); } .system-info-version { padding: 6px 12px; background: var(--bp-accent-soft); color: var(--bp-accent); border-radius: 999px; font-size: 12px; font-weight: 600; } /* Privacy Notes */ .privacy-notes { background: rgba(59, 130, 246, 0.1); border: 1px solid rgba(59, 130, 246, 0.3); border-radius: 12px; padding: 16px; margin-bottom: 24px; } .privacy-notes-title { font-size: 14px; font-weight: 600; color: #3b82f6; margin-bottom: 8px; } .privacy-notes-list { list-style: none; } .privacy-notes-list li { display: flex; align-items: flex-start; gap: 8px; font-size: 13px; color: #60a5fa; margin-bottom: 4px; } .privacy-notes-list li::before { content: "✓"; color: #3b82f6; flex-shrink: 0; } /* Tabs */ .system-info-tabs { display: flex; gap: 16px; border-bottom: 1px solid var(--bp-border); margin-bottom: 24px; } .system-info-tab { padding: 12px 4px; font-size: 14px; font-weight: 500; color: var(--bp-text-muted); cursor: pointer; border-bottom: 2px solid transparent; transition: all 0.2s; background: none; border-top: none; border-left: none; border-right: none; } .system-info-tab:hover { color: var(--bp-text); } .system-info-tab.active { color: var(--bp-primary); border-bottom-color: var(--bp-primary); } /* Tab Content */ .system-info-content { flex: 1; min-height: 400px; } .tab-pane { display: none; } .tab-pane.active { display: block; } /* Features Section */ .features-grid { display: flex; flex-direction: column; gap: 12px; } .feature-card { background: var(--bp-surface-elevated); border: 1px solid var(--bp-border); border-radius: 8px; padding: 16px; } .feature-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; } .feature-name { font-size: 15px; font-weight: 600; color: var(--bp-text); } .feature-status { padding: 2px 8px; border-radius: 999px; font-size: 11px; font-weight: 500; } .feature-status.active { background: rgba(34, 197, 94, 0.15); color: #22c55e; } .feature-status.planned { background: rgba(245, 158, 11, 0.15); color: #f59e0b; } .feature-status.disabled { background: rgba(100, 116, 139, 0.15); color: #64748b; } .feature-description { font-size: 13px; color: var(--bp-text-muted); } /* Architecture Section */ .architecture-diagram { background: var(--bp-surface-elevated); border: 1px solid var(--bp-border); border-radius: 12px; padding: 24px; } .architecture-layer { margin-bottom: 16px; padding: 16px; border-radius: 8px; border: 2px solid; text-align: center; } .architecture-layer-title { font-size: 13px; font-weight: 600; margin-bottom: 8px; } .architecture-components { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; } .architecture-component { padding: 4px 12px; border-radius: 4px; font-size: 12px; font-weight: 500; } .architecture-arrow { text-align: center; color: var(--bp-text-muted); font-size: 20px; margin: 8px 0; } /* Roadmap Section */ .roadmap-phases { display: flex; flex-direction: column; gap: 16px; } .roadmap-phase { background: var(--bp-surface-elevated); border: 1px solid var(--bp-border); border-radius: 8px; padding: 16px; } .roadmap-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; } .roadmap-title { font-size: 15px; font-weight: 600; color: var(--bp-text); } .roadmap-priority { padding: 2px 8px; border-radius: 4px; font-size: 10px; font-weight: 600; text-transform: uppercase; } .roadmap-priority.high { background: rgba(239, 68, 68, 0.15); color: #ef4444; } .roadmap-priority.medium { background: rgba(245, 158, 11, 0.15); color: #f59e0b; } .roadmap-priority.low { background: rgba(59, 130, 246, 0.15); color: #3b82f6; } .roadmap-items { list-style: none; } .roadmap-items li { font-size: 13px; color: var(--bp-text-muted); padding: 4px 0; padding-left: 16px; position: relative; } .roadmap-items li::before { content: "•"; position: absolute; left: 0; color: var(--bp-text-muted); } /* Technical Table */ .technical-table { width: 100%; border-collapse: collapse; background: var(--bp-surface-elevated); border-radius: 8px; overflow: hidden; } .technical-table th, .technical-table td { padding: 12px 16px; text-align: left; font-size: 13px; border-bottom: 1px solid var(--bp-border); } .technical-table th { background: var(--bp-surface); font-weight: 600; color: var(--bp-text-muted); text-transform: uppercase; font-size: 11px; } .technical-table td { color: var(--bp-text); } .technical-table tr:last-child td { border-bottom: none; } /* Audit Section */ .audit-sections { display: flex; flex-direction: column; gap: 16px; } .audit-section { background: var(--bp-surface-elevated); border: 1px solid var(--bp-border); border-radius: 8px; padding: 16px; } .audit-section-title { font-size: 15px; font-weight: 600; color: var(--bp-text); margin-bottom: 12px; display: flex; align-items: center; gap: 8px; } .audit-section-title::before { content: "✓"; display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; background: var(--bp-primary); color: white; border-radius: 50%; font-size: 12px; } .audit-items { display: flex; flex-direction: column; gap: 8px; } .audit-item { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--bp-border-subtle); } .audit-item:last-child { border-bottom: none; } .audit-item-label { font-size: 13px; color: var(--bp-text-muted); } .audit-item-value { font-size: 13px; font-weight: 500; padding: 2px 8px; border-radius: 4px; } .audit-item-value.ok { background: rgba(34, 197, 94, 0.15); color: #22c55e; } .audit-item-value.warning { background: rgba(245, 158, 11, 0.15); color: #f59e0b; } .audit-item-value.critical { background: rgba(239, 68, 68, 0.15); color: #ef4444; } /* Documentation Section */ .documentation-container { background: var(--bp-bg); color: var(--bp-text); padding: 24px; border-radius: 12px; overflow: auto; max-height: 600px; } .documentation-container h2 { font-size: 20px; margin: 24px 0 12px 0; color: var(--bp-text); } .documentation-container h2:first-child { margin-top: 0; } .documentation-container h3 { font-size: 16px; margin: 20px 0 8px 0; color: var(--bp-text); } .documentation-container p { font-size: 14px; line-height: 1.6; margin-bottom: 12px; color: var(--bp-text-muted); } .documentation-container pre { background: var(--bp-surface); padding: 16px; border-radius: 8px; overflow-x: auto; font-size: 12px; font-family: 'Monaco', 'Menlo', monospace; margin: 12px 0; color: var(--bp-text); } .documentation-container ul, .documentation-container ol { margin: 12px 0; padding-left: 24px; } .documentation-container li { font-size: 14px; margin-bottom: 4px; color: var(--bp-text-muted); } .documentation-container table { width: 100%; border-collapse: collapse; margin: 12px 0; } .documentation-container th, .documentation-container td { padding: 8px 12px; border: 1px solid var(--bp-border); text-align: left; font-size: 13px; } .documentation-container th { background: var(--bp-surface); } /* Export Buttons */ .export-buttons { display: flex; justify-content: flex-end; gap: 12px; margin-top: 16px; } """ @staticmethod def get_html() -> str: """HTML fuer das System-Info Panel.""" return """

BreakPilot Studio - System Info

Plattform-Dokumentation und technische Details

Version 2.0

Datenschutz-Hinweise

Features

Arbeitsblaetter-Generator Aktiv

KI-gestuetzte Erstellung von Arbeitsblaettern und Lernmaterialien

Klausurkorrektur Aktiv

Automatische Klausurkorrektur mit OCR und KI-Bewertung

Elternkommunikation Aktiv

Rechtssichere Elternbriefe und Benachrichtigungen

Videokonferenzen Aktiv

Integrierte Jitsi-Videokonferenzen fuer Elterngespraeche

Messenger Aktiv

Sichere Matrix-basierte Kommunikation

Unified Inbox Geplant

Zentrale E-Mail-Verwaltung mit KI-Unterstuetzung

System-Architektur

Frontend (Next.js / Python)
Admin Dashboard Studio UI API Routes
Backend Services
FastAPI Backend Consent Service (Go) Klausur Service
KI & Processing
OpenAI GPT-4o Claude 3.5 vast.ai GPU
Datenbanken
PostgreSQL Qdrant Valkey MinIO

Optimierungs-Roadmap

Phase 1: KI-Erweiterung High
  • Multi-Provider LLM-Unterstuetzung
  • Lokale Modelle mit Ollama
  • RAG-Verbesserungen
  • Automatische Qualitaetspruefung
Phase 2: Collaboration Medium
  • Echtzeit-Zusammenarbeit
  • Kommentar-System
  • Versionskontrolle
  • Team-Workspaces
Phase 3: Analytics Low
  • Nutzungsstatistiken
  • Lernfortschritt-Tracking
  • KI-Insights
  • Reporting-Dashboard

Technische Details

Komponente Technologie Version Beschreibung
Backend FastAPI 0.109+ Python Async API
Consent Service Go + Gin 1.21+ DSGVO-Consent-Verwaltung
Database PostgreSQL 16 Relationale Daten
Vector DB Qdrant 1.12+ RAG & Semantic Search
Cache Valkey 8.x Redis-kompatibel
Storage MinIO Latest S3-kompatibel
KI OpenAI / Anthropic GPT-4o / Claude 3.5 LLM Provider

Audit-relevante Informationen

DSGVO-Compliance

Art. 7 Einwilligung Implementiert
Art. 13/14 Informationspflichten Implementiert
Art. 17 Recht auf Loeschung Implementiert
Art. 20 Datenportabilitaet Implementiert

Technische Sicherheit

Verschluesselung AES-256 at rest
TLS 1.3
Audit-Log Lueckenlos
Backup Taeglich, 30 Tage

Betrieb

Hosting Deutschland (Hetzner)
Uptime SLA > 99.9%
Monitoring 24/7
Penetration Tests Quartalsweise

Vollstaendige Dokumentation

BreakPilot Studio - Plattformdokumentation

1. Uebersicht

BreakPilot Studio ist eine umfassende Plattform fuer Lehrkraefte zur Erstellung von Lernmaterialien, Klausurkorrektur und Elternkommunikation. Die Plattform nutzt modernste KI-Technologie fuer automatisierte Workflows.

2. Module

ModulBeschreibungStatus
ArbeitsblaetterKI-gestuetzte Erstellung von LernmaterialienAktiv
KlausurkorrekturAutomatische Korrektur mit FeedbackAktiv
ElternbriefeRechtssichere KommunikationAktiv
VideokonferenzIntegrierte Jitsi-MeetingsAktiv
MessengerMatrix-basierte KommunikationAktiv
Content CreatorInteraktive LerneinheitenAktiv

3. API-Dokumentation

Die API ist unter /docs (Swagger) und /redoc (ReDoc) dokumentiert.

# Beispiel: Arbeitsblatt generieren
POST /api/worksheets/generate
{
  "topic": "Quadratische Funktionen",
  "grade": 10,
  "difficulty": "medium"
}
        

4. Sicherheit

  • JWT-basierte Authentifizierung
  • Role-Based Access Control (RBAC)
  • Verschluesselte Datenspeicherung
  • Regelmaessige Security-Audits

5. Datenschutz

Alle personenbezogenen Daten werden DSGVO-konform verarbeitet. Details finden sich in der Datenschutzerklaerung.

6. Support

Bei Fragen oder Problemen wenden Sie sich an den Support unter support@breakpilot.de

""" @staticmethod def get_js() -> str: """JavaScript fuer das System-Info Panel.""" return """ // ========================================== // SYSTEM INFO MODULE // ========================================== console.log('System Info Module loaded'); // Tab-Wechsel document.querySelectorAll('.system-info-tab').forEach(tab => { tab.addEventListener('click', function() { const tabId = this.dataset.tab; // Alle Tabs deaktivieren document.querySelectorAll('.system-info-tab').forEach(t => t.classList.remove('active')); document.querySelectorAll('.tab-pane').forEach(p => p.classList.remove('active')); // Ausgewaehlten Tab aktivieren this.classList.add('active'); document.getElementById('tab-' + tabId).classList.add('active'); }); }); // JSON Export function exportSystemInfoJSON() { const data = { title: 'BreakPilot Studio System-Info', version: '2.0', exported_at: new Date().toISOString(), features: [ { name: 'Arbeitsblaetter-Generator', status: 'active' }, { name: 'Klausurkorrektur', status: 'active' }, { name: 'Elternkommunikation', status: 'active' }, { name: 'Videokonferenzen', status: 'active' }, { name: 'Messenger', status: 'active' }, { name: 'Unified Inbox', status: 'planned' } ], technical: [ { component: 'Backend', technology: 'FastAPI', version: '0.109+' }, { component: 'Consent Service', technology: 'Go + Gin', version: '1.21+' }, { component: 'Database', technology: 'PostgreSQL', version: '16' }, { component: 'Vector DB', technology: 'Qdrant', version: '1.12+' }, { component: 'Cache', technology: 'Valkey', version: '8.x' } ] }; const blob = new Blob([JSON.stringify(data, null, 2)], { type: 'application/json' }); const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = 'breakpilot-system-info.json'; a.click(); URL.revokeObjectURL(url); } // Print/PDF function printSystemInfo() { const printWindow = window.open('', '_blank'); if (printWindow) { const docContent = document.querySelector('.documentation-container')?.innerHTML || ''; printWindow.document.write(` BreakPilot Studio - System-Info

BreakPilot Studio - System-Info

Exportiert am: ${new Date().toLocaleString('de-DE')}


${docContent} `); printWindow.document.close(); printWindow.print(); } } // Show System Info Panel function showSystemInfoPanel() { console.log('Showing System Info Panel'); } // Load function for module loader function loadSystemInfoModule() { console.log('System Info Module initialized'); showSystemInfoPanel(); } // Expose globally window.loadSystemInfoModule = loadSystemInfoModule; window.exportSystemInfoJSON = exportSystemInfoJSON; window.printSystemInfo = printSystemInfo; """