MinIO Object Store
The file storage system. Holds all raw, cleaned and summarised research data organised in three buckets — Bronze, Silver and Gold. Works like an S3-compatible hard drive inside the server.
Metabase BI Dashboard
The reporting interface. Institutions, researchers, donors and administrators view KPI dashboards, satisfaction scores, geographic coverage and data quality reports here.
MinIO Ingest Service
The ingestion bridge. When a researcher submits data on Dacoris, this service polls every 5 minutes, downloads the file, converts it to Parquet and stores it in the Bronze bucket.
dbt + DuckDB
The transformation engine. Reads Bronze data, builds 12 Silver and Gold KPI models, and writes to DuckDB. Must always be running — Airflow executes dbt every 30 minutes via this container.
Apache Airflow
The pipeline scheduler. Automatically runs dbt transformations every 30 minutes — rebuilds all 12 Gold models and copies to the read-only Gold database for Metabase. PostgreSQL backend with LocalExecutor.
Institution Research Dashboard
Survey findings, geographic coverage, gender distribution, satisfaction scores and data quality for all surveys submitted by institution researchers.
Researcher Dashboard
My submissions, data quality scores, respondent distribution by county and benchmarking against national averages.
Donor Dashboard
Total beneficiaries reached, counties covered, research areas funded, geographic reach and data submission accountability.
Admin Dashboard
Pipeline health, ingestion success rates, bronze file registry, researcher activity and full audit trail of all ingested data.