'use client' export function TabArchitecture() { return (
{/* Architecture Diagram */} {/* Components */}
{/* Data Flow */}
) } /* ------------------------------------------------------------------ */ function ArchitectureDiagram() { return (

Systemarchitektur

{`β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                          MAGIC HELP ARCHITEKTUR                              β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                             β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚   FRONTEND    β”‚         β”‚    BACKEND       β”‚         β”‚    STORAGE    β”‚  β”‚
β”‚  β”‚   (Next.js)   β”‚         β”‚    (FastAPI)     β”‚         β”‚               β”‚  β”‚
β”‚  β”‚               β”‚         β”‚                  β”‚         β”‚               β”‚  β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚  REST   β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚         β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚  β”‚
β”‚  β”‚  β”‚ Admin   │──┼─────────┼──│ TrOCR      β”‚  β”‚         β”‚  β”‚ Models  β”‚  β”‚  β”‚
β”‚  β”‚  β”‚ Panel   β”‚  β”‚         β”‚  β”‚ Service    │──┼─────────┼──│ (ONNX)  β”‚  β”‚  β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚         β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚         β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚  β”‚
β”‚  β”‚               β”‚         β”‚        β”‚         β”‚         β”‚               β”‚  β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚  WebSocketβ”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚         β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚  β”‚
β”‚  β”‚  β”‚ Lehrer  │──┼─────────┼──│ Klausur    β”‚  β”‚         β”‚  β”‚ LoRA    β”‚  β”‚  β”‚
β”‚  β”‚  β”‚ Portal  β”‚  β”‚         β”‚  β”‚ Processor  │──┼─────────┼──│ Adapter β”‚  β”‚  β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚         β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚         β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚  β”‚
β”‚  β”‚               β”‚         β”‚        β”‚         β”‚         β”‚               β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚         β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚  β”‚
β”‚                            β”‚  β”‚ Pseudo-    β”‚  β”‚         β”‚  β”‚Training β”‚  β”‚  β”‚
β”‚                            β”‚  β”‚ nymizer    │──┼─────────┼──│ Data    β”‚  β”‚  β”‚
β”‚                            β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚         β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚  β”‚
β”‚                            β”‚                  β”‚         β”‚               β”‚  β”‚
β”‚                            β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                     β”‚                                      β”‚
β”‚                                     β”‚ (nur pseudonymisiert)                β”‚
β”‚                                     β–Ό                                      β”‚
β”‚                            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                            β”‚
β”‚                            β”‚  CLOUD LLM       β”‚                            β”‚
β”‚                            β”‚  (SysEleven)     β”‚                            β”‚
β”‚                            β”‚  Namespace-      β”‚                            β”‚
β”‚                            β”‚  Isolation       β”‚                            β”‚
β”‚                            β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                            β”‚
β”‚                                                                             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜`}
        
) } interface ComponentCardProps { icon: string title: string description: string specs: Array<{ label: string; value: string }> } function ComponentCard({ icon, title, description, specs }: ComponentCardProps) { return (

{icon} {title}

{specs.map((spec) => (
{spec.label} {spec.value}
))}

{description}

) } const DATA_FLOW_STEPS = [ { num: 1, color: 'bg-blue-100 text-blue-600', title: 'Lokale Header-Extraktion', desc: 'TrOCR erkennt Schuelernamen, Klasse und Fach direkt im Browser/PWA (offline-faehig)', }, { num: 2, color: 'bg-purple-100 text-purple-600', title: 'Pseudonymisierung', desc: 'Namen werden durch QR-Code Tokens ersetzt, Mapping bleibt lokal', }, { num: 3, color: 'bg-green-100 text-green-600', title: 'Cloud-Korrektur', desc: 'Nur pseudonymisierte Dokument-Tokens werden an die KI gesendet', }, { num: 4, color: 'bg-yellow-100 text-yellow-600', title: 'Re-Identifikation', desc: 'Ergebnisse werden lokal mit dem Mapping wieder den echten Namen zugeordnet', }, ] function DataFlowCard() { return (

Datenfluss

{DATA_FLOW_STEPS.map((step) => (
{step.num}
{step.title}
{step.desc}
))}
) }