Genki TCG
Full-stack tournament management platform
The Challenge
Trading card game stores struggled with manual tournament management—paper brackets, incorrect pairings, and delayed standings. Players had no visibility into upcoming rounds, and organizers spent hours on administrative tasks instead of growing their community.
The Solution
I built a complete tournament ecosystem: a React Native mobile app for players to register, view pairings, and report results in real-time; a Next.js admin dashboard for organizers to manage events and standings; and a NestJS backend with a custom Swiss pairing algorithm implementing professional-grade tiebreakers (OMW%, GW%, OGW%).
Key Features
Swiss Pairing Algorithm
Implemented professional tournament pairing with OMW%, GW%, OGW% tiebreakers, bye assignment fairness, and float handling across point buckets.
Real-time Updates
Socket.io integration delivers instant pairings, standings, and announcements to all connected players and admins.
Credits System
Player wallet with immutable audit trails for prize distribution, refunds, and store credit management.
Multi-platform Apps
React Native mobile app for players with event registration, match reporting, and leaderboards. Next.js admin dashboard for tournament organizers.
The Outcome
The platform now powers tournaments at multiple game stores, reducing tournament management time by 70%. The Swiss pairing algorithm handles 50+ player events with sub-second pairing generation. Real-time updates via Socket.io keep all participants synchronized.
Engineering Highlights
- Extracted tournament logic into a separate, testable package with 86 passing tests
- Designed multi-tenant architecture with org-scoped RBAC (Owner, Staff, Player roles)
- Built JWT + Discord OAuth authentication with refresh token management
- Implemented push notifications via Expo Server SDK