-
-
Summoner Lookup
-
Summoner Data being fetched
-
-
Insight about data being generator by Bedrock
-
-
Data being processed after being fetched
-
Charts from the past matches
-
Complete achievement from the summoners history
-
Statistics of the last 20 matches played by summoner
-
Dashboard after insight is generator
-
Generative AI interactions
-
Inspiration
Every Summoner has a story, a journey told through victories, defeats, and that one pentakill you’ll never forget. D-Summoner-Story was born out of a desire to transform match statistics into a narrative-driven experience. Instead of raw data dumps, we wanted to create an immersive analytics layer where performance feels alive, where your League journey becomes your legacy.
What it does
D-Summoner-Story is a data-driven storytelling platform for League of Legends players. It connects to the Riot Games API, retrieves real-time match data, and transforms raw gameplay statistics into personalized performance insights and summaries.
How I built it
The backend is built in Python on a serverless AWS stack for high scalability and low latency. The frontend was deployed to AWS S3 and served to users using Cloudfront as a Content Delivery Network. Architecture Overview: API Gateway exposes RESTful endpoints securely. AWS Lambda (Python) executes logic for fetching, transforming, and caching data from the Riot Games API. Amazon DynamoDB serves as a persistent store for player profiles, match histories, and computed stats. IAM + GitHub Actions OIDC enables secure, credential-less CI/CD deployment. Amazon Bedrock for AI-driven insights like adaptive player feedback and performance summaries. To optimize performance, we implement lazy data caching — only refreshing match data when players request it or when a cooldown threshold expires. All API requests are wrapped in a custom rate-limit manager, ensuring compliance with Riot’s developer policies.
Mathematically, our performance ranking model uses: Performance Score= log(Games Played+1) (KDA+WinRate×2)+(CS/min×0.5) This produces a balanced view of consistency, mechanical skill, and contribution.
Challenges I ran into
Handling rate limit backoff strategies while keeping API latency low. Managing multi-region AWS resource synchronization (especially Lambda & DynamoDB). Troubleshooting AWS STS + OIDC permissions during CI/CD setup. Normalizing Riot’s complex data schema into a unified player analytics model. Debugging “Internal server errors” from inconsistent API payloads during integration testing. Debugging the lambda function for Data processor and Insight Generator
Accomplishments that I am proud of
Successfully integrated the Riot Games API into a fully serverless backend using AWS Lambda and API Gateway, achieving sub-second response times for summoner queries. Built a scalable data model in DynamoDB to store player profiles, match summaries, and computed stats optimized with on-demand read/write capacity and partition key strategies. Automated CI/CD pipeline using GitHub Actions + AWS OIDC, enabling frictionless deployments without long-lived credentials. Developed a custom performance scoring algorithm that evaluates player impact across multiple matches using advanced mathematical weighting and normalization. Transformed raw stats into storytelling, allowing players to relive their best plays, consistent streaks, and evolution as Summoners. Implemented secure API key and environment variable handling through AWS Secrets Manager and GitHub Actions environment controls. Maintained modular Python architecture, ensuring clean separation of concerns between API handlers, services, and data layers. Built a foundation for cross-region expansion, preparing the project for future integration with Bedrock AI and real-time analytics dashboards.
What I learned
Integrating Riot’s APIs efficiently while respecting rate and concurrency constraints. Architecting serverless microservices for real-time data retrieval. Using GitHub Actions for zero-touch deployments across multiple AWS environments. Designing statistical models that translate raw game data into player growth metrics. Implementing secure environment variable handling (AWS Secrets Manager) for API keys and credentials.
What's next for D-Summoner Story
Community API + Open Stats Hub: Launch a public developer API so community creators can build bots, overlays, or extensions powered by D-Summoner Story data. Security & Scalability Enhancements: Strengthen IAM policies, introduce AWS WAF for protection, and migrate heavy workloads to ECS Fargate for improved scalability and latency optimization. Multi-Region Support: Expand API coverage to support multiple Riot regions and auto-detect servers for a seamless global experience.
Log in or sign up for Devpost to join the conversation.