Disaster Management System — My Full-Stack Project


Disaster Management System — My Full-Stack Project
When disasters strike, time is everything. Coordinating citizens, volunteers, and response teams effectively can save lives. That’s why I built a Disaster Management System — a full-stack platform designed to improve communication, resource allocation, and situational awareness during emergencies.
🛠️ Tech Stack
- Backend: Java (Spring Boot)
- Database: PostgreSQL + PostGIS (geospatial queries)
- Frontend: Angular (map-centric UI)
- Containerization: Docker & Docker Compose (Kubernetes/ECS ready)
👥 User Roles
The system supports three main user types:
- Citizens — request help, mark themselves safe, follow announcements.
- Volunteers — register skills, claim tasks, update statuses, earn badges.
- Admins (AFAD Employees) — manage requests, teams, and communication.
🎯 Purpose
The goal is to create a transparent and scalable coordination system that:
- Connects needs ↔ resources in real time.
- Encourages and rewards volunteers with gamification.
- Provides situational awareness through maps and heatmaps.
- Ensures secure, reliable, and auditable operations.
🏗️ Architecture Overview
- Frontend: Ang
- Backend: REST API + WebSocket/STOMP for real-time updates.
- Database: PostGIS for location intelligence (e.g., volunteers within 5 km).
- Notifications: Push (FCM), SMS (Twilio), Email.
- Deployment: Docker containers (API, Web, DB, Queue, OSRM).
🔑 Core Features
For Citizens
- Submit help requests with location, urgency, and type (water, food, medical, shelter…).
- “I’m Safe” button to instantly notify contacts.
- Map with safe gathering points, aid stations, and heatmaps of needs.
For Volunteers
- Register with verified skills and availability.
- Browse and claim verified requests based on urgency and proximity.
- Update task status (en route → arrived → completed).
- Earn badges like Medic, Helper, Night Owl for motivation.
For Admins
- Dashboard: live stats on requests, volunteers, tasks.
- Request verification & prioritization.
- Volunteer management with certificate checks.
- Create announcements and manage safe areas.
🏅 Gamification & Recognition
Volunteers earn badges automatically through event-driven rules:
- Helper (Lv.1–3): complete 5, 15, 30 tasks.
- Medic: complete a medical task.
- Night Owl: complete a task at night.
- Committed Volunteer: help for 3 consecutive days.
This encourages engagement and consistency, while leaderboards add a friendly competitive spirit.
🚀 Deployment & Scalability
- CI/CD: Automated testing, DB migrations, Docker builds.
- Scaling: Stateless API pods, Redis caching, async queues for notifications.
- Observability: Logs, metrics, and alerts via ELK + Prometheus/Grafana.
- Accessibility: Multilingual (TR/EN), offline-ready (PWA), high-contrast modes.
📌 Roadmap
- Native mobile apps (iOS/Android).
- ML-powered triage & damage analysis from photos.
- AFAD & municipality integrations.
- Advanced volunteer team coordination & resource management.
🔚 Closing
This project is my attempt to bring modern web tech, geospatial intelligence, and gamification into disaster response. The aim is simple: deliver the right help, to the right place, at the right time.
I’d love to hear your feedback and ideas! Contributions are welcome on GitHub.
If you liked this article, you can find more content on Medium!
You can read the original article on Medium, comment and discover more content.