This repository has been archived on 2026-02-15. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
BreakPilot Dev 19855efacc
Some checks failed
Tests / Go Tests (push) Has been cancelled
Tests / Python Tests (push) Has been cancelled
Tests / Integration Tests (push) Has been cancelled
Tests / Go Lint (push) Has been cancelled
Tests / Python Lint (push) Has been cancelled
Tests / Security Scan (push) Has been cancelled
Tests / All Checks Passed (push) Has been cancelled
Security Scanning / Secret Scanning (push) Has been cancelled
Security Scanning / Dependency Vulnerability Scan (push) Has been cancelled
Security Scanning / Go Security Scan (push) Has been cancelled
Security Scanning / Python Security Scan (push) Has been cancelled
Security Scanning / Node.js Security Scan (push) Has been cancelled
Security Scanning / Docker Image Security (push) Has been cancelled
Security Scanning / Security Summary (push) Has been cancelled
CI/CD Pipeline / Go Tests (push) Has been cancelled
CI/CD Pipeline / Python Tests (push) Has been cancelled
CI/CD Pipeline / Website Tests (push) Has been cancelled
CI/CD Pipeline / Linting (push) Has been cancelled
CI/CD Pipeline / Security Scan (push) Has been cancelled
CI/CD Pipeline / Docker Build & Push (push) Has been cancelled
CI/CD Pipeline / Integration Tests (push) Has been cancelled
CI/CD Pipeline / Deploy to Staging (push) Has been cancelled
CI/CD Pipeline / Deploy to Production (push) Has been cancelled
CI/CD Pipeline / CI Summary (push) Has been cancelled
ci/woodpecker/manual/build-ci-image Pipeline was successful
ci/woodpecker/manual/main Pipeline failed
feat: BreakPilot PWA - Full codebase (clean push without large binaries)
All services: admin-v2, studio-v2, website, ai-compliance-sdk,
consent-service, klausur-service, voice-service, and infrastructure.
Large PDFs and compiled binaries excluded via .gitignore.
2026-02-11 13:25:58 +01:00

401 lines
11 KiB
Markdown

# Zeugnis-System Dokumentation
## Übersicht
Das Zeugnis-System ist ein umfassendes Modul für die Verwaltung und Nutzung von Zeugnisverordnungen aller 16 deutschen Bundesländer. Es besteht aus drei Hauptkomponenten:
1. **Rights-Aware Crawler** - Automatische Sammlung von Verordnungen
2. **Training Dashboard** - Steuerung und Überwachung von KI-Trainingsprozessen
3. **Lehrer-Frontend** - Intuitive Benutzeroberfläche für Lehrkräfte
---
## Inhaltsverzeichnis
1. [Architektur](#architektur)
2. [Rights-Aware Crawler](#rights-aware-crawler)
3. [Training Dashboard](#training-dashboard)
4. [Lehrer-Frontend](#lehrer-frontend)
5. [API-Referenz](#api-referenz)
6. [Deployment](#deployment)
---
## Architektur
```
┌─────────────────────────────────────────────────────────────────┐
│ Frontend (Next.js) │
├─────────────────┬─────────────────┬─────────────────────────────┤
│ /admin/training │ /admin/zeugnis │ /zeugnisse (Lehrer) │
│ Dashboard │ Crawler Admin │ Assistent │
└────────┬────────┴────────┬────────┴────────┬────────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────────────────────────────────────────────────────┐
│ API Proxy (/api/admin/...) │
└────────────────────────────┬────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ Klausur-Service (FastAPI, Port 8086) │
├─────────────────┬─────────────────┬─────────────────────────────┤
│ zeugnis_api.py │ zeugnis_ │ zeugnis_models.py │
│ (Endpoints) │ crawler.py │ (Datenmodelle) │
└────────┬────────┴────────┬────────┴────────┬────────────────────┘
│ │ │
▼ ▼ ▼
┌────────────────┐ ┌───────────────┐ ┌───────────────────────────┐
│ PostgreSQL │ │ MinIO │ │ Qdrant │
│ (Metadata) │ │ (Dokumente) │ │ (Vektoren) │
└────────────────┘ └───────────────┘ └───────────────────────────┘
```
---
## Rights-Aware Crawler
### Konzept
Der Rights-Aware Crawler sammelt automatisch Zeugnisverordnungen und respektiert dabei die Urheberrechte:
- **Training erlaubt**: Amtliche Werke nach §5 UrhG
- **Training nicht erlaubt**: Dokumente ohne explizite Lizenzierung
### Bundesländer-Berechtigungen
| Bundesland | Training | Begründung |
|------------|----------|------------|
| Baden-Württemberg | ✅ Ja | Amtliches Werk |
| Bayern | ✅ Ja | Amtliches Werk |
| Berlin | ❌ Nein | Keine Lizenz |
| Brandenburg | ❌ Nein | Keine Lizenz |
| Bremen | ❌ Nein | Eingeschränkt |
| Hamburg | ❌ Nein | Keine Lizenz |
| Hessen | ✅ Ja | Amtliches Werk |
| Mecklenburg-Vorpommern | ❌ Nein | Eingeschränkt |
| Niedersachsen | ✅ Ja | Amtliches Werk |
| Nordrhein-Westfalen | ✅ Ja | Amtliches Werk |
| Rheinland-Pfalz | ✅ Ja | Amtliches Werk |
| Saarland | ❌ Nein | Keine Lizenz |
| Sachsen | ✅ Ja | Amtliches Werk |
| Sachsen-Anhalt | ❌ Nein | Eingeschränkt |
| Schleswig-Holstein | ✅ Ja | Amtliches Werk |
| Thüringen | ✅ Ja | Amtliches Werk |
### Admin-Oberfläche
**URL**: `/admin/zeugnisse-crawler`
#### Features:
- Übersicht aller 16 Bundesländer
- Training-Status pro Bundesland
- Crawler starten/stoppen
- Dokument-Browser
- Audit-Trail
#### Screenshot-Bereiche:
1. **Stats-Karten**: Gesamtdokumente, indexierte Dokumente, Training-erlaubt
2. **Bundesland-Tabelle**: Status, Dokumentanzahl, letzter Crawl
3. **Dokument-Liste**: Filterbar, mit Statusanzeige
### API-Endpunkte
```
GET /api/v1/admin/zeugnis/sources # Alle Bundesländer
POST /api/v1/admin/zeugnis/sources # Neue Quelle
PUT /api/v1/admin/zeugnis/sources/{id}/verify # Lizenz verifizieren
GET /api/v1/admin/zeugnis/crawler/status # Crawler-Status
POST /api/v1/admin/zeugnis/crawler/start # Crawler starten
POST /api/v1/admin/zeugnis/crawler/stop # Crawler stoppen
GET /api/v1/admin/zeugnis/documents # Dokumente abrufen
GET /api/v1/admin/zeugnis/stats # Statistiken
GET /api/v1/admin/zeugnis/audit/events # Audit-Trail
```
---
## Training Dashboard
### Konzept
Das Training Dashboard ermöglicht die vollständige Kontrolle über KI-Trainingsprozesse:
- Echtzeit-Monitoring von Trainingsjobs
- Konfiguration von Hyperparametern
- Visualisierung von Metriken (Loss, Precision, Recall, F1)
- Multi-Bundesland Training
**URL**: `/admin/training`
### Features
#### 1. Übersichtskarten
- Dokumente gesamt / indexiert
- Training-erlaubte Dokumente
- Heute gecrawlt / Fehler
#### 2. Training-Job-Karten
Jeder laufende Job zeigt:
- **Progress Ring**: Visueller Fortschritt (0-100%)
- **Epochen-Fortschritt**: Aktuelle / Gesamt
- **Dokument-Fortschritt**: Verarbeitet / Gesamt
- **Metriken**: Loss, Val Loss, Precision, F1
- **Loss-Chart**: Verlaufsgrafik
#### 3. Datensatz-Übersicht
- Verteilung nach Bundesland (Balkendiagramm)
- Verteilung nach Dokumenttyp
- Training-erlaubte Quote
#### 4. Neues Training starten (Wizard)
**Schritt 1 - Datenauswahl:**
- Checkbox-Grid für Bundesländer
- Nur Training-erlaubte wählbar
- Deaktivierte Anzeige für nicht-erlaubte
**Schritt 2 - Parameter:**
- Batch Size (Standard: 16)
- Learning Rate (Standard: 0.00005)
- Epochen (Standard: 10)
- Warmup Steps (Standard: 500)
- Mixed Precision (FP16) Toggle
**Schritt 3 - Bestätigung:**
- Zusammenfassung aller Einstellungen
- Geschätzte Trainingszeit
- Start-Button
### Training-Kontrolle
| Aktion | Beschreibung |
|--------|--------------|
| Pausieren | Training temporär unterbrechen |
| Fortsetzen | Pausiertes Training fortsetzen |
| Abbrechen | Training beenden (Daten bleiben) |
| Details | Erweiterte Metriken anzeigen |
---
## Lehrer-Frontend
### Konzept
Das Lehrer-Frontend bietet eine intuitive Oberfläche für Lehrkräfte zur Recherche in Zeugnisverordnungen.
**URL**: `/zeugnisse`
### Onboarding-Wizard
Beim ersten Besuch führt ein 4-stufiger Wizard durch die Einrichtung:
#### Schritt 1: Willkommen
- Vorstellung des Assistenten
- Feature-Übersicht (Suche, KI-Antworten, 16 Bundesländer)
#### Schritt 2: Bundesland
- Grid mit allen 16 Bundesländern
- Emoji-Icons für visuelle Zuordnung
- Auswahl speichert bevorzugtes Bundesland
#### Schritt 3: Schulform
- Auswahl der Schulform:
- Grundschule
- Hauptschule
- Realschule
- Gymnasium
- Gesamtschule
- Förderschule
- Berufsschule
#### Schritt 4: Fertig
- Zusammenfassung der Einstellungen
- Option zum Ändern
### Hauptfunktionen
#### Tab 1: Assistent (Chat)
- KI-gestützter Dialog
- Fragen in natürlicher Sprache
- Quellenangaben zu Antworten
- Vorgeschlagene Fragen
#### Tab 2: Suche
- Volltextsuche in Verordnungen
- Letzte Suchen (gespeichert)
- Häufige Fragen als Schnellauswahl
- Relevanz-Score pro Ergebnis
#### Tab 3: Dokumente
- Dokumenten-Browser
- Filterbar nach Bundesland
- Download-Möglichkeit
### Häufige Fragen (vordefiniert)
1. "Wie formuliere ich eine Bemerkung zur Arbeits- und Sozialverhalten?"
2. "Welche Noten dürfen im Zeugnis stehen?"
3. "Wann sind Zeugniskonferenzen durchzuführen?"
4. "Wie gehe ich mit Fehlzeiten um?"
5. "Welche Unterschriften sind erforderlich?"
6. "Wie werden Versetzungsentscheidungen dokumentiert?"
### Benutzereinstellungen
Gespeichert im localStorage:
- Bundesland
- Schulform
- Wizard-Status
- Favoriten
- Letzte Suchen
---
## API-Referenz
### Zeugnis-Crawler API
#### GET /api/v1/admin/zeugnis/sources
Listet alle Bundesland-Quellen.
**Response:**
```json
[
{
"id": "uuid",
"bundesland": "ni",
"name": "Niedersachsen",
"license_type": "gov_statute",
"training_allowed": true,
"verified_by": "admin@example.com",
"verified_at": "2024-01-15T10:00:00Z"
}
]
```
#### POST /api/v1/admin/zeugnis/crawler/start
Startet den Crawler.
**Request:**
```json
{
"bundesland": "ni", // Optional: Nur dieses Bundesland
"priority": 5 // 1-10, Standard: 5
}
```
**Response:**
```json
{
"success": true,
"message": "Crawler started"
}
```
#### GET /api/v1/admin/zeugnis/stats
Holt Statistiken.
**Response:**
```json
{
"total_sources": 16,
"total_documents": 632,
"indexed_documents": 489,
"training_allowed_documents": 423,
"active_crawls": 1,
"per_bundesland": [...]
}
```
---
## Deployment
### Voraussetzungen
- Docker & Docker Compose
- PostgreSQL 16+
- Qdrant 1.12+
- MinIO
### Umgebungsvariablen
```env
# Klausur-Service
QDRANT_URL=http://qdrant:6333
MINIO_ENDPOINT=minio:9000
MINIO_ACCESS_KEY=breakpilot
MINIO_SECRET_KEY=breakpilot123
MINIO_BUCKET=breakpilot-rag
EMBEDDING_BACKEND=local # oder "openai"
# Website
KLAUSUR_SERVICE_URL=http://klausur-service:8086
```
### Docker Compose
```yaml
services:
qdrant:
image: qdrant/qdrant:v1.12.1
minio:
image: minio/minio:latest
klausur-service:
build: ./klausur-service
depends_on:
- qdrant
- minio
```
### Initialisierung
1. Container starten:
```bash
docker-compose up -d
```
2. Datenbank initialisieren:
```bash
curl -X POST http://localhost:8086/api/v1/admin/zeugnis/init
```
3. Crawler starten:
```bash
curl -X POST http://localhost:8086/api/v1/admin/zeugnis/crawler/start
```
4. Frontend öffnen:
- Admin: http://localhost:3000/admin/zeugnisse-crawler
- Training: http://localhost:3000/admin/training
- Lehrer: http://localhost:3000/zeugnisse
---
## Sicherheit
### Datenschutz
- **Audit-Trail**: Alle Zugriffe werden protokolliert
- **DSGVO-Export**: `/api/v1/admin/zeugnis/audit/export`
- **Verschlüsselung**: Sensible Daten in MinIO verschlüsselt
### Rights Management
- Training nur mit expliziter Erlaubnis
- Lizenz-Verifizierung durch Admin
- Quellen-Nachverfolgung für alle Dokumente
---
## Support
Bei Fragen oder Problemen:
- GitHub Issues: https://github.com/...
- E-Mail: support@breakpilot.app