## Completed:
- [x] Free floating rounds
- [x] Authentication
- [x] Round types: Text, YouTube videos, and Spotify tracks submission types
- [x] Group rounds into Leagues
- [x] STATS: Track statistics per league and per user, including the top 5 most voted and top 5 least voted submissions.
- [x] Resolved voting bug: email notifications now stop due to database marking as true.
- [x] BUG: Copy functionality now includes the user's song.
- [x] Comments are displayed even if points are 0.
- [x] Fixed issues with voting check marks.
- [x] Improve reload functionality; reload after submitting new state
- [x] List of ideas available for voting in TakeWars! A tab called IDEAS, where the admin can mark submissions as done.
- [x] Make it a PWA
- [x] Clean up email templates
- [x] Badges: Implement badges for achievements such as "Never Missed a Vote," "Most Votes," "Most Comments," etc.
- [x] Performance over time graph in stats, showing your ranking after each round
- [x] Add a dropdown menu to display active leagues
- [x] BUG: league mention does not need to be on league cards
- [x] Profile: Allow users to update their username; additional stats can be displayed here
- [x] BUG: If a user doesn't submit, they can't vote
- [x] Email notifications for new rounds starting
- [x] PERF: Optimize cron job to handle rate limits and only fetch relevant rounds
- [x] Spectator Mode Phase 1: Allow users to view the league without submitting or voting. As long as you're logged in, you can view the league. You don't have to join to view.
- [x] Add comments per submssions. Comments are optional:
- You can leave a comment when you submit.
- You can update a document after you submit if logged in.
- You can see all comments on the submission details page.
- You can see all comments on the results page.
- [x] Add Spotify embed rendering only for Spotiy types.
- [x] Allow comments with submissions (or text submissions get a larger text area)
- [x] When you answer or edit an answer, we render an embed. dont touch othe rendering
- [x] Block submissions to future rounds while earlier rounds are active
- [x] Added 24 hour email reminder for users to submit.
- [x] feat: enforce one active round at a time
- Only allow one round to be active at any time
- If you add a round while one is active, it's marked as "coming soon"
- New rounds can't accept submissions until current round completes
- [x] Push notifications: Core functionality working for Chrome and Firefox
- [ ] Safari support needed (requires Apple Developer account and certificate setup)
- [x] BUG: Fixed - Multiple rounds ending at the same time now correctly send separate emails
## In Progress:
- Push notifications: Safari support
- Investigating: If two rounds end at the same time for one user, only one email is sent
## Soon:
- Should we reveals votes as they come in? or only after?
- If everyone in the league submits, transition to the voting stage
- Improve loading states
- Add stat: total missed points. Points missed by not voting.
- BUG: Ranking progression chart shows incorrect order compared to leaderboard
- Spectator Mode Phase 2: Allow users to join a league; results are sent via email notifications, but they cannot submit or vote.
## After:
- Season support: Add season functionality for all leagues
- Max points: Implement maximum points per user per round
- Toasts: Replace alerts with toast notifications
- Moderation: Implement a banned words/tracks list
- Duplicates: Introduce AI-powered duplicate detection
## Maybe Later:
- Slack bot: Create Slack integration
- Generate Spotify playlists: Integrate Spotify API for playlist generation
- Request to extend voting period and request to end early