eHealth Africa technical assessment - Senior Coordinator, Data and GIS Analytics. Campaign GPS tracking and coverage reconciliation, digital form design, technical coordination and capability development.
# eHealth Africa - Technical Assessment
**Senior Coordinator, Data and GIS Analytics** · Data Informatics Department
Submitted by Solomon Oladimeji
| Part | Question attempted |
|---|---|
| **Part 1** | **Q1** - Campaign team tracking and coverage reconciliation |
| **Part 2** | **Q3** - Converting a paper questionnaire into a digital form |
| **Part 3** | **Q5** - Coordinating delivery through the round |
| **Part 3** | **Q6** - Building capability in the counterpart agency |
Part 1 Q2 and Part 2 Q4 are not attempted. The instructions value depth over
breadth, and Part 2 states the unattempted option will be probed at the
walkthrough regardless.
AI assistance is declared in **`AI_USE.md`**. Every judgement call
- thresholds, tolerances, projections, weights, conclusions - is logged with its
rejected alternative in **`DECISIONS.md`**.
---
## Reproducing everything
### 1. Environment
```bash
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
```
Developed on **Python 3.12.10**. **Java 8+ must be on PATH** - pyxform uses ODK
Validate to check the XForm's XPath, and without it the form converts but is not
deeply validated. `run_all.py` warns rather than passing quietly if Java is
absent.
### 2. Data
The supplied pack is **not committed**. Place it unmodified at the repository
root, or beside it - both are found automatically:
```
eha-gis-assessment/
eHA_Assessment_Data_Pack_v4_CANDIDATE/
```
Override with `EHA_DATA_PACK` if it lives elsewhere. **No file in the pack is
edited at any point**; two reference files that ODK cannot consume as issued are
transformed in code by `part2_q3/prepare_media.py`, leaving the sources
untouched.
### 3. Run
```bash
python run_all.py
```
Rebuilds every output from the raw pack in about 40 seconds, across 22 stages.
It wipes prior artefacts first and **stops at the first failure** rather than
producing a partial result that looks complete.
---
## Layout …