Full-stack tournament management platform for badminton. Organize singles and doubles tournaments with auto bracket generation, live scoring, and ranking all from your phone.
Create and manage tournaments with full control over format, scoring, and participants. Supports knockout, round-robin, and Swiss formats.
Custom-built bracket engine supporting single and double elimination with up to 32 participants. Bye matches auto-resolved.
Score matches in real-time with best-of-3 sets, deuce logic, and auto-advancement to the next bracket round.
Full player directory with profiles, leaderboard, and match history. Team creation for doubles with partner pairing.
Browse all matches in a calendar view, filterable by date. Each match shows participants, court number, and tournament name.
Secure authentication with email/password and Google Sign-In. JWT-based sessions with persistent login.
Screen-based architecture with custom data hooks. Auth state via React Context. API calls through a typed fetch wrapper. Google Sign-In and image picker for avatars.
Modular route-based Express server with JWT auth middleware. Plain SQL via pg Pool — no ORM. Swagger docs at /docs. File uploads via multer.
Relational schema with 8 tables: users, players, tournaments, matches, teams, tournament_participants, brackets, and logs. Bracket engine uses self-referential match links.