Rift Rewind
Inspiration
From late-night flex queues with friends to solo-queue sadness and sorrow, League has been our shared space for competition and entertainment. Rift Rewind was born from that — we wanted to take the raw data behind a year of games and turn it into something meaningful: a personal reflection on how we played and had fun.
Rift Rewind is a year-in-review for League players — part data visualization, part coaching, and part celebration. It highlights progress, exposes habits, and surfaces the next steps for improvement.
What It Does
- Fetches a player’s past-year match history via Riot ID to create a complete season recap: win rate, KDA, CS/min, damage/min, vision, role/champion trends, monthly activity, and more.
- Categorizes your champion pool into tiers — comfort picks, situational champs, and the “dodge list” — based on performance data.
- Reconstructs full item journeys (start → mid → final builds) from timeline data to show how builds evolve over a game.
- Delivers an AI-powered “roast-but-helpful” breakdown — direct, constructive feedback focused on fundamentals for your main role.
- Features a contextual chatbot (“Ryze”) that answers questions using your own stats and insights.
How We Built It
- Backend: Python + Flask providing endpoints for player lookup, stats, analysis, and chat, with CORS-enabled frontend access.
- Riot API: Used for account lookup, match data, and timelines, with rate-limit-aware fetching and pagination for year-wide coverage.
- Analytics: Custom processors compute per-minute metrics, role distribution, vision control, item usage, and champion pool stats.
- AI Insights: AWS Bedrock (Claude 3.5 Sonnet) transforms stats into a rank-agnostic, role-aware coaching narrative and powers the chat.
- Frontend: React app guiding users from Riot ID entry to a full recap experience.
- Infra & Config: Environment variables, custom item mapping, and tightly scoped prompt design to keep advice clear, actionable, and positive.
Challenges We Ran Into
- Timeline data is massive and inconsistent; we had to selectively fetch and stitch snapshots without breaching Riot’s API limits.
- Rank data gaps meant designing rank-agnostic insights benchmarked by role and performance metrics instead of titles.
- Finding the right tone and deciding what players actually care about took iteration, reflection, and prompt refinement.
Accomplishments We’re Proud Of
- Turning raw match and timeline data into personalized, story-driven summaries that feel relevant and motivating.
- Building item-journey reconstruction to surface build patterns through game phases.
- Creating a coach that references real metrics — CS/min, KP, vision pace, champion pool — for specific, data-backed feedback.
- Delivering a seamless flow from Riot ID → recap → insights → chat.
What’s Next
- Teammate-aware insights: duo synergy, lane partner impact, and objective control heatmaps.
- Patch-aware analysis: adjusting commentary as metas shift.
- Playstyle clustering: mapping users to archetypes (skirmisher, control mage, enchanter, etc.) for tailored advice.
- Shareable recaps: visual cards and year-over-year progress tracking.
Tech Stack
- Backend: Python, Flask, Requests, python-dotenv
- Data: Riot Match/Timeline APIs, custom analytics
- AI: AWS Bedrock (Claude 3.5 Sonnet)
- Frontend: React
- Hosting: rift-rewind-kohl.vercel.app
Why We Built It
Because we love the game, and an opportunity to build something for it is was just too good to pass up
Try It Out
License
This project is licensed under the MIT License.
Built With
- amazon-web-services
- bedrock
- flask
- python
- react
- riot-api

Log in or sign up for Devpost to join the conversation.