Skip to content

UBC-MDS/DSCI-532_2026_15_WorldEducation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

191 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

World Education Dashboard

Motivation

Education systems vary dramatically across the world, and understanding which factors contribute to better educational outcomes is crucial for policymakers, researchers, and educators. This dashboard addresses the challenge of making sense of complex global education data by providing an interactive visualization tool that enables users to:

  • Explore education indicators across 202 countries
  • Compare regional performance and identify disparities
  • Analyze gender gaps in education access and completion
  • Make data-driven decisions to improve education systems globally

The dashboard leverages data from UNESCO Institute for Statistics, UNICEF, and UN Statistics Division to provide comprehensive insights into global education patterns.

Demo

Dashboard Demo

Features

The dashboard is organized into two main tabs:

Main Dashboard (with sub-tabs):

  • Overview: Interactive world map (choropleth) for any selected education metric; KPI cards that update to match the chosen map metric (average, vs world, coverage)
  • Completion & Literacy: Education level by region bar chart; completion rate gap by region; male vs female literacy scatter by region
  • Data Table: Country-level data with configurable columns, filtered by selected regions

Query with Chat:

  • AI-powered row filtering of the dataset (e.g., β€œShow only Asian countries”, β€œFilter to regions with Primary Completion above 90%”). Supports Anthropic, local Ollama, or GitHub-backed LLM; optional setup via .env.

Additional capabilities:

  • Regional Filtering: Focus on specific continents; filters apply to map, KPIs, charts, and table
  • Map Metric Selection: Choose from grouped metrics (Access, Completion, Learning, Context) for the choropleth
  • KPI Cards: Reflect the currently selected map metric for quick context

Live Dashboard

Access the deployed dashboard here:

For Contributors

Installation

Option 1: Using Conda (Recommended)

# Clone the repository
git clone https://github.com/UBC-MDS/DSCI-532_2026_15_WorldEducation.git
cd DSCI-532_2026_15_WorldEducation

# Create and activate the conda environment
conda env create -f environment.yml
conda activate 532

Option 2: Using pip

# Clone the repository
git clone https://github.com/UBC-MDS/DSCI-532_2026_15_WorldEducation.git
cd DSCI-532_2026_15_WorldEducation

# Create a virtual environment (optional but recommended)
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

Running the App Locally

# Make sure you're in the project root directory
# Run the Shiny app
shiny run src/app.py

The dashboard will be available at http://localhost:8000 (or the port shown in your terminal).

Optional β€” AI (Query with Chat) tab: To use the "Query with Chat" tab, create a .env file in the project root with one of the following: ANTHROPIC_API_KEY=your_key for Anthropic, USE_LOCAL_LLM=true for a local Ollama instance, or GITHUB_TOKEN=your_token for a GitHub-backed LLM. Without any of these, the app runs normally but the chat tab will not have an active model.

Project Structure

.
β”œβ”€β”€ data/
β”‚   β”œβ”€β”€ raw/                    # Original dataset
β”‚   └── processed/              # Processed data for the app
β”œβ”€β”€ notebooks/                  # Exploratory data analysis
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app.py                  # Main Shiny application
β”‚   β”œβ”€β”€ process_data.py         # Data processing scripts
β”‚   β”œβ”€β”€ greeting.md             # Chat assistant greeting and suggestions
β”‚   └── data_desc.md            # Data description for the AI chat (row-filtering only)
β”œβ”€β”€ report/                     # Project documentation and specs
β”œβ”€β”€ img/                        # Images and demo files
β”œβ”€β”€ requirements.txt            # Python dependencies
β”œβ”€β”€ environment.yml            # Conda environment specification
β”œβ”€β”€ .env                        # Optional: API keys for Query with Chat (not in repo)
└── README.md                   # This file

Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines on how to contribute to this project.

Testing

To test the dashboard make sure you have installed the required libraries as shown above.

cd to the dashboard root directory and run:

 pytest

Data Source

The dataset is sourced from Kaggle - World Educational Data, compiled from UNESCO Institute for Statistics, UNICEF, and UN Statistics Division.

License

See LICENSE for details.

Team

See team.txt for team member information.