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
+24 -25
View File
@@ -6,73 +6,72 @@
## Admin Login
| Dark Mode | Light Mode |
|-----------|------------|
| Dark Mode | Light Mode |
| -------------------------------------------------- | ---------------------------------------------------- |
| ![Admin Login Dark](screenshots/01-login-dark.png) | ![Admin Login Light](screenshots/01-login-light.png) |
## Member Portal Login
| Dark Mode | Light Mode |
|-----------|------------|
| Dark Mode | Light Mode |
| ----------------------------------------------------------------- | ------------------------------------------------------------------- |
| ![Member Portal Login Dark](screenshots/02-portal-login-dark.png) | ![Member Portal Login Light](screenshots/02-portal-login-light.png) |
## Club Dashboard (auth required)
| Dark Mode | Light Mode |
|-----------|------------|
| Dark Mode | Light Mode |
| ------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
| ![Club Dashboard (auth required) Dark](screenshots/03-dashboard-dark.png) | ![Club Dashboard (auth required) Light](screenshots/03-dashboard-dark.png) |
## Member Management (auth required)
| Dark Mode | Light Mode |
|-----------|------------|
| Dark Mode | Light Mode |
| -------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
| ![Member Management (auth required) Dark](screenshots/04-members-dark.png) | ![Member Management (auth required) Light](screenshots/04-members-dark.png) |
## Distribution History (auth required)
| Dark Mode | Light Mode |
|-----------|------------|
| Dark Mode | Light Mode |
| ----------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
| ![Distribution History (auth required) Dark](screenshots/05-distributions-dark.png) | ![Distribution History (auth required) Light](screenshots/05-distributions-dark.png) |
## New Distribution (Multi-Step) (auth required)
| Dark Mode | Light Mode |
|-----------|------------|
| Dark Mode | Light Mode |
| ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
| ![New Distribution (Multi-Step) (auth required) Dark](screenshots/06-distribution-new-dark.png) | ![New Distribution (Multi-Step) (auth required) Light](screenshots/06-distribution-new-dark.png) |
## Stock & Batch Management (auth required)
| Dark Mode | Light Mode |
|-----------|------------|
| Dark Mode | Light Mode |
| ------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| ![Stock & Batch Management (auth required) Dark](screenshots/07-stock-dark.png) | ![Stock & Batch Management (auth required) Light](screenshots/07-stock-dark.png) |
## Add New Batch (auth required)
| Dark Mode | Light Mode |
|-----------|------------|
| Dark Mode | Light Mode |
| ------------------------------------------------------------------------ | ------------------------------------------------------------------------- |
| ![Add New Batch (auth required) Dark](screenshots/08-stock-new-dark.png) | ![Add New Batch (auth required) Light](screenshots/08-stock-new-dark.png) |
## Compliance Reports (auth required)
| Dark Mode | Light Mode |
|-----------|------------|
| Dark Mode | Light Mode |
| --------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| ![Compliance Reports (auth required) Dark](screenshots/09-reports-dark.png) | ![Compliance Reports (auth required) Light](screenshots/09-reports-dark.png) |
## Member Quota Overview
| Dark Mode | Light Mode |
|-----------|------------|
| Dark Mode | Light Mode |
| ----------------------------------------------------------------------- | ------------------------------------------------------------------------- |
| ![Member Quota Overview Dark](screenshots/10-portal-dashboard-dark.png) | ![Member Quota Overview Light](screenshots/10-portal-dashboard-light.png) |
## My Distribution History
| Dark Mode | Light Mode |
|-----------|------------|
| Dark Mode | Light Mode |
| ----------------------------------------------------------------------- | ------------------------------------------------------------------------- |
| ![My Distribution History Dark](screenshots/11-portal-history-dark.png) | ![My Distribution History Light](screenshots/11-portal-history-light.png) |
## Profile & Settings
| Dark Mode | Light Mode |
|-----------|------------|
| Dark Mode | Light Mode |
| ------------------------------------------------------------------ | -------------------------------------------------------------------- |
| ![Profile & Settings Dark](screenshots/12-portal-profile-dark.png) | ![Profile & Settings Light](screenshots/12-portal-profile-light.png) |