# Climate Data Repository (CDR) — Bank of Tanzania
### Enhancement Project — EASTC 8-Week Student Practical Training Programme
This repository contains a working, end-to-end software prototype built in response to the
Bank of Tanzania Financial Stability Department's Concept Note, *"Concept Note on the
Proposed Enhancement of the Climate Data Repository."*
The prototype demonstrates the complete core workflow described in the Concept Note: secure
role-based login, standardized data template download, data upload, automated validation,
centralized repository storage, internal review by Bank of Tanzania staff, and an analytics
dashboard.
See `docs/ICN_REQUIREMENTS_TRACEABILITY_MATRIX.md` for a full mapping of Concept Note
requirements to what has been implemented, and `docs/ASSUMPTIONS_AND_LIMITATIONS.md` for a
transparent account of sample data, assumptions, and known limitations.
---
## System Overview
The system consists of two components that run together:
1. **Backend** (Python / FastAPI) — handles the database, validation, and security.
Runs at: `
localhost`
2. **Frontend** (React / TypeScript) — the web application end users interact with.
Runs at: `
localhost`
Both must be running at the same time, in two separate terminals, for the system to work.
---
## Getting Started
### 1. Start the Backend
```bash
cd backend
python -m venv venv
venv\Scripts\activate # Windows
# source venv/bin/activate # macOS / Linux
pip install -r requirements.txt
copy .env.example .env # Windows (macOS/Linux: cp .env.example .env)
python init_db.py # Creates the database and loads demo accounts
uvicorn app.main:app --reload
```
If `uvicorn app.main:app --reload` is blocked by a Windows security policy (e.g. Device
Guard), run it via Python instead:
```bash
python -m uvicorn app.main:app --reload
```
The backend will be available at `
localhost`, with interactive API
documentation (Swagger UI) at `
loc …