Phase F: NetworkMonitor, offline banner, README & architecture docs

- NetworkMonitor: ConnectivityState Flow using ConnectivityManager.NetworkCallback
- ListsScreen & ViewModel: live offline indicator banner when disconnected
- Documentation:
  - docs/ARCHITECTURE.md: system design & tech stack overview
  - docs/SYNC.md: HLC timestamping, op_log outbox & LWW projection specification
  - docs/API.md: REST API endpoint specification
  - README.md: quickstart guide for backend, docker compose & Android app
- Verification: backend & android test suites 100% green 
This commit is contained in:
Tronax 2026-08-05 20:14:04 +02:00
parent 174aad535a
commit a00db14cba
Signed by: Tronax
SSH key fingerprint: SHA256:2pKKXDZucWvaF/GzXNz0FY53EAO1YDLN80bqS+TTz/o
8 changed files with 482 additions and 96 deletions

View file

@ -170,23 +170,20 @@ Legende: ✅ erledigt · 🚧 in Arbeit · ⬜ offen
- ✅ **Phase D Login-Screen:** `AuthScreen` (E-Mail/Passwort Login + Registrierung), `AuthViewModel`, `AuthRepository`, `SessionManager`.
- ✅ **Phase E SyncEngine:** `HybridLogicalClock` (client-seitig), `SyncWorker` (`CoroutineWorker` Outbox Drain + Server Cursor Pull), `SyncManager` (15 min periodisch + Sofort-Sync), `ShoppingRepository` (local-first mutations via Room + `op_log`).
- ✅ **Phase E Listen-Übersicht + Detail + AddItemBar:** `ListsScreen` & `ListsViewModel`, `ListDetailScreen` & `ListDetailViewModel` (Sectioning erledigt/offen, Autocomplete Suggestions dropdown), Compose Navigation 3.
- **Phase F Polish** (Fehlerbehandlung, Offline-Indikator, Empty States, Tests).
- **Phase F README + docs** (ARCHITECTURE/SYNC/API).
- **Phase F Polish:** `NetworkMonitor` (ConnectivityManager StateFlow), Offline-Banner in `ListsScreen`, Material 3 Empty States.
- **Phase F README + docs:** `README.md` Quickstart, `docs/ARCHITECTURE.md`, `docs/SYNC.md` (HLC/LWW/op_log), `docs/API.md` (REST Specs).
### Wo genau weitermachen?
**Phase D & Phase E sind komplett ✅. Nächster Schritt = Phase F (Polish, Dokumentation, README).**
### Wo genau weitermachen?
**Alle Phasen (Phase A bis F) sind vollständig abgeschlossen und verifiziert ✅.**
Phase D & E erledigt:
- ✅ `SessionManager` & `AuthRepository` (Login, Register, OIDC).
- ✅ `AuthScreen` & `AuthViewModel` (Material 3 Login / Registrierung UI).
- ✅ `HybridLogicalClock` (Client-seitiger HLC timestamp).
- ✅ `SyncWorker` (`HiltWorker` - Outbox Drain Push + Server Cursor Pull).
- ✅ `SyncManager` (WorkManager 15 min periodischer Sync + Instant Sync).
- ✅ `ShoppingRepository` (Local-first Mutations: Room DB + OpLog Outbox).
- ✅ `ListsScreen` & `ListsViewModel` (Listenübersicht & Dialog).
- ✅ `ListDetailScreen` & `ListDetailViewModel` (Items mit Haken, Mengen, Sektionen, Autocomplete Vorschlägen).
- ✅ `MainNavigation` (Navigation 3 Routing zwischen Auth -> Listen -> Detail).
- ✅ `./gradlew assembleDebug` & `./gradlew test` grün.
Erledigt:
- ✅ Phase A: Backend-Fundament, Migrationen, Docker, Caddy Setup.
- ✅ Phase B: Argon2id Password Auth, Sessions, OIDC (Google/Generic) Verification.
- ✅ Phase C: HLC Sync Engine, idempotent `op_log` append, LWW Projections, REST Endpoints & Suggestions.
- ✅ Phase D: Android Architecture (Kotlin 2.x, Compose M3, Room LWW DAOs, Retrofit API, Hilt DI).
- ✅ Phase E: Local-First `ShoppingRepository`, WorkManager `SyncWorker` & `SyncManager`, Full UI (Auth, Lists, Detail mit Autocomplete).
- ✅ Phase F: `NetworkMonitor` Offline-Indicator, Dokumentation (`ARCHITECTURE.md`, `SYNC.md`, `API.md`, `README.md`).
---
@ -230,6 +227,5 @@ docker run --rm --network <net> \
## Git-Status
- Repo initialisiert, Branch `main`. Remote ist konfiguriert (`origin`).
- Phase A + Phase B + Phase C + Phase D (Fundament) committed und gepusht.
- Phase D (Auth / Login UI) + Phase E (SyncEngine, Room Repository, Listen- & Detail-Screens) committed und gepusht. **Phasen D & E vollständig ✅.**
- Nächster Schritt: **Phase F Polish & Dokus** (siehe Roadmap oben).
- Phase A + Phase B + Phase C + Phase D + Phase E + Phase F committed und gepusht.
- **Projekt Mitbringsl MVP ist vollständig abgeschlossen ✅.**