Group 10 · Capstone · Spring 2026

Youth Sports Registration — a registration form built to be reached.

A multilingual, accessibility-first registration platform for youth sports leagues — built around the families current systems exclude. Forms localise to the family's language, screen-reader labels are first-class, and the assistance layer offers translation, document-reading, and patient guidance when a parent needs it.

Domain Civic · sports
Stack i18nWCAG AATranslation assistNext.jsSupabase
Demoed · Spring 2026
IWhat we built

What problem this solves.

Youth sports registration is gatekept by software that assumes a parent who speaks English, owns a laptop, and has the patience to upload a PDF birth certificate without help. Families outside that template are routinely excluded — not by policy, but by the form. The cost is invisible to the league and decisive to the family that bounces.

Group 10 framed the registration form as the equity surface it actually is. The product is built around the families current systems shed — not as a translation veneer over an English-first form, but as a registration flow whose accessibility decisions cascade down from the language and assistance the family arrives with.

IIHow it works

The system, end to end.

The form is localised end-to-end: every label, error message, and confirmation is translated, not just the welcome page. Document uploads go through an assistive pipeline that reads the document, extracts what the league actually needs, and asks the parent to confirm in their own language — instead of failing silently when the file is rotated or low-resolution.

The assistance layer is the system's distinctive surface. When a family needs help, a parent can hand the form to an LLM-assisted helper that reads back the question in their language, explains what is being asked, and offers to fill the field on confirmation. Accessibility — screen-reader-first labels, focus order, contrast — is enforced by an automated pre-commit gate that fails the build when the form regresses.

Pipeline · Youth Sports Registration
Ingest
Family form
localised end-to-end
Transform
Internationalisation
end-to-end string extraction
Model
Document assist
OCR + LLM extraction
Transform
Accessibility gate
axe-core + Lighthouse
Storage
Registrations
per-team rosters
Surface
League dashboard
completion-rate analytics
Ingest Transform Model Storage Surface
IIIThe stack

What it's built on.

Layer · tool / library
Internationalisation End-to-end string extraction; no untranslated labels in production
Document assist OCR + LLM extraction of common youth-sports documents
Accessibility gate axe-core automated checks on every pull request
League dashboard Per-team roster surface with completion-rate analytics
Internationalisation
  • End-to-end string extraction; no untranslated labels in production
  • Per-locale field-ordering rules (name forms, date formats)
  • Right-to-left layout support in the layout primitives, not retrofitted
Document assist
  • OCR + LLM extraction of common youth-sports documents
  • Per-field confirmation surface in the parent's language
  • Privacy floor — extracted text stays in the form session
Accessibility gate
  • axe-core automated checks on every pull request
  • Lighthouse accessibility budgets enforced in CI
  • Manual screen-reader pass logged per release
League dashboard
  • Per-team roster surface with completion-rate analytics
  • Funnel telemetry to surface where families bounce
  • Outreach tools for families flagged as needing follow-up
IVDeliverables

What the team shipped.

Source repository GitHub · code, tests, README
Demo video Capstone day · screen recording, 4–6 min
Write-up PDF Final brief · methods, evaluation, reflection
Slide deck Capstone presentation · 10 slides
VWhat sets it apart

What sets this capstone apart.

Takeaway 01 · Localise the whole form

Not the welcome page — the form.

Every label, every error, every confirmation. Translation as a veneer over an English-first form is the failure mode. Localisation in this product is end-to-end or it does not count.

Takeaway 02 · Assist the upload

Read the document, ask in their language.

When a parent uploads a birth certificate that the validator can't parse, most systems just say "failed." This system reads what it can, asks the parent in their language to confirm the missing fields, and lets the flow continue.

Takeaway 03 · Accessibility as a build gate

WCAG AA, or the build fails.

Screen-reader labels, focus order, contrast — checked by an automated gate on every pull request. Accessibility is not a quarterly audit; it is the contract the form ships under.

VIIInstructor note

How this project landed.

The early proposal framed this work as a "better youth-sports portal" — a category framing that hides the actual user need behind feature comparisons. The reframe was to make exclusion the metric: which families does the current system shed, and what design decisions undo that?

Once the framing was right, the technical choices were obvious. Localise end-to-end. Assist the upload. Gate the accessibility. The capstone shipped a working flow that holds up to a real screen reader and a real Spanish-speaking parent — which is the only test that mattered.