The PS asks for a system that (1) gathers scattered community information, (2) clearly shows the most urgent local needs, and (3) quickly matches volunteers to the right tasks and locations.
NGO Synergy addresses this end-to-end:
- Collect & unify paper surveys/field reports (images, PDFs, free text) into one structured dataset.
- Prioritize with clarity using validated fields + an explainable priority score.
- Match & dispatch fast using skills + availability + distance/ETA, then deliver assignments to volunteers.
NGO Synergy is a unified crisis-response platform with:
- Web Admin Console (React) for triage, verification, matching, and operations.
- Mobile Volunteer App (Flutter) for sign-in, map context, and task execution.
- One Backend API server (Node/Express) that secures access, runs AI pipelines, and persists operational data.
Deep technical overview: see Idea.md.
- Digitization: Document AI OCR → Gemini schema-enforced JSON → validation → Firestore.
- Verification Center: AI-assisted checks + human-in-the-loop approval.
- Matching Engine: ranks volunteers and considers proximity/ETA for practical dispatch.
- Maps: web + mobile map views for incidents and coordination.
- Document Library + Q&A: store evidence and “chat” for summarization and retrieval.
- Firebase Authentication (+ Google Sign-In)
- Firebase Admin SDK (server-side token verification, roles)
- Cloud Firestore (operational database)
- Cloud Storage / Firebase Storage bucket (documents/evidence)
- Document AI (OCR for PDFs/images)
- Gemini API (structured extraction, verification, document Q&A)
- Vertex AI Prediction (optional hosted ranking)
- Google Maps Platform (Maps JS API, Maps SDK for Flutter, Distance Matrix, Geocoding/Reverse Geocoding)
src/— Web Admin (React + Vite)backend/— Backend API (Express + TypeScript)mobile_app/— Flutter volunteer appbackend/Data Digitization Pipeline/— standalone runnable pipeline demo (OCR → Gemini → validation → Firestore)
- Node.js 18+
- (Optional) Flutter SDK for
mobile_app/ - (Optional) Python 3.x for the backend ML fallback scripts
npm install
npm --prefix backend install
cp .env.example .env
cp backend/.env.example backend/.env
npm run dev:all- Web: http://localhost:5173
- Backend: http://localhost:8080 (health:
/health) - Dev convenience: Vite proxies
/api→http://localhost:8080
- The backend supports a development bypass: set
DEV_MODE=trueinbackend/.envto skip token verification. - For a full end-to-end run, configure Firebase Admin + API keys in
backend/.env(copy frombackend/.env.example).
Copy the mobile env template:
cp mobile_app/.env.example mobile_app/.envmobile_app/.env.example uses 10.0.2.2 (Android emulator → host loopback). Use your machine IP for a physical device.
Then:
cd mobile_app
flutter pub get
flutter run- Root:
npm run dev(web),npm run dev:all(web + backend) - Backend:
npm --prefix backend run dev
NOTE:
This project was developed using Antigravity as an AI-assisted development environment.
Cursor was used only for generating the Graphify knowledge base (code indexing and navigation), not for application logic.
Internal use (hackathon prototype)