The inspiration for this project came from my curiosity about combining gaming and data analytics. As both a gamer and a computer science student, I wanted to explore how real gameplay data could be transformed into meaningful insights that help players improve. League of Legends generates vast amounts of match data, yet most of it remains unused beyond simple win loss screens. My goal was to design a coaching agent that automates the full analytical process; from fetching raw match data to visualizing performance metrics in a structured, interpretable way.
I built the project by connecting to the Riot Match-V5 API to extract match data through a player’s unique PUUID. The raw JSON data was transformed with Python and Pandas into clean, structured tables containing performance metrics such as KDA ratio, creep score per minute, gold efficiency, and damage per minute. The processed data was stored on AWS S3 in separate layers for raw, staged, and analytics data, then visualized in Amazon QuickSight. This end-to-end flow mirrored real-world data engineering principles, including idempotency, safe retries, and schema consistency.
Throughout development, I learned how to handle API pagination and rate limits, design fault-tolerant ETL pipelines, and think critically about how metrics translate into insights. One key challenge was dealing with Riot’s deeply nested JSON structure and ensuring the transformations were both accurate and reusable. Another was integrating S3 storage with QuickSight while maintaining performance and clean schema mapping.
The most interesting discovery was that high win rates did not always correlate with high KDA; some champions succeeded because of strategic play rather than raw mechanics. This showed how teamwork metrics like vision and map control can outweigh combat stats. Building this project deepened my understanding of data pipelines and analytics while reinforcing how quantitative insight can enhance gameplay awareness and self-improvement.
Built With
- amazon-quicksight
- amazon-web-services
- boto3
- json
- jupyter-notebook
- pandas
- python
- requests
- riot-games-match-v5-api
Log in or sign up for Devpost to join the conversation.