UC-STU-005: Notifications & Alerts
1. Metadata
| Property | Value |
|---|---|
| ID | UC-STU-005 |
| Actor | Student, Administrator |
| Trigger | System event (new module, screening due, streak reminder) or admin broadcast |
| Pre-conditions | User has granted notification permissions |
| Post-conditions | Notification is delivered and logged; unread count displayed on bell icon |
| Priority | P1 |
2. Description
The notification system surfaces contextually relevant alerts via the in-app bell icon and push notifications. It serves two audiences: students (engagement nudges, new content alerts) and admins (health threshold breaches, operational reminders).
3. Notification Types
| Type | Audience | Trigger | Example |
|---|---|---|---|
| New Module Available | Student | Admin publishes curriculum | "A new Fruits lesson is ready for you." |
| Screening Due | Student / Coordinator | 30-day cycle elapsed | "Your monthly health check is scheduled for Friday." |
| Streak Reminder | Student | No activity by 6 PM | "Don't break your 5-day streak — log something today!" |
| At-Risk Alert | Admin | BMI percentile flag | "3 students at Greenwood School flagged for review." |
| Broadcast Announcement | All Users | Admin manual trigger | "School nutrition day is tomorrow." |
4. Bell Icon Behaviour
- Unread badge: Red dot on the bell icon when unread notifications exist.
- Notification tray: Tapping the bell opens a list, newest first.
- Mark as read: Automatic on view; bulk "Mark all as read" also available.
- Deep link: Each notification taps through to the relevant screen (module, student record, etc.).
5. Acceptance Criteria
- [ ] Bell icon badge count must update in real time (websocket or push).
- [ ] Maximum 2 engagement nudges per student per day (configurable by Admin).
- [ ] Admin broadcast must support school-level targeting (not just platform-wide).
- [ ] Notification history must be retained for 30 days.
- [ ] Notifications must work without internet (queued for delivery on reconnect).
6. Notification Flow
sequenceDiagram
participant SYS as System / Admin
participant API as Notification Service
participant DEV as Student Device
participant APP as Student App
SYS->>API: Trigger event (new module / alert)
API->>API: Evaluate targeting rules
API->>DEV: Send push notification (FCM / APNs)
DEV->>APP: User opens app
APP->>API: Fetch notification tray
API->>APP: Return unread list
APP->>APP: Update bell icon badge count