feat(sprint-6): Phase 6 — Notifications (WebSocket) + PWA
Deploy to Production / test (push) Has been cancelled
Deploy to Production / deploy (push) Has been cancelled

- WebSocket: Spring STOMP + SockJS, NotificationService, persistent notifications table
- NotificationController: GET/PUT endpoints for notification management
- Frontend: notification bell with unread badge, dropdown panel, real-time via STOMP
- PWA: manifest.json, service worker (manual sw.js), offline page, install prompt
- PWA icons (192+512), dark theme colors, standalone display
- Full i18n (de/en) for notifications and PWA
- Flyway V10 migration for notifications table
- spring-boot-starter-websocket dependency added
This commit is contained in:
Patrick Plate
2026-06-12 23:02:44 +02:00
parent 076fd6f9b3
commit 599514c0db
39 changed files with 6684 additions and 3217 deletions
+20 -1
View File
@@ -489,5 +489,24 @@
"created": "Anbau gestartet.",
"stageAdvanced": "Phase gewechselt zu {stage}.",
"harvestComplete": "Ernte abgeschlossen — {grams}g verknüpft mit Charge."
},
"notifications": {
"title": "Benachrichtigungen",
"markAllRead": "Alle als gelesen markieren",
"noNotifications": "Keine Benachrichtigungen",
"unread": "{count} ungelesen",
"types": {
"QUOTA_WARNING": "Kontingent-Warnung",
"BATCH_RECALLED": "Chargen-Rückruf",
"DISTRIBUTION_RECORDED": "Ausgabe erfasst",
"SUBSCRIPTION_EXPIRING": "Abo läuft bald ab"
}
},
"pwa": {
"install": "Als App installieren",
"installDesc": "Für schnelleren Zugriff CannaManage auf dem Startbildschirm hinzufügen.",
"offline": "Keine Internetverbindung",
"offlineDesc": "Die App funktioniert eingeschränkt im Offline-Modus.",
"retry": "Erneut verbinden"
}
}
}