Skip to content

Sam-24-dev/eSports-Analytics-Dashboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

eSports Analytics Dashboard LATAM


Project Overview

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

Pipeline Architecture

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

Delivery Flow

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

Tech Stack

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

Quick Start

# 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.

Optional shortcuts

make etl
make test
make check-js
make serve

Automation

GitHub Actions

  • 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

Project Structure

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

Author

Samir Caizapasto
Junior Data Engineer & Analyst
ESPOL - Guayaquil, Ecuador


If you find this project useful, consider giving the repository a star.