Exponat-Ansichten — Generierte Platzhalter-Grafik — echte Screenshots ersetzen sie.
Überblick
BPMN-Prozesse meist manuell und fehleranfällig zu modellieren. Smart BPMN unterstützt dabei: Es erzeugt Prozessdiagramme aus Textbeschreibungen oder Bildern, erkennt Modellierungsprobleme und schlägt Optimierungen vor. Mehrere Personen können gleichzeitig am selben Diagramm arbeiten — Änderungen verbreiten sich in Echtzeit über WebSockets, mit Redis als Channel-Layer. Ich habe das fünfköpfige Team geführt und zentrale Teile des Backends sowie der Kollaborationsfunktionen umgesetzt.
Was es kann
- BPMN-Diagramm-Generierung aus Text- oder Bildeingabe
- Erkennung von Modellierungsproblemen und Optimierungsvorschläge
- Echtzeit-Kollaboration via Django Channels, WebSockets und Redis
- Versionierung und Diagramm-Freigabe
Zentrale Entscheidungen
- Django Channels mit Redis-Channel-Layer (serviert via Daphne) für Echtzeit-Kollaboration: Diagrammänderungen laufen über WebSockets durch dedizierte Consumer, sodass mehrere Personen gleichzeitig am selben Prozessmodell arbeiten können.
- bpmn-js mit bpmn-moddle im Frontend für standardkonformes BPMN-Rendering, kombiniert mit bpmnlint-Regeln, die Modellierungsprobleme direkt im Editor markieren — KI-Vorschläge bleiben in gültigem BPMN 2.0 geerdet.
- Mehrstufige KI-Pipeline: Textbeschreibungen gehen an die OpenAI-API zur Diagrammgenerierung, hochgeladene Bilder laufen zuerst durch OpenCV-Vorverarbeitung und Tesseract-OCR — organisiert in eigenen Backend-Apps (bpmn, bpmn_error_detection) hinter DRF-Endpunkten.
- Produkt mit Standard-Prozesstemplates gestartet und alles in Docker Compose ausgeliefert (Backend, Frontend, Redis, Postgres), damit ein fünfköpfiges Team ohne Umgebungsdrift entwickeln und demonstrieren konnte.
Schwierigstes Problem
Das schwierigste Problem war, KI-Ausgaben und gleichzeitige Bearbeitungen innerhalb gültigen BPMNs zu halten: Generiertes XML konnte fehlende Elemente referenzieren, und zwei Kollaborateure konnten inkompatible Änderungen verschachteln. Ich habe es auf zwei Ebenen gelöst — serverseitige Validierung und Fehlererkennungs-Logik, die defekte Modelle vor dem Speichern ablehnt oder repariert, plus clientseitiges bpmnlint-Feedback, das Probleme sofort im Editor sichtbar macht. Versionierung und Standard-Templates gaben Nutzern einen sicheren Weg zurück, wenn eine Generierung misslang.
Gelernt
- Die Führung eines fünfköpfigen Teams lehrte mich, Arbeit entlang von App-Grenzen aufzuteilen (Auth, BPMN, Fehlererkennung, Frontend), sodass sich kaum jemand gegenseitig blockierte.
- Echtzeit-Features zwingen dazu, zuerst das Nachrichtenprotokoll zu entwerfen — der Consumer/Routing-Vertrag zählte mehr als jede einzelne UI-Verbesserung.
- KI-Features brauchen Leitplanken, nicht nur Prompts: Validierung und Linting machten aus unvorhersehbarem Modell-Output einen vertrauenswürdigen Modellierungsassistenten.
- Docker Compose wurde zur gemeinsamen Sprache des Teams — ein Befehl für das Gesamtsystem beseitigte eine ganze Klasse von Funktioniert-bei-mir-Diskussionen.