ResQ Hub โ Version 1.1 (Released: 2025-12-05)
- OAuth2 Automatic Token Refresh for external FloodSupport APIs (secure, backend-managed; 7-day token lifetime).
- Enhanced map popup cards across the Citizen Map: modern mobile-first card UI with Call, Nav (directions), and Details buttons for SOS, Flood, Disaster, and Relief markers.
- Improved UX for SOS/recovery workflows: better priority badges, condition tags, and a detailed modal view for emergency information.
- Updated documentation and changelog entries for v1.1.
ResQ (Rescue) is a production disaster-response platform for Sri Lanka โ live flood monitoring, SOS reporting, relief coordination and admin dashboards. This repository contains the web frontend, mobile app, and backend services.
Live deployment (primary):
- Frontend: https://resq-five.vercel.app
- Backend: https://resq-backend-3efi.onrender.com
Quick links:
- Documentation:
./docs/ - Contributing guide:
CONTRIBUTING.md - Issue templates:
.github/ISSUE_TEMPLATE/
Getting started (developer): see CONTRIBUTING.md for full setup and coding guidelines. Minimal steps:
npm install
cd src/web-dashboard/frontend
npm install
npm run dev # start frontend (Vite)
cd ../../backend
npm install
npm run dev # start backend (nodemon / node)Contributing
- Please read
CONTRIBUTING.mdbefore opening issues or pull requests. It contains environment setup, lint/test commands, and PR guidelines.
License
- This project is licensed under the Apache License 2.0. Apache-2.0 is a permissive, widely-used open-source license that allows commercial use, modification, distribution and private use while protecting contributors with a patent grant. If you rely on third-party or government data/APIs, confirm their reuse terms separately.
Support / Contact
- Security issues: use
.github/ISSUE_TEMPLATE/security_disclosure.mdor email the maintainer atshalonfernando52@gmail.com. - General questions or PR/maintainer contact:
shalonfernando52@gmail.com.
For more details (architecture, API docs, deployment), see the docs/ folder.
-
๐ Live Flood Monitoring - Real-time water levels from 39 DMC gauging stations
- 15-minute update intervals
- Water level trends (Rising/Falling)
- Alert status: MAJOR, MINOR, ALERT, NORMAL
- Rainfall data and timestamps
-
๐บ๏ธ Interactive Risk Map - Leaflet-powered disaster visualization
- Flood alerts with custom markers (๐)
- Relief camps locations (โบ)
- User location with accurate geocoding (๐)
- Shows: "St Mary's Road, Kochchikade, Gampaha District"
- Clickable markers with detailed info popups
-
๐ Dashboard Statistics
- Total road reports
- Active disasters
- Affected districts
- Blocked routes
-
๐ Relief Demand Tracker - Find nearby assistance
- Search radius: 5-200km (debounced slider)
- Distance-sorted results
- Urgency filtering (emergency, high, medium, low)
- Shows help requests + volunteer contributions
- Real-time availability status
-
๐ Volunteer Registration - Offer support to affected communities
- Comprehensive form (name, contact, location)
- Select contribution type (goods, services, labor)
- Specify resources available
- Set urgency level
- Submitted to Supabase Relief API
-
๐ Emergency Contacts - District-specific DDMCU hotlines
- 4 main emergency services (Fire, Police, Ambulance, Disaster)
- District-specific contacts with direct call buttons
- Automatic district detection from user location
-
๐ฃ๏ธ LankaRouteWatch - Safe route planning
- Location search with Nominatim autocomplete
- Replace district dropdowns with address search
- Road hazard reports with distances
- Risk level assessment (Low/Medium/High)
- Detailed hazard breakdown when routes blocked
- Real-time road closure information
-
๐ฌ AI Safety Assistant - Google Gemini-powered guidance
- Natural language emergency queries
- Contextual safety recommendations
- Quick question templates
- 24/7 availability
-
โ๏ธ Weather Dashboard - Current conditions for user location
- Temperature, humidity, wind speed
- Weather icons and descriptions
- Powered by OpenWeatherMap API
-
๐ Recent Alerts Feed - Latest DMC flood alerts
- Severity badges (MAJOR, MINOR, ALERT)
- Station names and river information
- Water level changes
- Sortable and filterable
- ๐ฅ Role-Based Authentication
- Individual ID + OTP login for admins/responders
- JWT-based citizen authentication (signup/login)
- JWT token-based sessions (30-day expiration)
- Admin vs Responder vs Citizen permissions
- Shadow account system for emergency SOS without registration
- Secure logout with token cleanup
-
๐จ SOS Dashboard - Real-time emergency monitoring
- Live signal feed from MongoDB
- Auto-refresh every 30 seconds
- Auto-escalation every 5 minutes
- Priority sorting (Critical โ High โ Medium โ Low)
- Status management (Pending โ Acknowledged โ Responding โ Resolved)
- GPS coordinates display
- Responder assignment workflow
- Role-based filtering (admins see all, responders see active only)
-
๐ฌ Real-Time Messaging System (Socket.io)
- Bidirectional chat between citizens and responders
- Message history for each SOS signal
- Real-time notifications via WebSocket
- Sender identification (citizen/responder/admin)
- Message timestamps and read status
- Auto-scroll to latest messages
-
๐ฑ Citizen SOS Dashboard
- View all personal SOS submissions
- Track responder responses in real-time
- Send messages to assigned responders
- Update SOS status (resolved/false alarm)
- 30-second auto-refresh
- Click to expand message details
-
๐ Reports Dashboard - Citizen incident management
- Review submitted reports with photos
- Status updates (Pending โ Verified โ Resolved)
- Filter by type (food, shelter, medical, danger)
- Location and timestamp information
- Batch operations
-
๐บ๏ธ Live Disaster Heat Map - Real-time DMC flood visualization
- 39 gauging station markers
- Color-coded alert status
- Water level display
- Rising/Falling indicators
- Interactive popups
- Auto-refresh every 5 minutes
-
๐ฅ Disaster Management - Create and track events
- Disaster type selection (Flood, Landslide, Fire, etc.)
- Severity levels (Low, Medium, High, Critical)
- Affected districts and locations
- Description and status tracking
- Timeline management
-
๐ Analytics Dashboard - Comprehensive metrics
- Emergency Statistics
- Total citizen reports
- Pending reports count
- Active disasters
- Pending SOS signals
- Visual charts with Recharts
- Real-time data updates
- Exportable reports
- Emergency Statistics
-
โบ Relief Camp Management - Coordinate assistance
- Track help requests from citizens
- Monitor volunteer contributions
- Location-based camp mapping
- Urgency prioritization
- Status updates (Pending โ Available โ Resolved)
- ๐ฆ Resource Management - Supply allocation
- Inventory tracking
- Distribution planning
- Location-based assignment
- Status monitoring
- History logs
- โ Location Search - Nominatim autocomplete for start/end locations (replacing district dropdowns)
- โ Road Hazard Display - Shows detailed reports when no safe routes available
- โ Distance Calculation - Displays hazard distance from route with severity indicators
- โ
Backend Geocoding Proxy -
/api/geocode/reverseendpoint to avoid CORS issues
- โ CORS Configuration - Supports all Vercel preview deployments (*.vercel.app)
- โ JWT Authentication - Environment variable validation with clear error messages
- โ Supabase Fallback - Graceful handling when external API unavailable
- โ Error Logging - Comprehensive console logging for debugging production issues
- โ
Environment Setup - Complete guide in
RENDER_ENV_SETUP.md
- โ Frontend Deployed - Vercel with automatic preview deployments
- โ Backend Deployed - Render with MongoDB Atlas (Singapore region)
- โ CI/CD Pipeline - GitHub integration with auto-deploy on push
- โ Environment Variables - Secure secret management on both platforms
- โ
Deployment Guides -
QUICK_DEPLOY.md,DEPLOYMENT_GUIDE.md,RENDER_ENV_SETUP.md
- โ Removed Payment System - Streamlined to core disaster response features
- โ Fixed Map Display - Explicit height (600px) resolves Leaflet rendering
- โ DMC Timestamp Clarity - "Last DMC Update" badge shows batch update time
- โ Volunteer System - Complete CRUD workflow for relief contributions
- โ Admin Map Fix - Uses live DMC flood data instead of MongoDB
The platform implements a sophisticated dual authentication system to handle different user types:
- Signup: Email/phone + password with bcrypt hashing
- Login: Identifier (email or phone) + password
- Token: 30-day JWT with citizenId, phone, email, name, role, account_type
- Storage: localStorage (
citizen_token,citizen_user) - Shadow Accounts: Emergency SOS submissions create shadow accounts for follow-up
- Features:
- No authentication required for emergency SOS
- Optional login to track SOS history
- Real-time messaging with responders
- Personal SOS dashboard
- Login: Individual ID + OTP code
- Mock SLUDI: Simulated eSignet authentication for development
- Token: JWT with individualId, name, email, role (admin/responder)
- Storage: localStorage (
access_token,user) - Features:
- Role-based dashboard access
- SOS management and assignment
- Real-time communication with citizens
- Server: Socket.io 4.8.1 integrated with Express.js backend
- Client: Socket.io-client with room-based communication
- Persistence: Messages stored in SOS
victim_status_updatesarray - Real-Time Events:
join-sos-room- Connect to specific SOS conversationnew-message- Receive real-time message notificationsresponder-update- Status changes and assignmentslocation-update- Responder location tracking
-
Citizen sends message:
- POST
/api/sos/:id/messageswith JWT token - Backend validates authentication, saves to MongoDB
- Socket.io emits
new-messageevent tosos_${sosId}room - All connected parties receive instant notification
- POST
-
Responder responds:
- Same endpoint, different JWT token
- Message tagged with sender_role (citizen/responder/admin)
- Real-time delivery to citizen's dashboard
-
Message History:
- GET
/api/sos/:id/messagesretrieves full conversation - Sorted by timestamp
- Sender identification and role display
- GET
Messaging:
POST /api/sos/:id/messages- Send message (requires authentication)GET /api/sos/:id/messages- Get conversation historyPUT /api/sos/:id/status- Update SOS status
Citizen SOS:
POST /api/public/sos- Submit SOS (optional auth via Bearer token)GET /api/sos/citizen/my-sos- Get citizen's SOS history (requires citizen token)POST /api/citizen-auth/signup- Create citizen accountPOST /api/citizen-auth/login- Citizen login
Admin/Responder SOS:
GET /api/admin/sos/dashboard- Admin dashboard with stats and paginationGET /api/sos/public/nearby- Responder view of all active SOS
{
"citizenId": "692d6bf9a91455d306199e87",
"phone": "0771234567",
"email": "user@example.com",
"name": "John Doe",
"role": "citizen",
"account_type": "verified",
"iat": 1733054400,
"exp": 1735646400
}{
"message": "Responder: Help is on the way, ETA 15 minutes",
"update_type": "chat_message",
"timestamp": "2025-12-01T18:30:00.000Z",
"sender_id": "responder001",
"sender_role": "responder",
"sender_name": "John Smith"
}- Room naming:
sos_${sosId}(e.g.,sos_674d5a2b1c9d440017e3e4b8) - Multiple users can join same room
- Real-time broadcast to all room participants
- Framework: React 18.3.1 + TypeScript
- Build Tool: Vite 7.1.0 (fast HMR and optimized builds)
- Routing: React Router DOM v7 (latest)
- UI Framework: Tailwind CSS 3.4.17 + PostCSS
- Icons: Lucide React (modern, tree-shakeable)
- Maps: Leaflet 1.9.4 + React-Leaflet 4.2.1
- HTTP Client: Axios 1.7.9
- Notifications: React Hot Toast (lightweight toast library)
- Charts: Recharts 2.15.0 (data visualization)
- State Management: React Context API + Hooks
- Mobile App: React Native 0.76.5 (separate development)
- Runtime: Node.js 20.x
- Framework: Express.js 5.1.0
- Database: MongoDB 8.11.0 with Mongoose ODM
- Authentication:
- JWT tokens with bcrypt password hashing
- Dual auth system: Admin/Responder (Individual ID + OTP) + Citizen (email/phone + password)
- Shadow account system for emergency submissions without registration
- 30-day token expiration
- Real-Time Communication: Socket.io 4.8.1 for bidirectional messaging
- AI Integration: Google Gemini AI API for safety chatbot
- HTTP Client: Axios for external API calls
- Security: Helmet, express-rate-limit, CORS, JWT verification
- Middleware: body-parser, dotenv, express-sanitizer, authenticateToken
- Services:
- SOS Auto-Escalation (5-min intervals)
- Socket.io Service for real-time notifications
- Message persistence in SOS victim_status_updates
- DMC Flood API: Real-time water level monitoring (39 stations, 15-min updates)
- Supabase Relief API: Relief camp coordination and volunteer management
- OpenStreetMap Nominatim: Reverse geocoding (address from coordinates)
- MongoDB Atlas: User-generated data (SOS signals, reports, chat logs)
- Google Gemini AI: Emergency guidance chatbot
- Frontend Hosting: Vercel (https://resq-five.vercel.app)
- Automatic preview deployments for PRs
- Edge CDN for fast global delivery
- Zero-config SSL certificates
- Backend Hosting: Render (https://resq-backend-3efi.onrender.com)
- Auto-deploy from GitHub
- Health check monitoring
- Environment variable management
- Database: MongoDB Atlas (Singapore region)
- Geospatial indexing for location queries
- Automatic backups
- High availability cluster
- Version Control: GitHub (disaster-response-sl/resq)
- Feature branch workflow
- Protected main branch
- CI/CD: Automatic deployment on push to main/feature branches
- Base URL:
https://lk-flood-api.vercel.app - Documentation: Swagger UI | ReDoc
- Full Docs: docs/sriLankaFloodDataAPI.md
Key Endpoints:
GET /alerts- Active flood alerts (MAJOR, MINOR, ALERT)GET /levels/latest- Latest water levels for all 39 stationsGET /stations- Station metadata with GPS coordinatesGET /rivers- River information with basin data
Example Response (/alerts):
{
"station_name": "Hanwella",
"river_name": "Kelani Ganga",
"water_level": 10.75,
"alert_status": "MAJOR",
"rising_or_falling": "Falling",
"timestamp": "2025-11-30 12:30:00"
}- Base URL:
https://cynwvkagfmhlpsvkparv.supabase.co/functions/v1/public-data-api - Documentation: docs/publicDataAPI.md
Query Parameters:
type-requests(help needed) orcontributions(help offered)status-pending,resolved,availableurgency-emergency,high,medium,lowlat,lng,radius_km- Location-based filteringsearch- Text search across all fields
Example: Find emergency help requests within 30km:
GET /public-data-api?type=requests&urgency=emergency&lat=6.9271&lng=79.8612&radius_km=30&sort=distance
- Node.js (v18 or higher recommended: v20.x)
- MongoDB Atlas account (free tier available)
- Git
- Code editor (VS Code recommended)
- Google Gemini API key (for AI chatbot)
git clone https://github.com/disaster-response-sl/resq.git
cd resqcd src/web-dashboard/backend
npm installCreate a .env file in src/web-dashboard/backend/:
# Server Configuration
PORT=5000
NODE_ENV=development
# Database
MONGO_URI=mongodb+srv://username:password@cluster.mongodb.net/disaster_platform
# Authentication
JWT_SECRET=your-secure-random-64-character-string
JWT_EXPIRES_IN=24h
USE_MOCK_SLUDI=true
# AI Integration
GEMINI_API_KEY=your-google-gemini-api-key
# External Services (optional - uses public APIs if not set)
OPENWEATHER_API_KEY=your-openweather-api-keyGenerate JWT_SECRET:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"Start the backend server:
npm run devโ
Server runs on http://localhost:5000
cd src/web-dashboard/frontend
npm installCreate a .env file in src/web-dashboard/frontend/:
VITE_API_BASE_URL=http://localhost:5000Start the development server:
npm run devโ
Frontend runs on http://localhost:5173
Citizen Portal (No Login):
- Navigate to
http://localhost:5173 - Access all public features (SOS, reports, relief tracker, etc.)
Admin/Responder Login:
- Click "Admin Login" or "Responder Login"
- Use your assigned credentials to access the system
-
Install mobile app dependencies
cd src/MobileApp npm install -
Install React Native dependencies
npx react-native install
-
Start Metro bundler
npx react-native start
-
Run on Android/iOS
# Android npx react-native run-android # iOS npx react-native run-ios
-
Install web dashboard dependencies
cd src/web-dashboard/frontend npm install -
Start the development server
npm start
Admin Access:
- Role: Administrator (full access)
- Requires authorized credentials
Responder Access:
- Role: Responder (field operations)
- Requires authorized credentials
Citizen Access:
- No login required for public portal
- Full access to SOS, reporting, relief tracker, and AI assistant
POST /api/mobile/login- User authenticationPOST /api/mobile/register- User registration
GET /api/mobile/disasters- Get active disastersPOST /api/mobile/disasters- Create new disaster
GET /api/mobile/sos-signals- Get recent SOS signalsPOST /api/mobile/sos- Send SOS signal
GET /api/mobile/reports- Get recent reportsPOST /api/mobile/reports- Submit new report
GET /api/mobile/resources- Get available resourcesPOST /api/mobile/resources- Add new resource
GET /api/mobile/chat-logs- Get chat historyPOST /api/mobile/chat- Send chat message
-
Shalon Fernando - Lead Software Engineer & Full Stack Architect
-
Gaindu - Web Dashboard Development
-
Lehan - Web Dashboard Development
-
Pavith - Web Dashboard Development
- Shalon: Production deployment, UI/UX redesign, LankaRouteWatch implementation, location services, debouncing, CORS fixes, environment setup guides, real time api integration.
export const API_BASE_URL = 'http://10.0.2.2:5000'; // Android Emulator
// export const API_BASE_URL = 'http://localhost:5000'; // iOS Simulator- Base URL:
http://localhost:5000(development) - Authentication: Bearer token in Authorization header
- Content-Type:
application/json
- One-tap emergency button
- Automatic GPS location capture
- Priority level selection (High/Medium/Low)
- Message field for additional details
- Push notifications for new disasters
- Location-based risk assessment
- Weather integration
- Offline capability
- Natural language processing
- Contextual safety recommendations
- Pre-defined quick questions
- Emergency contact information
- SLUDI mock authentication
- Role-based access (Citizen/Responder)
- Secure token storage
- Current location weather
- Risk assessment based on nearby disasters
- Quick action buttons (SOS, Report, Chat)
- Recent alerts feed
- Available resources display
- Incident type selection
- Photo upload capability
- Location confirmation
- Status tracking
- Role-based access control
- Real-time statistics
- Geographic data visualization
- Resource management
- Create and update disasters
- Set severity levels
- Publish public alerts
- Status tracking
- Live emergency signal feed
- Priority-based sorting
- Geographic clustering
- Response assignment
- JWT token authentication
- Role-based access control
- Input validation and sanitization
- Secure API endpoints
- Environment variable protection
- Offline-first mobile design
- Real-time WebSocket connections
- Geospatial database indexing
- Image compression and caching
- Lazy loading for large datasets
Frontend: https://resq-five.vercel.app
- Hosted on Vercel
- Automatic deployments from GitHub
- Global CDN distribution
- SSL/HTTPS enabled
Backend: https://resq-backend-3efi.onrender.com
- Hosted on Render
- Connected to MongoDB Atlas (Singapore)
- Auto-deploy from GitHub
- Health monitoring enabled
Deploy Frontend (Vercel):
# Install Vercel CLI
npm i -g vercel
# Deploy
cd src/web-dashboard/frontend
vercel --prodDeploy Backend (Render):
- Push to GitHub
mainorfeature-deployment-readybranch - Render auto-deploys in 2-3 minutes
- Or use "Manual Deploy" in Render Dashboard
Critical variables that MUST be set on Render:
JWT_SECRET=<64-char-random-string> # Required for login
USE_MOCK_SLUDI=true # Enable authentication
MONGO_URI=<mongodb-atlas-url> # Database connection
NODE_ENV=production
JWT_EXPIRES_IN=24hSee RENDER_ENV_SETUP.md for complete setup guide.
1. Login Fails with 500 Error
- โ Missing
JWT_SECRETon Render - โ Add environment variable: See RENDER_ENV_SETUP.md
- โ
Verify with:
curl https://resq-backend-3efi.onrender.com/api/test
2. Relief Camps Show Empty or Error
โ ๏ธ External Supabase API may be slow/unavailable- โ Backend now returns empty array gracefully (not critical)
- โ Shows: "Relief camps service temporarily unavailable"
3. CORS Errors in Production
- โ
Fixed: Backend allows all
*.vercel.appdomains - โ Redeploy backend if still seeing errors
1. MongoDB Connection Error
- Verify
MONGO_URIin.envfile - Check network connectivity
- Ensure IP whitelist in MongoDB Atlas (add 0.0.0.0/0 for development)
- Test connection:
mongosh <your-mongo-uri>
2. Backend Port Already in Use
# Windows: Find and kill process on port 5000
netstat -ano | findstr :5000
taskkill /PID <process-id> /F
# Or change PORT in .env file3. Frontend Can't Connect to Backend
- Verify backend is running:
curl http://localhost:5000/api/health - Check
VITE_API_BASE_URLin frontend.env - Clear browser cache and reload
4. GPS Location Issues
- Enable location permissions in browser
- Use HTTPS (required for geolocation API)
- Check device GPS settings
- Verify location services are enabled
5. Leaflet Map Not Displaying
- Check browser console for errors
- Verify map container has explicit height (600px)
- Import Leaflet CSS:
import 'leaflet/dist/leaflet.css'
# Check backend logs
cd src/web-dashboard/backend
npm run dev
# Test backend health
curl http://localhost:5000/api/health
# Test MongoDB connection
curl http://localhost:5000/api/public/stats
# Check frontend build
cd src/web-dashboard/frontend
npm run build
# Mobile app logs
cd src/MobileApp
npx react-native log-android
npx react-native log-iosAfter deployment, verify these features:
- Backend health check responds:
/api/health - Admin login works with authorized credentials
- Statistics display correctly (reports, disasters, SOS)
- Location shows accurate address
- Road reports display on LankaRouteWatch
- SOS signals load on dashboard
- Disaster heat map shows DMC flood data
- Relief tracker search works (debounced)
- AI chatbot responds to queries
- Emergency contacts display DDMCU hotlines
- QUICK_DEPLOY.md - Quick reference for deploying to Vercel and Render
- DEPLOYMENT_GUIDE.md - Comprehensive deployment guide with troubleshooting
- RENDER_ENV_SETUP.md - Environment variable setup for Render backend
- PRODUCTION_FIX_SUMMARY.md - Production error fixes and solutions
- DMC Flood Data API - Real-time flood monitoring (39 stations)
- Supabase Relief API - Relief camp coordination and volunteer management
- Backend API Endpoints - Internal API documentation (if available)
- Database Schema - MongoDB collections and data models (if available)
- Project Structure - Full documentation folder
This project is developed for Codefest's Revive Nation hackathon and is intended for educational and demonstration purposes.
- โ Debounced Search - Relief Tracker radius slider with 800ms delay prevents notification spam
- โ Lazy Loading - Efficient component loading reduces initial bundle size
- โ Geospatial Indexing - MongoDB 2dsphere index for fast location queries
- โ CDN Distribution - Vercel Edge Network for global low-latency access
- โ API Response Caching - Reduced redundant external API calls
- โ JWT Validation - Backend checks for JWT_SECRET before authentication
- โ Supabase Fallback - Graceful degradation when external API unavailable
- โ CORS Configuration - Supports all Vercel preview deployments (*.vercel.app)
- โ Comprehensive Logging - Console logging for debugging production issues
- โ Rate Limiting - 10,000 requests per 15 min (5 for auth endpoints)
- โ Input Sanitization - NoSQL injection prevention
- โ
Reverse Geocoding - Accurate address from coordinates
- Direct Nominatim API (10s timeout)
- Backend proxy fallback (12s timeout)
- Shows: "St Mary's Road, Kochchikade, Gampaha District"
- โ Location Autocomplete - Search locations by name (Nominatim)
- โ Distance Calculations - Haversine formula for accurate distances
- โ
CORS Proxy -
/api/geocode/reverseendpoint avoids browser CORS issues
- โ Adaptive Layouts - Tailwind breakpoints (sm, md, lg, xl)
- โ Touch-Friendly UI - Larger buttons and spacing on mobile
- โ Responsive Grid - 2 columns on mobile, 4-5 on desktop
- โ Navbar Visibility - Logo and subtitle visible on all screen sizes
- โ Mobile-First Design - Progressive enhancement approach
- โ Helmet.js - Secure HTTP headers
- โ JWT Authentication - Stateless token-based auth
- โ Environment Variables - Secure secret management
- โ HTTPS Enforcement - SSL certificates on production
- โ Rate Limiting - Brute force protection
- โ Input Validation - Prevents injection attacks
- โ
Health Check Endpoint -
/api/healthfor uptime monitoring - โ
Test Endpoint -
/api/testshows environment status - โ
Console Logging - Structured logs with emojis (โ
, โ,
โ ๏ธ ) - โ Error Tracking - Comprehensive error messages
- โ API Response Logging - Track external API calls
โ ๏ธ Mock Authentication - Uses Individual ID + OTP instead of real SLUDIโ ๏ธ Supabase Dependency - Relief camps may be unavailable if external API downโ ๏ธ Single Language - Currently English only (Sinhala/Tamil planned)โ ๏ธ No Real-Time Sync - Dashboard updates on refresh (WebSocket planned)
- ๐ฎ Real SLUDI Integration - Connect to actual eSignet authentication
- ๐ฎ Multi-Language Support - Sinhala, Tamil, English
- ๐ฎ Push Notifications - Real-time alerts to mobile devices
- ๐ฎ Offline Mode - Service worker for offline access
- ๐ฎ WebSocket Integration - Live dashboard updates
- ๐ฎ Advanced Analytics - Predictive disaster modeling
- ๐ฎ SMS Gateway - Send alerts via SMS for areas without internet
- ๐ฎ Drone Integration - Aerial surveillance and delivery coordination
- Sri Lanka DMC - Real-time flood monitoring data (39 gauging stations)
- Supabase - Relief camp coordination and volunteer management
- OpenStreetMap Nominatim - Geocoding and location search
- Google Gemini AI - Emergency guidance chatbot
- OpenWeatherMap - Weather data integration
- Vercel - Frontend hosting and CDN
- Render - Backend hosting and deployment
- MongoDB Atlas - Cloud database hosting
- GitHub - Version control and CI/CD
- React and React Native communities
- Leaflet mapping library
- Tailwind CSS framework
- Lucide icons
- All npm package maintainers
- Sri Lanka Digital Public Infrastructure (DPI) team
- Disaster Management Centre (DMC) Sri Lanka
- ICTA Sri Lanka
- Codefest Hackathon organizers
- All contributors and testers
Built with โค๏ธ for Sri Lanka's disaster response needs
This platform demonstrates the potential of AI and modern technology in addressing critical national challenges. We aim to save lives, coordinate relief efforts, and empower citizens during disasters.
๐ Star this repo if you find it useful!
- GitHub Issues: Report bugs or request features
- Production Site: https://resq-five.vercel.app
- Documentation: Full docs folder
Emergency Hotline (Sri Lanka): 117 (DMC Disaster Management Centre)