LoL Survival Tracker
A web app my friends and I use to run a League of Legends challenge. Players spin for champions from a shared pool, losses lead to eliminations, and win streaks earn revive tokens.
- Frontend built with React, TypeScript, TanStack Query, and Tailwind. Includes spin wheels, a champion pool, a shop, leaderboards, and achievements, and works on mobile.
- FastAPI backend with a background job that pulls finished matches from the Riot API, checks them against the challenge rules, and records the results. Matches that fail a check are flagged for manual review.
- Account system with hashed passwords, session cookies, invite links, and lockout after too many failed logins.
- GitHub Actions CI runs 120+ backend and frontend tests (pytest, Vitest), a production build, and Alembic migration checks.



