Inspiration

First responders such as paramedics, ER workers, and police officers spend up to 40% of their shifts on paperwork. We kept asking the same question: why are the people saving lives still filling out forms by hand? Every minute spent on documentation is a minute not spent on the patient or the scene. We built 911 Notebook to give that time back.

What it does

911 Notebook is a real-time, AI-assisted incident reporting platform for first responders. Users open the app on any device, hit a mic button, and dictate their report hands-free. AWS Transcribe converts speech to text, AWS Bedrock (Claude 3.5 Sonnet) structures it into a validated JSON report, and an AI chatbot flags any missing or inconsistent fields before submission. Supervisors review and approve reports in real time, and completed reports are locked and exported as PDFs; creating a fully compliant, auditable paper trail.

How we built it

Frontend: React + TypeScript, Tailwind CSS, AWS Amplify for auth Backend: AWS Lambda, AWS API Gateway Database: AWS DynamoDB, JSONBc Auth: AWS Cognito, JWT Tokens AI Pipeline: AWS Transcribe, AWS Bedrock

Challenges we ran into

Role-based access control across 8 user roles with org-level scoping was far more complex than anticipated. Cognito + Amplify v6 mobile auth required deep debugging of JWT flows and duplicate user pool conflicts under time pressure. Chaining the full Lambda pipeline — voice in, structured JSON out — reliably end-to-end was our hardest technical lift. Midway through we also pivoted our real-time layer from Supabase to AWS IoT Core WebSocket to better fit the AWS-native stack we were building.

Accomplishments that we're proud of

We shipped a complete voice-to-report pipeline in under 24 hours: FrontEnd captures audio → Transcribe converts it → Bedrock structures it → AI chatbot validates it → supervisor approves and locks it via the BackEnd → stored and versioned in DynamoDB. Building a production-grade role hierarchy across two org types (police + medical) with JWT-enforced access control at every layer is something we'd stand behind in a real deployment.

What we learned

Keeping the JSONB report schema flexible from day one — able to handle both police incident reports and medical charts — was the single best architectural decision we made. We also came out the other side genuinely understanding how Cognito, API Gateway, Lambda, Bedrock, IoT Core, and DynamoDB work together as a unified AWS pipeline, not just as individual services.

Built With

Share this project:

Updates