- Anzeigename, Paketname, Token-Key, DB-/Volume-Namen auf project_good - README Clone-Abschnitt mit git.scarriffle.com/Scarriffle/project-good Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
33 lines
1.8 KiB
Markdown
33 lines
1.8 KiB
Markdown
# Project-Good – 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.
|