An AI-powered data platform that tracks, analyses and generates policy insights on youth unemployment across Kenya, built with Apache Airflow, SQlLite, Streamlit, Plotly and a local AI model.
## Kenya Youth Employment Intelligence Plaitform
An AI-powered data platform that tracks, analyses and generates policy insights on youth unemployment across Kenya, built with Apache Airflow 3.0, SQLite, Streamlit, Plotly and a free local AI model.
"Kenya's youth unemployment rate stands among the highest in Sub-Saharan Africa. Understanding where, why and who is affected is the first step towards fixing it."
## Why This Project Exists
Youth Unemployment is one of Kenya's most pressing development challenges. Yet the data telling this story is scattered across government reports, World Bank datasets and economic surveys which is rarely visualized in one place and almost never made accessible to decisoion makers in real time.
This platform changes all that by creating building automated ETL pipelines, structured SQLite databases, creating 6 interactive plotly charts and a layer of AI that generates policy insights.
## Data Sources
1. Kenya National Bureau of Statistics(Simulation based on actual data)
2. World Bank Open Data API
3. Kenya Economic Survey Reports
## Tech Stack
1. Apache Airflow -> Pipeline Orchestration
2. SQLite -> Lightweight, no server setup needed
3. Pandas -> Cleans and Structures raw data
4. Streamlit -> Builds interactive UI in pure python
5. Plotly -> Interactive, proffessional charts
6. Ollama + TinyLlama -> Free, private and no API costs.
7. Docker -> One Commmand runs everything
8. Python -> Ties everything together
## Project Architecture
## Project Structure
```markdown
KE_Unemployment/
│
├── dags/
│ └── pipeline.py # Airflow 3.0 DAG — 4 task pipeline
│
├── data/
│ └── raw/ # Raw CSV files from extraction
│
├── database/
│ └── employment.db # SQLite database (auto-created)
├── src/
│ ├── extract.py # Step 1 — World Bank API + KNBS data
│ ├── transform.py # Step 2 — Clean, enrich, classify
│ ├── load.py # Step 3 — Write to SQLi …