# NetDiag — Diagnose-App (Android) Mobile Netzwerk-Diagnose-App. Erfasst vor Ort beim Kunden (Handy am WLAN oder USB-C→RJ45-Adapter) Geräte, Ports und Messungen und hängt die Protokolle ans Dolibarr-Modul `netdiag` an Kunde und Auftrag. ## Stack SvelteKit 2 · Svelte 5 · Tailwind 4 · Vite 7 · Capacitor 6 · SQLite-Offline ## Entwicklung (Browser) ```bash npm install npm run dev # http://localhost:5175 ``` Im Browser liefert ein **Mock** (`src/lib/scanner.ts`) Beispiel-Scandaten — die Oberfläche lässt sich ohne Gerät entwickeln. API-Aufrufe gehen über den Vite-Proxy an den Dolibarr-Testserver (`192.168.155.11`, siehe `vite.config.ts`). ## Android-Build ```bash npm run build npx cap add android # einmalig # native-plugin/ einbinden -> siehe native-plugin/README.md npx cap sync android npx cap open android ``` Release-APK über CI: Commit mit `[apk]` in der Message → Forgejo baut und lädt die APK in die Package Registry (`netdiag-apk`). Siehe `.forgejo/workflows/build.yml`. ## Architektur ``` src/lib/ api.ts JSON-API-Client (JWT, 401-Refresh, Timeout) auth.svelte.ts Anmelde-Status db.ts Offline-Speicher (SQLite nativ / localStorage Browser) sync.svelte.ts Sync-Queue -> Dolibarr (idempotent über clientUuid) scanner.ts Brücke zum nativen Plugin (+ Browser-Mock) backButton.svelte.ts Hardware-Back (Single-Instance, KB #480/#549) updater.ts APK-Auto-Update-Prüfung (KB #363) tools/ erweiterbare Tool-Plattform index.ts Registry — neues Tool hier eintragen netzwerk/ IP-Scan, Port, Ping, WLAN, DHCP, SNMP, Traceroute, Stress internet/ Durchsatz-Test telefonie/ (folgt: SIP, FreePBX, RTP) src/routes/ login/ auftraege/ kunden/ protokoll/[id]/ einstellungen/ native-plugin/ Kotlin-Plugin NetDiagScanner (+ Integrationsanleitung) ``` ## Neues Tool hinzufügen 1. Datei unter `src/lib/tools//.ts` anlegen, `Tool` implementieren. 2. In `src/lib/tools/index.ts` importieren und in `TOOLS` eintragen. Kein Eingriff in App-Logik, Sync oder Datenbank — das Ergebnis ist generisches JSON. Braucht das Tool eine neue native Messroutine, eine Methode im Kotlin-Plugin ergänzen. ## Bedienung 1. **Anmelden** (Dolibarr-Zugang; auf dem Gerät zusätzlich Server-URL). 2. **Aufträge** — aktive direkt sichtbar, abgeschlossene per Checkbox, Suche. Alternativ über **Kunden** suchen. 3. Auftrag/Kunde antippen → Diagnose-Protokoll öffnet sich. 4. **Werkzeuge** ausführen (IP-Scan füllt die Geräteliste, je Gerät weitere Tools). 5. **Abschließen & synchronisieren** — Protokoll geht ans Dolibarr, PDF landet im ECM. Offline bleibt es lokal und synct automatisch bei Verbindung.