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

9.9 KiB
Raw Blame History

Quizzical Beats TODO List

Completed Milestones

Milestone 1: Spotify Integration Fix (Immediate Priority)

  • Fix Spotify playlist import functionality

    • Implement proper pagination for playlist retrieval
    • Add better error handling for API rate limits
    • Refactor Spotify client code for maintainability
    • Add logging to track API requests and responses for debugging

Milestone 2: Authentication Foundation

  • Design database schema for users and roles
  • Implement basic authentication system with local username/password
  • Create user management interfaces (register, login, profile)
  • Set up admin role functionality
  • Implement secure password handling and session management

Milestone 3: Spotify Integration with User Accounts

  • Migrate Spotify token storage to user-specific model
  • Add Spotify OAuth login option
  • Create fallback mechanism for service account
  • Link user playlists with their Spotify accounts

Milestone 4: Enhanced User Experience

  • Enable user-specific intro/outro/replay MP3s
  • Update email system to use logged-in user's email
  • Implement user preferences and settings

Milestone 5: Additional OAuth Providers

  • Add Google OAuth integration
  • Add Authentik OAuth integration
  • Ensure consistent user experience across auth methods

Milestone 6: Advanced Features & Optimizations

  • Create comprehensive logging and monitoring

Milestone 7: "Bulletproof Backups" Release System Backup & Restore

  • Implement full system-wide backup and restore

    • Backup all critical data: DB, rounds, MP3s, user settings
    • Support both manual and scheduled backups
    • Admin UI to download, manage, and restore backups
    • Store backups to local filesystem or optional cloud locations
    • Include versioning to support future schema migration compatibility
    • Add internal backup verification/checksum logic
    • Integrate with Ofelia scheduler for automatic backups
    • Add command-line backup functionality for scripting
    • Implement retention policy for automatic cleanup of old backups
  • Add system health check and status dashboard

Milestone 8: "Dropbox Dispatch" Release Round Export via Dropbox

  • Add Dropbox OAuth login per user
  • Let users link/unlink and view Dropbox account info
  • Export full rounds (metadata + MP3s) as ZIP or PDF
  • Push selected rounds to user's Dropbox via UI
  • Add fallback handling and Dropbox access token refresh
  • Log export actions and errors for transparency

Milestone 9: "Documentation Dynamo" Release Comprehensive Documentation

  • Complete user-facing documentation
    • Create step-by-step user guides with screenshots
    • Add FAQ section based on common support questions
  • Developer documentation
    • API documentation with OpenAPI/Swagger spec
    • Database schema documentation with ER diagrams
    • Codebase architecture overview
    • Setup guide for local development environment
  • Operations documentation
    • Deployment guide for various environments (Docker, bare metal)
    • Backup and restore procedures
    • Monitoring and alerting setup
    • Troubleshooting common issues
  • Create centralized documentation portal
    • Set up MkDocs or similar documentation site
    • Implement search functionality
    • Add version control for documentation
    • Set up automated documentation deployment

🆕 Upcoming Milestones

🎯 Milestone 10: "Import Infrastructure" Release Queue & Worker Setup

  • Implement import queue system
  • Add background worker process for playlist imports
  • Support multiple concurrent import jobs
  • 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
  • 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

  • User-specific intro/outro/replay MP3 fallback system
  • 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