CrisisAvert is a futuristic, voice-enabled Crisis Management Dashboard powered by Agentic AI. It simulates an "Oracle" (Backend Intelligence) that monitors real-time data, assesses threats (Fire, Flood, Earthquake), and orchestrates responses via "The Hand" (React Frontend).
- 🧠 The Oracle (AI Brain): A Node.js service that simulates cognitive reasoning. It "thinks" through problems using a Chain-of-Thought process.
- 🗣️ Voice Interface: Full Audio-Visual experience. The agent speaks critical alerts and Phase transitions.
- 🎙️ Voice Command: Control the simulation with your voice (e.g., "Activate Fire Protocol").
- 🌍 Geospatial Intelligence: Visualizes impact zones (radius/polygons) on a live Satellite Map.
- 🔔 Multi-Channel Alerting: Simulates sending SMS/Radio triggers to first responders during CRITICAL events.
- Frontend (
/client): React, Vite, TailwindCSS, Socket.io-client, Google Maps API, Web Speech API. - Backend (
/server): Node.js, Express, Socket.io, Google Gemini SDK (AI Reasoning), MCP (Model Context Protocol).
- Node.js (v18+)
- Google Maps API Key (for the map)
- (Optional) Google Gemini API Key (for real AI reasoning)
# Clone the repository
git clone <repo-url>
cd CrisisAvert
# Install Backend Dependencies
cd server
npm install
# Install Frontend Dependencies
cd ../client
npm installCreate a .env file in /server:
PORT=3005
GEMINI_API_KEY=your_key_here # Optional: Defaults to Mock AI if missing
ZERO_RETENTION=false # Set true for HIPAA/Privacy ModeCreate a .env file in /client:
VITE_GOOGLE_MAPS_API_KEY=your_maps_keyYou need two terminals:
Terminal 1 (The Oracle):
cd server
npm start
# Runs on Port 3005Terminal 2 (The Hand):
cd client
npm run dev
# Open http://localhost:5173Use the Simulation Control Panel on the left to inject threats:
- [🔥 FIRE]: Triggers a Wildfire scenario in Uttarakhand.
- [🌊 FLOOD]: Triggers a Flood scenario in Kerala.
- [🏜️ QUAKE]: Triggers an Earthquake in Himachal.
- Click the Mic Icon (Top right).
- Say:
- "Activate Fire Protocol"
- "Inject Flood"
- "Silence" (Mute audio)
- "Audio On" (Unmute)
To comply with data privacy standards (e.g., HIPAA), set ZERO_RETENTION=true in server/.env. This ensures that:
- Intel feeds and Reasoning logs are scrubbed immediately after processing.
- No historical data is persisted to disk.
- Push this repo to GitHub.
- Import the project into Vercel.
- Set Root Directory to
CrisisAvert/client. - Add Environment Variable:
VITE_GOOGLE_MAPS_API_KEY. - Deploy!
- Import the project into Railway.
- Set Root Directory to
CrisisAvert/server. - Add Environment Variables:
GEMINI_API_KEY,ZERO_RETENTION. - Deploy!
- Update
client/src/components/Dashboard.jsxto point to the deployed Backend URL (https://your-backend.railway.app) instead oflocalhost:3005.
Built as a demo for Advanced Agentic Coding.