Files
Benjamin Boenisch ad111d5e69 Initial commit: breakpilot-core - Shared Infrastructure
Docker Compose with 24+ services:
- PostgreSQL (PostGIS), Valkey, MinIO, Qdrant
- Vault (PKI/TLS), Nginx (Reverse Proxy)
- Backend Core API, Consent Service, Billing Service
- RAG Service, Embedding Service
- Gitea, Woodpecker CI/CD
- Night Scheduler, Health Aggregator
- Jitsi (Web/XMPP/JVB/Jicofo), Mailpit

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 23:47:13 +01:00

172 lines
4.8 KiB
Markdown

# BreakPilot BPMN Prozesse
Dieses Verzeichnis enthaelt die BPMN 2.0 Prozessdefinitionen fuer BreakPilot.
## Prozess-Uebersicht
| Datei | Prozess | Beschreibung | Status |
|-------|---------|--------------|--------|
| `classroom-lesson.bpmn` | Unterrichtsstunde | Phasenbasierte Unterrichtssteuerung | Entwurf |
| `consent-document.bpmn` | Consent-Dokument | DSB-Approval, Publishing, Monitoring | Entwurf |
| `klausur-korrektur.bpmn` | Klausurkorrektur | OCR, AI-Grading, Export | Entwurf |
| `dsr-request.bpmn` | DSR/GDPR | Betroffenenanfragen (Art. 15-20) | Entwurf |
## Verwendung
### Im BPMN Editor laden
1. Navigiere zu http://localhost:3000/admin/workflow oder http://localhost:8000/app (Workflow)
2. Klicke "Oeffnen" und waehle eine .bpmn Datei
3. Bearbeite den Prozess im Editor
4. Speichere und deploye zu Camunda
### In Camunda deployen
```bash
# Camunda starten (falls noch nicht aktiv)
docker compose --profile bpmn up -d camunda
# Prozess deployen via API
curl -X POST http://localhost:8000/api/bpmn/deployment/create \
-F "deployment-name=breakpilot-processes" \
-F "data=@classroom-lesson.bpmn"
```
### Prozess starten
```bash
# Unterrichtsstunde starten
curl -X POST http://localhost:8000/api/bpmn/process-definition/ClassroomLessonProcess/start \
-H "Content-Type: application/json" \
-d '{
"variables": {
"teacherId": {"value": "teacher-123"},
"classId": {"value": "class-7a"},
"subject": {"value": "Mathematik"}
}
}'
```
## Prozess-Details
### 1. Classroom Lesson (classroom-lesson.bpmn)
**Phasen:**
- Einstieg (Motivation, Problemstellung)
- Erarbeitung I (Einzelarbeit, Partnerarbeit, Gruppenarbeit)
- Erarbeitung II (optional)
- Sicherung (Tafel, Digital, Schueler-Praesentation)
- Transfer (Anwendungsaufgaben)
- Reflexion & Abschluss (Hausaufgaben, Notizen)
**Service Tasks:**
- `contentSuggestionDelegate` - Content-Vorschlaege basierend auf Phase
- `lessonProtocolDelegate` - Automatisches Stundenprotokoll
**Timer Events:**
- Phasen-Timer mit Warnungen
---
### 2. Consent Document (consent-document.bpmn)
**Workflow:**
1. Dokument bearbeiten (Autor)
2. DSB-Pruefung (Vier-Augen-Prinzip)
3. Bei Ablehnung: Zurueck an Autor
4. Bei Genehmigung: Veroeffentlichen
5. Benutzer benachrichtigen
6. Consent sammeln mit Deadline-Timer
7. Monitoring-Subprocess fuer jaehrliche Erneuerung
8. Archivierung bei neuer Version
**Service Tasks:**
- `publishConsentDocumentDelegate`
- `notifyUsersDelegate`
- `sendConsentReminderDelegate`
- `checkConsentStatusDelegate`
- `triggerRenewalDelegate`
- `archiveDocumentDelegate`
---
### 3. Klausur Korrektur (klausur-korrektur.bpmn)
**Workflow:**
1. OCR-Verarbeitung der hochgeladenen Klausuren
2. Qualitaets-Check (Confidence >= 85%)
3. Bei schlechter Qualitaet: Manuelle Nachbearbeitung
4. Erwartungshorizont definieren
5. AI-Bewertung mit Claude
6. Lehrer-Review mit Anpassungsmoeglichkeit
7. Noten berechnen (15-Punkte-Skala)
8. Notenbuch aktualisieren
9. Export (PDF, Excel)
10. Optional: Eltern benachrichtigen
11. Archivierung
**Service Tasks:**
- `ocrProcessingDelegate`
- `ocrQualityCheckDelegate`
- `aiGradingDelegate`
- `calculateGradesDelegate`
- `updateGradebookDelegate`
- `generateExportDelegate`
- `notifyParentsDelegate`
- `archiveExamDelegate`
- `deadlineWarningDelegate`
---
### 4. DSR Request (dsr-request.bpmn)
**GDPR Artikel:**
- Art. 15: Recht auf Auskunft (Access)
- Art. 16: Recht auf Berichtigung (Rectification)
- Art. 17: Recht auf Loeschung (Deletion)
- Art. 20: Recht auf Datenuebertragbarkeit (Portability)
**Workflow:**
1. Anfrage validieren
2. Bei ungueltig: Ablehnen
3. Je nach Typ:
- Access: Daten sammeln → Anonymisieren → Review → Export
- Deletion: Identifizieren → Genehmigen → Loeschen → Verifizieren
- Portability: Sammeln → JSON formatieren
- Rectification: Pruefen → Anwenden
4. Betroffenen benachrichtigen
5. Audit Log erstellen
**30-Tage Frist:**
- Timer-Event nach 25 Tagen fuer Eskalation an DSB
**Service Tasks:**
- `validateDSRDelegate`
- `rejectDSRDelegate`
- `collectUserDataDelegate`
- `anonymizeDataDelegate`
- `prepareExportDelegate`
- `identifyUserDataDelegate`
- `executeDataDeletionDelegate`
- `verifyDeletionDelegate`
- `collectPortableDataDelegate`
- `formatPortableDataDelegate`
- `applyRectificationDelegate`
- `notifyDataSubjectDelegate`
- `createAuditLogDelegate`
- `escalateToDSBDelegate`
## Naechste Schritte
1. **Delegates implementieren**: Java/Python Service Tasks
2. **Camunda Connect**: REST-Aufrufe zu Backend-APIs
3. **User Task Forms**: Camunda Forms oder Custom UI
4. **Timer konfigurieren**: Realistische Dauern setzen
5. **Testing**: Prozesse mit Testdaten durchlaufen
## Referenzen
- [Camunda 7 Docs](https://docs.camunda.org/manual/7.21/)
- [BPMN 2.0 Spec](https://www.omg.org/spec/BPMN/2.0/)
- [bpmn-js](https://bpmn.io/toolkit/bpmn-js/)