## The problem
During Delhi's monsoon season, a city-wide weather forecast is not enough. A commuter needs to know whether the specific corridor between an origin and destination is exposed to waterlogging, which evidence supports that risk, and what action is practical. Response teams also need a clear queue of incidents and a consistent workflow.
## What I built
FloodShield is a route-aware flood-risk application for commuters and local response crews. A user selects an origin and destination, then receives a route risk score based on nearby flood hotspots, rainfall signals, recent community reports, corridor exposure, and response mitigation. The score is explainable rather than a black-box probability: the interface shows the contribution of each signal and its confidence.
The application also supports validated citizen reports with duplicate protection and freshness scoring. Authorities can review matching evidence and move incidents through an Assign -> Start -> Resolve workflow. Resolving an action reduces the exposed hotspot contribution on future route assessments.
## Architecture and technology
The frontend uses React 19 and Vite. A Node.js REST API serves locations, weather, route risk, reports, and authority queue operations. The risk engine uses a 3 km geodesic corridor around the route and combines deterministic hotspot, weather, report-quality, exposure, and mitigation signals.
For the intended AWS deployment, I created an AWS SAM template and Lambda-compatible handler for an API Gateway -> Lambda -> DynamoDB flow. CloudWatch is used for operational logging, and DynamoDB TTL is designed for short-lived reports and response actions. The codebase includes local integration tests for report validation, duplicate rejection, risk scoring, and authority transitions.
## AWS usage and deployment lesson
AWS SAM CLI helped me package and validate the serverless deployment shape locally. The public demo is currently hosted on Render because the AWS account used for this project has an organization-level Service Control Policy blocking CloudFormation, Lambda, API Gateway, DynamoDB, and S3 operations. I am documenting this limitation clearly rather than claiming the live URL is AWS-hosted. The AWS architecture is ready to deploy in an account without that restriction.
## What I learned
The most important lesson was that environmental applications need explainability and operational workflow, not just a single prediction. Showing why a route is risky helps commuters trust the recommendation, while the authority queue turns reports into actions. I also learned to test the full path from UI to API and to design deployment fallbacks without hiding infrastructure limitations.
## Try it
Loading article