Inspiration

As esports continues to grow, professional teams need efficient ways to analyze opponents before matches. Traditional scouting involves hours of VOD reviews, manual stat tracking, and scattered data sources. We wanted to create a tool that automates this process using official GRID API data, giving coaches and players a comprehensive opponent breakdown in seconds.

What it does

OpponentIQ automatically generates professional scouting reports for League of Legends and VALORANT teams by analyzing their recent match history. The tool provides:

  • Team-wide strategies with win rates and composition patterns
  • Player analysis with individual stats and champion/agent pools
  • Composition breakdowns with frequency percentages
  • Actionable insights with data-driven recommendations
  • Professional PDF and JSON export capabilities
  • Historical tracking to compare reports over time

How we built it

We built the backend using Python with FastAPI to handle all API logic and data processing. We integrated GRID's GraphQL APIs using both Central Data and Series State endpoints to fetch real competitive match data.

Custom algorithms in scouting_analyzer.py process raw match data to identify patterns, calculate player statistics, and generate strategic insights.

The frontend uses HTML5, Bootstrap 5, and vanilla JavaScript with interactive Chart.js visualizations and a galaxy-themed loading animation.

We developed the entire project in JetBrains PyCharm, which streamlined development with intelligent code completion, integrated debugging, and efficient project navigation.

Challenges we ran into

API Data Complexity: GRID's data is split across two endpoints, so we had to design a two-stage retrieval system and normalize the responses.

Role Inference: League of Legends player roles aren't explicitly provided by the API, so we implemented logic to infer roles based on champion selections and game positions.

Data Transparency: Some match data like specific VALORANT map names isn't always available, so instead of fabricating data we transparently display "Unknown" to maintain credibility.

Real-time Performance: Fetching and processing 10+ matches with detailed stats required query optimization to keep response times under 5 seconds.

Accomplishments that we're proud of

  • 100% live GRID API integration with zero mock or demo data
  • Generated reports include actionable "How to Win" strategies backed by real statistics
  • Professional PDF export feature for actual team usage
  • Clean error handling and transparent data representation
  • Multi-game support for both League of Legends and VALORANT in a unified interface
  • Interactive data visualizations make complex stats digestible and easy to understand

What we learned

We learned advanced GraphQL query optimization techniques for efficient API calls. We gained experience in real-time data processing and statistical pattern detection. We learned how to build production-ready analytics tools for esports. We discovered the importance of balancing feature complexity with user experience. Most importantly, we learned the value of data transparency in competitive analysis tools.

What's next for OpponentIQ

  • Expand game support to include CS:GO, Dota 2, and other esports titles
  • Add advanced analytics features like win probability predictions and meta-shift detection
  • Implement team comparison features for side-by-side analysis of multiple opponents
  • Create API access so third-party tools can integrate OpponentIQ's analysis
  • Add live match integration for real-time scouting during tournaments

Built With

Share this project:

Updates

Submission history