Development
Engineering for live, high-stakes contests.
The platform is built so a missing score or a stale judge submission can never silently corrupt results.
Multi-tenant by design
Every event-scoped record carries an event_id. Postgres Row Level Security enforces tenant isolation — even a misconfigured query can't leak data across events.
Role-based access at two levels
Platform roles (site super admin, support, developer) and event roles (event owner, contest chair, room manager, judge, chapter advisor, tabulator, public viewer) check via security-definer functions to prevent recursive policy bugs.
Server-side scoring engine
Tabulation, penalties, tie-breakers, and rankings are calculated in server functions — never trusted from the client.
Versioned rules engine
Rule sets, rubrics, and contest rules are versioned database rows. Section events clone official rule sets and override within controlled bounds.