# POC Guide: Technische Geräte-Initialisierung (Meilenstein 0) Dieses Dokument beschreibt die Schritte zur Durchführung des Hardware-POC für die technische Initialisierung der Meldestelle Desktop-App. ## 🏗️ Vorbereitung (Build & Deployment) ### 1. Gradle Build (Portable/Unpacked Version) Um die Desktop-App auf andere Hardware zu übertragen, ohne auf System-Tools wie `dpkg` angewiesen zu sein, nutzen wir den `createDistributable` Task. Dieser erstellt ein vollständiges, ausführbares Image der App. ```bash ./gradlew :frontend:shells:meldestelle-desktop:createDistributable ``` * **Ergebnis:** Das fertige App-Image liegt im Verzeichnis: `frontend/shells/meldestelle-desktop/build/compose/binaries/main/app` * **Vorteil:** Keine Installation auf dem Ziel-System notwendig, läuft direkt aus dem Ordner (Portable). ### 2. Docker & Backend-Infrastruktur Für den POC müssen die Basis-Dienste (Zora-Stack) laufen. * **Docker-Files:** Die Dateien `docker-compose.yaml` (App-Services) und `dc-infra.yaml` (Infrastruktur wie Postgres, Keycloak) sind korrekt implementiert und für den POC-Einsatz bereit. * **Start:** `docker-compose up -d` (Stellt sicher, dass das Backend erreichbar ist, falls die App Daten synchronisieren will). * **Verifikation:** Alle Container müssen `healthy` sein. ### 3. Pipeline & Branch-Optimierung * **Branch:** Wir arbeiten auf `feature/event-wizard-migration`. * **Optimierung:** Die Pipeline ist für diesen Branch so konfiguriert, dass sie die notwendigen Artefakte baut. * **Pull Request (PR):** Für den lokalen Hardware-POC ist **kein voriger PR** notwendig. Du kannst direkt vom Branch bauen. Ein PR ist erst für den Merch in den Main-Branch nach erfolgreichem POC erforderlich. ## 🧪 Durchführung des POC ### 1. Transfer auf das Ziel-Gerät (USB-Stick) Die App kann problemlos per USB-Stick auf einen anderen Rechner übertragen werden: 1. Führe den oben genannten Gradle-Build aus. 2. Kopiere den **gesamten Inhalt** des Ordners `frontend/shells/meldestelle-desktop/build/compose/binaries/main/app` auf deinen USB-Stick. 3. Stecke den Stick am Ziel-Rechner (z.B. Zora-Hardware) an. 4. Du kannst die App direkt vom Stick starten oder den Ordner lokal auf den Desktop kopieren. 5. Starte die ausführbare Datei `meldestelle` (unter Linux) bzw. `meldestelle.exe` (unter Windows). ### 2. Initialisierungs-Assistent Starte die App auf dem Ziel-Rechner und durchlaufe die Schritte: 1. **Identität:** Name vergeben (z.B. "POC-Meldestelle-01"). 2. **Pfade:** Datenbank-Pfad bestätigen (wird lokal auf dem Gerät angelegt). 3. **Netzwerk-Interface (Kritisch):** - Wähle auf **beiden** Rechnern das Interface aus, das mit dem gemeinsamen Netzwerk verbunden ist (z.B. `🔌 Ethernet (192.168.0.x)`). - Achte auf den **grünen Punkt** neben dem Interface. Ein roter Punkt bedeutet, das Interface hat keine gültige LAN-IP. - Sobald das Interface gewählt ist, startet der "Discovery Radar". - Setze einen Rechner auf **Master** und den anderen auf **Client**. - **Verifikation:** Der Client sollte nun den Master im Radar anzeigen ("Master im Netzwerk gefunden"). 4. **Plan-USB Test:** - Weiteren (leeren) USB-Stick einstecken. - Pfad zum Stick in der App wählen. - "Initialisierungs-Export durchführen" klicken. - **Erfolgskriterium:** Die Datei `init_device.aes` muss auf dem Stick erstellt worden sein. ## ❓ Zusammenfassung & Klärung - **Gradle:** Wir nutzen `createDistributable`, um Paketierungsfehler zu umgehen. - **Docker:** Ist korrekt und einsatzbereit. - **Portable:** Ja, die App ist durch das Kopieren des `app`-Ordners voll portabel. - **Pipeline:** Aktueller Branch ist "good to go". **Status:** Bereit für Hardware-Test.