ResQ is a full-stack disaster relief management platform connecting victims, volunteers, donors, and admins for efficient disaster response coordination with real-time location tracking and analytics.
Victims: Report disasters, request aid, track status, find shelters
Volunteers: View victim map, accept tasks, update status
Donors: Donate money/items/shelter, view impact, track history
Admins: Verify reports, approve users, monitor analytics
Platform: Real-time geolocation, JWT auth, RBAC, input validation, responsive design
Frontend: React 19.2, Vite 7.2, Tailwind CSS 4.0, Leaflet 1.9, React Router 7.12, Recharts, FontAwesome
Backend: Node.js 18+, Express, MongoDB 6+, JWT, Bcrypt, Cors
Dev Tools: Git, ESLint, Postman, MongoDB Compass
- Node.js v18+
- MongoDB v6+ (local or Atlas)
# Clone repository
git clone <repository-url>
cd Pr
# Backend setup
cd backend
npm install
npm run dev # Runs on http://localhost:5000
# Frontend setup (new terminal)
cd frontend/ResQ
npm install
npm run dev # Runs on http://localhost:5173Create backend/.env:
PORT=5000
MONGODB_URI=mongodb://localhost:27017/resq
JWT_SECRET=your_secret_key
JWT_EXPIRE=7d
CORS_ORIGIN=http://localhost:5173Pr/
├── backend/ # Express API, MongoDB models, JWT auth
│ ├── controllers/
│ ├── models/
│ ├── routes/
│ ├── middleware/
│ └── server.js
├── frontend/ResQ/ # React app, Vite build, Tailwind styling
│ ├── src/
│ │ ├── pages/ # Victim, Donor, Volunteer, Admin pages
│ │ ├── components/ # Reusable UI components
│ │ ├── context/ # Auth context
│ │ └── utils/ # API client, helpers
│ └── public/
└── README.md # This file
Base URL: http://localhost:5000/api
POST /auth/register- Register userPOST /auth/login- Login userGET /auth/me- Get current user (requires token)
GET /disasters- Get all disastersPOST /disasters/report- Report disaster (requires token)PUT /admin/disasters/:id/verify- Verify disaster (admin)
POST /aid/request- Create aid request (victim)GET /aid/my-requests- Get my requests (victim)PUT /aid/:id/approve- Approve request (admin)
POST /donations/create- Make donation (donor)GET /donations/history- View donation history (donor)
GET /volunteers/victims/nearby?lat=33.6&lng=73.0- Get nearby victimsPOST /volunteers/task/accept- Accept taskPUT /volunteers/task/:id/status- Update task status
{
name, email, password, phone, cnic, address,
role: "victim|donor|volunteer|admin",
verified, status
}{
name, location, city, description,
latitude, longitude, severity, status,
verified, reportedBy, verifiedBy
}{
victimId, disasterId, aidType, priority,
location, latitude, longitude, status,
assignedVolunteer
}Uses Leaflet + OpenStreetMap (no API key required)
Features: Real-time victim locations, color-coded markers, distance calculation, interactive popups, mobile responsive
Setup: Leaflet CSS auto-imported, tiles from OpenStreetMap
| Role | Key Features |
|---|---|
| Victim | Report disasters, request aid, view shelters |
| Volunteer | View victim map, accept/update tasks |
| Donor | Donate money/items/shelter, view impact |
| Admin | Verify reports, approve users, manage system |
- JWT token authentication
- Bcrypt password hashing
- Role-based access control (RBAC)
- Input validation with express-validator
- CORS protection
- Protected routes
Port in use: Kill process on port 5000/5173
MongoDB error: Ensure MongoDB running, check MONGODB_URI
Map not showing: Check Leaflet CSS, verify tiles accessible
API failing: Verify backend running, check CORS config
JWT error: Clear localStorage, re-login
- SETUP_GUIDE.md - Detailed installation
- backend/README.md - Backend API docs
- frontend/ResQ/README.md - Frontend guide
# Run backend dev server
cd backend && npm run dev
# Run frontend dev server
cd frontend/ResQ && npm run dev
# Build frontend for production
cd frontend/ResQ && npm run build- Fork repository
- Create feature branch (
git checkout -b feature/name) - Commit changes (
git commit -m 'Add feature') - Push to branch (
git push origin feature/name) - Open Pull Request
MIT License
- 15+ Frontend Pages
- 20+ API Endpoints
- 8+ Database Collections
- 4 User Roles
- 40+ Features
Version: 1.0.0 | Last Updated: January 18, 2026 | Status: Active Development