Notifications
Notifications
Stay informed with alerts for collaboration, sync, and calendar events
Overview
The Notification Center provides a unified feed for all application alerts — collaboration updates, sync status changes, calendar reminders, and system messages.
Requirements
Functional Requirements
| ID | Requirement | Acceptance Criteria | Priority | Source |
|---|---|---|---|---|
| REQ-NOT-001 | The system shall display a notification bell icon with unread count badge in the sidebar | Bell icon visible in sidebar; unread count badge shows correct number; 0 unread → badge hidden; new notification → count increments | Must | notifications |
| REQ-NOT-002 | The system shall show notifications in reverse-chronological order with icon, title, timestamp, and action link | Click bell → list opens; newest first; each entry shows icon + title + time + clickable link; empty → "No notifications" message | Must | notifications |
| REQ-NOT-003 | The system shall support mark-as-read (individual and bulk), and dismiss (individual) | Click notification → marked as read; "Mark All Read" → all cleared; dismiss → notification removed from list permanently | Must | notificationCenterService |
| REQ-NOT-004 | The system shall support browser push notifications via Web Push API (VAPID-based) | Trigger event → notification appears; dismiss → removed; action link → navigates correctly | Must | notifications |
| REQ-NOT-005 | The system shall auto-subscribe to push notifications on login (usePushSubscription in data-management; native path via pushService) | Trigger event → notification appears; dismiss → removed; action link → navigates correctly | Should | notifications |
| REQ-NOT-006 | The system shall allow configuring email notification preferences per event type (invitations, edits, comments, reminders) | Trigger event → notification appears; dismiss → removed; action link → navigates correctly | Should | notifications |
| REQ-NOT-007 | The system shall remove push subscription from server immediately when user disables push | Disable push → subscription removed server-side; no further push messages received; re-enable → re-subscribes | Must | notifications |
| REQ-NOT-008 | The system shall deliver push notifications via a server-side edge function (not client-side) | Event triggers → edge function sends push; notification appears on user's device/browser; payload includes title, body, action URL | Must | send-push-notification |
| REQ-NOT-009 | The system shall deliver email notifications via a server-side edge function with templated content | Event triggers → edge function sends email; email arrives with branded template; unsubscribe link included | Should | send-email-notification |
Non-Functional Requirements
| ID | Requirement | Metric | Priority |
|---|---|---|---|
| NFR-NOT-001 | Toast notifications shall auto-dismiss after 5 seconds | UX timing | Should |
| NFR-NOT-002 | Notification center shall batch ≤50 notifications without performance degradation | Render perf | Should |
Data Requirements
- Notification store: In-memory + IndexedDB for persistence
- Push subscription: Stored on server (Supabase) linked to user ID and device ID
- Email preferences: Stored in user profile (cloud-synced)
Constraints & Limits
- Push notifications require cloud sync (signed-in user)
- Browser must support Web Push API (Chrome, Firefox, Edge, Safari 16+)
- Service Worker must be registered (automatic on PWA install)
- Email notifications require verified email address
Offline Behavior
- In-app notification center is available offline (reads from local store)
- Push notifications require network connectivity
- Notifications generated while offline are queued and delivered on reconnect
Dependencies
- Requires: Authentication — push notifications require signed-in state
- Required by: Collaboration — invite/comment notifications
Accessing Notifications
Click the bell icon (🔔) in the sidebar. A badge shows the count of unread notifications.
Notification Types
notificationConfig.js defines 47 notification types (plus toast, which is transient and
never enters the centre). They are not organised by the five-way scheme this page used to show —
that taxonomy matched neither the registry nor the panel. What actually groups them is the tab
each type is filtered into:
| Tab | Types | Covers |
|---|---|---|
| All | every | No filter |
| Mentions | 3 | mention, reply, chat |
| Activity | 15 | sync and versioning, import/export, conflicts, maintenance, insurance expiry, approvals, timesheets, contract signatures |
| Gear | 7 | the gear-request lifecycle — requested, quoted, confirmed, declined, expired, renegotiated, partial |
| Invites | 1 | invite |
21 of the 47 types are reachable only under All. Every accounting notification (invoice paid or part-paid, Mahnung issued / withdrawn / due, quote accepted / declined / converted), sub-rental status, the pickup, return and departure reminders, the FinTS renewal reminder described below, crew requests and acceptances, overdue missing items, policy expiry and device-report decisions all fall outside every named tab. If you filter, you will not see them — check All.
Banking: bank connection renewal reminders
A FinTS bank connection stays authorised for about 150 days, after which the bank stops it until you confirm with a fresh TAN. You get a reminder in the notification centre once the renewal is 14 days or less away, so you can re-authenticate before transaction sync actually stops.
You get one reminder per connection per renewal cycle — it refreshes in place as the deadline approaches rather than stacking a new entry each day, and reconnecting starts a fresh cycle. They are muted with the rest of the in-app notifications; there is no per-category Banking toggle in Settings → General → Notifications.
Once the window has already elapsed the reminder stops and the connection shows a re-authentication banner on Settings → Accounting → Banking instead.
Notification Center
Viewing Notifications
The notification panel shows a chronological list with:
- Icon: Visual indicator of notification type
- Title: Brief summary of the event
- Timestamp: When the notification was created
- Action: Link to the relevant feature or project
Filtering Notifications
Use the tab bar at the top of the notification panel to filter by category:
| Tab | Shows |
|---|---|
| All | Every notification |
| Mentions | Comments or messages where you were @-mentioned |
| Activity | Project edits, collaborator joins, sync events |
| Gear | Gear status changes, rental updates, equipment alerts |
| Invites | Project invitation and access requests |
Managing Notifications
- Mark as read: Click a notification to mark it as read
- Mark all as read: Click the checkmark icon to clear all unread badges
- Dismiss: Swipe or click × to remove individual notifications
Push Notifications
Receive browser push notifications even when the app is in the background.
Enabling Push Notifications
- Go to Settings → General → Notifications
- Under Notification Preferences, toggle Enable browser notifications on
- Accept the browser permission prompt
- Notifications will appear as system notifications on your device
Requirements
- Cloud Sync must be enabled (push notifications require a server connection)
- Browser must support the Web Push API (Chrome, Firefox, Edge, Safari 16+)
- Service Worker must be registered (happens automatically)
Disabling Push
Toggle Enable browser notifications off in Settings → General → Notifications. Your subscription is removed from the server immediately.
Email Notifications
Configure email alerts for collaboration events:
- Go to Settings → General → Notifications
- In the Email Notifications card (shown once you are signed in), toggle:
| Toggle | What it controls |
|---|---|
| Email notifications | Collaboration email — invites and @-mentions (email_notifications_enabled) |
| Gear-request emails | Gear-request and crew-connection correspondence (gear_request_emails_enabled) |
| Marketing & product emails | Product news; the consent wording you agreed to is shown under the toggle |
There is no "Email Preferences" sub-page, and no per-event matrix. This guide listed one — with rows for project invitations, collaborator edits, comments and calendar reminders — until 2026-09-08. The three toggles above are what the card renders.
Tips
- Enable push for shared projects: Don't miss when collaborators make changes
- Use email sparingly: Turn on only for critical events to avoid inbox noise
- Check the bell regularly: In-app notifications don't require push or email
- Calendar reminders: Set these to remind you about equipment pickups and returns
Related Documentation
Last Updated: 2026-09-08 Version: 0.790.2
