Files
tabungin/docs/planning/todo.md
dwindown 89f881e7cf 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
2025-10-13 09:28:12 +07:00

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