STIWARTs/NGOSynergy-GSC26
GitHub: STIWARTs/NGOSynergy-GSC26
NGO Synergy 是一个统一的危机响应平台,将现场原始报告通过 AI 转化为验证过的优先事件,并智能匹配调度志愿者,实现端到端的人道主义救援协调。
Stars: 0 | Forks: 0
# NGO Synergy — 智能资源分配 (GSC 2026)
## 为什么完全契合问题陈述 (PS)
问题陈述 (PS) 要求一个系统能够 (1) **收集分散的社区信息**,(2) **清晰展示最紧迫的当地需求**,以及 (3) **快速将志愿者匹配**到合适的任务和地点。
NGO Synergy 端到端地解决了这个问题:
- **收集与统一**:将纸质调查/现场报告(图像、PDF、自由文本)转化为一个结构化数据集。
- **清晰优先级排序**:使用经过验证的字段 + 可解释的优先级分数。
- **快速匹配与调度**:综合考虑技能 + 空闲时间 + 距离/ETA,然后将任务分配发送给志愿者。
## 项目简介
NGO Synergy 是一个统一的危机响应平台,包含:
- **Web 管理控制台** (React):用于分流、验证、匹配和操作管理。
- **移动端志愿者 App** (Flutter):用于登录、地图上下文和任务执行。
- **单一后端 API 服务器** (Node/Express):负责保障访问安全、运行 AI pipeline 以及持久化操作数据。
深度技术概述:参见 `Idea.md`。
## 核心功能(便于评审)
- **数字化**:Document AI OCR → Gemini schema 强制转换的 JSON → 验证 → Firestore。
- **验证中心**:AI 辅助检查 + 人机协同 (human-in-the-loop) 审批。
- **匹配引擎**:对志愿者进行排名,并考虑距离/ETA 以实现实际调度。
- **地图**:用于事件和协调的 Web 端和移动端地图视图。
- **文档库与 Q&A**:存储证据并进行“对话”以实现摘要和检索。
## 使用的 Google / Firebase 服务
- **Firebase Authentication** (+ Google Sign-In)
- **Firebase Admin SDK** (服务器端 token 验证,角色)
- **Cloud Firestore** (操作数据库)
- **Cloud Storage / Firebase Storage bucket** (文档/证据)
- **Document AI** (用于 PDF/图像的 OCR)
- **Gemini API** (结构化提取、验证、文档 Q&A)
- **Vertex AI Prediction** (可选的托管排名)
- **Google Maps Platform** (Maps JS API、Maps SDK for Flutter、Distance Matrix、Geocoding/Reverse Geocoding)
## 仓库布局
- `src/` — Web 管理端 (React + Vite)
- `backend/` — 后端 API (Express + TypeScript)
- `mobile_app/` — Flutter 志愿者 App
- `backend/Data Digitization Pipeline/` — 独立可运行的 pipeline 演示 (OCR → Gemini → 验证 → Firestore)
## 快速开始(本地演示)
### 前置条件
- Node.js 18+
- (可选)用于 `mobile_app/` 的 Flutter SDK
- (可选)用于后端 ML 回退脚本的 Python 3.x
### 1) 启动 Web 端与后端
```
npm install
npm --prefix backend install
cp .env.example .env
cp backend/.env.example backend/.env
npm run dev:all
```
- Web: http://localhost:5173
- 后端: http://localhost:8080 (健康检查: `/health`)
- 开发便利: Vite 将 `/api` 代理至 `http://localhost:8080`
### 2) 认证说明(供评审人员参考)
- 后端支持**开发绕过模式**:在 `backend/.env` 中设置 `DEV_MODE=true` 即可跳过 token 验证。
- 若需完整的端到端运行,请在 `backend/.env` 中配置 Firebase Admin 和 API 密钥(可从 `backend/.env.example` 复制)。
### 3) 运行移动端 App(可选)
复制移动端环境模板:
```
cp mobile_app/.env.example mobile_app/.env
```
`mobile_app/.env.example` 默认使用 `10.0.2.2`(Android 模拟器访问宿主机环回地址)。如使用物理设备,请改用您机器的实际 IP。
然后:
```
cd mobile_app
flutter pub get
flutter run
```
## 脚本
- 根目录: `npm run dev` (Web 端), `npm run dev:all` (Web 端 + 后端)
- 后端: `npm --prefix backend run dev`
## 许可证
内部使用(黑客马拉松原型)标签:Express, Firestore, Flutter, Gemini, GNU通用公共许可证, GSC2026, MITM代理, NGO管理, Node.js, OCR, PDF解析, React, Syscalls, Web管理后台, 人机协同, 任务分发, 优先级排序, 危机响应, 图像识别, 实时地图, 应急指挥系统, 志愿者调度, 文档AI, 智慧救援, 智能匹配, 灾难救援, 现场报告处理, 社区信息聚合, 移动应用, 自动化攻击, 资源分配, 逆向工具