- Reorganized admin settings into tabbed interface (General, Security, Payment Methods) - Vertical tabs on desktop, horizontal scrollable on mobile - Moved Payment Methods from separate menu to Settings tab - Fixed admin profile reuse and dashboard blocking - Fixed maintenance mode guard to use AppConfig model - Added admin auto-redirect after login (admins → /admin, users → /) - Reorganized documentation into docs/ folder structure - Created comprehensive README and documentation index - Added PWA and Web Push notifications to to-do list
222 lines
5.2 KiB
Markdown
222 lines
5.2 KiB
Markdown
# To-Do List
|
|
|
|
## 🚀 High Priority
|
|
|
|
### 3. PWA Implementation
|
|
**Status:** Pending
|
|
**Priority:** High
|
|
**Estimated Time:** 4-6 hours
|
|
|
|
**Tasks:**
|
|
- [ ] Create `manifest.json` for PWA
|
|
- App name, icons, theme colors
|
|
- Display mode (standalone)
|
|
- Start URL and scope
|
|
|
|
- [ ] Add app icons
|
|
- 192x192 icon
|
|
- 512x512 icon
|
|
- Maskable icons for Android
|
|
- Apple touch icons for iOS
|
|
|
|
- [ ] Create Service Worker
|
|
- Cache strategy (network-first for API, cache-first for assets)
|
|
- Offline fallback page
|
|
- Background sync for transactions
|
|
|
|
- [ ] Add "Add to Home Screen" prompt
|
|
- Detect installation capability
|
|
- Show custom install prompt
|
|
- Handle installation events
|
|
|
|
- [ ] Test PWA features
|
|
- Install on Android
|
|
- Install on iOS (Safari)
|
|
- Test offline functionality
|
|
- Verify caching works
|
|
|
|
**Benefits:**
|
|
- Users can install app on home screen
|
|
- Works offline
|
|
- Faster load times
|
|
- Native app-like experience
|
|
|
|
**Resources:**
|
|
- [PWA Documentation](https://web.dev/progressive-web-apps/)
|
|
- [Workbox (Service Worker library)](https://developers.google.com/web/tools/workbox)
|
|
|
|
---
|
|
|
|
### 4. Web Push Notifications
|
|
**Status:** Pending
|
|
**Priority:** High
|
|
**Estimated Time:** 6-8 hours
|
|
|
|
**Backend Tasks:**
|
|
- [ ] Install `web-push` library
|
|
```bash
|
|
cd apps/api
|
|
npm install web-push
|
|
```
|
|
|
|
- [ ] Generate VAPID keys
|
|
```typescript
|
|
const vapidKeys = webpush.generateVAPIDKeys()
|
|
// Add to .env:
|
|
// VAPID_PUBLIC_KEY=...
|
|
// VAPID_PRIVATE_KEY=...
|
|
```
|
|
|
|
- [ ] Create PushSubscription model (Prisma)
|
|
```prisma
|
|
model PushSubscription {
|
|
id String @id @default(uuid())
|
|
userId String
|
|
user User @relation(fields: [userId], references: [id])
|
|
endpoint String @unique
|
|
keys Json
|
|
createdAt DateTime @default(now())
|
|
@@index([userId])
|
|
}
|
|
```
|
|
|
|
- [ ] Create NotificationService
|
|
- Subscribe endpoint
|
|
- Unsubscribe endpoint
|
|
- Send notification method
|
|
- Batch send for multiple users
|
|
|
|
- [ ] Add notification triggers
|
|
- Transaction reminders (scheduled)
|
|
- Budget alerts (real-time)
|
|
- Payment reminders (scheduled)
|
|
- Admin alerts (real-time)
|
|
|
|
**Frontend Tasks:**
|
|
- [ ] Request notification permission
|
|
- Show permission prompt
|
|
- Handle user response
|
|
- Store permission status
|
|
|
|
- [ ] Subscribe to push notifications
|
|
- Get service worker registration
|
|
- Subscribe with VAPID public key
|
|
- Send subscription to backend
|
|
|
|
- [ ] Handle push events in Service Worker
|
|
- Show notification
|
|
- Handle notification click
|
|
- Open relevant page
|
|
|
|
- [ ] Add notification preferences UI
|
|
- Enable/disable notifications
|
|
- Choose notification types
|
|
- Set quiet hours
|
|
|
|
- [ ] Test notifications
|
|
- Test on Chrome (Android & Desktop)
|
|
- Test on Firefox
|
|
- Test on Safari (iOS 16.4+)
|
|
- Test notification click actions
|
|
|
|
**Use Cases:**
|
|
1. **Transaction Reminders**
|
|
- "Don't forget to log today's expenses!"
|
|
- Daily/weekly schedule
|
|
|
|
2. **Budget Alerts**
|
|
- "You've spent 80% of your monthly budget"
|
|
- Real-time threshold alerts
|
|
|
|
3. **Payment Reminders**
|
|
- "Subscription payment due in 3 days"
|
|
- Scheduled based on payment dates
|
|
|
|
4. **Goal Progress**
|
|
- "You're 50% towards your savings goal! 🎉"
|
|
- Milestone notifications
|
|
|
|
5. **Admin Notifications**
|
|
- "New payment verification request"
|
|
- "New user registered"
|
|
|
|
**Resources:**
|
|
- [Web Push API](https://developer.mozilla.org/en-US/docs/Web/API/Push_API)
|
|
- [web-push library](https://github.com/web-push-libs/web-push)
|
|
- [Notification API](https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API)
|
|
|
|
---
|
|
|
|
## 📋 Medium Priority
|
|
|
|
### Code Quality
|
|
- [ ] Fix ESLint warnings (87 issues)
|
|
- Review and fix auth-related warnings
|
|
- Fix OTP component warnings
|
|
- Fix transaction/wallet warnings
|
|
|
|
### Testing
|
|
- [ ] Add unit tests for critical functions
|
|
- [ ] Add integration tests for API endpoints
|
|
- [ ] Add E2E tests for main user flows
|
|
|
|
### Documentation
|
|
- [ ] API endpoint documentation (Swagger/OpenAPI)
|
|
- [ ] Component documentation (Storybook)
|
|
- [ ] Database schema documentation
|
|
|
|
---
|
|
|
|
## 🔮 Future Enhancements
|
|
|
|
### Features
|
|
- [ ] Export transactions (CSV, PDF)
|
|
- [ ] Recurring transactions
|
|
- [ ] Budget categories
|
|
- [ ] Multi-currency support
|
|
- [ ] Team/family sharing
|
|
- [ ] Financial reports and charts
|
|
|
|
### Admin Features
|
|
- [ ] Analytics dashboard
|
|
- [ ] User activity logs
|
|
- [ ] System health monitoring
|
|
- [ ] Backup and restore
|
|
|
|
### Integrations
|
|
- [ ] Bank account sync
|
|
- [ ] Receipt scanning (OCR)
|
|
- [ ] Cryptocurrency tracking
|
|
- [ ] Investment portfolio
|
|
|
|
---
|
|
|
|
## ✅ Completed
|
|
|
|
- [x] Maintenance mode implementation
|
|
- [x] Admin auto-redirect after login
|
|
- [x] Profile page reuse for admin
|
|
- [x] Admin dashboard blocking for regular users
|
|
- [x] Admin settings tabbed interface
|
|
- [x] Documentation reorganization
|
|
|
|
---
|
|
|
|
## 📝 Notes
|
|
|
|
**Priority Levels:**
|
|
- **High:** Should be done soon (within 1-2 weeks)
|
|
- **Medium:** Important but not urgent (within 1 month)
|
|
- **Low:** Nice to have (when time permits)
|
|
|
|
**Time Estimates:**
|
|
- Based on single developer working full-time
|
|
- May vary based on experience and complexity
|
|
- Include testing and documentation time
|
|
|
|
**Update Frequency:**
|
|
- Review weekly
|
|
- Mark completed items
|
|
- Add new items as needed
|
|
- Reprioritize based on user feedback
|