Skip to content
karim.semaan(open to work)
WorkExperienceAboutSkillsContactResume ↓
← All work
LolStats preview
Full-stackCompleted2024

LolStats

League match & live-game tracker

Full-stack · PreviewLolStatsLeague match & live-game tracker

Private repo; runs locally against the Riot API.

LolStats is a server-rendered Flask + Jinja web app over the Riot Games API. Given a Riot ID (Name#TAG) and region, it resolves the account (Account v1 → Summoner v4), fetches the 20 most recent matches (Match v5) with per-player KDA, CS-per-minute, vision, damage, items, runes and spells, and shows any in-progress game (Spectator API) with every participant's champion and ranked stats. It parallelizes match-detail and rank fetches with a thread pool and caches Riot responses in a 1-hour SQLite store to stay within rate limits; 16 regions are supported.

  • Python
  • Flask
  • Jinja2
  • Riot Games API
  • requests-cache
  • SQLite
  • concurrent.futures
Riot APIs
Account · Match v5 · Spectator · League v4
Match depth
Last 20
Regions
16
Caching
1h SQLite
Request access
Want something like this? Get in touch →
© 2026 Karim SemaanBuilt with Next.js, Tailwind & Supabase.LinkedIn ↗GitHub ↗