List of Tanzania Regions to street/vilage level
# Uko Wapi? — Tanzania location finder
The app serves Tanzania's current administrative division, from the **2022
Population and Housing Census**: **31 regions → 195 councils → 4,344
wards/shehia**, every one with an official boundary and code.
`data.json`, this repo's original contents, is an older list down to village
level (**30 regions → 169 districts → 3,641 wards → 16,408 villages/mitaa**). It
no longer defines the hierarchy — it only supplies the village/mtaa lists, which
NBS does not publish at this level.
`web/` is a small static site built on top of it. You tap one button, it reads
your GPS, and it tells you which region, district and ward you are in, then
names the closest village/mtaa for you to confirm. The point is to stop people
typing the wrong thing into forms.
No login, no backend, no accounts. Nothing is stored and your coordinates are
never transmitted anywhere. One caveat, stated on the page too: fetching map
tiles tells OpenStreetMap roughly where you are, as on any site with a map.
Live at **
ukowapi.site**
## Run it
```bash
cd web && python3 -m http.server 8777
# open
localhost
```
Geolocation needs `localhost` or HTTPS — it will **not** work over plain
`http://` on a LAN address, so testing from a phone means deploying first.
## Deployment
Pushing to `master` publishes the site:
`.github/workflows/deploy.yml` runs the test suite, then uploads `web/` to
GitHub Pages. Nothing is rebuilt in CI — `web/data/` is committed, and the
workflow only verifies that what is committed is self-consistent.
The heavy rebuild (NBS shapefile + Overpass downloads) is a local task; see
Rebuilding the data.
Custom domain: `web/CNAME` holds `ukowapi.site`. It must live in `web/`, since
that directory is what gets uploaded as the Pages artifact — a CNAME at the
repo root would never be published. Pages must be set to
**Settings → Pages → Source: GitHub Actions**; the "deploy from a branch"
option cannot work here, because it only offe …