Flagship Android App

Badminton Tournament League

Full-stack tournament management platform for badminton. Organize singles and doubles tournaments with auto bracket generation, live scoring, and ranking all from your phone.

Badminton Tournament League app banner

Core Features

🏆

Tournament Management

Create and manage tournaments with full control over format, scoring, and participants. Supports knockout, round-robin, and Swiss formats.

  • Singles & doubles tournament types
  • Custom start/end dates & location
  • Configurable max match score (default 21)
  • Organizer controls: edit, delete, conclude
🔀

Auto Bracket Generation

Custom-built bracket engine supporting single and double elimination with up to 32 participants. Bye matches auto-resolved.

  • Single elimination with seeded bracket tree
  • Double elimination with winners/losers brackets
  • Grand final match support
  • Self-referential match linking for traversal
🎯

Live Match Scoring

Score matches in real-time with best-of-3 sets, deuce logic, and auto-advancement to the next bracket round.

  • Best-of-3 sets per match
  • Configurable deuce cap (+10 points)
  • Auto-determined set winners
  • Winner auto-advances in bracket
👥

Player & Team Management

Full player directory with profiles, leaderboard, and match history. Team creation for doubles with partner pairing.

  • Player directory with search & filter
  • Elo-style ranking system (starting at 1000)
  • Offline player creation (no account needed)
  • Avatar upload via image picker
📅

Schedule & Calendar View

Browse all matches in a calendar view, filterable by date. Each match shows participants, court number, and tournament name.

  • Calendar-based match schedule
  • Date-filtered browsing
  • Court number assignment
  • Live match banner on home screen
🔐

Authentication & Profiles

Secure authentication with email/password and Google Sign-In. JWT-based sessions with persistent login.

  • Email & password registration/login
  • Google OAuth 2.0 sign-in
  • JWT session with AsyncStorage persistence
  • Profile editing with playing style & avatar

Screenshots

Technical Specifications

React NativeMobile Framework (0.86)
TypeScriptLanguage
Express + TSBackend
PostgreSQLDatabase
Hermes EngineJS Runtime
API 24+Minimum SDK
React NavigationNavigation (7.x)
JestTesting

Architecture Overview

📱

Mobile App (React Native)

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.

🌐

REST API (Express)

Modular route-based Express server with JWT auth middleware. Plain SQL via pg Pool — no ORM. Swagger docs at /docs. File uploads via multer.

🗄️

PostgreSQL Database

Relational schema with 8 tables: users, players, tournaments, matches, teams, tournament_participants, brackets, and logs. Bracket engine uses self-referential match links.