Logo Lanfrica

Aliu2211/saferoute

Domaine:

peace and securitymobility

Type de record:

software
Créateur:
Ali
Hôte:
Real-time road safety incident reporting & dispatch platform (Ghana Highway Authority), serverless AWS (Lambda, DynamoDB, API Gateway, Step Functions, Location Service) with a Next.js operator dashboard, Terraform IaC, and OIDC-based GitHub Actions CI/CD. # SafeRoute Real-time road safety incident reporting and emergency dispatch platform for the Ghana Highway Authority (simulated government client). Citizens report incidents (accidents, breakdowns, road hazards, flooding, protests) from a mobile-first web app with photo upload. Operators see all active incidents on a live map dashboard, assign response units, and track them through to resolution. Incidents unacknowledged after 10 minutes automatically escalate to a supervisor via SMS. A monthly analytics report (PDF) is generated and emailed to authority leadership. All four phases are built and have been deployed end-to-end on AWS. See **WALKTHROUGH.md** for the full architecture, data model, API reference, and a guided tour of every part of the system. ## Deployment Deployed to a single AWS account, region `us-east-1`. Dashboard URL, API base URL, and Cognito IDs are all `terraform output` values (see WALKTHROUGH.md) — nothing account-specific is hardcoded anywhere in this repo. Sign in to the dashboard with a Cognito operator account (create one via `aws cognito-idp admin-create-user`, see WALKTHROUGH.md). ## Cloud architecture Source: docs/architecture.drawio — open it in diagrams.net (or the draw.io desktop app / VS Code extension) to edit. Text-only fallback (Mermaid, no AWS icons, renders inline on GitHub) ```mermaid flowchart TB subgraph internet["Internet"] citizen["Citizen browser"] operator["Operator browser"] end subgraph aws["AWS Account -- us-east-1"] subgraph edge["Edge"] cf["CloudFront\n(dashboard CDN)"] end subgraph frontend["Static hosting"] s3dash["S3\nsaferoute-dashboard-dev"] end subgraph api_layer["API layer"] apigw["API Gateway\n(REST + Cognito authorizer)"] end subgraph compute["Compute"] lambdas["Lambda (10 functions)\ncontainer images via ECR"] end subgraph data["Data"] ddb["DynamoDB\nincidents / responders"] s3photos["S3\nincident photos"] end subgraph identity["Identity"] cognitoup["Cognito User Pool"] cognitoip["Cognit …