244 lines
9.9 KiB
Markdown
244 lines
9.9 KiB
Markdown
# Quizzical Beats TODO List
|
||
|
||
## ✅ Completed Milestones
|
||
|
||
### Milestone 1: Spotify Integration Fix (Immediate Priority)
|
||
|
||
* [x] Fix Spotify playlist import functionality
|
||
|
||
* [x] Implement proper pagination for playlist retrieval
|
||
* [x] Add better error handling for API rate limits
|
||
* [x] Refactor Spotify client code for maintainability
|
||
* [x] Add logging to track API requests and responses for debugging
|
||
|
||
### Milestone 2: Authentication Foundation
|
||
|
||
* [x] Design database schema for users and roles
|
||
* [x] Implement basic authentication system with local username/password
|
||
* [x] Create user management interfaces (register, login, profile)
|
||
* [x] Set up admin role functionality
|
||
* [x] Implement secure password handling and session management
|
||
|
||
### Milestone 3: Spotify Integration with User Accounts
|
||
|
||
* [x] Migrate Spotify token storage to user-specific model
|
||
* [x] Add Spotify OAuth login option
|
||
* [x] Create fallback mechanism for service account
|
||
* [x] Link user playlists with their Spotify accounts
|
||
|
||
### Milestone 4: Enhanced User Experience
|
||
|
||
* [x] Enable user-specific intro/outro/replay MP3s
|
||
* [x] Update email system to use logged-in user's email
|
||
* [x] Implement user preferences and settings
|
||
|
||
### Milestone 5: Additional OAuth Providers
|
||
|
||
* [x] Add Google OAuth integration
|
||
* [x] Add Authentik OAuth integration
|
||
* [x] Ensure consistent user experience across auth methods
|
||
|
||
### Milestone 6: Advanced Features & Optimizations
|
||
|
||
* [x] Create comprehensive logging and monitoring
|
||
|
||
### Milestone 7: **"Bulletproof Backups" Release** – System Backup & Restore
|
||
|
||
* [x] Implement full system-wide backup and restore
|
||
|
||
* [x] Backup all critical data: DB, rounds, MP3s, user settings
|
||
* [x] Support both manual and scheduled backups
|
||
* [x] Admin UI to download, manage, and restore backups
|
||
* [x] Store backups to local filesystem or optional cloud locations
|
||
* [x] Include versioning to support future schema migration compatibility
|
||
* [x] Add internal backup verification/checksum logic
|
||
* [x] Integrate with Ofelia scheduler for automatic backups
|
||
* [x] Add command-line backup functionality for scripting
|
||
* [x] Implement retention policy for automatic cleanup of old backups
|
||
* [x] Add system health check and status dashboard
|
||
|
||
### Milestone 8: **"Dropbox Dispatch" Release** – Round Export via Dropbox
|
||
|
||
* [x] Add Dropbox OAuth login per user
|
||
* [x] Let users link/unlink and view Dropbox account info
|
||
* [x] Export full rounds (metadata + MP3s) as ZIP or PDF
|
||
* [x] Push selected rounds to user's Dropbox via UI
|
||
* [x] Add fallback handling and Dropbox access token refresh
|
||
* [x] Log export actions and errors for transparency
|
||
|
||
### Milestone 9: **"Documentation Dynamo" Release** – Comprehensive Documentation
|
||
|
||
* [x] Complete user-facing documentation
|
||
* [x] Create step-by-step user guides with screenshots
|
||
* [x] Add FAQ section based on common support questions
|
||
* [x] Developer documentation
|
||
* [x] API documentation with OpenAPI/Swagger spec
|
||
* [x] Database schema documentation with ER diagrams
|
||
* [x] Codebase architecture overview
|
||
* [x] Setup guide for local development environment
|
||
* [x] Operations documentation
|
||
* [x] Deployment guide for various environments (Docker, bare metal)
|
||
* [x] Backup and restore procedures
|
||
* [x] Monitoring and alerting setup
|
||
* [x] Troubleshooting common issues
|
||
* [x] Create centralized documentation portal
|
||
* [x] Set up MkDocs or similar documentation site
|
||
* [x] Implement search functionality
|
||
* [x] Add version control for documentation
|
||
* [x] Set up automated documentation deployment
|
||
|
||
---
|
||
|
||
## 🆕 Upcoming Milestones
|
||
|
||
|
||
### 🎯 Milestone 10: **"Import Infrastructure" Release** – Queue & Worker Setup
|
||
|
||
* [x] Implement import queue system
|
||
* [x] Add background worker process for playlist imports
|
||
* [x] Support multiple concurrent import jobs
|
||
* [x] Implement priority handling for import jobs
|
||
|
||
### 🎯 Milestone 11: **"Progress Pulse" Release** – Import Status Tracking
|
||
|
||
* [ ] Real-time progress indicators for active imports
|
||
* [ ] Detailed error reporting with recovery options
|
||
* [ ] Email notifications when imports complete
|
||
|
||
### 🎯 Milestone 12: **"Search Supercharge" Release** – Enhanced Search
|
||
|
||
* [ ] Improve search algorithm and relevance scoring
|
||
* [ ] Add advanced filtering options (year, genre, etc.)
|
||
* [ ] Implement caching for frequent searches
|
||
* [ ] Ensure proper pagination and performance
|
||
|
||
### 🎯 Milestone 13: **"Textual Transport" Release** – Text-Based Playlist Import
|
||
|
||
* [ ] Support for pasting plain text playlists
|
||
* [ ] Line-by-line parsing with artist/song detection
|
||
* [ ] Confidence scoring for matches
|
||
* [ ] Manual review interface for low-confidence matches
|
||
* [ ] Support for various text formats (CSV, plain text, etc.)
|
||
|
||
### 🎯 Milestone 14: **"Curated Collector" Release** – Playlist Scraper
|
||
|
||
* [ ] Web scraper for Spotify web interface
|
||
* [ ] Extract track names and artists from HTML/JSON
|
||
* [ ] Format compatibility with text-based import
|
||
* [ ] Handle rate limiting and detection prevention
|
||
|
||
### 🎯 Milestone 15: **"Server Stability" Release** – Production Web Server
|
||
|
||
* [ ] Replace Flask development server with Gunicorn/uWSGI
|
||
* [ ] Configure proper worker processes and threads
|
||
* [ ] Implement graceful shutdown and restart capabilities
|
||
* [ ] Add Nginx as reverse proxy with proper caching
|
||
* [ ] Set up proper SSL termination and security headers
|
||
* [ ] Optimize static file serving
|
||
|
||
### 🎯 Milestone 16: **"Database Durability" Release** – Concurrent Operations
|
||
|
||
* [ ] Implement connection pooling
|
||
* [ ] Add database query optimizations and indexing
|
||
* [ ] Configure database for concurrent write operations
|
||
* [ ] Set up monitoring for database performance
|
||
* [ ] Implement read/write splitting if necessary
|
||
* [ ] Add database migration safety for zero-downtime upgrades
|
||
### 🎯 Milestone 17: **"Scraper Symphony" Release** – External Music Data
|
||
|
||
* [ ] Identify 2–3 public music chart sources (Billboard, Official Charts, etc.)
|
||
* [ ] Build scraper with user-agent rotation and proxy support
|
||
* [ ] Normalize results into song data model
|
||
* [ ] Link scraped data to existing Spotify records
|
||
* [ ] Review interface for admins to validate scraped data
|
||
* [ ] Store scraper runs and log errors transparently
|
||
* [ ] Add cron-based scheduler for scraper refresh
|
||
|
||
### 🎯 Milestone 18: **"Alert Amplifier" Release** – Notifications & Emails
|
||
|
||
* [ ] Email verification for new accounts
|
||
* [ ] Notify users when round generation completes
|
||
* [ ] Notify users of expiring OAuth tokens (Spotify, Dropbox)
|
||
* [ ] Optional weekly usage summary for admins
|
||
* [ ] Push notification support via browser or Telegram
|
||
|
||
### 🎯 Milestone 19: **"Rhythm Roundsmith" Release** – AI-Generated Quiz Rounds
|
||
|
||
* [ ] Develop AI module to generate full quiz rounds
|
||
* [ ] Use existing song metadata (genre, year, tempo, artist)
|
||
* [ ] Support different quiz formats: multiple-choice, guess-the-clip, open-ended
|
||
* [ ] Create quiz rounds from a playlist
|
||
* [ ] Let users prompt AI with a theme or vibe (e.g., "Chill 80s", "Dancefloor Divas")
|
||
* [ ] Include fallback logic when metadata is sparse
|
||
* [ ] Let users review/edit AI-generated questions before saving
|
||
* [ ] Log prompt/response pairs for model improvement
|
||
* [ ] Add backend abstraction to swap AI providers (OpenAI, Mistral, etc.)
|
||
* [ ] Build tuning pipeline for prompt quality testing
|
||
|
||
### 🎯 Milestone 20: **"Storage Sanctuary" Release** – Multi-Provider Storage
|
||
|
||
* [ ] Implement cloud storage backend abstraction
|
||
* [ ] Add support for AWS S3 storage
|
||
* [ ] Configure S3 credentials and bucket management
|
||
* [ ] Support for optional encryption and lifecycle policies
|
||
* [ ] Add support for S3-compatible storage (MinIO, Wasabi, etc.)
|
||
* [ ] Integrate Dropbox as a storage backend
|
||
* [ ] Create unified storage management UI
|
||
* [ ] Export backups to cloud storage
|
||
* [ ] Store and retrieve music rounds from cloud storage
|
||
* [ ] Add background synchronization and status tracking
|
||
* [ ] Implement bandwidth-efficient differential uploads
|
||
|
||
### 🎯 Milestone 21: **"Collaboration Core" Release** – Multi-User Round Sharing
|
||
|
||
* [ ] Allow shared editing of rounds
|
||
* [ ] Add collaboration roles (view, comment, edit)
|
||
* [ ] Invite others to rounds via username/email
|
||
* [ ] Show who is currently editing (presence indicator)
|
||
* [ ] Track revision history and changes
|
||
* [ ] Allow public view-only sharing links with optional expiration
|
||
* [ ] Display access audit log (who opened/edited and when)
|
||
|
||
### 🎯 Milestone 22: **"Profile Personalizer" Release** – User Preferences & Tagging
|
||
|
||
* [x] User-specific intro/outro/replay MP3 fallback system
|
||
* [x] Persistent custom user settings
|
||
* [ ] Let users define default round format
|
||
* [ ] Implement personal tags for rounds (e.g., "pub night", "2020s", "pop")
|
||
* [ ] Add filtering and sorting by tag
|
||
* [ ] Dark mode toggle
|
||
|
||
### 🎯 Milestone 23: **"Performance Pulse" Release** – Scaling & Speed
|
||
|
||
* [ ] Index high-traffic database fields (tags, dates, users)
|
||
* [ ] Paginate round/song lists
|
||
* [ ] Lazy load MP3 previews and large content
|
||
* [ ] Add Redis/memory cache layer for read-heavy endpoints
|
||
* [ ] Load test with simulated users and large playlists
|
||
|
||
### 🎯 Milestone 24: **"Deployment Dynamo" Release** – CI/CD and Maintenance
|
||
|
||
* [ ] GitHub Actions or GitLab CI/CD pipeline for builds and tests
|
||
* [ ] Nightly backup job with status alert
|
||
* [ ] Add Sentry or similar for exception tracking
|
||
* [ ] Updater script for pulling latest Git commits safely
|
||
* [ ] Add status endpoint (`/healthz`) for uptime monitors
|
||
|
||
---
|
||
|
||
## Other Features / Ideas in Progress
|
||
|
||
* [ ] "Blind Test" toggle per round (hide title/artist metadata)
|
||
* [ ] Team scoreboard (live projection mode)
|
||
* [ ] Public round library with clone/save features
|
||
* [ ] REST API for third-party integration (e.g., with trivia bots)
|
||
* [ ] Audio fingerprint validation for user-uploaded MP3s
|
||
* [ ] Round analytics: usage frequency, popularity, ratings
|
||
* [ ] Documentation enhancements:
|
||
* [ ] Create video tutorials for complex workflows
|
||
* [ ] Implement keyboard shortcuts in the application
|
||
* [ ] Document keyboard shortcuts for power users when implemented
|
||
|
||
*Last updated: May 27, 2025*
|
||
|