Logo Lanfrica

ishengomaf/lga-service-tracker

Domain:

digital infrastructure

Record type:

software
Creator:
ish
Host:
Decentralized Service Request and Tracking System for Local Government — Node.js, React, PostgreSQL+PostGIS, Africa's Talking SMS/USSD # LGA Tracker — Decentralized Service Request & Tracking System A full-stack platform for local government issue reporting, tracking, and resolution. Citizens report water, road, and waste problems; ward officers manage and resolve them; LGA administrators oversee ward performance. ## Features - **Citizen Portal**: Register, report geo-tagged issues with photos, track ticket status - **SMS Notifications**: Africa's Talking integration — alerts on submission, status change, and assignment - **USSD Fallback**: Feature-phone users report via `*XXX#` — no internet required - **Officer Dashboard**: Ward-filtered ticket queue, status updates, audit trail - **LGA Admin Dashboard**: Ward performance metrics, resolution rates, interactive map - **Geo-spatial Routing**: PostGIS ST_DWithin nearby search, ward boundary matching - **Role-Based Access**: citizen / ward_officer / lga_admin / super_admin ## Stack | Layer | Technology | |------------|------------------------------------------| | Backend | Node.js 20, Express 4, pg (PostgreSQL) | | Database | PostgreSQL 15 + PostGIS 3.3 | | Frontend | React 18, React Router 6, Recharts | | Maps | Leaflet + React-Leaflet | | SMS/USSD | Africa's Talking Node.js SDK | | Auth | JWT (jsonwebtoken) + bcryptjs | | File Upload| AWS S3 via multer-s3 | | Logging | Winston | | Containers | Docker + Docker Compose | ## Quick Start ### With Docker ```bash # 1. Clone the repo git clone github.com cd lga-service-tracker # 2. Copy and edit environment variables cp backend/.env.example backend/.env # Edit backend/.env with your AT_API_KEY, AT_USERNAME, JWT_SECRET, etc. # 3. Start all services docker-compose up -d # Frontend: localhost # Backend API: localhost # Health check: local