💡 Inspiration
Professional League of Legends teams spend hours manually analyzing draft matchups using spreadsheets and outdated databases. The draft phase determines 70% of a game's outcome, yet teams lack real-time decision support. We wanted to democratize the analytical advantage—giving any competitive team access to the same data-driven insights that top esports organizations use.
The GRID esports dataset gave us access to 2,751 professional games across 74 teams and 5 major leagues. We realized we could transform that raw data into an intelligent system that coaches and players could leverage within seconds of champion select.
🎮 What it Does
DRAFT Support is a real-time draft analysis platform that:
- Analyzes Draft State - As picks and bans happen, the system instantly evaluates team composition, synergies, and counter-matchups
- Recommends Champions - Ranked recommendations with 6 scoring factors (win rate, synergy, counter strength, team comfort, meta relevance, draft balance)
- Predicts Win Probability - Dynamic circular gauge showing your projected win rate updated after each action
- Predicts Opponent Moves - ML model forecasts enemy team's next pick based on historical patterns and current game state
- Warns of Threats - Alerts coaches to dangerous enemy compositions and missed synergy opportunities
- Profiles Teams - 74 professional teams with draft tendencies, champion pools, and first-pick patterns
The Interface:
- Beautiful cinematic landing page introducing the platform
- Real-time draft board with recommendations
- Live win rate gauge with smooth animations
- Opponent prediction tracker
- Critical alerts and warnings
- Fully responsive design
🛠️ How We Built It
Frontend (Modern Stack):
- Migrated from Create React App to Vite (10x faster builds)
- React + TypeScript for type-safe component architecture
- Tailwind CSS for cinematic dark UI inspired by professional esports branding
- Custom animations and scroll-reveal effects
- Responsive design working on desktop and tablet
Backend (Data-Driven):
- FastAPI with async WebSocket support for real-time updates
- Alternative lightweight HTTP server (no external dependencies)
- Data-driven recommendation engine analyzing:
- 159 unique champions across 5 roles
- 74 professional teams with draft tendencies
- Synergy matrices (1,564+ champion pairs analyzed)
- Counter matchup data from professional play
- Meta shifting across 5 major leagues and 2 years of data
Data Processing Pipeline:
- Custom GRID esports dataset parser (data_loader.py - 738 lines)
- Incremental statistics aggregation for memory efficiency
- Hierarchical data organization (global, by league, by tournament, by year)
- Batch processing with checkpointing every 100 series
- Processed data output: ~1 MB JSON files (champion stats, synergies, counters, team profiles)
Architecture:
- Modular design: draft_predictor.py (607 lines) handles all ML logic
- Recommendation scoring with weighted factors (25% win rate, 25% synergy, 20% counters, 15% comfort, 10% meta, 5% balance)
- Team-specific prediction using historical first-pick and comfort metrics
- Stateless API design for easy scaling
🚧 Challenges We Ran Into
- Data Inconsistency - GRID esports data had missing fields, duplicate entries, and inconsistent champion naming. We built validation and error recovery into the batch processor.
- Pydantic Version Conflicts - FastAPI and local dependencies clashed on Pydantic versions. We created an alternative HTTP server to avoid dependency hell while keeping the API identical.
- Real-Time Performance - Recommendation scoring needed to complete in <100ms for a responsive UI. We optimized data structures and pre-computed expensive aggregations.
- Team Comfort Metrics - Different teams have different champion preferences that change over time. We implemented rolling statistics tracking to capture meta shifts within teams.
- Modeling Opponent Behavior - Predicting opponent picks is non-trivial when teams adapt strategies. We weighted recent games more heavily and accounted for remaining champion pool.
- UI/UX Complexity - Displaying 6 recommendation factors, win probability, and warnings simultaneously without overwhelming the user. Multiple iterations on the UI led to the final dashboard design.
🏆 Accomplishments We're Proud Of
✅ Complete Data Pipeline - Processed 2,751 professional games into structured, queryable JSON files with hierarchical organization
✅ Production-Ready Frontend - Migrated to modern tooling (Vite) with cinematic UI and smooth animations. Completely redesigned with Tailwind CSS and custom components
✅ Multi-Factor Recommendation Engine - Sophisticated scoring system balancing 6 different factors rather than naive single-metric rankings
✅ Real-Time Architecture - WebSocket support for live updates with sub-100ms API response times
✅ Professional Design - Landing page with scroll-reveal effects, responsive design, custom typography (Playfair Display + Inter), glassmorphism UI elements
✅ Zero Deployment Dependencies - Alternative HTTP server with no external dependencies beyond Python stdlib (FastAPI optional)
✅ Documented & Clean - Well-organized codebase with clear separation of concerns (models, data processing, API layer, frontend)
✅ Scalable Architecture - Stateless API design, modular components, easy to extend with new features
📚 What We Learned
- Data Quality Matters More Than Volume - Having 2,751 games meant nothing until we cleaned and validated the data. 80% of the work was preprocessing.
- Professional Esports Data is Valuable - Teams pay for draft analysis tools. This data-driven approach gives competitive advantage—worth the complexity.
- Multi-Factor Models Trump Simple Metrics - Single-metric recommendations (just win rate) often miss context. Our 6-factor system is more nuanced and useful.
- Real-Time is Non-Negotiable - Draft decisions happen in seconds. A system that takes minutes to analyze is worthless. Fast iteration on the backend was critical.
- UI/UX is Half the Product - The best algorithm means nothing if coaches can't quickly understand the recommendation. Design clarity matters as much as the logic.
- Team Patterns are Predictable - Professional teams are creatures of habit. Teams consistently pick certain champions first or in specific situations. This historical data is powerful.
- Modern Tooling is Worth It - Vite vs Create React App was a revelation. Faster builds = faster iteration = better product.
🚀 What's Next for DRAFT Support
Near-term (Production Ready):
- Deploy backend to cloud (AWS EC2 or DigitalOcean)
- Host frontend on CDN
- Add authentication for team accounts
- Email notifications for new meta shifts
Medium-term (Expand Data):
- Integrate live game data feeds for real-time meta tracking
- Add patch impact analysis (champion balance changes)
- Track player-specific champion statistics (e.g., "Faker's LeBlanc win rate")
- Seasonal trend analysis
Long-term (Next Level):
- Mobile app for coaches on the sideline
- Coach dashboard with saved draft histories and team notes
- Integration with esports tournament APIs
- Predictive in-game recommendations (itemization, objective priority)
- Comparison mode: "How does our comp match this historical game?"
Stretch Goals:
- Support for other MOBAs (Valorant ability selection, DotA 2 drafting)
- Monetization: Premium tiers for pro teams with deep analytics
- API access for third-party esports platforms
- Live tournament integration (auto-pull opponent's recent games)
Built With
- fast
Log in or sign up for Devpost to join the conversation.