Web application for downloading and analyzing figure skating score cards from competition result websites.
- Backend: Python + Litestar (async REST API)
- Frontend: React + Vite + TypeScript
- Database: SQLite (via SQLAlchemy async)
- Package manager: uv
- Python 3.11+
- Node.js 18+
- uv (
pip install uvorcurl -LsSf https://astral.sh/uv/install.sh | sh)
cd backend
uv venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
uv pip install -r requirements.txtcd frontend
npm install# From project root
make dev-backend # Start Litestar on http://localhost:8000
make dev-frontend # Start Vite dev server on http://localhost:5173
make test # Run backend testsOr manually:
# Backend
cd backend && uv run uvicorn app.main:app --reload
# Frontend
cd frontend && npm run dev- Open http://localhost:5173
- Add a competition by pasting its result website URL
- The app will download and parse the PDF score sheets
- Browse scores, statistics, and visualizations per skater or competition
- Download PDF score sheets from competition result websites
- Parse and store structured score data (technical scores, components, elements)
- Cross-competition statistics and skater progression tracking
- Interactive charts and visualizations