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, 众包平台, 位置感知, 信任评分, 公共安全, 决策支持系统, 医疗急救, 实时报警, 应急救援, 态势感知, 斯里兰卡, 智慧城市, 灾难管理, 移动应用, 自定义脚本, 角色权限控制, 警务通, 防灾减灾, 验证机制