chore: Grobplanung abgeschlossen, Planungs-Tickets #2-#11 angelegt
This commit is contained in:
parent
fbac5fbcaf
commit
cf05c54a42
2 changed files with 27 additions and 25 deletions
12
.github/skills/gh-tickets/next-ticket.ps1
vendored
12
.github/skills/gh-tickets/next-ticket.ps1
vendored
|
|
@ -13,7 +13,7 @@ $repo = "jreinemann-euris/krisenvorrat"
|
|||
|
||||
if ($IssueNumber -gt 0) {
|
||||
# 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 }
|
||||
$type = if ($labels -contains "block-planning") { "[B]" }
|
||||
elseif ($labels -contains "migration") { "[M]" }
|
||||
|
|
@ -27,9 +27,13 @@ if ($IssueNumber -gt 0) {
|
|||
Write-Host "#$($json.number) $type $($json.title)"
|
||||
}
|
||||
else {
|
||||
# Variante B: Nächstes Ticket per Board-Query (serverseitig auf Todo gefiltert)
|
||||
$raw = gh project item-list 2 --owner jreinemann-euris --format json --query "status:Todo" | ConvertFrom-Json
|
||||
$todos = $raw.items | ForEach-Object {
|
||||
# Variante B: Nächstes Ticket per Board-Query (client-seitig auf Todo gefiltert)
|
||||
$raw = gh project item-list 2 --owner jreinemann-euris --format json | ConvertFrom-Json
|
||||
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
|
||||
$prio = if ($labels -contains "priority:high") { 0 }
|
||||
elseif ($labels -contains "priority:low") { 2 }
|
||||
|
|
|
|||
|
|
@ -14,17 +14,17 @@ Eine native Android-App zur Verwaltung eines Krisenvorrats-Inventars. Die App sp
|
|||
|
||||
## 2. Technischer Stack
|
||||
|
||||
| Komponente | Technologie | Begründung |
|
||||
|---|---|---|
|
||||
| Sprache | Kotlin | Moderne Android-Standardsprache |
|
||||
| UI | Jetpack Compose | Deklarativ, aktuelles Android-UI-Framework |
|
||||
| Architektur | MVVM + Clean Architecture | Testbar, wartbar, klar getrennt |
|
||||
| Persistenz | Room (SQLite) | Robuste lokale DB mit Coroutines-Support |
|
||||
| DI | Hilt | Standard-DI für Android |
|
||||
| Async | Kotlin Coroutines + Flow | Reaktive Datenströme |
|
||||
| Datenexport/-import | JSON (kotlinx.serialization) | Strukturiert, KI-lesbar, portabel |
|
||||
| Build | Gradle (Kotlin DSL) | Android-Standard |
|
||||
| Verteilung | APK-Sideloading | Kein Store nötig, privater Gebrauch |
|
||||
| Komponente | Technologie | Begründung |
|
||||
| ------------------- | ---------------------------- | ------------------------------------------ |
|
||||
| Sprache | Kotlin | Moderne Android-Standardsprache |
|
||||
| UI | Jetpack Compose | Deklarativ, aktuelles Android-UI-Framework |
|
||||
| Architektur | MVVM + Clean Architecture | Testbar, wartbar, klar getrennt |
|
||||
| Persistenz | Room (SQLite) | Robuste lokale DB mit Coroutines-Support |
|
||||
| DI | Hilt | Standard-DI für Android |
|
||||
| Async | Kotlin Coroutines + Flow | Reaktive Datenströme |
|
||||
| Datenexport/-import | JSON (kotlinx.serialization) | Strukturiert, KI-lesbar, portabel |
|
||||
| Build | Gradle (Kotlin DSL) | Android-Standard |
|
||||
| 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",
|
||||
"Sonstiges"
|
||||
],
|
||||
"locations": [
|
||||
"Keller",
|
||||
"Küche",
|
||||
"Garage",
|
||||
"Schlafzimmer",
|
||||
"Sonstiges"
|
||||
],
|
||||
"locations": ["Keller", "Küche", "Garage", "Schlafzimmer", "Sonstiges"],
|
||||
"items": [
|
||||
{
|
||||
"id": "uuid",
|
||||
|
|
@ -70,8 +64,8 @@ Eine native Android-App zur Verwaltung eines Krisenvorrats-Inventars. Die App sp
|
|||
"category": "Grundnahrungsmittel",
|
||||
"quantity": 200,
|
||||
"unit": "kg",
|
||||
"unitPrice": 0.80,
|
||||
"totalPrice": 160.00,
|
||||
"unitPrice": 0.8,
|
||||
"totalPrice": 160.0,
|
||||
"kcalPer100g": 340,
|
||||
"expiryDate": "2028-01-01",
|
||||
"location": "Keller",
|
||||
|
|
@ -88,12 +82,14 @@ Eine native Android-App zur Verwaltung eines Krisenvorrats-Inventars. Die App sp
|
|||
## 5. Funktionsumfang – Version 1.0
|
||||
|
||||
### 5.1 Inventarverwaltung
|
||||
|
||||
- [ ] Artikel anlegen (Name, Kategorie, Menge, Einheit, Preis, Lagerort, Ablaufdatum, Mindestbestand)
|
||||
- [ ] Artikel bearbeiten
|
||||
- [ ] Artikel löschen
|
||||
- [ ] Kategorien und Lagerorte verwalten
|
||||
|
||||
### 5.2 Übersichten & Analyse
|
||||
|
||||
- [ ] Gesamtübersicht nach Kategorie
|
||||
- [ ] **Reichweitenrechner:** Automatische Berechnung wie lange Vorrat reicht (basierend auf Personenzahl + kcal/Tag)
|
||||
- [ ] **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
|
||||
|
||||
### 5.3 Datenhaltung
|
||||
|
||||
- [ ] **Room (SQLite) ist die einzige Datenquelle zur Laufzeit**
|
||||
- [ ] Beim ersten Start: leere Datenbank, User erfasst Daten
|
||||
- [ ] Alle Änderungen werden direkt in Room persistiert
|
||||
- [ ] Reactive UI via Coroutines + Flow aus Room
|
||||
|
||||
### 5.4 Import / Export (JSON)
|
||||
|
||||
- [ ] **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
|
||||
- [ ] **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_
|
||||
|
|
|
|||
Loading…
Reference in a new issue