Your own HTML pages with Python behind them: routes, pages built from data, forms, saving to a file and JSON, ending with the same API in FastAPI.
Routes join addresses to functions; templates build pages from data.
Make a website whose pages come from Python: each address is a route, and a function gives back its page.
Keep the club's players in a list, and let a template build the pages from it: one table for all, and a page for each player.
Take answers from a form, check them, and save them to a file so they last.
Make the club page's sign-up form work: the form sends its answers, a route reads them, adds the new member and goes back home.
Save each new member to a CSV file, and read the file to show the list, so sign-ups last after the app stops.
Send data as JSON for other programs, then the same API in FastAPI.
Send the club's data as JSON, so other programs (an app, a game, another website) can read it: routes that return data instead of pages.
Build the club API again in FastAPI, where each input's type is checked and converted for you, and wrong input gets a clear error reply.
Progress is saved in this browser only. Nothing is sent anywhere.
For teachers: Teacher guide (notes, answers, solutions, slides and worksheets)