# Tanzania Digital Address MVP
A Laravel and SQLite MVP for selecting, reverse-geocoding, registering, finding, sharing, and QR-linking digital addresses in Tanzania.
## Status
This prototype preserves the Leaflet/OpenStreetMap frontend and adds database-backed registration. Temporary map/GPS IDs are not authoritative. A permanent `TZ-DAR-...` ID is generated by the Laravel server only after the user selects **Sajili Anwani**.
## Current release
Version: **v1.0.0** (2026-08-24)
Status: **Application MVP Launch-Ready** for controlled staging validation. This is not a government-approved or nationally production-ready service.
- Changelog
- v1.0.0 release notes
- Staging deployment
- Release checklist
- Production deployment
- Launch checklist
## Stack
- Laravel 12 and PHP 8.2+
- SQLite
- Blade and vanilla JavaScript
- Leaflet 1.9.4
- OpenStreetMap tiles
- Nominatim for local development reverse geocoding/search
- QRCode browser library via pinned CDN
## Requirements
- PHP 8.2+
- Composer
- PHP SQLite/PDO SQLite extensions
## Install and run (Windows PowerShell)
```powershell
Set-Location C:\Users\Admin\Documents\Tanzania-Digital-Address
composer install
php artisan key:generate
php artisan migrate
php artisan serve
```
Open the URL reported by Laravel, normally `
127.0.0.1`.
The project uses `database/database.sqlite`; no MySQL setup is required. Do not use `migrate:fresh` during normal testing because it deletes registered addresses.
## Address lifecycle
Map clicks, search selections, and GPS results remain temporary in the browser until the user explicitly registers them. Registration validates coordinates and source data server-side, generates a cryptographically random suffix, and stores only validated fields. The backend never trusts the temporary client ID.
Active addresses within approximately 10 metres use the existing registered record instead of creating a duplicate. The response identifies this with `existing: true`. Registered …