motivation
Every year, running a 200-person math and science tournament involves a chaotic web of Google Sheets, paper grading rubrics, and manual data entry. When you have dozens of volunteers trying to check in participants, grade individual and team rounds, and calculate live scoreboards simultaneously, standard spreadsheets buckle under the concurrency. Race conditions overwrite scores, and calculating final results takes hours. Tetragon was engineered to replace that fragile system with a unified, real-time logistics dashboard.
architecture
The platform is a Next.js application using the App Router, deployed on Vercel. The entire backend—Postgres database, authentication, and real-time state—is offloaded to Supabase.
Instead of a monolithic interface, the UI is heavily decoupled into specialized modules based on the user's role. The dashboard routes volunteers to specific views, such as the staff management panel, proctor guide, or grading panel. When a proctor submits a score via the individual or team grading components, the payload hits a dedicated Next.js API route, which securely communicates with Supabase.
Client (Proctor) --POST /api/calculate-scores--> Next.js API (Vercel)
Next.js --> Supabase Postgres (Row-Level Security)
Supabase --Realtime Subscription--> Client (ScoreboardPanel)