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>
This commit is contained in:
171
bpmn-processes/README.md
Normal file
171
bpmn-processes/README.md
Normal file
@@ -0,0 +1,171 @@
|
||||
# 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/)
|
||||
Reference in New Issue
Block a user