Menu
Back to Projects
UniteMatch-AI

UniteMatch-AI

AI-powered Pokémon Unite team optimizer. Built with FastAPI, and pandas to analyze Pokémon stats and suggest high-synergy teams using real match data.

Primary Language
JavaScript
Last Updated
May 30, 2025

Tech Stack

JavaScriptPythonFastAPI

About This Project

UniteMatch-AI is a web application designed to help Pokémon Unite players make better team composition decisions by analyzing Pokémon roles, synergies, and performance data. The application transforms complex game data into actionable recommendations, allowing players to build more effective and balanced teams. The backend is built with Python and FastAPI, providing a high-performance REST API for data processing, model inference, and team optimization logic. The frontend is implemented using JavaScript and modern web technologies to deliver an interactive and responsive user experience where users can select Pokémon, assign roles, and view optimization results in real time. UniteMatch-AI applies machine-learning-driven analysis to evaluate team difficulty, role balance, and synergy patterns based on historical data. The architecture is modular, separating data ingestion, feature engineering, model training, and inference from the frontend presentation layer. This design supports scalability, experimentation, and future model improvements without tightly coupling the UI to backend logic.

My Role & Contributions

I designed and developed UniteMatch-AI as a full-stack web application, working across backend API development, data processing, model integration, and frontend interaction logic. I built the FastAPI backend responsible for loading datasets, engineering features, training models, and serving prediction results through clean REST endpoints. I implemented the frontend logic that allows users to select Pokémon, assign team roles, and dynamically retrieve optimization results from the backend. I also structured the application to support iterative model tuning, logging, and future expansion of recommendation features. Throughout development, I focused on maintainable API design, clear data contracts, and real-world usability.

Key Features

  • Web-based team optimization tool built with Python, FastAPI, and JavaScript
  • REST API serving prediction and optimization results in real time
  • Machine-learning-driven evaluation of team difficulty and role balance
  • Dynamic frontend for Pokémon selection and team configuration
  • Structured data preprocessing and feature engineering pipeline
  • Extensible architecture supporting future models and recommendation logic

Challenges & Solutions

One major challenge was sourcing reliable Pokémon Unite data, as no official public Pokémon Unite API was available. To address this, I curated and merged data from multiple sources, including Kaggle datasets and structured community-maintained data, and built a custom ingestion pipeline to normalize, validate, and encode the data for model training and inference. Another challenge involved maintaining consistency between frontend Pokémon selections and backend model expectations. I solved this by standardizing naming conventions, enforcing categorical encodings, and implementing validation logic within the FastAPI layer to prevent mismatches between user input and trained model features. Deploying the backend in sync with the Vercel-hosted frontend also presented challenges due to differences in runtime environments and deployment constraints between JavaScript and Python services. I addressed this by decoupling frontend and backend deployments, exposing the FastAPI service through a dedicated API endpoint, and configuring environment variables and CORS policies to enable secure, reliable communication between the two layers. This approach improved deployment stability while preserving the flexibility to iterate on backend models independently of frontend updates.