chunky152/emergency-response

GitHub: chunky152/emergency-response

乌干达紧急响应系统(UDERS)是一个基于 Express.js 和 MongoDB 的全栈应急事件上报与调度平台,让市民能便捷地报告事故并由调度中心统一分派给对应机构处理。

Stars: 0 | Forks: 0

# UDERS — 乌干达紧急响应系统 **版本 2.0 | Express.js + MongoDB 后端** ## 项目结构 ``` emergency-response/ ├── backend/ ← Express.js API server │ ├── index.js ← Server entry point │ ├── seed.js ← Seed agencies (essential for dispatch) │ ├── clear-db.js ← Wipe incidents/logs for a clean state │ ├── .env ← Environment config │ ├── models/ ← Mongoose schemas │ ├── routes/ ← API route handlers │ └── uploads/ ← Media file storage (auto-created) │ └── frontend/ ← Static assets (served by Express) ├── citizen.html ← Public reporting app ├── dispatch.html ← Dispatch dashboard ├── styles.css ← Shared stylesheet └── app.js ← Frontend logic ``` ## 近期更新与改进 - **逆地理编码**:集成了 OpenStreetMap Nominatim API。所有新报告现在都会根据 GPS 坐标自动包含人类可读的地址(例如,“Nakawa, Kampala”)。 - **Nodemon 集成**:添加了 `npm run dev` 脚本,在文件更改时自动重启,从而改善开发人员体验。 - **简化调度**:操作员现在可以在模态框中一键调度单位。选择后立即触发该操作。 - **门户解耦**: - 公民页面现在仅用于报告(已移除调度链接)。 - 调度门户仅用于管理(已移除公民报告链接)。 - **整洁的界面**:从 UI 和后端日志中移除了所有开发需求标签(`REQ-X`),呈现专业外观。 - **改进的反馈**:添加了 Toast 通知系统,为提交和调度操作提供清晰的确认。 - **Bug 修复**:修正了 MongoDB 连接字符串问题,并优化了成功提交后的表单重置逻辑。 ## 前置条件 - **Node.js** v18+ - 在本地端口 27017 上运行的 **MongoDB**(例如,通过 Docker 运行:`docker run -d -p 27017:27017 --name mongo mongo`) ## 运行方式 ### 1. 安装依赖 ``` cd backend npm install ``` ### 2. 配置环境 ``` # 检查或创建 .env cp .env.example .env ``` ### 3. 启动开发服务器 ``` npm run dev ``` ## API 接口 | 方法 | 接口 | 描述 | |--------|----------------------------------|----------------------------| | GET | `/api/incidents` | 列出所有事件 | | GET | `/api/incidents/stats` | 统计卡片摘要 | | GET | `/api/incidents/:id` | 单个事件详情 | | POST | `/api/incidents` | 创建事件(包含媒体) | | PATCH | `/api/incidents/:id/dispatch` | 立即调度机构 | | PATCH | `/api/incidents/:id/resolve` | 标记事件为已解决 | | GET | `/api/agencies` | 列出可用机构 | | GET | `/api/alerts` | 实时警报日志 | ## 架构 ``` citizen.html / dispatch.html │ │ fetch() — RESTful JSON API ▼ Express.js (backend/index.js) │ ────┼─────────────────────────── Routes (incidents, agencies, alerts) │ ▼ MongoDB (emergency database) ```
标签:CISA项目, CMS安全, CSS, Express.js, GIS, GNU通用公共许可证, GPS定位, HTML, JavaScript, MITM代理, MongoDB, Mongoose, Node.js, Nodemon, Nominatim API, OpenStreetMap, 乌干达, 事件报告, 公众报警, 公共服务, 前后端分离, 地理信息系统, 多模态安全, 应急响应系统, 报警平台, 政务系统, 数据可视化, 文件上传, 灾难响应, 紧急救援, 自定义脚本, 请求拦截, 调度指挥系统, 逆向地理编码