One scoring model
Web and native scoring share the same backend rules so attempt limits and results remain consistent across devices.
Production meet operations
A web and mobile platform that runs registrations, check-in, scoring, live results, and organizer workflows from one shared system.

The product
I designed this around the pressure of a real meet day: many athletes, multiple devices, fast scoring decisions, and no room for data drift. The product combines public registration and results with role-aware administration, native clients, operational health checks, and a shared backend.
Architecture
A public, high-level view of the system. Credentials, private data, deployment identifiers, and source code remain protected.
Web, iPhone, iPad, and Android clients
→Traffic routing, tunnel, health, and failover
→Flask pages, public APIs, mobile APIs, and admin routes
→Convex functions and authoritative production data
→Two Linux servers, monitoring, backups, failover, and releases
Engineering decisions
Web and native scoring share the same backend rules so attempt limits and results remain consistent across devices.
Cloudflare routing, health endpoints, primary and failover services, backups, and documented recovery paths reduce meet-day risk.
Code changes move through explicit checks and repeatable native release workflows before reaching athletes and organizers.