feat: reorganize admin settings with tabbed interface and documentation
- 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
This commit is contained in:
221
docs/planning/todo.md
Normal file
221
docs/planning/todo.md
Normal file
@@ -0,0 +1,221 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user