Schritt 1: Fundament der Lebensmittel-Lagerverwaltung (Pantry)
Backend (FastAPI + PostgreSQL): Chargen mit MHD, FEFO-Auslagern, Einheiten-Umrechnung (Stueck/g/ml + Packungen), Open-Food-Facts-Lookup mit lokalem Fallback, JWT-Auth mit Rollen (Admin/Nutzer), erster Admin beim Setup, Einkaufsliste, Ablaufwarnung, Lagerorte, pytest fuer FEFO. Web-UI (React/Vite): Login, Dashboard, Ein-/Auslagern, Produkte, Lagerorte, Benutzerverwaltung, Einkaufsliste - rollenabhaengig. Deploy: docker-compose + install.sh (Docker-Autoinstall, Secrets), README und Roadmap fuer Schritt 2 (iOS) und Schritt 3. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
32
docs/ROADMAP.md
Normal file
32
docs/ROADMAP.md
Normal file
@@ -0,0 +1,32 @@
|
||||
# Pantry – Roadmap
|
||||
|
||||
Selfhostbare Lebensmittel-Lagerverwaltung. Aufbau in mehreren Schritten.
|
||||
|
||||
## Schritt 1 – Fundament ✅ (dieser Stand)
|
||||
- Backend (FastAPI + PostgreSQL): Datenmodell, Auth mit Rollen, FEFO-Auslagern,
|
||||
Einheiten-Umrechnung, Open-Food-Facts-Lookup mit lokalem Fallback.
|
||||
- Web-UI (React/Vite): Login, Dashboard, Ein-/Auslagern, Produkte, Lagerorte,
|
||||
Benutzerverwaltung, Einkaufsliste – rollenabhängig.
|
||||
- Deployment: Docker Compose + `install.sh`, erster Admin beim Setup.
|
||||
- Tests: pytest für FEFO-Abbuchung und Einheiten-Umrechnung.
|
||||
|
||||
## Schritt 2 – Native iOS-App (SwiftUI)
|
||||
- Login (Server-URL + Passwort, Token im Keychain).
|
||||
- Barcode-Scan (VisionKit / AVFoundation).
|
||||
- Einlagern-Flow: scannen → Lookup/Vorbefüllung → Menge + Einheit + MHD → speichern.
|
||||
- Auslagern-Flow: scannen → Menge/Einheit (ganz oder Teilmenge g/l) → FEFO.
|
||||
- Einkaufsliste- und „bald ablaufend“-Ansicht.
|
||||
- Optional: unbekannte Produkte direkt in der App anlegen.
|
||||
|
||||
## Schritt 3 – Fortgeschrittene Features
|
||||
- **Gruppen-Intelligenz:** Produkt beim Einlagern automatisch einer Gruppe zuordnen
|
||||
(Ableitung aus OFF-Kategorie), manuell korrigierbar.
|
||||
- **Mindestbestände auf Gruppen** (z. B. „Nudeln“ gesamt), nicht nur einzelne Produkte.
|
||||
(DB-Spalte `groups.min_stock` ist bereits vorbereitet.)
|
||||
- **Unterlagerorte** (Regal xy / Fach xy). (DB-Spalte `locations.parent_id` vorbereitet.)
|
||||
- **Einheiten-Umwandlung nachträglich** (Packung ↔ g/l) komfortabel in Web + App.
|
||||
- **Ablauf-Push-Benachrichtigungen** via APNs.
|
||||
- **Produktbilder** aus OFF anzeigen (Web + App) + lokaler Bild-Cache.
|
||||
- **Einkaufsliste verfeinern:** Mengenvorschläge, manuelle Ergänzungen, Abhaken/Erledigen.
|
||||
- **Bewegungsverlauf/Statistik** (wer/was wann ein-/ausgelagert) – Tabelle `movements`
|
||||
wird bereits befüllt, es fehlt nur die Ansicht.
|
||||
Reference in New Issue
Block a user