Grobplanung: Krisenvorrat Inventar-App in Arbeitsblöcke zerlegen #1

Closed
opened 2026-05-13 11:54:03 +00:00 by jreinemann-euris · 1 comment
jreinemann-euris commented 2026-05-13 11:54:03 +00:00 (Migrated from github.com)

Ziel

Grobplanung für die Krisenvorrat Inventar-App – Zerlegung des Projektplans in umsetzbare Arbeitsblöcke (Tickets).

Kontext

Basierend auf Anforderungen/anforderungen-v1.md mit folgenden Eckpunkten:

Plattform: Native Android

  • Android-App (Kotlin, Jetpack Compose) statt Web-App
  • Kein Google Play Store – Verteilung via APK-Sideloading (direkter Download-Link oder USB)
  • Keine kommerzielle App, rein privater Gebrauch

Datenhaltung

  • Room (SQLite) ist die einzige Datenquelle zur Laufzeit
  • JSON dient ausschließlich als Import/Export-Format (Backup, Restore, Datenaustausch)
  • Reactive UI via Coroutines + Flow direkt aus Room

Datenaustausch (spätere Phase)

  • REST-Server im Internet für Sync/Sharing zwischen Geräten
  • Während Entwicklung: REST-Server läuft lokal auf dem Entwicklungs-Laptop, Android-Testgerät im selben LAN
  • Server-Technologie: noch zu entscheiden (Tech-Decision-Ticket)

Entwicklungsumgebung

  • Android-Testgerät vorhanden, aber noch nicht für Entwicklung eingerichtet
  • Entwicklung auf Windows-Laptop (VS Code + Android SDK)

Arbeitsblöcke

Block 1: Infrastruktur & Dev-Setup

  • [I] Dev-Umgebung einrichten – Android SDK, Gradle, Emulatorkonfiguration
  • [I] Android-Testgerät vorbereiten – USB-Debugging aktivieren, Developer Options, ADB-Verbindung testen
  • [I] Projekt-Scaffolding – Android-Projekt mit Kotlin, Jetpack Compose, Hilt, Room, Navigation anlegen
  • [I] CI-Pipeline – GitHub Actions für Build + Tests (assembleDebug, Unit Tests)
  • [I] APK-Deployment-Prozess – Build → APK signieren → aufs Testgerät installieren (ADB oder Download-Link)

Block 2: Datenmodell & Persistenz

  • [T] Datenmodell finalisieren – Room-Entities aus Anforderungsdokument ableiten
  • [F] Room-Datenbank – Entities, DAOs, Repository-Schicht für Items, Categories, Locations
  • [F] JSON-Import/Export – kotlinx.serialization, Export aus Room → JSON, Import JSON → Room
  • [X] Persistenz-Tests – Room-Tests, JSON-Roundtrip-Tests

Block 3: Inventarverwaltung (CRUD)

  • [F] Artikelliste – Übersicht aller Artikel, gruppiert nach Kategorie
  • [F] Artikel anlegen – Formular mit allen Feldern (Name, Kategorie, Menge, Einheit, Preis, Lagerort, MHD, Mindestbestand)
  • [F] Artikel bearbeiten & löschen – Bearbeiten-Screen, Löschen mit Bestätigung
  • [F] Kategorien & Lagerorte verwalten – Hinzufügen/Entfernen von Kategorien und Lagerorten

Block 4: Übersichten & Analyse

  • [F] Dashboard / Gesamtübersicht – Zusammenfassung nach Kategorie, Gesamtwert
  • [F] Reichweitenrechner – Automatische Berechnung wie lange Vorrat reicht (Personen × kcal/Tag)
  • [F] Ablaufdaten-Warnung – Artikel die in 6/12 Monaten ablaufen, farblich markiert
  • [F] Mindestbestand-Warnung – Artikel unter Minimum rot markieren

Block 5: UI & Navigation

  • [T] UI/Design-Entscheidungen – Dark Theme (Dunkelgrün/Anthrazit), Material 3 Komponenten
  • [F] Navigation – Bottom Navigation Bar (Übersicht / Inventur / Warnungen / Einstellungen)
  • [F] Einstellungen-Screen – Personenzahl, kcal/Tag, Datenexport/-import

Block 6: Import / Export

  • [F] JSON-Export – Gesamtes Inventar als JSON exportieren (via Share Intent / Datei speichern)
  • [F] JSON-Import – Inventar aus JSON laden (Restore / Datenübernahme)
  • [F] Markdown-Export – Inventar als Markdown-Text (Copy/Share für KI-Eingabe)

Block 7: REST-Server (Phase 2 – nicht in v1.0)

  • [T] Server-Technologie wählen – Ktor vs. Spring Boot vs. Node.js etc.
  • [P] REST-API definieren – Endpoints für Sync, Authentifizierung
  • [F] Server implementieren – Lokaler Dev-Server im LAN
  • [F] App-seitige Sync-Anbindung – REST-Client in der App

Ergebnis

Aus dieser Grobplanung entstehen die konkreten [P]-, [T]-, [F]-, [I]- und [X]-Tickets für die Umsetzung.

## Ziel Grobplanung für die Krisenvorrat Inventar-App – Zerlegung des Projektplans in umsetzbare Arbeitsblöcke (Tickets). ## Kontext Basierend auf `Anforderungen/anforderungen-v1.md` mit folgenden Eckpunkten: ### Plattform: Native Android - **Android-App** (Kotlin, Jetpack Compose) statt Web-App - **Kein Google Play Store** – Verteilung via APK-Sideloading (direkter Download-Link oder USB) - Keine kommerzielle App, rein privater Gebrauch ### Datenhaltung - **Room (SQLite) ist die einzige Datenquelle zur Laufzeit** - JSON dient ausschließlich als Import/Export-Format (Backup, Restore, Datenaustausch) - Reactive UI via Coroutines + Flow direkt aus Room ### Datenaustausch (spätere Phase) - **REST-Server** im Internet für Sync/Sharing zwischen Geräten - Während Entwicklung: REST-Server läuft lokal auf dem Entwicklungs-Laptop, Android-Testgerät im selben LAN - Server-Technologie: noch zu entscheiden (Tech-Decision-Ticket) ### Entwicklungsumgebung - Android-Testgerät vorhanden, aber noch nicht für Entwicklung eingerichtet - Entwicklung auf Windows-Laptop (VS Code + Android SDK) --- ## Arbeitsblöcke ### Block 1: Infrastruktur & Dev-Setup - [ ] **[I] Dev-Umgebung einrichten** – Android SDK, Gradle, Emulatorkonfiguration - [ ] **[I] Android-Testgerät vorbereiten** – USB-Debugging aktivieren, Developer Options, ADB-Verbindung testen - [ ] **[I] Projekt-Scaffolding** – Android-Projekt mit Kotlin, Jetpack Compose, Hilt, Room, Navigation anlegen - [ ] **[I] CI-Pipeline** – GitHub Actions für Build + Tests (assembleDebug, Unit Tests) - [ ] **[I] APK-Deployment-Prozess** – Build → APK signieren → aufs Testgerät installieren (ADB oder Download-Link) ### Block 2: Datenmodell & Persistenz - [ ] **[T] Datenmodell finalisieren** – Room-Entities aus Anforderungsdokument ableiten - [ ] **[F] Room-Datenbank** – Entities, DAOs, Repository-Schicht für Items, Categories, Locations - [ ] **[F] JSON-Import/Export** – kotlinx.serialization, Export aus Room → JSON, Import JSON → Room - [ ] **[X] Persistenz-Tests** – Room-Tests, JSON-Roundtrip-Tests ### Block 3: Inventarverwaltung (CRUD) - [ ] **[F] Artikelliste** – Übersicht aller Artikel, gruppiert nach Kategorie - [ ] **[F] Artikel anlegen** – Formular mit allen Feldern (Name, Kategorie, Menge, Einheit, Preis, Lagerort, MHD, Mindestbestand) - [ ] **[F] Artikel bearbeiten & löschen** – Bearbeiten-Screen, Löschen mit Bestätigung - [ ] **[F] Kategorien & Lagerorte verwalten** – Hinzufügen/Entfernen von Kategorien und Lagerorten ### Block 4: Übersichten & Analyse - [ ] **[F] Dashboard / Gesamtübersicht** – Zusammenfassung nach Kategorie, Gesamtwert - [ ] **[F] Reichweitenrechner** – Automatische Berechnung wie lange Vorrat reicht (Personen × kcal/Tag) - [ ] **[F] Ablaufdaten-Warnung** – Artikel die in 6/12 Monaten ablaufen, farblich markiert - [ ] **[F] Mindestbestand-Warnung** – Artikel unter Minimum rot markieren ### Block 5: UI & Navigation - [ ] **[T] UI/Design-Entscheidungen** – Dark Theme (Dunkelgrün/Anthrazit), Material 3 Komponenten - [ ] **[F] Navigation** – Bottom Navigation Bar (Übersicht / Inventur / Warnungen / Einstellungen) - [ ] **[F] Einstellungen-Screen** – Personenzahl, kcal/Tag, Datenexport/-import ### Block 6: Import / Export - [ ] **[F] JSON-Export** – Gesamtes Inventar als JSON exportieren (via Share Intent / Datei speichern) - [ ] **[F] JSON-Import** – Inventar aus JSON laden (Restore / Datenübernahme) - [ ] **[F] Markdown-Export** – Inventar als Markdown-Text (Copy/Share für KI-Eingabe) ### Block 7: REST-Server (Phase 2 – nicht in v1.0) - [ ] **[T] Server-Technologie wählen** – Ktor vs. Spring Boot vs. Node.js etc. - [ ] **[P] REST-API definieren** – Endpoints für Sync, Authentifizierung - [ ] **[F] Server implementieren** – Lokaler Dev-Server im LAN - [ ] **[F] App-seitige Sync-Anbindung** – REST-Client in der App --- ## Ergebnis Aus dieser Grobplanung entstehen die konkreten [P]-, [T]-, [F]-, [I]- und [X]-Tickets für die Umsetzung.
jreinemann-euris commented 2026-05-13 12:26:44 +00:00 (Migrated from github.com)

Grobplanung abgeschlossen

Folgende Tickets wurden aus dieser Grobplanung erstellt:

Tech-Decisions

# Titel Order
#2 Datenmodell finalisieren 20
#3 UI/Design-Entscheidungen 30

Planning (v1.0)

# Titel Order
#4 Block 1: Infrastruktur & Dev-Setup 40
#5 Block 2: Datenmodell & Persistenz 50
#6 Block 3: Inventarverwaltung (CRUD) 60
#7 Block 4: Übersichten & Analyse 70
#8 Block 5: UI & Navigation 80
#9 Block 6: Import/Export (Share Intent) 90

Phase 2 (Backlog)

# Titel Order
#10 Server-Technologie wählen 200
#11 Block 7: REST-Server & Sync 210
## Grobplanung abgeschlossen Folgende Tickets wurden aus dieser Grobplanung erstellt: ### Tech-Decisions | # | Titel | Order | |---|---|---| | #2 | Datenmodell finalisieren | 20 | | #3 | UI/Design-Entscheidungen | 30 | ### Planning (v1.0) | # | Titel | Order | |---|---|---| | #4 | Block 1: Infrastruktur & Dev-Setup | 40 | | #5 | Block 2: Datenmodell & Persistenz | 50 | | #6 | Block 3: Inventarverwaltung (CRUD) | 60 | | #7 | Block 4: Übersichten & Analyse | 70 | | #8 | Block 5: UI & Navigation | 80 | | #9 | Block 6: Import/Export (Share Intent) | 90 | ### Phase 2 (Backlog) | # | Titel | Order | |---|---|---| | #10 | Server-Technologie wählen | 200 | | #11 | Block 7: REST-Server & Sync | 210 |
Sign in to join this conversation.
No description provided.