Project Info
💡
Inspiration
During natural disasters, two critical problems arise: cellular network infrastructure frequently collapses, and search-and-rescue teams are overwhelmed with distress signals without knowing who needs help most urgently. We built SafeSearch to bridge this gap, ensuring that victims can broadcast their location and medical status even without internet, while rescue teams can instantly triage and prioritize operations based on real-time urgency and data. 🚀
What it does
SafeSearch is a full-stack, AI-prioritized disaster response and victim locator system featuring: AI Triage & Prioritization: A fast triage engine categorizes incoming messages based on victim count, injuries, and entrapment status, ranking them dynamically (Critical, High, Medium, Low) to ensure rescuers help the most vulnerable first. Offline SOS Mode: When cell towers are down, the system shifts to a zero-network protocol. It compiles vital medical info (blood group, conditions) and coordinates into a high-density, easily scannable QR code for rescuers or drones, or prompts the user to send a formatted SMS. Live Interactive Map: Plots real-time victim coordinates alongside live global satellite feeds (wildfires, storms, earthquakes, volcanoes) fetched directly from the NASA EONET API. Real-Time Tracking & Live Feed: Uses WebSockets to connect victims and rescuers. Victims get real-time tracking of their assigned rescue team’s distance and ETA. Rescuer & Admin Dashboards: Command dashboards for rescuers to navigate, play on-scene video feeds, and manage rescue statuses, coupled with a central analytics center for government administrators. 🛠️
How we built it
We engineered SafeSearch as a full-stack distributed system: Frontend: Built using React, Vite, and styled with TailwindCSS. Maps are rendered using React-Leaflet and OpenStreetMap. Backend API: Powered by Node.js & Express handling user authentication and data management. Real-time, bi-directional messaging is powered by Socket.io. Database: MongoDB with Mongoose schemas stores user profiles, SOS alerts, and rescue task logs. AI Triage Service: Built with FastAPI (Python), utilizing regex-based text analysis and keyword parsing to calculate severity scores and generate context-aware first-aid instructions. 🚧
Challenges we ran into
Robust Geolocation: GPS can fail or be blocked. We solved this by creating a multi-layer fallback: trying browser GPS first, falling back to IP-based location services, and finally letting the user manually input landmarks or coordinates. Network-less SOS Transmission: Developing a way to package and send data with zero internet. We resolved this by compressing vital payload data into structured JSON and embedding it into high-density dynamic QR codes. 🎉
Accomplishments we're proud of
Designing a complete offline-to-online safety loop using QR codes and SMS redirects. Integrating live satellite feeds from NASA EONET in real time. Creating a clean, modern user interface that feels premium, highly readable, and functional under stress. 🧠
What we learned
How to design applications for high-reliability under extreme environmental constraints. Managing client-side offline states dynamically in React. 🔮
What's next
Edge LLMs: Migrating the FastAPI keyword parser to a localized, lightweight LLM running directly on the victim's device. LoRaWAN Integration: Allowing SOS data transmission over long-range, low-power radio networks. Drone Scanning: Integrating computer-vision drone routing to automatically fly over affected areas and scan QR codes displayed on victim screens from the air.
AI Disaster Response & Victim Locator System
This is a full-stack, AI-powered system designed to categorize and prioritize emergency SOS signals to help rescue teams respond efficiently.
Prerequisites
- Node.js: v18 or later
- Python: v3.9 or later
- MongoDB: Must be running locally on port
27017
🚀 How to Run the Project Locally
You must start three separate servers in three different terminal windows.
1. Start the React Frontend
This is what the Victims and Admin/Rescuers see.
cd frontend
npm install
npm run dev
It will start on http://localhost:5173 or http://localhost:5174.
2. Start the Node.js Backend
This handles the database, User Authentication, and Real-time WebSocket tracking.
cd backend
npm install
node index.js
It will start on http://localhost:5000.
3. Start the Python AI Service
This analyzes the victim's SOS text to determine injuries, counts, and priority levels.
cd ai-service
# It is recommended to create a virtual environment first:
# python -m venv venv
# .\venv\Scripts\activate
pip install -r requirements.txt
uvicorn app:app --host 0.0.0.0 --port 8000
It will start on http://localhost:8000.
🌐 How to Share this Project With Friends
If you want your friends to connect to your app from their own phones or computers, you cannot just send them localhost links.
Option A: Let them connect to your Wi-Fi
If your friends are on the same Wi-Fi network as your laptop:
- Find your laptop's IPv4 address (Open Command Prompt and type
ipconfig. Look for IPv4 Address, e.g.,192.168.1.5). - Run the frontend exposing your IP:
npm run dev -- --host 0.0.0.0 - Tell your friends to open their browser and go to your IP address on the frontend port, e.g.,
http://192.168.1.5:5174. (Note: You will need to change the API URLs fromlocalhostin your React code to your IPv4 address for them to connect to your backend).
Option B: Use Ngrok (Easiest for Remote Friends)
If your friends are located entirely somewhere else:
- Download Ngrok.
- Start your frontend normally.
- Open a new terminal and run:
ngrok http 5174(or whatever port your frontend is on). - Ngrok will generate a public URL like
https://a1b2c3d4.ngrok.app. - Send that URL to your friends!
Option C: Zip the Code and send it
If you want them to run it completely on their own machines:
- Delete the
node_modulesfolders infrontendandbackend. - Delete the
venvfolder inai-service. - Right-click the root
LifeSignalfolder and select "Compress to ZIP file". - Send them the ZIP file and ask them to follow the How to Run instructions above!
Analysis
View
Metric
No commits on this project resolved to a GitHub account.
Technology
- CSSIn code
- ExpressIn code
- HTMLIn code
- JavaScriptIn code
- MongoDBIn code
- PythonIn code
- ReactIn code
- Tailwind CSSIn code
- FastAPIClaimed
- Node.jsClaimed
8 of 10 appear in the indexed code. 2 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
494 KB
Source files
37
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
RajBarot3826/LifeSignal
51 files · 26.0 MB · @ 5be70e5
Structure
Interface
10 files · 20%Screens, components and styles rendered to the user.
API & routing
4 files · 8%Request entry points: routes, handlers and controllers.
Application logic
14 files · 27%Domain rules, services and shared utilities.
Data & schema
3 files · 6%Schema definitions, migrations and data access.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- JavaScript98%
- Python1%
- Markdown1%
- CSS0%
- HTML0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
frontend/package.json
npm · 23- axios
- leaflet
- lucide-react
- qrcode.react
- react
- react-dom
- react-leaflet
- react-router-dom
- socket.io-client
- +14 more
backend/package.json
npm · 10- axios
- bcryptjs
- cors
- dotenv
- express
- jsonwebtoken
- mongoose
- multer
- socket.io
- +1 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.