docs(c4): migrate architecture diagrams to draw.io and refine container/workflow visualizations
- Replaced outdated `.puml` and `.mermaid` diagrams with modernized `.drawio` versions for enhanced clarity. - Added `container_diagram.drawio` to depict offline-first architecture and backend synchronization workflow. - Introduced `workflow_turnieranlage.drawio` to visualize the tournament creation process (3-step wizard). - Archived legacy diagrams under `docs/01_Architecture/_archive` for reference.
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
<mxfile host="Electron" modified="2026-04-07T12:00:00.000Z" agent="Lead Architect" version="21.0.0" type="device">
|
||||
<diagram id="c4-container" name="C4 Container Diagram">
|
||||
<mxGraphModel dx="1200" dy="800" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
|
||||
<mxCell id="user" value="Veranstalter / Meldestelle" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="40" y="240" width="30" height="60" as="geometry" />
|
||||
</mxCell>
|
||||
|
||||
<!-- KMP Desktop App Container -->
|
||||
<mxCell id="container_app" value="<b>Desktop-Anwendung (Offline-First)</b><br><i>Kotlin, Compose Multiplatform</i><br><br>Bietet die gesamte Meldestellen-Oberfläche, offline-fähig." style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;verticalAlign=top;align=left;spacingTop=4;spacingLeft=8;" vertex="1" parent="1">
|
||||
<mxGeometry x="160" y="200" width="280" height="120" as="geometry" />
|
||||
</mxCell>
|
||||
|
||||
<!-- Local DB -->
|
||||
<mxCell id="db_local" value="<b>Lokale Datenbank</b><br><i>SQLite / Room</i><br><br>Speichert alle Turniere, Nennungen lokal für den Offline-Betrieb." style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;fillColor=#ffe6cc;strokeColor=#d79b00;align=left;spacingTop=4;spacingLeft=8;" vertex="1" parent="1">
|
||||
<mxGeometry x="200" y="400" width="200" height="100" as="geometry" />
|
||||
</mxCell>
|
||||
|
||||
<!-- Backend System Boundary -->
|
||||
<mxCell id="system_backend" value="Cloud Backend / API" style="swimlane;whiteSpace=wrap;html=1;startSize=30;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" vertex="1" parent="1">
|
||||
<mxGeometry x="600" y="80" width="360" height="460" as="geometry" />
|
||||
</mxCell>
|
||||
|
||||
<!-- Backend Containers -->
|
||||
<mxCell id="container_api" value="<b>REST API Services</b><br><i>Ktor / Spring Boot</i><br><br>Bietet die Synchronisations-Schnittstellen für die Desktop-App." style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;verticalAlign=top;align=left;spacingTop=4;spacingLeft=8;" vertex="1" parent="system_backend">
|
||||
<mxGeometry x="40" y="60" width="280" height="120" as="geometry" />
|
||||
</mxCell>
|
||||
|
||||
<!-- Remote DB -->
|
||||
<mxCell id="db_remote" value="<b>Zentrale Datenbank</b><br><i>PostgreSQL</i><br><br>Speichert alle Mandanten und Stammdaten." style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;fillColor=#ffe6cc;strokeColor=#d79b00;align=left;spacingTop=4;spacingLeft=8;" vertex="1" parent="system_backend">
|
||||
<mxGeometry x="80" y="260" width="200" height="100" as="geometry" />
|
||||
</mxCell>
|
||||
|
||||
<!-- External -->
|
||||
<mxCell id="ext_zns" value="<b>ZNS (OEPS)</b><br><br>Externe Stammdaten (ZIP) und Nennungen (DAT)." style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;verticalAlign=top;align=left;spacingTop=4;spacingLeft=8;" vertex="1" parent="1">
|
||||
<mxGeometry x="1040" y="140" width="200" height="100" as="geometry" />
|
||||
</mxCell>
|
||||
|
||||
<!-- Edges -->
|
||||
<mxCell id="e_user_app" value="nutzt" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=0.5;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="user" target="container_app">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="e_app_local" value="liest/schreibt" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="container_app" target="db_local">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="e_app_api" value="synchronisiert via HTTPS" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="container_app" target="container_api">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="e_api_db" value="liest/schreibt" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="system_backend" source="container_api" target="db_remote">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="e_zns_app" value="Upload (ZIP/DAT)" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=1;entryY=0.25;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="ext_zns" target="container_app">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
@@ -0,0 +1,34 @@
|
||||
<mxfile host="Electron" modified="2026-04-07T12:00:00.000Z" agent="Lead Architect" version="21.0.0" type="device">
|
||||
<diagram id="workflow" name="Workflow Turnieranlage">
|
||||
<mxGraphModel dx="1200" dy="800" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
|
||||
<!-- Step 1 -->
|
||||
<mxCell id="step1" value="<b>Schritt 1: Veranstaltung</b><br><br>1. Stammdaten (Name, Ort, Datum)<br>2. ZNS.zip Upload (Reiter/Pferde)<br>3. Austragungsplätze anlegen<br>4. Preisliste (Artikel) anlegen" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;verticalAlign=top;align=left;spacingTop=4;spacingLeft=8;" vertex="1" parent="1">
|
||||
<mxGeometry x="80" y="80" width="240" height="120" as="geometry" />
|
||||
</mxCell>
|
||||
|
||||
<!-- Step 2 -->
|
||||
<mxCell id="step2" value="<b>Schritt 2: Turnier(e)</b><br><br>1. Turnier-Nr (26128) &amp; Reglement<br>2. Sparte &amp; Kategorie (CSN-C)<br>3. Turnierbeauftragter (TB) wählen<br>4. Nennschluss &amp; Gebühren" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;verticalAlign=top;align=left;spacingTop=4;spacingLeft=8;" vertex="1" parent="1">
|
||||
<mxGeometry x="400" y="80" width="240" height="120" as="geometry" />
|
||||
</mxCell>
|
||||
|
||||
<!-- Step 3 -->
|
||||
<mxCell id="step3" value="<b>Schritt 3: Bewerbe</b><br><br>1. Identifikation (Klasse, Aufgabe)<br>2. Finanzen (Startgeld, Preisgeld)<br>3. Zeitplan (Platz, Dauer, Umbau)<br>4. Richter-Zuweisung<br>5. Teilungsregel (z.B. NACH_LIZENZ)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;verticalAlign=top;align=left;spacingTop=4;spacingLeft=8;" vertex="1" parent="1">
|
||||
<mxGeometry x="720" y="80" width="240" height="140" as="geometry" />
|
||||
</mxCell>
|
||||
|
||||
<!-- Edges -->
|
||||
<mxCell id="edge1" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="step1" target="step2">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="edge2" value="1..N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="step2" target="step3">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
Reference in New Issue
Block a user