Logo Lanfrica

hajirufai/afridata-pipeline

Domaine:

socioeconomic

Type de record:

software
Créateur:
haj
Hôte:
Production-grade ETL pipeline for African economic data. World Bank API → DuckDB star-schema warehouse → Interactive analytics dashboard. Dimensional modeling, automated data quality, and Vercel deployment. # 🌍 AfriData Pipeline **A production-grade data engineering project** that extracts economic indicators for all 54 African countries from the World Bank API, transforms and loads them into a DuckDB analytical warehouse with dimensional modeling, runs automated data quality checks, and serves a beautiful interactive dashboard. --- ## ✨ Features | Feature | Description | |---------|-------------| | 🔄 **ETL Pipeline** | Extracts 13,500+ records from World Bank API v2 with retry logic | | 🏗️ **Star Schema** | Dimensional model in DuckDB (fact + 3 dimensions) | | ✅ **Data Quality** | Automated completeness, validity, and freshness checks | | 📊 **Dashboard** | Interactive charts, choropleth map, country profiles | | 🌙 **Dark Mode** | Full dark/light theme support | | ⚡ **Daily Refresh** | GitHub Actions cron updates data every morning | ## 📊 Dashboard Preview The dashboard features: - **KPI Summary Cards** — Total GDP, population, average growth, life expectancy - **Choropleth Map** — Color-coded Africa map for any indicator (Leaflet.js) - **Country Comparison** — Compare up to 6 countries over 25 years - **Rankings Table** — Sortable rankings across all 10 indicators - **Quality Scorecard** — Transparency on data completeness and freshness - **Country Profiles** — Click any country for a detailed modal view ## 🏗️ Architecture ``` ┌────────────────────────┐ │ World Bank API v2 │ Free, no auth, 16K+ indicators └──────────┬─────────────┘ │ Extract (httpx + retry) ▼ ┌────────────────────────┐ │ Transform (Python) │ Clean, enrich, calculate YoY change └──────────┬─────────────┘ │ Load ▼ ┌────────────────────────┐ │ DuckDB Warehouse │ Star schema: fact_indicators + 3 dims │ (Dimensional Model) │ └──────────┬─────────────┘ │ Export JSON ▼ ┌────────────────────────┐ │ Static Dashboard │ HTML + Tailwind + Chart.js + Leaflet │ (Deployed on Vercel) │ └────────────────────────┘ ``` ## 📈 Data Coverage | Indicator | Category | Unit | |------ …

Licenses