LBTryout

How the idea was born

While working as an ocean lifeguard for the Long Beach Fire Department, I spent three consecutive March tryouts running up and down the ramp at our headquarters to run the time sheets, which were then tabulated on Excel by a very tense Marine Safety Officer. The whole process, to me just felt very outdated, error prone, and easy to automate. I wanted to give the tryout a single instant source of truth, to be able to enter a time and rankings to update immediately. So after the winter of my first semester of college, I set out to build this app that is now used in my agency every year during the tryouts to score +100 participants.

What it does

LBLG Tryout digitizes the scoring workflow for the lifeguard tryout

  • Participant registration - onboarders register candidates with their name and unique arm number

  • Two scored events - Candidates compete in a Run Swim Run event and a 1000m swim. Editors enter the finish times for each

  • Automatic Ranking - Event ranks are computed from times, and a combined ranking sums each candidate’s two event ranks to produce an overall standing

  • Public rankings view - A read-only rankings page (combined, RSR, and swim tabs) lets anyone follow the results without logging in

  • Participant profiles - Each candidate has a detailed page with their results and performance breakdown.

  • CSV export - Editors can export any ranking table to CSV for record keeping or distribution

How it’s built

I used Next.js and TypeScript for the front end and server components, along with Tailwind CSS and shadcn/ui for the dashboard, tables, forms, and responsive layout. I chose Supabase for ease of authentication and Postgres as a database. I pushed the ranking logic into a PostgreSQL view that joins both events, sums each candidate's per-event ranks, and uses a window function to compute the combined standings.

What’s next for LBLG Tryout

This is so interesting because it's a project I have been working on for years, and it’s come a long way since its first iteration. I think the main thing would be for the app to acquire better product design. For me, this means making it more user-friendly and respecting standard design rules (like not using red for text, etc.).

Beyond the UI, I’d like to explore integrating NFC technology into the scoring workflow. Instead of manually identifying competitors before entering scores, each participant could wear an NFC wristband linked to their profile. Judges or volunteers would simply tap the wristband with a device to instantly identify the athlete, record scores, and update the leaderboard in real time.

This would reduce manual data entry, minimize human error, and make the scoring process faster and more seamless during competitions. It’s an exciting direction because it shifts the application from being a digital score sheet to a more complete event management platform.