LOL DRAFT TOOL
THE PROBLEM
In League of Legends, each team picks its champions in turn before the game starts, and the hardest part is choosing yours. The best pick depends on who your teammates and opponents have chosen so far, but tier lists rate champions in isolation. Nothing tells you which champion is strongest for the specific draft in front of you, so you end up picking on instinct.
THE SOLUTION
A recommendation tool that suggests the best champion to pick as the draft unfolds. As you enter bans and picks, it ranks your options by how each one interacts with the champions your teammates and opponents have chosen. It's built on every current-patch game the top-ranked players have played, so the advice reflects how the game is played right now.
UNDER THE HOOD
- Rate limiter. A thread-safe sliding window keeps the sync inside Riot's two limits (20 requests/sec, 100 per 2 min), with retry and backoff.
- Incremental sync. Each player resumes from a checkpoint, games shared between players are de-duplicated, and writes are batched per player.
- Patch-aware. A daily job detects a new game patch and resets the statistics, so recommendations never mix old and new balance changes.
- Model-ready storage. Every match is stored as a role-by-role row of champion picks and the result, ready to train on.
- Push-to-deploy. The API redeploys to Cloud Run from GitHub Actions through Workload Identity Federation, with no stored cloud credentials.
- Lean API. Two endpoints, one for champion metadata and one for recommendations, typed end to end with Pydantic.