diff --git a/docs/BACKLOG.md b/docs/BACKLOG.md index 710e49c..39fde1c 100644 --- a/docs/BACKLOG.md +++ b/docs/BACKLOG.md @@ -336,9 +336,46 @@ interface UserState { --- +### 16. Push Notification Permission UI +**Status**: Not Started +**Estimated Effort**: 2-3 hours (Frontend) + 3-4 hours (Backend) +**Priority**: Low (Post-Launch) +**Related**: PWA Features (95% complete, this is the remaining 5%) + +**Description**: Implement web push notification permission request and backend Firebase FCM integration. + +**Frontend Requirements**: +- [ ] Create PushNotificationPermission component +- [ ] Request notification permission from browser +- [ ] Handle permission states (granted, denied, default) +- [ ] Send FCM token to backend when granted +- [ ] Show permission prompt at appropriate time (not immediately) +- [ ] Store permission state in user preferences + +**Backend Requirements**: +- [ ] Firebase Cloud Messaging (FCM) integration +- [ ] Store FCM tokens per user/device +- [ ] Create notification sending service +- [ ] Add endpoints: POST /notifications/subscribe, DELETE /notifications/unsubscribe +- [ ] Implement notification templates (activity reminders, family updates) +- [ ] Handle token refresh and cleanup + +**Files to Create**: +- Frontend: `components/pwa/PushNotificationPermission.tsx` +- Backend: `src/modules/notifications/fcm.service.ts` +- Backend: `src/modules/notifications/push-notification.service.ts` + +**Implementation Notes**: +- Requires Firebase project setup +- Need VAPID keys for web push +- Test on multiple browsers (Chrome, Firefox, Safari) +- iOS requires PWA installed for push notifications + +--- + ## 📋 Future Features -### 16. Offline Mode Enhancements +### 17. Offline Mode Enhancements **Status**: Basic offline support exists **Estimated Effort**: 6-8 hours **Priority**: Medium @@ -352,7 +389,7 @@ interface UserState { --- -### 17. Voice Input Multi-Language Support +### 18. Voice Input Multi-Language Support **Status**: Works with backend language detection **Estimated Effort**: 2-3 hours **Priority**: Low @@ -365,7 +402,7 @@ interface UserState { --- -### 18. Export/Import Data +### 19. Export/Import Data **Status**: Not Started **Estimated Effort**: 4-6 hours **Priority**: Medium @@ -379,7 +416,7 @@ interface UserState { --- -### 19. Dark Mode +### 20. Dark Mode **Status**: Not Started **Estimated Effort**: 3-4 hours **Priority**: Low @@ -393,7 +430,7 @@ interface UserState { --- -### 20. Push Notifications Localization +### 21. Push Notifications Localization **Status**: Backend supports multi-language **Estimated Effort**: 2-3 hours **Priority**: Medium @@ -408,12 +445,12 @@ interface UserState { ## 📊 Progress Tracking -**Total Tasks**: 20 +**Total Tasks**: 21 **High Priority**: 3 tasks (15%) **Medium Priority**: 3 tasks (15%) -**Low Priority**: 14 tasks (70%) +**Low Priority**: 15 tasks (71%) -**Estimated Total Effort**: 40-60 hours (1-1.5 weeks) +**Estimated Total Effort**: 45-70 hours (1-1.75 weeks) ---