Tahmid Choudhury
ProjectsBlogResume
Back to all projects

Loading...

Built by hand.

LumenWalk

Jan 06, 2026•

2 min read

Project Demo

MotivationLumenWalk ArchitectureObservability and Uptime Infrastructure ToolsGrafana + Prometheus DashboardUmami Analytics for Frontend TrafficSentry Dashboard for Error loggingUptime ScreenshotKey FeaturesDeployment Workflow🧠 Key DevOps Learnings

Motivation

Many cities are poorly lit or have crime hotspots that aren't obvious to pedestrians. LumenWalk was built at the first london hackathon for {tech: europe} to provide AI-assisted routing for safer walking paths at night — combining open safety data, lighting info, and map intelligence to guide users in London along better routes.

LumenWalk Architecture

This diagram shows how LumenWalk is deployed on AWS EC2 using Docker and NGINX. GitHub Actions handles CI/CD, and external services like Umami and Sentry provide analytics and error tracking. HTTPS is secured using Certbot, and uptime is monitored via UptimeRobot.

Observability and Uptime Infrastructure Tools

  • Uptime Monitoring: UptimeRobot checks /api/status every 5 minutes.
  • Analytics: Umami tracks frontend usage.
  • Error Tracking: Sentry logs backend exceptions.
  • Metrics (Prometheus): App exposes Prometheus metrics at /api/metrics.
  • Dashboards (Grafana): Grafana visualises Prometheus data (process RAM/CPU, event-loop lag, custom counters like routes_generated_total).

Grafana + Prometheus Dashboard

Umami Analytics for Frontend Traffic

Sentry Dashboard for Error logging

Uptime Screenshot

Key Features

  • AI-powered route recommendations based on safety and lighting data
  • Interactive Mapbox interface with live route rendering
  • Integration with OpenAI to summarise route risks in plain language
  • Real-time data from Metro Police and lighting APIs
  • Shareable routes — users can send a link to others who can view the route and submit safety feedback
  • Feedback is stored in a database for future analysis
  • Fully Dockerised and deployed to AWS with HTTPS and monitoring

Deployment Workflow

  1. Push to main triggers GitHub Actions.
  2. Pipeline:
    • Logs into Docker Hub
    • Pulls latest image
    • Stops & removes old container
    • Runs latest container
    • Cleans up unused images/volumes
  1. UptimeRobot monitors deployment health.

🧠 Key DevOps Learnings

  1. Infrastructure & Observability — Grafana dashboards (from Prometheus app metrics), /api/status uptime monitoring, Umami for frontend traffic, and Sentry for error logging/alerts.
  2. Disk Space Management – EC2 crashed due to unused Docker images. Fixed with:
shell
 docker image prune -a -f

and integrated a cleanup step into my CI workflow.

  1. Reverse Proxy Setup – Configured NGINX to route traffic to Dockerised frontend and secure HTTPS with Certbot.
  2. CI/CD Automation – GitHub Actions auto-deploys new builds to EC2 via SSH.