Problem & Constraints
Managing competitive collegiate gaming across 180+ campuses manually meant tournament admins were overwhelmed by student ID verification, team check-ins, and dispute handling during live game days.
How It's Built
1. Discord Verification & Role Hierarchy Engine
An automated verification bot that validates student credentials against campus registrar lists, granting university-specific channels and competitive tier roles.
Trade-off:Using Google Sheets as a human-editable bridge introduced rate-limit bottlenecks, which required an in-memory async write queue.
// Asynchronous student ID verification & role synchronization
async def verify_student(ctx, student_id: str, school_code: str):
cached_record = await db_pool.fetchrow(
"SELECT * FROM verified_students WHERE id = $1 AND school = $2",
student_id, school_code
)
if cached_record:
await ctx.author.add_roles(school_roles[school_code])
await ctx.send("Verification complete. University hub unlocked.")2. Hostinger KVM2 VPS Host Architecture
Hosted on a Linux KVM2 VPS running systemd service workers, asynchronous MySQL connection pools, and automatic memory-managed worker recycling.
3. Campus Leaderboard & Quest Engine
Tracks weekly inter-university scrimmage results and activity leaderboards across 80+ partner student organizations.
Hurdles & Solutions
Discord Gateway Rate Limits During Tournament Kickoffs
Problem:Over 800 players joining match lobbies simultaneously caused Discord API HTTP 429 rate limit freezes.
Resolution:Implemented token bucket rate limiters and queued role assignments through an asyncio worker pool with jittered backoff.
Google Sheets API Quota Exhaustion
Problem:Live lookups during tournament registrations burned through the 300 requests-per-minute quota.
Resolution:Built a local MySQL write-through cache syncing modified rows in 60-second batch intervals.
Results & Numbers
Scaled the platform to 10,000+ active student members across 180+ universities, cutting tournament check-in administrative time by 90%.