Files
gh-christianlouis-quizzical…/TODO.md
T
2025-05-27 23:01:11 +02:00

244 lines
9.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 23 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*