# BreakPilot Backend API Dokumentation ## Übersicht Base URL: `http://localhost:8000/api` Alle Endpoints erfordern Authentifizierung via JWT im Authorization-Header: ``` Authorization: Bearer ``` --- ## Worksheets API Generiert Lernmaterialien (MC-Tests, Lückentexte, Mindmaps, Quiz). ### POST /worksheets/generate/multiple-choice Generiert Multiple-Choice-Fragen aus Quelltext. **Request Body:** ```json { "source_text": "Der Text, aus dem Fragen generiert werden sollen...", "num_questions": 5, "difficulty": "medium", "topic": "Thema", "subject": "Deutsch" } ``` **Response (200):** ```json { "success": true, "content": { "type": "multiple_choice", "data": { "questions": [ { "question": "Was ist...?", "options": ["A", "B", "C", "D"], "correct": 0, "explanation": "Erklärung..." } ] } } } ``` ### POST /worksheets/generate/cloze Generiert Lückentexte. ### POST /worksheets/generate/mindmap Generiert Mindmap als Mermaid-Diagramm. ### POST /worksheets/generate/quiz Generiert Mix aus verschiedenen Fragetypen. --- ## Corrections API OCR-basierte Klausurkorrektur mit automatischer Bewertung. ### POST /corrections/ Erstellt neue Korrektur-Session. ### POST /corrections/{id}/upload Lädt gescannte Klausur hoch und startet OCR im Hintergrund. ### GET /corrections/{id} Ruft Korrektur-Status ab. **Status-Werte:** - `uploaded` - Datei hochgeladen - `processing` - OCR läuft - `ocr_complete` - OCR fertig - `analyzing` - Analyse läuft - `analyzed` - Analyse abgeschlossen - `completed` - Fertig - `error` - Fehler ### POST /corrections/{id}/analyze Analysiert extrahierten Text und bewertet Antworten. ### GET /corrections/{id}/export-pdf Exportiert korrigierte Arbeit als PDF. --- ## Letters API Elternbriefe mit GFK-Integration und PDF-Export. ### POST /letters/ Erstellt neuen Elternbrief. **letter_type Werte:** - `general` - Allgemeine Information - `halbjahr` - Halbjahresinformation - `fehlzeiten` - Fehlzeiten-Mitteilung - `elternabend` - Einladung Elternabend - `lob` - Positives Feedback - `custom` - Benutzerdefiniert ### POST /letters/improve Verbessert Text nach GFK-Prinzipien. --- ## State Engine API Begleiter-Modus mit Phasen-Management und Antizipation. ### GET /state/dashboard Komplettes Dashboard für Begleiter-Modus. ### GET /state/suggestions Ruft Vorschläge für Lehrer ab. ### POST /state/milestone Schließt Meilenstein ab. --- ## Klausur-Korrektur API (Abitur) Abitur-Klausurkorrektur mit 15-Punkte-System, Erst-/Zweitprüfer-Workflow und KI-gestützter Bewertung. ### Klausur-Modi | Modus | Beschreibung | |-------|--------------| | `landes_abitur` | NiBiS Niedersachsen - rechtlich geklärte Aufgaben | | `vorabitur` | Lehrer-erstellte Klausuren mit Rights-Gate | ### POST /klausur-korrektur/klausuren Erstellt neue Abitur-Klausur. ### POST /klausur-korrektur/students/{id}/evaluate Startet KI-Bewertung. **Response (200):** ```json { "criteria_scores": { "rechtschreibung": {"score": 85, "weight": 0.15}, "grammatik": {"score": 90, "weight": 0.15}, "inhalt": {"score": 75, "weight": 0.40}, "struktur": {"score": 80, "weight": 0.15}, "stil": {"score": 85, "weight": 0.15} }, "raw_points": 80, "grade_points": 11, "grade_label": "2" } ``` ### 15-Punkte-Notenschlüssel | Punkte | Prozent | Note | |--------|---------|------| | 15 | ≥95% | 1+ | | 14 | ≥90% | 1 | | 13 | ≥85% | 1- | | 12 | ≥80% | 2+ | | 11 | ≥75% | 2 | | 10 | ≥70% | 2- | | 9 | ≥65% | 3+ | | 8 | ≥60% | 3 | | 7 | ≥55% | 3- | | 6 | ≥50% | 4+ | | 5 | ≥45% | 4 | | 4 | ≥40% | 4- | | 3 | ≥33% | 5+ | | 2 | ≥27% | 5 | | 1 | ≥20% | 5- | | 0 | <20% | 6 | ### Bewertungskriterien | Kriterium | Gewicht | Beschreibung | |-----------|---------|--------------| | `rechtschreibung` | 15% | Orthografie | | `grammatik` | 15% | Grammatik & Syntax | | `inhalt` | 40% | Inhaltliche Qualität | | `struktur` | 15% | Aufbau & Gliederung | | `stil` | 15% | Ausdruck & Stil | --- ## Security API (DevSecOps Dashboard) API fuer das Security Dashboard mit DevSecOps-Tools Integration. ### GET /v1/security/tools Gibt Status aller DevSecOps-Tools zurueck. ### GET /v1/security/findings Gibt alle Security-Findings zurueck. ### GET /v1/security/sbom Gibt SBOM (Software Bill of Materials) zurueck. ### POST /v1/security/scan/{type} Startet einen Security-Scan. **Path Parameter:** - `type`: Scan-Typ (secrets, sast, deps, containers, sbom, all) --- ## Fehler-Responses ### 400 Bad Request ```json { "detail": "Beschreibung des Fehlers" } ``` ### 401 Unauthorized ```json { "detail": "Not authenticated" } ``` ### 404 Not Found ```json { "detail": "Ressource nicht gefunden" } ``` ### 500 Internal Server Error ```json { "detail": "Interner Serverfehler" } ```