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

5.2 KiB

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:


4. Web Push Notifications

Status: Pending
Priority: High
Estimated Time: 6-8 hours

Backend Tasks:

  • Install web-push library

    cd apps/api
    npm install web-push
    
  • Generate VAPID keys

    const vapidKeys = webpush.generateVAPIDKeys()
    // Add to .env:
    // VAPID_PUBLIC_KEY=...
    // VAPID_PRIVATE_KEY=...
    
  • Create PushSubscription model (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:


📋 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

  • Maintenance mode implementation
  • Admin auto-redirect after login
  • Profile page reuse for admin
  • Admin dashboard blocking for regular users
  • Admin settings tabbed interface
  • 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