DThawi/ResQNow-Crowdsourced_Location_Aware_Emergency_Response_System
GitHub: DThawi/ResQNow-Crowdsourced_Location_Aware_Emergency_Response_System
ResQNow 是一个众包式灾害管理与应急响应平台,通过实时事件上报、信任验证机制和响应生命周期追踪,帮助政府与社区协调救援行动并提升灾害处置效率。
Stars: 0 | Forks: 3
# ResQNow – 众包灾害响应与应急协调平台
## 项目概述
ResQNow 是一个众包灾害管理和应急协调平台,旨在加强斯里兰卡的实时事件报告、验证和响应管理。
该系统使公民能够报告灾害,当局能够验证事件,响应人员能够高效协调行动。ResQNow 专注于在洪水、山体滑坡、道路交通事故和极端天气事件等危急情况下,提高响应速度、透明度、信任度和准备能力。
## 问题陈述
斯里兰卡经常遭遇自然灾害和紧急情况,特别是在季风季节。现有系统主要侧重于报告事件,但缺乏:
- 结构化的验证机制
- 实时响应透明度
- 资源容量感知
- 数据驱动的风险分析
- 应急处理中的问责制
此外,错误信息和重复报道降低了众包灾害平台的有效性。
ResQNow 旨在通过结构化、信任感知和分析驱动的方法来解决这些限制。
## 建议的解决方案
ResQNow 引入了一个集中化且智能的灾害响应平台,该平台集成了:
- 基于公民的实时报告
- 基于角色的访问控制(公民、响应人员、管理员)
- 智能验证机制
- 响应生命周期跟踪
- 预测性风险热点可视化
- 面向当局的数据驱动仪表板
该系统改善了灾害响应协调,同时确保了问责制和可信度。
## 核心功能
### 1. 实时事件报告
- 公民可以报告包含位置、图片和类别的灾害。
- 基于 GPS 的自动位置捕获。
- 每份报告的状态跟踪。
### 2. 基于信任的验证机制
- 报告者的声誉评分。
- 基于可信度和确认的报告验证。
- 减少错误信息和误报。
### 3. 响应人员问责与时间线跟踪
- 完整的事件生命周期跟踪:
- 已报告
- 已验证
- 已派遣
- 已到场
- 已解决
- 带时间戳的状态更新。
- 响应时间分析。
### 4. 预测性风险热点层
- 基于历史事件密度的可视化热力图。
- 基于时间的风险模式分析。
- 支持准备工作和决策制定。
- 不是灾害预测 —— 而是事件可能性可视化。
### 5. 基于角色的访问控制 (RBAC)
- 公民门户
- 响应人员仪表板
- 管理控制面板
### 6. 数据分析仪表板
- 各区域的事件频率
- 平均响应时间
- 当局绩效指标
- 风险趋势可视化
系统架构
高层说明
系统采用三层架构:
1. 表示层(前端) –
这是用户与系统交互的用户界面(Web 或移动应用程序)。
它显示数据并将用户请求发送到后端。
2. 应用层(后端) –
该层处理业务逻辑、处理用户请求、执行验证并与数据库通信。
3. 数据层(数据库) –
这存储所有系统数据,如用户信息、交易、记录等。
这种分层架构改善了:
可维护性
可扩展性
安全性
性能
客户端–服务器模型
系统使用客户端–服务器架构运行:
客户端(浏览器/移动应用程序)发送请求(例如,登录、提交表单、获取数据)。
服务器接收请求,处理它,并发回响应。
示例流程:
1. 用户登录
2. 客户端向服务器发送登录请求
3. 服务器从数据库验证凭据
4. 服务器发送成功/失败响应
该模型确保:
集中式数据管理
更好的安全性
多用户可同时访问
云端托管
系统部署在云平台上(例如 AWS, Azure, Google Cloud)。
云端托管的好处:
可扩展的资源(可以轻松处理更多用户)
高可用性
备份与灾难恢复
安全的数据存储
降低基础设施成本
云端托管允许系统 24/7 运行,而无需维护物理服务器。
数据库概述
系统使用关系型数据库(例如 MySQL/PostgreSQL)。
数据库:
在表中存储结构化数据
使用主键和外键
维护实体之间的关系
主要表可能包括:
用户
订单 / 交易
产品 / 服务
日志
数据库确保:
数据完整性
一致性
高效查询
系统设计工件
系统设计工件直观地展示了系统的工作原理。
ER 图(实体关系图)
参考:/docs/diagrams/ER_Diagram.png
ER 图显示:
实体(例如,用户、订单、产品)
每个实体的属性
实体之间的关系
主键和外键
目的:
帮助设计数据库结构
确保正确的关系
避免冗余
UML 图
📁 参考:/docs/diagrams/UML_Diagrams/
包含的常见 UML 图:
用例图
显示:
系统用户(参与者)
他们可以执行的操作
目的:
从用户角度理解系统功能
类图
显示:
类
属性
方法
类之间的关系
目的:
表示面向对象的结构
## 使用的技术
ResQNow 使用现代、可扩展和云就绪的技术开发,以确保实时性能、安全性和可靠性。
## 前端
* React Native – 移动应用程序开发(公民和响应人员应用程序)
* React.js – 管理 Web 仪表板
* Leaflet / Google Maps API – 交互式地图和实时可视化
* Redux / Context API – 状态管理
## 后端
* Node.js – 服务器端运行环境
* Express.js – RESTful API 开发
* JSON Web Tokens (JWT) – 安全认证和授权
* Socket.io – 实时通信和实时更新
## 数据库
* MongoDB – NoSQL 数据库,用于存储用户、事件和日志
* Mongoose – MongoDB 的对象数据建模 (ODM) 库
## 云与部署
* AWS / Firebase / Render / Railway – 云托管和部署
* Cloud Storage – 用于事件图片的媒体文件存储
* Cloud Hosting Services – 可扩展的后端托管
## 附加服务
* Geolocation API – 实时用户位置跟踪
* Firebase Cloud Messaging (FCM) – 推送通知
* Nodemailer – 电子邮件通知服务(如已实现)
## 安装与技术设置
以下步骤说明如何在本地设置和运行 ResQNow 系统。
## 前置条件
确保已安装以下软件:
* Node.js(版本 16 或更高)
* npm 或 yarn
* MongoDB(本地安装或云实例,如 MongoDB Atlas)
* Git
## 1. 克隆仓库
```
git clone https://github.com/your-username/resqnow.git
cd resqnow
```
## 2. 后端设置
导航到 backend 目录并安装依赖项:
```
cd backend
npm install
```
在 backend 文件夹内创建一个 `.env` 文件并配置以下环境变量:
```
PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_secret_key
MAP_API_KEY=your_map_api_key
```
启动后端服务器:
```
npm start
```
后端服务器将运行于:
```
http://localhost:5000
```
## 3. 前端设置(移动应用程序 – React Native)
导航到 frontend 目录并安装依赖项:
```
cd frontend
npm install
```
启动开发服务器:
```
npm start
```
在 Android 上运行应用程序:
```
npx react-native run-android
```
在 iOS 上运行应用程序:
```
npx react-native run-ios
```
## 4. 管理 Web 仪表板设置
导航到 admin 目录并安装依赖项:
```
cd admin
npm install
npm start
```
管理仪表板将运行于:
```
http://localhost:3000
```
## 环境配置说明
* 在启动后端之前确保 MongoDB 正在运行。
* 在运行前端应用程序之前启动后端服务器。
* 确认前端和管理配置中的 API 基础 URL 正确指向后端服务器。
## 测试
运行后端测试:
```
npm test
```
## 项目结构
ResQNow 项目遵循模块化和组织良好的结构,以支持可扩展性、可维护性和协作开发。
```
ResQNow/
│
├── frontend/
├── backend/
├── documentation/
└── README.md
```
### /frontend
* 包含应用程序的用户界面
* 处理用户交互和可视化
* 与后端 API 连接
* 包括 UI 组件、屏幕和资源
### /backend
* 包含服务器端应用程序逻辑
* 实现 RESTful API
* 管理认证和授权
* 处理数据库操作和业务逻辑
### /文档
* 存储系统文档
* 包括 UML 图和 ER 图
* 包含项目报告和设计工件
## 团队贡献
### K.A. Wijesekara – 项目经理
* 协调整体团队活动和项目执行
* 管理项目时间表和任务分配
* 监控开发进度并确保里程碑完成
* 准备和审查项目文档
* 确保项目目标的成功交付
### R.A.C. Ruwanima – 系统分析师
* 进行需求收集和可行性分析
* 设计系统模型,包括 DFD 和 ER 图
* 定义系统工作流程和功能需求
* 确保系统流程的正确文档化
* 支持系统设计决策
### G.P.C. Thushani – 后端开发人员
* 使用 Node.js 和 Express.js 开发后端服务
* 设计和实现 RESTful API
* 使用 MongoDB 管理数据库集成
* 实现服务器端逻辑和数据处理
* 确保后端性能和系统可靠性
### A.T. Kalansooriya – 前端开发人员(移动/Web)
* 使用 React Native 设计和开发移动前端
* 将前端组件与后端 API 集成
* 对 UI/UX 设计改进做出贡献
* 实现用户交互功能
* 协助前端测试和优化
### A.M.G.D. Thawinsa – QA 工程师 / 开发人员
* 执行系统和集成测试
* 识别错误并确保软件质量保证
* 验证应用程序功能和性能
* 在需要时支持前端和后端开发
* 协助调试和系统完善
## 未来增强功能
* 基于 AI 的灾害损坏分析
* 与政府应急响应系统集成
* 针对低互联网连接的 SMS 备用通知系统
* 多国部署和可扩展性支持
* 离线事件报告功能
* 实时预测风险和灾害分析
## 许可证
本项目为学术和研究目的而开发。
根据 MIT 许可证授权。
标签:GIS, GPS定位, HTTP/HTTPS抓包, LBS, MITM代理, RBAC, Sri Lanka, 众包平台, 位置感知, 信任评分, 公共安全, 决策支持系统, 医疗急救, 实时报警, 应急救援, 态势感知, 斯里兰卡, 智慧城市, 灾难管理, 移动应用, 自定义脚本, 角色权限控制, 警务通, 防灾减灾, 验证机制