Mdaad Now is a lightweight, resilient coordination platform for humanitarian actors operating in low-bandwidth and offline-first environments.
This repository contains a compact progressive web app (PWA) front-end, a small Node.js API proxy under api/, and several legacy Python services in legacy_backend/.
The project emphasizes:
- Minimal client payloads and offline resilience
- Simple deployment and compatibility with static hosts or Vercel
- Clear separation between lightweight UI, a small proxy API, and optional legacy services
- Frontend: plain JavaScript + React (CDN) + HTM
- Styling: Tailwind CSS +
styles.css - Mapping: Leaflet
- Local storage:
localforagefor offline persistence - PWA:
manifest.json,service-worker.js - Backend:
api/index.js(Node.js) and optional legacy FastAPI services inlegacy_backend/
- Install Node dependencies and build CSS:
npm install
npm run build:css- (Optional) Install Python requirements for legacy services:
python -m pip install -r requirements.txt- Generate icons (optional):
C:/Python314/python.exe scripts\export_icons.py- Open
index.htmlin a browser or run your preferred static server.
| Endpoint | Method | Description |
|---|---|---|
/api/health |
GET | Service health and environment info |
/api/campaigns |
GET, POST | List and create campaigns |
/api/resources |
GET | List resources (NGOs, hospitals, warehouses) |
/api/external/:provider |
GET | Proxy to external humanitarian feeds |
Examples
Client fetch:
fetch('/api/campaigns')
.then(r => r.json())
.then(data => console.log(data))Curl health check:
curl -sS http://localhost:3000/api/health | jqflowchart LR
User --> Browser
Browser --> |assets, manifest| ServiceWorker
Browser --> |API calls| API
ServiceWorker --> |cache| Assets[(Static Assets)]
API --> Legacy[Legacy Backend]
Legacy --> DB[(Database)]
Please open issues and PRs. Keep changes focused. Use scripts/ for repeatable tooling and avoid committing large generated binaries unless necessary.
This project is licensed under the MIT License - see the LICENSE file for details.
