# 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/)
