Logo Lanfrica

mtuibright29-african/climate-data-repository

Domaine:

climatedigital infrastructure

Type de record:

software
Créateur:
mtu
Hôte:
# 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