How oulael-laabi/b2r-esports-analytics works
B2R is an esports performance analytics platform: staff data and match telemetry are analyzed through a Python pipeline, producing player rankings, coach analytics, weekly reports, a Power BI dashboard, and a JSON content feed. The graph distinguishes the documented stages and shared data-access layer. Some source files are unsampled, so those subsystem details are included from the README, while unsupported runtime connections are omitted.
Main entry points: run_pipeline.py Pipeline runner · b2r_common.py Data access and shared logic · exports CSV and SQL exports · p7_studio_sync.py Studio data sync
Components 18
Data foundation
- Demo data generator
scripts/generate_dataset.py - Player form input
data/raw - Generated data
data/generated - MySQL database
sql/01_schema.sql
Performance analytics
- ETL validation
notebooks/p1_etl_validation.py - Match analysis
notebooks/p3_match_analysis.py - Player ranking
notebooks/p4_player_ranking.py - Coach analytics
notebooks/p5_coach_analytics.py
Reports and outputs
- Weekly report and alerts
notebooks/p6_weekly_report.py - Studio data sync
notebooks/p7_studio_sync.py - CSV and SQL exports
data/exports - Weekly PDF reports
outputs/reports - Studio JSON feed
outputs/studio - Power BI dashboard
powerbi/README.md
Shared runtime
- Pipeline runner
scripts/run_pipeline.py - Data access and shared logic
scripts/b2r_common.py
Other components
- Staff
- Content team
Connections 29
- Staff → Player form input: provides entries
- Pipeline runner → ETL validation: runs
scripts/run_pipeline.py - Pipeline runner → Match analysis: runs
scripts/run_pipeline.py - Pipeline runner → Player ranking: runs
scripts/run_pipeline.py - Pipeline runner → Coach analytics: runs
scripts/run_pipeline.py - Pipeline runner → Weekly report and alerts: runs
scripts/run_pipeline.py - Pipeline runner → Studio data sync: runs
scripts/run_pipeline.py - Pipeline runner → Demo data generator: optionally runs
scripts/run_pipeline.py - Demo data generator → Generated data: generates
README.md - ETL validation → Player form input: reads
notebooks/p1_etl_validation.py - ETL validation → Data access and shared logic: loads references
notebooks/p1_etl_validation.py - Match analysis → Data access and shared logic: loads player data
notebooks/p3_match_analysis.py - Match analysis → CSV and SQL exports: writes analysis
notebooks/p3_match_analysis.py - Player ranking → Data access and shared logic: uses shared logic
notebooks/p4_player_ranking.py - Player ranking → CSV and SQL exports: reads match stats
notebooks/p4_player_ranking.py - Player ranking → CSV and SQL exports: writes ranking
notebooks/p4_player_ranking.py - Coach analytics → Data access and shared logic: loads feedback
notebooks/p5_coach_analytics.py - Coach analytics → CSV and SQL exports: reads match stats and ranking
notebooks/p5_coach_analytics.py - Coach analytics → CSV and SQL exports: writes analytics
notebooks/p5_coach_analytics.py - Weekly report and alerts → Data access and shared logic: uses alert logic
notebooks/p6_weekly_report.py - Weekly report and alerts → Weekly PDF reports: generates
notebooks/p6_weekly_report.py - Studio data sync → Data access and shared logic: loads source data
notebooks/p7_studio_sync.py - Studio data sync → CSV and SQL exports: reads ranking and match data
notebooks/p7_studio_sync.py - Studio data sync → MySQL database: reads SQL views
notebooks/p7_studio_sync.py - Studio data sync → Studio JSON feed: writes feed
notebooks/p7_studio_sync.py - Studio JSON feed → Content team: supplies content
README.md - Data access and shared logic → MySQL database: queries when available
scripts/b2r_common.py - Data access and shared logic → Generated data: falls back to CSV
scripts/b2r_common.py - MySQL database → Power BI dashboard: feeds Import dashboard
README.md