Skip to content

Latest commit

 

History

45 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌍 CrisisMap – Global Multi-Disaster Tracking Platform

A full-stack web application that aggregates live disaster data from multiple government and public APIs, computes regional risk scores, and lets users check their own location for nearby danger — all on an interactive worldwide map.

Live Demo →

API: https://crisismap-0lzu.onrender.com

CrisisMap monitors earthquakes, severe weather, and air quality in real time across every continent, then goes a step further than a typical data dashboard: it computes a composite risk score per region and lets any user type in a city to instantly see if there's active danger nearby.


Screenshots

CrisisMap Dashboard

Live worldwide dashboard — real-time earthquakes, air quality, and severe weather with computed risk zones

Check Your Area

Location-based proximity search — type any city and instantly see active disasters nearby, with real calculated distances


Why CrisisMap

Public disaster data already exists across USGS, NOAA, and other government sites — but it's scattered across separate tools, none of which tell you directly whether you are at risk right now. CrisisMap aggregates it into one place and adds the missing piece: a direct answer to "is anything dangerous near me?"

Overview

CrisisMap combines a FastAPI backend that pulls and normalizes data from three independent live sources with a React + Azure Maps frontend for visualization. Unlike a simple map overlay, it includes a custom-built scoring layer that weighs severity, recency, and compound risk (multiple disaster types overlapping in one area) to surface the regions that matter most right now.

Core Features

  • 🌐 Worldwide live data — earthquakes (USGS), severe weather alerts (NOAA/NWS), and air quality (Open-Meteo) across 6 continents
  • 🧮 Regional risk scoring — a weighted algorithm combining severity, time-decay, and compound-risk detection, computed fresh from live data
  • 📍 Check Your Area — type any city and instantly see active disasters within 300km, with real distances calculated
  • 🗺️ Azure Maps integration — interactive, color-coded map with severity-based markers and detail popups
  • 🔎 Multi-dimensional filtering — by disaster type, by continent/region, or by free-text location search
  • One-click live sync — pulls fresh data from all three sources simultaneously
  • 📱 Responsive design — works across desktop and mobile

How Risk Scoring Works

CrisisMap clusters all active disasters into ~10-degree geographic zones and scores each one from 0-100:

  1. Severity weighting — each event contributes 1-4 points based on severity (low → severe)
  2. Recency decay — events lose weight over 7 days, so a flood warning from 2 hours ago matters more than one from 6 days ago
  3. Compound risk multiplier — a zone with 2+ different disaster types active simultaneously gets a 1.2-1.5x multiplier, since simultaneous hazards compound real-world risk

This is a hand-engineered weighted-scoring algorithm, not a trained ML model — a deliberate choice for interpretability, since every score can be explained by exactly which events fed into it.

Tech Stack

Layer Technologies
Frontend React, TailwindCSS, Azure Maps Control SDK
Backend FastAPI (Python), async data aggregation
Database MongoDB Atlas
Cloud Azure Maps (visualization), deployed on Render + Vercel
Live Data APIs USGS Earthquake Feed, NOAA/NWS Alerts, Open-Meteo Air Quality & Geocoding
Testing Python Unittest

Folder Structure

CrisisMap/
├── backend/
│   ├── server.py — FastAPI backend: live data ingestion, risk scoring, REST API
│   ├── requirements.txt — Backend dependencies
│   └── .env — Environment variables (not committed)
│
├── frontend/
│   ├── public/ — Static files
│   ├── src/
│   │   ├── components/ui/ — Reusable UI components
│   │   ├── hooks/ — Custom React hooks
│   │   ├── lib/ — Utility functions
│   │   └── App.js — Main application logic, map, and filters
│   ├── package.json — Frontend dependencies
│   └── .env — Frontend configuration (not committed)
│
├── tests/
│   ├── backend_test.py — Unit tests for backend routes
│   └── test_result.md — Test output summary
│
├── screenshots/ — README screenshots
│
└── README.md — This file

Installation & Setup

1. Clone the repository

git clone https://github.com/ayesha1145/CrisisMap.git
cd CrisisMap

2. Backend setup

cd backend
pip install -r requirements.txt

Create a .env file with:

MONGO_URL="your-mongodb-connection-string"
DB_NAME="crisismap_database"
CORS_ORIGINS="*"
AZURE_MAPS_KEY="your-azure-maps-key"

Run it:

python -m uvicorn server:app --reload

3. Frontend setup

cd frontend
npm install --legacy-peer-deps

Create a .env file with:

REACT_APP_BACKEND_URL="http://127.0.0.1:8000"

Run it:

npm start

Testing

cd tests
python backend_test.py

Data Sources

Known Limitations & Roadmap

  • Wildfires currently use representative mock data — no free, no-key, real-time global wildfire API was integrated yet (candidate: NASA FIRMS)
  • Severe weather alerts are US-only (NOAA/NWS is a US government service) — global coverage would require an additional source like GDACS
  • Alerts are on-demand ("Check Your Area"), not push-based — a next step would be saved locations with automated email/SMS notifications when risk crosses a threshold

Project Highlights

  • Aggregates 3 independent live data sources into one normalized schema
  • Custom risk-scoring algorithm with documented, explainable logic
  • Full deployment pipeline: MongoDB Atlas → Render (backend) → Vercel (frontend)
  • Distinct Azure integration (Azure Maps) from other projects in this portfolio, demonstrating range across Microsoft's cloud ecosystem

Contribution Guide

  1. Fork the repository
  2. Create a new branch: git checkout -b feature-name
  3. Commit your changes and open a pull request

Author

Ayesha Habib — University of Manitoba GitHub | Live Demo

About

Global multi-disaster tracker with live earthquake, weather, and air quality data, computed regional risk scoring, and location-based safety checks.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages