chore: Grobplanung abgeschlossen, Planungs-Tickets #2-#11 angelegt

This commit is contained in:
Jens Reinemann 2026-05-13 14:38:58 +02:00
parent fbac5fbcaf
commit cf05c54a42
2 changed files with 27 additions and 25 deletions

View file

@ -13,7 +13,7 @@ $repo = "jreinemann-euris/krisenvorrat"
if ($IssueNumber -gt 0) { if ($IssueNumber -gt 0) {
# Variante A: Explizite Issue-Nummer # Variante A: Explizite Issue-Nummer
$json = gh issue view $IssueNumber --repo $repo --json number,title,labels | ConvertFrom-Json $json = gh issue view $IssueNumber --repo $repo --json number, title, labels | ConvertFrom-Json
$labels = $json.labels | ForEach-Object { $_.name } $labels = $json.labels | ForEach-Object { $_.name }
$type = if ($labels -contains "block-planning") { "[B]" } $type = if ($labels -contains "block-planning") { "[B]" }
elseif ($labels -contains "migration") { "[M]" } elseif ($labels -contains "migration") { "[M]" }
@ -27,9 +27,13 @@ if ($IssueNumber -gt 0) {
Write-Host "#$($json.number) $type $($json.title)" Write-Host "#$($json.number) $type $($json.title)"
} }
else { else {
# Variante B: Nächstes Ticket per Board-Query (serverseitig auf Todo gefiltert) # Variante B: Nächstes Ticket per Board-Query (client-seitig auf Todo gefiltert)
$raw = gh project item-list 2 --owner jreinemann-euris --format json --query "status:Todo" | ConvertFrom-Json $raw = gh project item-list 2 --owner jreinemann-euris --format json | ConvertFrom-Json
$todos = $raw.items | ForEach-Object { if ($null -eq $raw -or $null -eq $raw.items) {
Write-Host "Keine offenen Tickets gefunden."
return
}
$todos = $raw.items | Where-Object { $_.status -eq "Todo" } | ForEach-Object {
$labels = $_.labels $labels = $_.labels
$prio = if ($labels -contains "priority:high") { 0 } $prio = if ($labels -contains "priority:high") { 0 }
elseif ($labels -contains "priority:low") { 2 } elseif ($labels -contains "priority:low") { 2 }

View file

@ -14,17 +14,17 @@ Eine native Android-App zur Verwaltung eines Krisenvorrats-Inventars. Die App sp
## 2. Technischer Stack ## 2. Technischer Stack
| Komponente | Technologie | Begründung | | Komponente | Technologie | Begründung |
|---|---|---| | ------------------- | ---------------------------- | ------------------------------------------ |
| Sprache | Kotlin | Moderne Android-Standardsprache | | Sprache | Kotlin | Moderne Android-Standardsprache |
| UI | Jetpack Compose | Deklarativ, aktuelles Android-UI-Framework | | UI | Jetpack Compose | Deklarativ, aktuelles Android-UI-Framework |
| Architektur | MVVM + Clean Architecture | Testbar, wartbar, klar getrennt | | Architektur | MVVM + Clean Architecture | Testbar, wartbar, klar getrennt |
| Persistenz | Room (SQLite) | Robuste lokale DB mit Coroutines-Support | | Persistenz | Room (SQLite) | Robuste lokale DB mit Coroutines-Support |
| DI | Hilt | Standard-DI für Android | | DI | Hilt | Standard-DI für Android |
| Async | Kotlin Coroutines + Flow | Reaktive Datenströme | | Async | Kotlin Coroutines + Flow | Reaktive Datenströme |
| Datenexport/-import | JSON (kotlinx.serialization) | Strukturiert, KI-lesbar, portabel | | Datenexport/-import | JSON (kotlinx.serialization) | Strukturiert, KI-lesbar, portabel |
| Build | Gradle (Kotlin DSL) | Android-Standard | | Build | Gradle (Kotlin DSL) | Android-Standard |
| Verteilung | APK-Sideloading | Kein Store nötig, privater Gebrauch | | Verteilung | APK-Sideloading | Kein Store nötig, privater Gebrauch |
--- ---
@ -56,13 +56,7 @@ Eine native Android-App zur Verwaltung eines Krisenvorrats-Inventars. Die App sp
"Kleidung", "Kleidung",
"Sonstiges" "Sonstiges"
], ],
"locations": [ "locations": ["Keller", "Küche", "Garage", "Schlafzimmer", "Sonstiges"],
"Keller",
"Küche",
"Garage",
"Schlafzimmer",
"Sonstiges"
],
"items": [ "items": [
{ {
"id": "uuid", "id": "uuid",
@ -70,8 +64,8 @@ Eine native Android-App zur Verwaltung eines Krisenvorrats-Inventars. Die App sp
"category": "Grundnahrungsmittel", "category": "Grundnahrungsmittel",
"quantity": 200, "quantity": 200,
"unit": "kg", "unit": "kg",
"unitPrice": 0.80, "unitPrice": 0.8,
"totalPrice": 160.00, "totalPrice": 160.0,
"kcalPer100g": 340, "kcalPer100g": 340,
"expiryDate": "2028-01-01", "expiryDate": "2028-01-01",
"location": "Keller", "location": "Keller",
@ -88,12 +82,14 @@ Eine native Android-App zur Verwaltung eines Krisenvorrats-Inventars. Die App sp
## 5. Funktionsumfang Version 1.0 ## 5. Funktionsumfang Version 1.0
### 5.1 Inventarverwaltung ### 5.1 Inventarverwaltung
- [ ] Artikel anlegen (Name, Kategorie, Menge, Einheit, Preis, Lagerort, Ablaufdatum, Mindestbestand) - [ ] Artikel anlegen (Name, Kategorie, Menge, Einheit, Preis, Lagerort, Ablaufdatum, Mindestbestand)
- [ ] Artikel bearbeiten - [ ] Artikel bearbeiten
- [ ] Artikel löschen - [ ] Artikel löschen
- [ ] Kategorien und Lagerorte verwalten - [ ] Kategorien und Lagerorte verwalten
### 5.2 Übersichten & Analyse ### 5.2 Übersichten & Analyse
- [ ] Gesamtübersicht nach Kategorie - [ ] Gesamtübersicht nach Kategorie
- [ ] **Reichweitenrechner:** Automatische Berechnung wie lange Vorrat reicht (basierend auf Personenzahl + kcal/Tag) - [ ] **Reichweitenrechner:** Automatische Berechnung wie lange Vorrat reicht (basierend auf Personenzahl + kcal/Tag)
- [ ] **Ablaufdaten-Warnung:** Was läuft in 6 / 12 Monaten ab? - [ ] **Ablaufdaten-Warnung:** Was läuft in 6 / 12 Monaten ab?
@ -101,12 +97,14 @@ Eine native Android-App zur Verwaltung eines Krisenvorrats-Inventars. Die App sp
- [ ] Gesamtwert des Vorrats - [ ] Gesamtwert des Vorrats
### 5.3 Datenhaltung ### 5.3 Datenhaltung
- [ ] **Room (SQLite) ist die einzige Datenquelle zur Laufzeit** - [ ] **Room (SQLite) ist die einzige Datenquelle zur Laufzeit**
- [ ] Beim ersten Start: leere Datenbank, User erfasst Daten - [ ] Beim ersten Start: leere Datenbank, User erfasst Daten
- [ ] Alle Änderungen werden direkt in Room persistiert - [ ] Alle Änderungen werden direkt in Room persistiert
- [ ] Reactive UI via Coroutines + Flow aus Room - [ ] Reactive UI via Coroutines + Flow aus Room
### 5.4 Import / Export (JSON) ### 5.4 Import / Export (JSON)
- [ ] **JSON-Export:** Gesamtes Inventar als JSON-Datei exportieren (via Share Intent / Datei speichern) - [ ] **JSON-Export:** Gesamtes Inventar als JSON-Datei exportieren (via Share Intent / Datei speichern)
- [ ] **JSON-Import:** Inventar aus JSON-Datei laden (Restore / Datenübernahme), ersetzt oder merged bestehende Daten - [ ] **JSON-Import:** Inventar aus JSON-Datei laden (Restore / Datenübernahme), ersetzt oder merged bestehende Daten
- [ ] **Markdown-Export:** Inventar als Markdown-Text (Copy / Share für KI-Eingabe) - [ ] **Markdown-Export:** Inventar als Markdown-Text (Copy / Share für KI-Eingabe)
@ -162,4 +160,4 @@ Eine native Android-App zur Verwaltung eines Krisenvorrats-Inventars. Die App sp
--- ---
*Aktualisiert: 2026-05-13 Umstellung auf native Android-App* _Aktualisiert: 2026-05-13 Umstellung auf native Android-App_