Commit Graph
61 Commits
Author SHA1 Message Date
Nick Szaunig 711536f299 docs: Offline-PWA in TASKS.md abgehakt 2026-08-25 01:14:28 +02:00
Nick Szaunig 20239885b4 docs: Kartenansicht in TASKS.md als fertig markiert
Siehe vorherigen Commit fuer Implementierung und Live-Verifikation.
2026-08-25 00:40:39 +02:00
Nick Szaunig 4b9f5c7f47 docs: v1.x-Kette end-to-end live verifiziert, v1.x vollständig abgehakt
Kompletten Ablauf live im Browser durchgeklickt: E2E-Kette-Stand ->
E2E-V-001 -> E2E-Q-001 (zugewiesen) -> Durchsicht -> Behandlung
(Ameisensäure) -> Ernte -> Schleuderung -> Honigcharge E2E-HC-001 ->
Lagerbehälter LB-01 (Umlagerung) -> Abfüllung E2E-LOT-001 -> Produkt
"Sommerhonig 500g". Jeder Schritt mit korrekt verknüpften Daten und
ohne Konsolenfehler bestätigt.

Damit ist die gesamte v1.x-Liste aus TASKS.md abgeschlossen.
2026-08-24 23:31:03 +02:00
Nick Szaunig c50c674e94 docs: Modul 33 (Import) und Build-Grün-Checks in TASKS.md abgehakt
Backend und Frontend beide fertig, getestet und live verifiziert
(siehe die beiden vorherigen Commits). Gesamter Backend- und
Frontend-Build war während der gesamten v1.x-Arbeit durchgehend grün.

Offen bleibt nur noch die abschließende End-to-End-Verifikation der
erweiterten Kernkette (Stand -> Volk -> ... -> Produkt) als
zusammenhängender manueller Durchlauf.
2026-08-24 23:07:42 +02:00
Nick Szaunig e051ad956b docs: Modul 30 (Automatisierungen) in TASKS.md als fertig markiert
Backend und Frontend beide fertig, getestet und live verifiziert
(siehe die beiden vorherigen Commits).
2026-08-24 22:47:58 +02:00
Nick Szaunig 42a2be31b4 docs: Modul 32 (Lagerbehälter-Umlagerung) in TASKS.md als fertig markiert
Backend und Frontend beide fertig, getestet und live verifiziert
(siehe die beiden vorherigen Commits).
2026-08-24 17:07:11 +02:00
Nick Szaunig fa13543578 docs: Modul 29 (Dokumente und Bilder) in TASKS.md als fertig markiert
Backend war bereits fertig, Frontend-Upload-Widget wurde soeben ergänzt
und live verifiziert (siehe vorheriger Commit). Anmerkung ergänzt, dass
Durchsicht keine eigene Detailseite hat und daher aktuell nicht
angebunden ist.
2026-08-24 16:43:36 +02:00
Nick Szaunig a21563cc76 feat(frontend): Dokumente-Upload-Widget (Modul 29 Frontend)
Backend war bereits fertig, das Frontend fehlte bislang. Neue
gemeinsame DocumentUploadCard-Komponente (Liste hochgeladener Dateien,
Upload per Dateiauswahl, Download, Löschen mit Bestätigungsdialog da
unumkehrbar) plus dazugehöriges src/lib/documents/ API-Modul.

apiFetch erzwingt bislang immer Content-Type: application/json, was
multipart-Uploads verhindert hätte – daher neue apiFetchFormData-
Hilfsfunktion in api-client.ts ergänzt (kein manuell gesetzter
Content-Type, damit der Browser die multipart-Boundary selbst setzt).

Eingebunden auf allen Detailseiten, die laut TASKS.md Modul 29 vorsehen
und tatsächlich eine eigene Route haben: Bienenstand, Volk, Königin,
Honigcharge. Durchsicht hat keine eigene Detailseite (nur Einträge in
der Volk-Unterliste) und wird daher vorerst ausgelassen.

Live verifiziert: Upload, Download und Löschen (inkl. Bestätigungsdialog)
funktionieren End-to-End gegen das Backend, zero Konsolenfehler auf
allen vier Detailseiten.
2026-08-24 16:43:18 +02:00
Nick Szaunig e4d5af5fa7 feat(frontend): Webhook-Verwaltung fuer Administratoren (Modul 28)
/settings/webhooks: Liste, Anlage-Dialog mit Ereignis-Auswahl und
einmaliger Secret-Anzeige (Kopieren), Loeschen. Sidebar-Eintrag unter
Verwaltung. Live in Chrome verifiziert (Anlegen/Kopieren/Loeschen,
SSRF-Ablehnung, Mobile-Breakpoint); dabei einen Reset-Bug im
Anlage-Dialog gefunden und behoben (Fertig-Button loeschte den
Dialogzustand nicht, da onOpenChange bei programmatischem Schliessen
nicht feuert).
2026-08-23 11:15:48 +02:00
Nick Szaunig 8856d7d0f5 feat(frontend): Statistik-Seite mit animierten Auswertungen (Modul 27)
Tab-basierte /statistics-Seite (Voelker, Koeniginnen, Bienenstaende,
Varroa, Honig, Futter) mit animierten Balkendiagrammen, Sidebar-Eintrag
und Live-Verifikation ueber alle Tabs sowie Mobile-Breakpoint.
2026-08-23 06:41:16 +02:00
Nick Szaunig fb2b09a929 feat(frontend): Koeniginnenbewertung (Modul 31)
Bewertungsformular (Volksstaerke, Sanftmut, Wabensitz, Schwarm-
trieb, Brutbild, Honigertrag je 1-5) plus Verlauf auf der
Koenigin-Detailseite. Live verifiziert.
2026-08-22 23:01:28 +02:00
Nick Szaunig 50268fa591 feat(backend): Koeniginnenbewertung (Modul 31)
QueenEvaluation-Modell (Volksstaerke, Sanftmut, Wabensitz, Schwarm-
trieb, Brutbild, Honigertrag je Skala 1-5) als Sub-Ressource der
Queens-API: GET/POST /queens/:id/evaluations. Vorgezogen vor Modul
27 (Statistik), da dessen Koeniginnen-Auswertungen auf diesen Daten
aufbauen.
2026-08-22 22:55:36 +02:00
Nick Szaunig 0fc13952fb feat(frontend): Benachrichtigungssystem (Modul 26)
NotificationBell in der Kopfzeile: ungelesene Anzahl als Badge,
Dropdown mit Prioritaets-Badges (INFO/HINWEIS/WARNUNG/KRITISCH),
Klick markiert als gelesen und fuehrt zum verknuepften Objekt.
Ausserdem IDOR im Backend gefunden und behoben (siehe vorheriger
Commit) - live mit einem echten Datensatz verifiziert.
2026-08-22 22:50:45 +02:00
Nick Szaunig a57cde1f9a feat(backend): Benachrichtigungssystem (Modul 26)
NotificationsModule: Notification-Modell mit Prioritaeten INFO/
HINWEIS/WARNUNG/KRITISCH, GET /notifications (eigene + Broadcast),
POST /notifications/:id/read. record() als interne API fuer
kuenftige Automatisierungsregeln (Modul 30) vorgesehen.
2026-08-22 22:43:38 +02:00
Nick Szaunig 9b078022ff feat(frontend): Kalender (Modul 25)
/calendar Monatsansicht mit Voelkerdaten aus Durchsichten, Aufgaben,
Behandlungen, Fuetterungen, Ernten und Koeniginnen-Zuweisungen;
Bienenstand-Filter, Monatsnavigation, Klick auf Ereignis fuehrt zum
verknuepften Objekt. Nav um Kalender-Link ergaenzt.
2026-08-22 22:39:48 +02:00
Nick Szaunig fef1177a2c feat(backend): Kalender (Modul 25)
CalendarModule mit GET /calendar?from=&to=&apiaryId= aggregiert
Durchsichten, Aufgaben, Behandlungen, Fuetterungen, Ernten und
Koeniginnen-Zuweisungen zu einem einheitlichen Ereignisfeed. Rein
lesende Aggregation, kein neues Datenmodell.
2026-08-22 22:34:47 +02:00
Nick Szaunig 8b42a86115 feat(frontend): Inventar (Modul 24)
/equipment, /equipment/new, /equipment/:id mit Zustandsaenderung.
statusTone()-Helper um Equipment-Zustaende (NEW/GOOD/WORN/DEFECTIVE)
erweitert, Nav-Dropdown um Inventar ergaenzt.
2026-08-22 22:30:46 +02:00
Nick Szaunig 3f20133d02 feat(backend): Inventar (Modul 24)
EquipmentModule (GET/POST /equipment, GET/PATCH /equipment/:id) fuer
Ausruestungsgegenstaende (Inventarnummer, Bezeichnung, Hersteller,
Kaufdatum, Zustand, Standort, Wartungsdatum). Neues Prisma-Modell
Equipment (Migration equipment).
2026-08-22 22:26:16 +02:00
Nick Szaunig f4df719df7 feat(frontend): Abfuellungen und Produkte (Modul 23)
/products, /products/new, /bottling/new, /bottling/:id. Verbindung
von der Honigcharge-Detailseite zur Abfuellung, Nav-Dropdown "Mehr"
fuer alle Rollen mit Produkte/Abfuellungen erweitert.
2026-08-22 22:21:22 +02:00
Nick Szaunig e82cae257b feat(backend): Abfuellungen und Produkte (Modul 23)
ProductsModule (GET/POST /products, GET/PATCH /products/:id) und
BottlingModule (GET/POST /bottling-batches) mit transaktionaler
Reduzierung der HoneyBatch-Restmenge beim Abfuellen; Ablehnung bei
Abfuellmenge > verfuegbarer Menge. Neue Prisma-Modelle Product und
BottlingBatch (Migration bottling_products).
2026-08-22 11:08:09 +02:00
Nick Szaunig 8b7fd61c1c feat(frontend): QR-Code-Dialog auf Objekt-Detailseiten (Modul 22)
Wiederverwendbarer QrCodeDialog (authentifizierter Blob-Fetch)
auf Volk-, Bienenstand-, Koenigin-, Honigcharge-Detailseiten und
je Lagerbehaelter-Zeile eingebunden.
2026-08-22 10:58:40 +02:00
Nick Szaunig dd88b6a92c feat(backend): QR-Code-System (Modul 22)
QrModule mit GET /qr/:entityType/:id.svg fuer colonies (Deep-Link
direkt zu /inspections/new), apiaries, queens, honey-batches und
storage-containers. Nutzt pdfkit-Nachbar qrcode zur SVG-Erzeugung.
2026-08-22 10:51:42 +02:00
Nick Szaunig a7ded02015 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.
2026-08-22 10:47:31 +02:00
Nick Szaunig 26b2eb0829 docs(tasks): MVP-Abschluss verifiziert
Gesamter Backend- und Frontend-Build gruen (lint/typecheck/test/
test:e2e/build), Rueckverfolgbarkeitskette Volk -> Durchsicht ->
Behandlung -> Ernte -> Schleuderung -> Honigcharge -> Lager
end-to-end manuell verifiziert, Erfolgskriterien aus Abschnitt 30
stichprobenartig geprueft. MVP gemaess TASKS.md vollstaendig
implementiert.
2026-08-22 10:14:32 +02:00
Nick Szaunig ed108045af feat(frontend): Export-Buttons fuer Voelker, Honigchargen (Modul 21)
CSV-Export in den Listen-Views (Voelker, Honigchargen) und
PDF-Rueckverfolgbarkeitsbericht auf der Honigcharge-Detailseite.
apiFetchBlob() im API-Client ergaenzt fuer authentifizierte
Blob-Downloads (JWT im Authorization-Header statt Cookie).
2026-08-22 10:10:23 +02:00
Nick Szaunig c281d04b16 feat(backend): Datenexport-Modul (Modul 21)
ExportModule mit GET /export/colonies.csv, /export/honey-batches.csv,
/export/:entity.json (apiaries/colonies/queens/honey-batches/tasks)
und /export/:report.pdf (honey-batch-traceability via pdfkit).
Ausserdem fehlendes "typecheck"-Skript in package.json ergaenzt
(von CLAUDE.md dokumentiert, war aber nicht vorhanden).
2026-08-22 10:05:46 +02:00
Nick Szaunig ab167d4e53 docs(architecture): Backup-/Restore-Strategie dokumentiert (Modul 20)
Migrations-, Backup- und Restore-Vorgehen in ARCHITECTURE.md
Abschnitt 8 festgehalten. migrate deploy/dev bereits einziger
Migrationsweg (kein db push), /health/ready prueft DB bereits.
2026-08-22 09:57:18 +02:00
Nick Szaunig ad787f8155 feat(frontend): Audit-Log-Ansicht (Modul 19)
Neue Seite /settings/audit-log (nur Administrator) mit Filter
nach Entitätstyp/-ID, Navigation um Audit-Log-Link ergaenzt.
2026-08-22 09:53:36 +02:00
Nick Szaunig 8a6769dbfd feat(backend): Audit-Log-Abfrage (Modul 19)
AuditModule um GET /audit-log?entityType=&entityId= erweitert
(nur Administrator). Zusaetzlich Jest-E2E-Parallelitaet begrenzt
(maxWorkers: 4), um wiederkehrende Verbindungsengpaesse gegen
Postgres unter vielen parallelen Testsuiten zu vermeiden.
2026-08-22 06:00:52 +02:00
Nick Szaunig 4945e92985 docs: API/Rollen-Prüfung abgeschlossen (Modul 16-18)
Verifiziert: alle 73 Endpunkte über 17 Tags in /api/v1/docs
sichtbar; jeder Mutations-Endpunkt trägt @Roles (oder @Public bei
Login/Refresh/Logout), lesende Endpunkte sind für alle
authentifizierten Rollen offen (RolesGuard-Standardverhalten).
2026-08-22 05:52:10 +02:00
Nick Szaunig 45646833b9 feat(frontend): Responsive Smartphone-Oberfläche (Modul 15)
Mobile Bottom-Navigation und permanent erreichbare "+ Neu"-
Schnellaktion (Durchsicht/Varroa/Behandlung/Fütterung/Aufgabe/Ernte).
Header-Navigation überarbeitet, damit sie bei schmaler Breite intern
scrollt statt die Seite horizontal zu sprengen. Verifiziert bei
Smartphone- (390px) und Tablet-Breite (820px).
2026-08-22 05:50:07 +02:00
Nick Szaunig 166979ff3c feat(frontend): Suche und Filter (Modul 14)
/search-Seite über Bienenstände, Völker, Königinnen, Aufgaben und
Honigchargen. Filterleisten (Status/Standort) in den Listen-Views
für Bienenstände, Völker, Königinnen und Honigchargen.
2026-08-22 05:39:59 +02:00
Nick Szaunig 146b56d683 feat(backend): Suche und Filter (Modul 14)
SearchModule mit GET /search?q= über Bienenstände, Völker,
Königinnen, Aufgaben und Honigchargen. Kombinierbare Filter
(Status, Standort, Bienenstand) in den bestehenden List-Endpunkten.
2026-08-22 05:29:47 +02:00
Nick Szaunig 55b9bc2587 feat(frontend): Dashboard-Ansicht (Modul 13)
/dashboard als Startseite nach Login mit Kennzahlen-Kacheln und
Hinweisen (überfällige Aufgaben, auffällige Völker, Lagerartikel
unter Mindestbestand).
2026-08-22 05:22:50 +02:00
Nick Szaunig 09407d4378 feat(backend): Dashboard-Modul (Modul 13)
DashboardModule mit Kennzahlen-Übersicht sowie Alerts fuer
überfällige Aufgaben, auffällige Völker und Lagerartikel unter
Mindestbestand.
2026-08-22 05:15:25 +02:00
Nick Szaunig 7ec20199d3 feat(frontend): Lagerverwaltung-Ansicht (Modul 12)
/storage mit Lagerbehälter- und Lagerartikelverwaltung inkl.
Bestandsbewegungen (Zugang/Abgang/Umlagerung/Korrektur).
2026-08-22 05:12:23 +02:00
Nick Szaunig 15b6ea4edb feat(backend): Lagerverwaltung-Modul (Modul 12)
StorageModule mit Lagerbehaeltern, Lagerartikeln und
Bestandsbewegungen (Zugang/Abgang/Umlagerung/Korrektur), die den
Artikelbestand automatisch fortschreiben.
2026-08-22 05:03:48 +02:00
Nick Szaunig f3d99524ff feat(frontend): Honigchargen-Ansichten (Modul 11)
Chargenliste mit Anlage-Dialog sowie Detailseite mit
Honigmessungen und Rückverfolgbarkeits-Ansicht bis zu den
Ursprungsvölkern.
2026-08-22 04:58:47 +02:00
Nick Szaunig cf625552d1 feat(backend): Honigchargen-Modul (Modul 11)
HoneyBatchesModule inkl. Honigmessungen und
Rückverfolgbarkeits-Endpunkt, der eine Charge über die Schleuderung
und Ernte bis zu den Ursprungsvölkern zurückverfolgt.
2026-08-22 00:37:09 +02:00
Nick Szaunig 5c2c0608d1 feat(frontend): Ernten- und Schleuderungs-Ansichten (Modul 10)
/harvests/new (Bienenstand + Mehrfachauswahl Völker), /harvests/[id]
und /extractions/new (Mehrfachauswahl Ernten). Bienenstand- und
Ernte-Detailseiten verlinken direkt in die Kette.
2026-08-22 00:33:13 +02:00
Nick Szaunig 340397b34d feat(backend): Ernten- und Schleuderungs-Module (Modul 10)
HarvestsModule und ExtractionsModule als Fundament der
Rückverfolgbarkeitskette: eine Ernte kann mehrere Völker umfassen,
eine Schleuderung mehrere Ernten zusammenführen.
2026-08-22 00:25:36 +02:00
Nick Szaunig d71785d531 feat(frontend): Fütterungen-Modul (Modul 9)
Mobile-optimiertes Erfassungsformular unter /feedings/new sowie
"Fütterung"-Ansicht mit Mengensumme auf der Volk-Detailseite.
2026-08-22 00:20:35 +02:00
Nick Szaunig cc0aaf0a31 feat(backend): Fütterungen-Modul (Modul 9)
FeedingsModule mit Erfassung, Colony-Historie und
Mengensummen-Endpunkt je Einheit.
2026-08-22 00:14:41 +02:00
Nick Szaunig 1f71ac9e3c feat(frontend): Behandlungen-Modul (Modul 8)
Mobile-optimiertes Erfassungsformular unter /treatments/new sowie
"Behandlungen"-Ansicht auf der Volk-Detailseite.
2026-08-22 00:10:46 +02:00
Nick Szaunig 61e0bbe794 feat(backend): Behandlungen-Modul (Modul 8)
TreatmentsModule mit Erfassung und Colony-Historie-Endpunkt fuer
Tierarzneimittel-Behandlungen.
2026-08-22 00:04:50 +02:00
Nick Szaunig 66c14cf306 feat(frontend): Varroamessungen-Modul (Modul 7)
Mobile-optimiertes Erfassungsformular unter /varroa/new sowie
"Varroa"-Ansicht mit Verlaufsgrafik auf der Volk-Detailseite.
2026-08-22 00:01:43 +02:00
Nick Szaunig f363bffed1 feat(backend): Varroamessungen-Modul (Modul 7)
VarroaModule mit Erfassung und Colony-Historie-Endpunkt fuer
Varroamessungen.
2026-08-21 23:56:06 +02:00
Nick Szaunig 632d382474 feat(frontend): Aufgaben-Modul (Modul 6)
Aufgabenliste mit Status-/Prioritätsfilter und Erledigen-Aktion
sowie Formular zum Anlegen neuer Aufgaben.
2026-08-21 23:52:32 +02:00
Nick Szaunig 7bba168bd6 feat(backend): Aufgaben-Modul (Modul 6)
TasksModule mit CRUD, Status-/Prioritätsfilter und
Erledigen-Endpunkt für polymorph verknüpfte Aufgaben.
2026-08-21 23:43:47 +02:00
Nick Szaunig 829753ec90 feat(frontend): Durchsichten-Modul (Modul 5)
Mobile-optimiertes Schnellformular unter /inspections/new sowie
"Durchsichten"-Ansicht auf der Volk-Detailseite.
2026-08-21 18:51:47 +02:00