eSports Analytics Dashboard LATAM
Challenge
Solution
Impact
eSports LATAM performance data is fragmented across teams, players, competitions, and match results.
A MySQL -> Python ETL -> JSON bridge -> web dashboard pipeline consolidates the data into a single analytical product.
Teams, players, competitions, squad usage, experience, age-performance, and ML projections are explored in one consistent dashboard.
Frontend modules can easily break when dataset shape changes.
Data contracts, validators, expected-value helpers, and automated tests protect the JSON bridge.
Safer iterations on UX and analytics without destabilizing the app.
Predictive views are often disconnected from operational analytics.
A Random Forest layer projects annual player performance for 2026 and feeds a premium ML module.
Historical analysis and forward-looking projections live in the same product experience.
Key Metrics (Latest Snapshot)
Metric
Value
Teams analyzed
15
Active players
33
Countries represented
8
Competitions tracked
5
Total prize pool
$325,000
ML projections generated
33
Automated tests in suite
126
What the Dashboard Covers
KPI overview for the whole LATAM ecosystem
Team comparison and contextual ranking panels
Competition catalog and prize distribution
Squad usage split: starters vs substitutes
Team experience and veteran role analysis
Age vs performance contextual module
ML premium module: annual player projection for 2026
MySQL 8.0
-> SQL extraction queries
-> Python / pandas transformations
-> validators + data contracts
-> Random Forest predictor (ML projection 2026)
-> JSON bridge (src/frontend/assets/data/datos-dashboard.json)
-> Vanilla JS + Chart.js dashboard
-> GitHub Pages deployment
Stage
Responsibility
Extract
Pull operational data from the relational MySQL model
Validate
Enforce business rules, ranges, required fields, and contract compliance
Transform
Build frontend-ready analytical modules and filter-ready datasets
Predict
Generate player-level 2026 annual projections and ML aggregates
Publish
Ship the static dashboard to GitHub Pages
Layer
Technologies
Data Source
MySQL 8.0
ETL
Python, pandas, python-dotenv
Data Quality
Pandera, JSON Schema validators
Machine Learning
scikit-learn (RandomForestRegressor)
Frontend
HTML, CSS, Vanilla JavaScript, Chart.js
Testing
Python unittest, frontend regression tests
Delivery
GitHub Actions, GitHub Pages
# clone
git clone https://github.com/Sam-24-dev/eSports-Analytics-Dashboard.git
cd eSports-Analytics-Dashboard
# install ETL requirements
pip install -r src/etl/requirements.txt
# generate the dashboard snapshot
python src/etl/pipeline.py
# run tests
python -m unittest discover tests
# serve the frontend locally
python -m http.server 8000 --directory src/frontend
Open http://127.0.0.1:8000/index.html in your browser.
make etl
make test
make check-js
make serve
deploy.yml
boots MySQL 8.0 in CI
loads database/schema.sql
runs src/etl/pipeline.py
uploads the generated static frontend
deploys the dashboard to GitHub Pages
eSports-Analytics-Dashboard/
|- .github/workflows/ # CI + GitHub Pages deploy
|- database/ # MySQL schema and seed source
|- docs/ # Architecture, validation, and module rules
|- src/
| |- etl/ # Pipeline, validators, expected values, contracts
| |- frontend/ # Static dashboard (HTML/CSS/JS + generated JSON)
| \\- ml/ # Predictor logic for annual projections
|- tests/ # Python + frontend regression coverage
\\- README.md
Samir Caizapasto
Junior Data Engineer & Analyst
ESPOL - Guayaquil, Ecuador
If you find this project useful, consider giving the repository a star.