From a7ded020153bbe04453f54bfbeb91980c5a96665 Mon Sep 17 00:00:00 2001 From: Nick Szaunig Date: Sat, 22 Aug 2026 10:47:31 +0200 Subject: [PATCH] docs(tasks): v1.x/Spaeter-Roadmap gemaess Lastenheft Abschnitt 26 Module 22-33 (SOLL) mit Backend/Endpunkte/Frontend/Checkbox-Struktur analog zum MVP spezifiziert. Spaeter-Liste (KANN) in software-seitig umsetzbare Punkte und explizit nicht umsetzbare (native App, ML, Sprach-/Sensorintegration) mit Begruendung aufgeteilt. --- TASKS.md | 144 +++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 124 insertions(+), 20 deletions(-) diff --git a/TASKS.md b/TASKS.md index 8b11d7c..cca83d1 100644 --- a/TASKS.md +++ b/TASKS.md @@ -163,29 +163,133 @@ Abgeleitet aus [`docs/lastenheft.md`](docs/lastenheft.md) Abschnitt 26. Reihenfo - [x] Rückverfolgbarkeitskette Volk → Durchsicht → Behandlung → Ernte → Schleuderung → Honigcharge → Lager end-to-end manuell verifiziert - [x] Alle Erfolgskriterien aus Abschnitt 30 stichprobenartig beantwortbar -## v1.x (SOLL) +## v1.x (SOLL) – Abschnitt 26, Liste 2 -- [ ] QR-Code-System (Abschnitt 4.23): Generierung + Scan-Landing pro Objekt -- [ ] Abfüllchargen (Abschnitt 4.19): `BottlingBatchesModule`, `ProductsModule` -- [ ] Detailliertes Inventar (Abschnitt 4.22): `EquipmentModule` -- [ ] Kalender (Abschnitt 4.25) -- [ ] Benachrichtigungssystem mit Prioritäten (Abschnitt 24) -- [ ] Umfangreiche Statistiken/Reporting (Abschnitt 4.26) -- [ ] Webhooks (Abschnitt 9): `WebhooksModule`, Events wie in Lastenheft gelistet -- [ ] Fotoverwaltung / Dokumente (Abschnitt 4.24): `DocumentsModule` + Objektspeicher -- [ ] Automatische Folgeaufgaben / Automatisierungsregeln (Abschnitt 23) -- [ ] Königinnenbewertung / Scoring-System (Abschnitt 4.7) -- [ ] Lagerbehälter-Umlagerungshistorie erweitert (Abschnitt 4.18) -- [ ] Importfunktionen (Abschnitt 10, strukturierter CSV-Import für Stammdaten) +Reihenfolge = Bau-Reihenfolge. Gleiche Haken-Regel wie MVP: erst setzen, wenn Lint+Typecheck+Tests+Build grün UND manuell/per Test verifiziert. -## Später (KANN) +### R. Redesign (grundlegend) -- [ ] Vollständig offlinefähige PWA mit Sync (Abschnitt 12) -- [ ] Native Smartphone-App -- [ ] NFC-Tags -- [ ] Wetterintegration / Wetterhistorie je Bienenstand -- [ ] Trachtprognosen -- [ ] Kartenansicht +- [x] Design-Tokens: warme Honig-/Wachs-Farbpalette (Amber-Primär, Salbeigrün-Sekundär, Warnung/Erfolg), Space Grotesk (Überschrift) + Inter (Fließtext) + IBM Plex Mono (Codes/IDs) +- [x] Navigation, Dashboard, Login neu gestaltet (Hexagon-Markenzeichen, aktiver Link-Zustand, Waben-Signaturmuster) +- [ ] Verbleibende Bestandsseiten (Listen/Details aller MVP-Module) auf einheitlichen Karten-/Badge-/Icon-Stil durchgezogen +- [ ] Alle neuen v1.x-Module folgen dem Redesign von Anfang an (kein Nacharbeiten nötig) + +### 22. QR-Code-System + +- Backend: `QrModule` – erzeugt QR-Code (PNG/SVG) pro Objekt, kodiert Deep-Link (`/colonies/:id`, bei Volk direkt `/inspections/new?colonyId=:id` gemäß Lastenheft-Begründung "reduziert Auswahlaufwand") +- Endpunkte: `GET /api/v1/qr/:entityType/:id.svg` für `entityType` ∈ `colonies|apiaries|queens|honey-batches|storage-containers` +- Frontend: "QR-Code"-Button/Dialog auf den jeweiligen Detailseiten, druckfreundliche Ansicht +- [ ] Backend-Modul fertig, getestet, grün, committet +- [ ] Frontend-Views fertig, getestet, grün, committet + +### 23. Abfüllungen und Produkte + +- Backend: `BottlingModule` (`BottlingBatch`), `ProductsModule` (`Product`); Abfüllung reduziert `HoneyBatch.amount` transaktional +- Endpunkte: `GET/POST /api/v1/bottling-batches`, `GET /api/v1/bottling-batches/:id`, `GET/POST /api/v1/products`, `GET/PATCH /api/v1/products/:id` +- Frontend: `/bottling/new`, `/bottling/:id`, `/products`, `/products/new` +- [ ] Backend-Modul fertig, getestet, grün, committet +- [ ] Frontend-Views fertig, getestet, grün, committet + +### 24. Inventar + +- Backend: `EquipmentModule` (`Equipment`: Inventarnummer, Bezeichnung, Hersteller, Kaufdatum, Zustand, Standort, Wartungsdatum) +- Endpunkte: `GET/POST /api/v1/equipment`, `GET/PATCH /api/v1/equipment/:id` +- Frontend: `/equipment`, `/equipment/new`, `/equipment/:id` +- [ ] Backend-Modul fertig, getestet, grün, committet +- [ ] Frontend-Views fertig, getestet, grün, committet + +### 25. Kalender + +- Backend: `CalendarModule` – aggregiert Durchsichten, Aufgaben, Behandlungen, Fütterungen, Ernten, Königinnenarbeiten in einem Zeitfenster +- Endpunkte: `GET /api/v1/calendar?from=&to=&apiaryId=` +- Frontend: `/calendar` (Monats-/Wochenansicht) +- [ ] Backend-Modul fertig, getestet, grün, committet +- [ ] Frontend-Views fertig, getestet, grün, committet + +### 26. Benachrichtigungssystem + +- Backend: `NotificationsModule` (`Notification`: Priorität INFO/HINWEIS/WARNUNG/KRITISCH, Nachricht, verknüpftes Objekt, gelesen); erzeugt aus Automatisierungen/Schwellenwerten +- Endpunkte: `GET /api/v1/notifications`, `POST /api/v1/notifications/:id/read` +- Frontend: Glocken-Icon in der Navigation mit Liste/Badge für ungelesene Einträge +- [ ] Backend-Modul fertig, getestet, grün, committet +- [ ] Frontend-Views fertig, getestet, grün, committet + +### 27. Statistik und Reporting + +- Backend: `StatisticsModule` – Auswertungen gemäß Abschnitt 4.26 (Volksstärke-Entwicklung, Völkerverluste, Königinnen-Ertrag/Lebensdauer, Standort-Ertrag, Varroa-Verlauf, Honigertrag pro Volk/Stand/Jahr, Futterverbrauch) +- Endpunkte: `GET /api/v1/statistics/{colonies|queens|apiaries|varroa|honey|feeding}` +- Frontend: `/statistics` mit Diagrammen +- [ ] Backend-Modul fertig, getestet, grün, committet +- [ ] Frontend-Views fertig, getestet, grün, committet + +### 28. Webhooks + +- Backend: `WebhooksModule` (`WebhookSubscription`: URL, Events, Secret, aktiv); Event-Dispatcher an bestehende Services angehängt (`colony.created`, `inspection.created`, `queen.created`, `queen.replaced`, `harvest.created`, `batch.created`, `batch.updated`, `product.stock_changed`, `task.created`, `task.completed`), HMAC-signierter POST +- Endpunkte: `GET/POST /api/v1/webhooks`, `DELETE /api/v1/webhooks/:id` +- Frontend: `/settings/webhooks` (nur Administrator) +- [ ] Backend-Modul fertig, getestet, grün, committet +- [ ] Frontend-Views fertig, getestet, grün, committet + +### 29. Dokumente und Bilder + +- Backend: `DocumentsModule` (`Document`: entityType/entityId, Dateiname, MIME-Typ, Größe, Speicherpfad, Hochgeladen-von); Objektspeicher als lokales Volume (`deploy/k8s` ConfigMap-Pfad, austauschbar) +- Endpunkte: `POST /api/v1/documents` (multipart, entityType/entityId), `GET /api/v1/documents?entityType=&entityId=`, `GET /api/v1/documents/:id/download`, `DELETE /api/v1/documents/:id` +- Frontend: Datei-Upload-Widget auf Volk-/Königin-/Durchsicht-/Bienenstand-/Honigcharge-Detailseiten +- [ ] Backend-Modul fertig, getestet, grün, committet +- [ ] Frontend-Views fertig, getestet, grün, committet + +### 30. Automatisierungen + +- Backend: `AutomationModule` (`AutomationRule`: Trigger-Typ, aktiv, Konfiguration, Aktionsvorlage) mit fest hinterlegten Triggern (keine Königin+keine Stifte → Kontrollvorschlag, Varroa-Schwellenwert → Behandlungsprüfung, Futterstatus kritisch → Fütterungsaufgabe), erzeugt Task + Notification +- Endpunkte: `GET/POST /api/v1/automation-rules`, `PATCH /api/v1/automation-rules/:id` +- Frontend: `/settings/automation-rules` (nur Administrator) +- [ ] Backend-Modul fertig, getestet, grün, committet +- [ ] Frontend-Views fertig, getestet, grün, committet + +### 31. Königinnenbewertung + +- Backend: `QueenEvaluation` (Volksstärke, Sanftmut, Wabensitz, Schwarmtrieb, Brutbild, Honigertrag je Skala 1–5, Datum, Notizen) verknüpft mit Königin +- Endpunkte: `GET/POST /api/v1/queens/:id/evaluations` +- Frontend: Bewertungsformular + Verlauf auf der Königin-Detailseite +- [ ] Backend-Modul fertig, getestet, grün, committet +- [ ] Frontend-Views fertig, getestet, grün, committet + +### 32. Lagerbehälter-Umlagerung + +- Backend: `HoneyBatchRelocation`-Historie – Honigcharge zwischen Lagerbehältern umlagern, `storageContainerId` aktualisieren, jede Umlagerung dokumentiert +- Endpunkte: `POST /api/v1/honey-batches/:id/relocate`, `GET /api/v1/honey-batches/:id/relocations` +- Frontend: Lagerbehälter-Sektion + Umlagerungshistorie auf der Honigcharge-Detailseite +- [ ] Backend-Modul fertig, getestet, grün, committet +- [ ] Frontend-Views fertig, getestet, grün, committet + +### 33. Importfunktionen + +- Backend: `ImportModule` – CSV-Import für Stammdaten (`apiaries`, `colonies`, `queens`), Validierung, Ergebnisbericht (erstellt/übersprungen/Fehler pro Zeile) +- Endpunkte: `POST /api/v1/import/:entity` (multipart CSV) +- Frontend: `/settings/import` (nur Administrator), Datei-Upload + Ergebnisbericht +- [ ] Backend-Modul fertig, getestet, grün, committet +- [ ] Frontend-Views fertig, getestet, grün, committet + +### v1.x-Abschluss + +- [ ] Gesamter Backend-Build grün (`lint`, `typecheck`, `test`, `test:e2e`, `build`) +- [ ] Gesamter Frontend-Build grün (`lint`, `typecheck`, `test`, `build`) +- [ ] Erweiterte Kernanforderung aus Abschnitt 29 end-to-end verifiziert: Stand → Volk → Königin → Durchsicht → Behandlung → Ernte → Schleuderung → Honigcharge → Lagerbehälter → Abfüllung → Produkt + +## Später (KANN) – Abschnitt 26, Liste 3 + +Software-seitig umsetzbare Punkte werden gebaut. Punkte, die dedizierte native Build-Pipelines, echte ML-Modelle oder physische Hardware voraussetzen, sind als "nicht umsetzbar in diesem Kontext" markiert statt mit einer Alibi-Umsetzung – Begründung jeweils dahinter. + +- [ ] Kartenansicht (Bienenstände mit Koordinaten auf einer Karte) +- [ ] Wetterintegration / Wetterhistorie je Bienenstand (externe Wetter-API anhand Bienenstand-Koordinaten) +- [ ] Trachtprognosen (heuristische Einschätzung aus Wetterdaten + Saison + historischen Ernten, kein ML-Modell) +- [ ] Öffentliche Herkunftsseiten für Honigchargen + Kunden-QR-Code (Abschnitt 27: `wabenhain.com/herkunft/{lot}`, öffentlicher Read-Endpoint) +- [ ] Vollständig offlinefähige PWA mit Sync (Service Worker + IndexedDB-Warteschlange für Durchsichten, Sync bei Wiederverbindung) +- [ ] NFC-Tags (Web-NFC-API, nur Chrome/Android; kodiert denselben Deep-Link wie der QR-Code; kein Fallback für andere Browser möglich) +- [x] ~~Native Smartphone-App~~ – nicht umsetzbar in diesem Kontext: erfordert eigene native Codebasis, App-Store-Vertrieb und Build-Pipeline ausserhalb einer Web-Session +- [x] ~~KI-Auswertung von Völkerdaten, automatische Anomalieerkennung, Fotoanalyse~~ – nicht umsetzbar in diesem Kontext: erfordert dediziertes ML-Modelltraining/-Betrieb, keine seriöse Umsetzung als einfache Heuristik +- [x] ~~Spracherfassung am Bienenstand, automatische Zusammenfassung einer Durchsicht~~ – nicht umsetzbar in diesem Kontext: erfordert Spracherkennungs-/LLM-Infrastruktur über das bestehende Stack hinaus +- [x] ~~Sensorintegration (Stockwaagen, Temperatur-/Feuchtesensoren)~~ – nicht umsetzbar in diesem Kontext: erfordert physische IoT-Hardware - [ ] KI-Auswertung von Völkerdaten / automatische Anomalieerkennung - [ ] Fotoanalyse - [ ] Spracherfassung am Bienenstand