Logo Lanfrica

rolandsanou/etalons-analytics

Record type:

software
Creator:
rol
Host:
Open data analysis of the Burkina Faso national football team (Les Etalons): ETL pipeline plus a bilingual FR/EN static dashboard covering every player called up since AFCON 2021. # Étalons Analytics Open data project on the **Burkina Faso senior national football team** (Les Étalons): an ETL pipeline and a bilingual (FR/EN) analytics dashboard following **every player called up since AFCON 2021 (January 2022)** — who they are, where they play (verified), how much they actually play and produce for the national team, and how the team itself performs (history since 1960, Elo, formations, projections to AFCON 2027 / WC 2030). The analysis is designed to evolve with time and contributions: sources are snapshotted, transforms are deterministic, every metric is gated by sample size, and hand-maintained knowledge lives in small seed files anyone can extend — see CONTRIBUTING.md. **Live site: rolandsanou.github.io **Docs:** **Guide — run it, understand it, change it** · Architecture · Data model · Contributing · Roadmap ## Deploying The site is served from the `gh-pages` branch (the contents of `site/` at its root). To publish an update: ```bash bash tools/deploy.sh ``` `.github/workflows/pages.yml` does the same job automatically on every push to `main`; it is in place but idle while GitHub Actions is unavailable on the account. When Actions runs again, set Pages back to "GitHub Actions" in the repository settings and the script becomes unnecessary. ## Architecture ``` EXTRACT TRANSFORM LOAD sources -> data/raw/ raw -> data/staging/ staging -> data/marts/ (immutable snapshots) (typed, clean tables) (analysis-ready CSVs) + site/data/*.json (dashboard) ``` ``` python -m etl all # extract -> transform -> load -> quality python -m etl all --force # refresh volatile sources (new matches, new call-ups) python -m etl all --force-profiles # clubs only: after a transfer window python -m etl quality # data-quality report only ``` - **Extract** (`etl/extract/`) — one module per source. Finished matches never chan …