Sachin06016268/Women-Safety-Alert-System

GitHub: Sachin06016268/Women-Safety-Alert-System

一个基于MERN全栈架构的女性安全警报系统,提供实时SOS求助、行程追踪、事件上报与安全热力图功能,帮助用户在紧急情况下快速获取援助。

Stars: 0 | Forks: 0

# 🛡️ 女性安全警报系统 一款全栈 MERN 应用程序,旨在通过提供实时紧急援助、行程实时追踪、事件报告、附近的紧急服务以及用于监控和管理事件的管理员仪表板,来提升女性安全。 ## 🚀 功能 ### 👤 用户功能 - 安全的用户注册和登录(JWT 身份验证) - 基于角色的访问控制 - SOS 紧急警报 - 实时行程追踪 - 实时位置共享 - 紧急联系人管理 - 支持图片上传的事件报告 - 附近的警察局和医院 - 使用 Leaflet 的交互式地图 - 用户资料管理 - 修改密码 - 注销账号 ### 🛡️ 管理员功能 - 带有数据分析的管理员仪表板 - 用户管理 - 事件管理 - SOS 警报监控 - 事件热力图 - 事件状态更新 - 实时 SOS 通知 - Google 地图集成 ## 🛠 技术栈 ### Frontend - React.js - React Router DOM - Axios - Socket.IO Client - React Leaflet - Leaflet - CSS3 ### Backend - Node.js - Express.js - MongoDB - Mongoose - JWT 身份验证 - Socket.IO - Multer - Cloudinary - Geoapify API - Cookie Parser - CORS ## 📂 项目结构 ``` Women-Safety-Alert-System/ │ ├── frontend/ │ ├── src/ │ │ ├── api/ │ │ ├── components/ │ │ ├── context/ │ │ ├── pages/ │ │ ├── socket/ │ │ └── App.jsx │ │ │ └── package.json │ ├── backend/ │ ├── src/ │ │ ├── controllers/ │ │ ├── routes/ │ │ ├── middlewares/ │ │ ├── models/ │ │ ├── utils/ │ │ ├── db/ │ │ └── app.js │ │ │ └── package.json │ └── README.md ``` # 🔐 身份验证 - JWT 身份验证 - Access Token - Refresh Token - 受保护路由 - 基于角色的授权 # 🚨 SOS 警报工作流 1. 用户点击 **SOS 按钮** 2. 捕获当前位置 3. SOS 请求保存在 MongoDB 中 4. 使用 Socket.IO 发送实时通知 5. 管理员收到: - 弹窗通知 - 紧急提示音 - 实时位置 6. 管理员可以将警报标记为 **已解决** # 🚗 行程追踪工作流 - 用户开启行程 - 生成追踪 ID - 使用 Socket.IO 共享实时位置 - 紧急联系人接收追踪链接 - 可以随时结束行程 - 管理员可以监控行程 # 📄 事件报告 用户可以通过提供以下信息来报告事件: - 类别 - 描述 - 当前位置 - 图片上传 支持的类别: - 骚扰 - 跟踪 - 盗窃 - 人身攻击 - 不安全区域 - 其他 # 🗺 地图与位置服务 集成使用: - Leaflet.js - OpenStreetMap - Geoapify API 功能: - 附近的警察局 - 附近的医院 - 事件位置 - 实时行程追踪 - SOS 位置 - 事件热力图 # 🔥 热力图 根据报告的事件显示地理热点。 风险等级: - 🔴 红色 – 最危险 - 🟠 橙色 – 高风险 - 🟡 黄色 – 中等风险 - 🟢 绿色 – 低风险 - 🔵 蓝色 – 极低风险 # 📊 管理员仪表板 显示: - 总用户数 - 总事件数 - 总 SOS 警报数 快捷操作: - 管理用户 - 管理事件 - 管理 SOS 警报 - 查看热力图 # 📦 后端安装 ``` cd backend npm install ``` 创建 `.env` 文件: ``` PORT=8000 MONGODB_URI= ACCESS_TOKEN_SECRET= ACCESS_TOKEN_EXPIRY= REFRESH_TOKEN_SECRET= REFRESH_TOKEN_EXPIRY= CLOUDINARY_CLOUD_NAME= CLOUDINARY_API_KEY= CLOUDINARY_API_SECRET= GEOAPIFY_API_KEY= TWILIO_ACCOUNT_SID= TWILIO_AUTH_TOKEN= TWILIO_PHONE_NUMBER= ``` 运行后端 ``` npm run dev ``` # 💻 前端安装 ``` cd frontend npm install ``` 运行前端 ``` npm run dev ``` # 🌐 API Endpoints ## 身份验证 ``` POST /api/v1/users/register POST /api/v1/users/login POST /api/v1/users/logout POST /api/v1/users/refresh-token ``` ## 用户 ``` GET /api/v1/users/current-user PATCH /api/v1/users/update-account PATCH /api/v1/users/change-password DELETE /api/v1/users/delete-account ``` ## 紧急联系人 ``` POST /api/v1/users/trusted-contacts GET /api/v1/users/trusted-contacts DELETE /api/v1/users/trusted-contacts/:id ``` ## SOS ``` POST /api/v1/sos GET /api/v1/sos/my-alerts PATCH /api/v1/sos/:id/resolve ``` ## 行程 ``` POST /api/v1/journey/start PATCH /api/v1/journey/end/:id GET /api/v1/journey/history GET /api/v1/journey/track/:trackingId ``` ## 事件 ``` POST /api/v1/incidents GET /api/v1/incidents/my-incidents GET /api/v1/incidents/:id ``` ## 附近的服务 ``` GET /api/v1/nearby/locations ``` ## 管理员 ``` GET /api/v1/admin/dashboard GET /api/v1/admin/users GET /api/v1/admin/incidents PATCH /api/v1/admin/incidents/:id GET /api/v1/admin/sos PATCH /api/v1/admin/sos/:id GET /api/v1/admin/heatmap ``` # 🔄 实时功能 使用 Socket.IO 实现 - 实时 SOS 警报 - 实时行程追踪 - 实时位置更新 - 即时管理员通知 # 👨‍💻 作者 **Sachin** GitHub: https://github.com/Sachin06016268
标签:MERN架构, MITM代理, 女性安全预警, 实时定位, 库, 应急响应, 自定义脚本