docs: rename and update requirements for native Android app
This commit is contained in:
parent
5d4e139a2f
commit
bc97e4b621
2 changed files with 165 additions and 155 deletions
|
|
@ -1,155 +0,0 @@
|
||||||
# Krisenvorrat Inventar-App – Projektplan
|
|
||||||
|
|
||||||
**Version:** 1.0
|
|
||||||
**Datum:** 2026-05-13
|
|
||||||
**Status:** Planung abgeschlossen, Umsetzung bereit
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 1. Projektziel
|
|
||||||
|
|
||||||
Eine mobile-optimierte Web-App zur Verwaltung eines Krisenvorrats-Inventars. Die App läuft vollständig im Browser (kein App Store, keine Installation), speichert alle Daten in einer einzigen JSON-Datei in OneDrive, und funktioniert autark auf dem Smartphone.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 2. Technischer Stack
|
|
||||||
|
|
||||||
| Komponente | Technologie | Begründung |
|
|
||||||
|---|---|---|
|
|
||||||
| App | Einzelne HTML-Datei (Vanilla JS) | Keine Installation, läuft in jedem Browser |
|
|
||||||
| Datenhaltung | JSON (eine Datei) | Strukturiert, KI-lesbar, kein Redundanz |
|
|
||||||
| Cloud-Sync | Microsoft Graph API (OneDrive) | Autark, später teilbar |
|
|
||||||
| Authentifizierung | OAuth 2.0 (Microsoft) | Einmalig, sicher |
|
|
||||||
| Versionierung | OneDrive Versionsverlauf | Automatisch, kein Git nötig |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 3. Dateistruktur (OneDrive)
|
|
||||||
|
|
||||||
```
|
|
||||||
Krisenvorrat/
|
|
||||||
├── app/
|
|
||||||
│ └── inventory.html ← Die App selbst (einmalig ablegen)
|
|
||||||
└── data/
|
|
||||||
└── inventory.json ← Alle Daten (automatisch von App geschrieben)
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 4. Datenmodell (inventory.json)
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"meta": {
|
|
||||||
"version": "1.0",
|
|
||||||
"lastUpdated": "2026-05-13T00:00:00Z",
|
|
||||||
"persons": 4,
|
|
||||||
"kcalPerPersonPerDay": 2000
|
|
||||||
},
|
|
||||||
"categories": [
|
|
||||||
"Grundnahrungsmittel",
|
|
||||||
"Fette & Öle",
|
|
||||||
"Wasser & Aufbereitung",
|
|
||||||
"Kochen & Energie",
|
|
||||||
"Gesundheit & Hygiene",
|
|
||||||
"Werkzeuge",
|
|
||||||
"Kleidung",
|
|
||||||
"Sonstiges"
|
|
||||||
],
|
|
||||||
"locations": [
|
|
||||||
"Keller",
|
|
||||||
"Küche",
|
|
||||||
"Garage",
|
|
||||||
"Schlafzimmer",
|
|
||||||
"Sonstiges"
|
|
||||||
],
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"id": "uuid",
|
|
||||||
"name": "Weizen",
|
|
||||||
"category": "Grundnahrungsmittel",
|
|
||||||
"quantity": 200,
|
|
||||||
"unit": "kg",
|
|
||||||
"unitPrice": 0.80,
|
|
||||||
"totalPrice": 160.00,
|
|
||||||
"kcalPer100g": 340,
|
|
||||||
"expiryDate": "2028-01-01",
|
|
||||||
"location": "Keller",
|
|
||||||
"minStock": 50,
|
|
||||||
"notes": "",
|
|
||||||
"lastUpdated": "2026-05-13T00:00:00Z"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 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?
|
|
||||||
- [ ] **Mindestbestand-Warnung:** Artikel unterhalb Mindestniveau (rot markiert)
|
|
||||||
- [ ] Gesamtwert des Vorrats
|
|
||||||
|
|
||||||
### 5.3 Datenhaltung
|
|
||||||
- [ ] Beim Start: Prüfen ob inventory.json in OneDrive vorhanden → laden
|
|
||||||
- [ ] Bei jeder Änderung: sofortiges Schreiben nach OneDrive
|
|
||||||
- [ ] Offline-Modus: Änderungen im Speicher halten, beim nächsten Online-Start synchronisieren
|
|
||||||
- [ ] Einmalige Microsoft OAuth-Anmeldung
|
|
||||||
|
|
||||||
### 5.4 Export
|
|
||||||
- [ ] Markdown-Ansicht (zum Kopieren / für KI-Eingabe)
|
|
||||||
- [ ] JSON-Download (Backup)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 6. UI / UX
|
|
||||||
|
|
||||||
- **Plattform:** Android Chrome (Smartphone), optimiert für Touch
|
|
||||||
- **Design:** Klar, funktional, industriell – kein unnötiger Schnickschnack
|
|
||||||
- **Navigation:** Bottom Navigation Bar (Übersicht / Inventur / Warnungen / Einstellungen)
|
|
||||||
- **Eingabe:** Große Touch-Targets, Dropdown für Einheiten/Kategorien/Lagerorte
|
|
||||||
- **Farbschema:** Dunkel (Dunkelgrün / Anthrazit) – Krisenvorrat-Ästhetik, gut lesbar
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 7. Spätere Erweiterungen (nicht in v1.0)
|
|
||||||
|
|
||||||
- Mehrbenutzer / Teilen des OneDrive-Ordners mit Freunden/Netzwerk
|
|
||||||
- Einkaufslisten-Funktion (automatisch aus Mindestbeständen generieren)
|
|
||||||
- Barcode-Scanner für schnelle Erfassung
|
|
||||||
- Foto-Anhänge pro Artikel
|
|
||||||
- Benachrichtigungen bei ablaufenden Artikeln
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 8. Einrichtung (einmalig)
|
|
||||||
|
|
||||||
1. App-Datei (`inventory.html`) herunterladen
|
|
||||||
2. In OneDrive unter `Krisenvorrat/app/` ablegen
|
|
||||||
3. Datei im Browser öffnen (OneDrive → Datei → Im Browser öffnen)
|
|
||||||
4. Microsoft-Anmeldung einmalig bestätigen
|
|
||||||
5. Initialen Inventarstand erfassen
|
|
||||||
6. Fertig – alle Änderungen werden automatisch gespeichert
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 9. Sicherheit & Datenschutz
|
|
||||||
|
|
||||||
- Daten liegen ausschließlich im eigenen OneDrive-Konto
|
|
||||||
- Kein externer Server, keine Telemetrie
|
|
||||||
- OAuth-Token wird nur im Browser-Speicher gehalten (Session)
|
|
||||||
- Zugriff jederzeit über Microsoft-Konto-Einstellungen widerrufbar
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
*Erstellt mit Claude Sonnet 4.6 – 2026-05-13*
|
|
||||||
165
Anforderungen/anforderungen-v1.md
Normal file
165
Anforderungen/anforderungen-v1.md
Normal file
|
|
@ -0,0 +1,165 @@
|
||||||
|
# Krisenvorrat Inventar-App – Anforderungen
|
||||||
|
|
||||||
|
**Version:** 1.0
|
||||||
|
**Datum:** 2026-05-13
|
||||||
|
**Status:** Planung abgeschlossen, Umsetzung bereit
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Projektziel
|
||||||
|
|
||||||
|
Eine native Android-App zur Verwaltung eines Krisenvorrats-Inventars. Die App speichert alle Daten lokal als JSON und ermöglicht späteren Datenaustausch über einen REST-Server. Verteilung erfolgt via APK-Sideloading (kein Google Play Store) – rein privater Gebrauch.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 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 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Datenaustausch (Phase 2 – nicht in v1.0)
|
||||||
|
|
||||||
|
- REST-Server im Internet für Sync/Sharing zwischen Geräten
|
||||||
|
- Während Entwicklung: Server lokal auf Laptop, Testgerät im LAN
|
||||||
|
- Server-Technologie: noch zu entscheiden
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Datenmodell (inventory.json)
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"meta": {
|
||||||
|
"version": "1.0",
|
||||||
|
"lastUpdated": "2026-05-13T00:00:00Z",
|
||||||
|
"persons": 4,
|
||||||
|
"kcalPerPersonPerDay": 2000
|
||||||
|
},
|
||||||
|
"categories": [
|
||||||
|
"Grundnahrungsmittel",
|
||||||
|
"Fette & Öle",
|
||||||
|
"Wasser & Aufbereitung",
|
||||||
|
"Kochen & Energie",
|
||||||
|
"Gesundheit & Hygiene",
|
||||||
|
"Werkzeuge",
|
||||||
|
"Kleidung",
|
||||||
|
"Sonstiges"
|
||||||
|
],
|
||||||
|
"locations": [
|
||||||
|
"Keller",
|
||||||
|
"Küche",
|
||||||
|
"Garage",
|
||||||
|
"Schlafzimmer",
|
||||||
|
"Sonstiges"
|
||||||
|
],
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"id": "uuid",
|
||||||
|
"name": "Weizen",
|
||||||
|
"category": "Grundnahrungsmittel",
|
||||||
|
"quantity": 200,
|
||||||
|
"unit": "kg",
|
||||||
|
"unitPrice": 0.80,
|
||||||
|
"totalPrice": 160.00,
|
||||||
|
"kcalPer100g": 340,
|
||||||
|
"expiryDate": "2028-01-01",
|
||||||
|
"location": "Keller",
|
||||||
|
"minStock": 50,
|
||||||
|
"notes": "",
|
||||||
|
"lastUpdated": "2026-05-13T00:00:00Z"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 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?
|
||||||
|
- [ ] **Mindestbestand-Warnung:** Artikel unterhalb Mindestniveau (rot markiert)
|
||||||
|
- [ ] Gesamtwert des Vorrats
|
||||||
|
|
||||||
|
### 5.3 Datenhaltung
|
||||||
|
- [ ] Beim Start: Lokale JSON-Datei laden (interner App-Speicher)
|
||||||
|
- [ ] Bei jeder Änderung: sofortiges Schreiben in lokale Datei
|
||||||
|
- [ ] Room (SQLite) als primäre Persistenzschicht
|
||||||
|
- [ ] JSON-Export/-Import für Backup und Datenaustausch
|
||||||
|
|
||||||
|
### 5.4 Export
|
||||||
|
- [ ] Markdown-Ansicht (zum Kopieren / für KI-Eingabe, via Share Intent)
|
||||||
|
- [ ] JSON-Export (Backup via Share Intent)
|
||||||
|
- [ ] JSON-Import (Restore aus Datei)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. UI / UX
|
||||||
|
|
||||||
|
- **Plattform:** Native Android-App, optimiert für Smartphone (Touch)
|
||||||
|
- **Design:** Klar, funktional, industriell – Material 3 Komponenten
|
||||||
|
- **Navigation:** Bottom Navigation Bar (Übersicht / Inventur / Warnungen / Einstellungen)
|
||||||
|
- **Eingabe:** Große Touch-Targets, Dropdown für Einheiten/Kategorien/Lagerorte
|
||||||
|
- **Farbschema:** Dark Theme (Dunkelgrün / Anthrazit) – Krisenvorrat-Ästhetik, gut lesbar
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. Spätere Erweiterungen (nicht in v1.0)
|
||||||
|
|
||||||
|
- REST-Server für Datenaustausch/Sync zwischen Geräten
|
||||||
|
- Mehrbenutzer / Teilen des Inventars mit Freunden/Netzwerk
|
||||||
|
- Einkaufslisten-Funktion (automatisch aus Mindestbeständen generieren)
|
||||||
|
- Barcode-Scanner für schnelle Erfassung
|
||||||
|
- Foto-Anhänge pro Artikel
|
||||||
|
- Benachrichtigungen bei ablaufenden Artikeln
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 8. Einrichtung (einmalig)
|
||||||
|
|
||||||
|
1. APK-Datei herunterladen (via Link oder USB)
|
||||||
|
2. Auf Android-Gerät installieren (Sideloading, "Unbekannte Quellen" erlauben)
|
||||||
|
3. App starten, initialen Inventarstand erfassen
|
||||||
|
4. Fertig – alle Änderungen werden lokal gespeichert
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 9. Sicherheit & Datenschutz
|
||||||
|
|
||||||
|
- Alle Daten liegen ausschließlich lokal auf dem Gerät (interner App-Speicher)
|
||||||
|
- Kein externer Server in v1.0, keine Telemetrie
|
||||||
|
- Keine Berechtigungen außer Dateizugriff für Import/Export
|
||||||
|
- Kein Tracking, keine Werbung
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 10. Entwicklungsumgebung
|
||||||
|
|
||||||
|
- **IDE:** VS Code mit Android-Extensions / Android Studio
|
||||||
|
- **Build:** Gradle (Kotlin DSL)
|
||||||
|
- **Test-Gerät:** Android-Smartphone (noch nicht für Entwicklung eingerichtet)
|
||||||
|
- **Deployment:** ADB über USB oder WLAN
|
||||||
|
- **CI:** GitHub Actions (assembleDebug + Unit Tests)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Aktualisiert: 2026-05-13 – Umstellung auf native Android-App*
|
||||||
Loading…
Reference in a new issue