Zimbabwe Sector & Career Intelligence Platform — Technical Setup
# zsi — Zimbabwe Sector & Career Intelligence Platform
Evidence-based sector and career intelligence for Zimbabwe: what each sector actually
contributes (tax, jobs, capital, wages), sourced from official data where it exists and
from a moderated crowdsourced layer where it doesn't — because it mostly doesn't
(~76% of establishments are informal per ZIMSTAT).
Every figure in this product is an `Observation` carrying a source, a tier
(`official` / `derived` / `estimated` / `crowd`), and a confidence score. Nothing is a
single blended number. See `docs/methodology.md`.
## Stack
- **Backend:** Django 5 + DRF, PostgreSQL 16, Celery + Redis
- **Web:** Next.js 15 (public career portal + investor dashboard)
- **Mobile:** React Native (Expo), offline-first
- **Infra:** Docker Compose (dev), Terraform (OCI/Azure)
## Repository layout
```
zsi/
├── backend/ Django project — see backend/README.md
├── web/ Next.js app
├── mobile/ Expo app
├── infra/ docker-compose.dev.yml, Terraform
└── docs/
├── data-sources.md register of every ingested source
├── methodology.md tiers, confidence, currency handling — publish this
└── adr/ architecture decision records
```
## Quickstart (backend)
```bash
cd backend
cp .env.example .env
uv sync
uv run python manage.py migrate
uv run python manage.py seed_sectors
uv run python manage.py seed_indicators
uv run python manage.py seed_data_sources
uv run python manage.py createsuperuser
uv run python manage.py runserver
```
Or bring up the full dev stack (Postgres + Redis + backend):
```bash
docker compose -f infra/docker-compose.dev.yml up --build
```
## Build order
This repo is being built in phases — see `docs/adr/0001-record-architecture-decisions.md`
and the phase notes below:
0. **Skeleton** (this commit) — Django/Postgres/Celery project, `Sector` / `Indicator` /
`Observation` / `DataSource` models, admin, ISIC sector taxonomy seed.
1. REST adapters (World Bank, IMF, ZSE, …