A Progressive Web App for emergency responders providing AI-powered operational checklists, real-time team coordination, and situational awareness tools. Built with React, TypeScript, and Azure OpenAI.
Try the app in action: https://aka.ms/first-responder
- AI-Powered Guidance: Get intelligent, context-aware operational checklists using Azure OpenAI (GPT-5)
- Interactive Checklists: Clickable checklist items that can be used to request specific help
- Emergency Maps: Azure Maps integration with scenario-specific markers and incident locations
- Team Coordination: Real-time team roster with status tracking and location updates
- Operations Log: Live incident feed with timestamped events and severity indicators
- Multi-Organization Support: Customizable branding and protocols for different organizations
- Role-Based Protocols: Specialized guidance for Paramedics, EMTs, Firefighters, Emergency Coordinators, and Search & Rescue teams
- Responsive Design: Mobile-first PWA that works on all devices
- Offline Capable: Progressive Web App features for reliable operation in challenging conditions
The app features multiple views optimized for emergency response scenarios:
- Node.js (v18 or higher)
- npm or yarn
- Azure OpenAI Service subscription
- Azure Maps account
-
Clone the repository
git clone https://github.com/aloth/first-responder-pwa.git cd first-responder-pwa -
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env
Edit
.envwith your Azure credentials:VITE_AZURE_OPENAI_ENDPOINT=your_endpoint_here VITE_AZURE_OPENAI_API_KEY=your_api_key_here VITE_AZURE_OPENAI_DEPLOYMENT_NAME=your_deployment_name_here VITE_AZURE_MAPS_KEY=your_maps_key_here
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:5173
npm run buildThe built files will be in the dist/ directory.
-
Run the deployment script
./deploy_pwa_to_azure.bat
-
Follow the Azure CLI prompts to configure your static web app
- Build the project:
npm run build - Deploy the
dist/folder to your preferred hosting service
The app supports various emergency scenarios with contextual AI guidance:
- Train Collision: Munich Central Station incident
- Power Outage: Madison Square Garden blackout
- Wildfire: Napa County forest fires (default)
- Traffic Accident: Highway 101 multi-vehicle incident
- Chemical Spill: Industrial facility evacuation
- Building Collapse: Gas explosion aftermath
- Active Shooter: University campus situation
- Paramedic: Advanced life support protocols
- Emergency Medical Technician: Basic life support procedures
- Fire Fighter: Fire suppression and rescue operations
- Emergency Coordinator: Incident command and resource management
- Search and Rescue: Personnel location and extraction
The app supports customization for different emergency organizations:
- Custom branding (colors, logos)
- Organization-specific protocols
- Role-specific guidance
- Configurable through
nonprofit-config.json
Edit src/nonprofit-config.json to add new organizations:
{
"organizations": {
"your-org": {
"shortName": "Your Org",
"longName": "Your Organization Name",
"design": {
"foregroundColor": "#FFFFFF",
"backgroundColor": "#your-color",
"accentColor": "#your-accent",
"iconUrl": "/path/to/your/icon.svg"
},
"roles": ["Custom Role 1", "Custom Role 2"],
"promptAdditions": {
"global": "Organization-specific context",
"roleSpecific": {
"Custom Role 1": "Role-specific guidance"
}
}
}
}
}| Variable | Description | Required |
|---|---|---|
VITE_AZURE_OPENAI_ENDPOINT |
Azure OpenAI service endpoint | Yes |
VITE_AZURE_OPENAI_API_KEY |
Azure OpenAI API key | Yes |
VITE_AZURE_OPENAI_DEPLOYMENT_NAME |
GPT model deployment name | Yes |
VITE_AZURE_MAPS_KEY |
Azure Maps subscription key | Yes |
We welcome contributions from the community! To get involved, please follow these steps:
- Fork the repository.
- Create your feature branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
For major changes, please open an issue first to discuss what you would like to change.
This project is licensed under the GNU General Public License v3.0. See the LICENSE file for full details.
- Azure OpenAI Service for providing intelligent AI capabilities
- Azure Maps for geospatial services
- Emergency responders worldwide who inspired this project
Made with β€οΈ for first responders




