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": "Grow started.",
"stageAdvanced": "Stage advanced to {stage}.",
"harvestComplete": "Harvest completed — {grams}g linked to batch."
},
"notifications": {
"title": "Notifications",
"markAllRead": "Mark all as read",
"noNotifications": "No notifications",
"unread": "{count} unread",
"types": {
"QUOTA_WARNING": "Quota Warning",
"BATCH_RECALLED": "Batch Recalled",
"DISTRIBUTION_RECORDED": "Distribution Recorded",
"SUBSCRIPTION_EXPIRING": "Subscription Expiring"
}
},
"pwa": {
"install": "Install as App",
"installDesc": "Add CannaManage to your home screen for faster access.",
"offline": "No Internet Connection",
"offlineDesc": "The app has limited functionality in offline mode.",
"retry": "Reconnect"
}
}
}