Team captains register through buttons in Discord. Organizers seed the teams on a drag-to-reorder web page, and the bot then creates a Challonge bracket plus a role and channels for every team. During matches it handles pick/bans, rehosts, and caster assignments. When the tournament ends it cleans up the channels and asks the top two teams for their VODs.
What I built
- Slash commands and button-based forms for registration, roster edits, and pick/bans
- Double-elimination brackets through the Challonge API
- A small aiohttp web app for seeding, the admin bracket, and a tournament dashboard
- Scoreboard image generation, with tournament data saved to a GitHub Gist