Skip to content
All work
  • Cloud
  • Civic Infrastructure

SafeRoute

Real-time incident reporting and dispatch for the Ghana Highway Authority

saferouteproject brief

Civic infrastructure, built for the Ghana Highway Authority

Project overview

SafeRoute connects roadside incident reporting with the operational work of dispatching a response. Built for the Ghana Highway Authority, it brings intake, incident state, geographic context, and coordination into one application. The Next.js dashboard is the operator-facing part of the system: it gives controllers a shared view of incidents rather than leaving the picture scattered across calls and informal updates.

Behind that interface, API Gateway and Lambda handle incoming reports, DynamoDB stores incidents and responders, and Step Functions coordinates dispatch and escalation. AWS Location Service adds the geographic layer. Terraform defines the infrastructure and GitHub Actions deploys it using OIDC, connecting the application and its delivery pipeline without keeping long-lived AWS credentials in CI.

The problem to solve

Road incidents in Ghana are reported through phone calls and informal channels, which makes it hard to see what is happening on the network, who is responding, and where the gaps are. The platform needed to take reports from the roadside, route them to the right responders, and keep a live operational picture, without a team to run servers.

Inside the build

The implementation, from application behaviour to the infrastructure underneath it.

  1. Ingest incident reports through an API Gateway and Lambda intake path
  2. Orchestrate dispatch and escalation with Step Functions instead of an always-on worker
  3. Store incidents and responders in DynamoDB with a data model built for live querying
  4. Place and route incidents geographically with AWS Location Service
  5. Give controllers a Next.js dashboard showing current incident state
  6. Provision the whole stack in Terraform and deploy through GitHub Actions authenticated with OIDC, so no long-lived cloud keys live in CI

What shipped

A working serverless platform where the entire backend scales to zero between incidents, infrastructure is reproducible from code, and deploys carry no static AWS credentials.

Built with

  • Next.js
  • TypeScript
  • AWS Lambda
  • DynamoDB
  • API Gateway
  • Step Functions
  • Location Service
  • Terraform
  • GitHub Actions

Want to talk through how this fits a system you are building?