PHPS Elite — Jersey Selection
A one-page form that let players on a youth basketball team claim their jersey number and size without two kids ending up with the same number.
What it was
Each player entered their name, a first and second choice of number, and a jersey size. Numbers already taken were listed on the page, and the server rejected a submission only if both choices were gone. If just the first choice was taken, the second was assigned automatically.
The official size chart sat beside the form, and the coach could download the full roster as a CSV to place the order. It was built for one roster and one order.
How it worked
- Single FastAPI app with Jinja2 templates and Tailwind.
- SQLite (aiosqlite); claimed numbers were checked on the server, not just in the browser.
- Per-IP rate limit on submissions; token-protected CSV export for the coach.
Built with
This project is retired and its server has been shut down. Its code and data are kept, so it can be brought back if needed. Browse the projects that are still running →