AbdullahAnsari103/safenex-amd
GitHub: AbdullahAnsari103/safenex-amd
SafeNex 是一个整合了风险感知路线规划、AI 驱动 SOS 紧急响应和匿名社区支持的个人安全保障平台。
Stars: 0 | Forks: 0
# 🛡️ SafeNex - 完整的安全平台
SafeNex 是一个全面的安全保障平台,旨在通过 AI 驱动的紧急响应、智能路线规划和匿名社区支持来保护用户。




## 🌟 功能
### 🚨 Nexa AI SOS
- **AI 驱动的紧急助手**,基于 Gemini 2.0 Flash
- **语音转文字**紧急通讯
- **智能关键词检测**(help、emergency、danger、sos)
- **GPS 位置追踪**及移动轨迹
- 用于紧急联系人的 **WhatsApp 集成**
- **静止检测**警报
### 🗺️ SafeTrace - 智能路线规划
- **多模式路线规划**(步行、骑行、驾车)
- **已验证的危险区域数据库**(孟买 20 多个区域)
- **实时风险评估**及颜色编码路线
- 使用地理围栏的**危险区域避让**
- 包含安全提示的 **Gemini AI 路线分析**
- 带有分步指引的**逐向导航**
- 接近危险区域时的**邻近警报**
### 💬 Silent Room - 匿名支持
- 带有自动生成用户名的**匿名发布**
- 针对敏感话题的**社区支持**
- 带有自动标记(3 次以上举报)的**举报系统**
- 带有用户警告的**管理员审核**
- 使用 Socket.io 的**实时更新**
### 👤 用户功能
- **二维码验证**系统
- 使用 Gemini AI 的**文档验证**
- **信任评分**计算
- **SafeNex ID** 生成
- **活动追踪**
### 🔐 管理面板
- 带有在线状态的**用户管理**
- 带有实时 SOS 会话的**紧急警报仪表板**
- **危险区域管理**(CRUD 操作)
- 带有标记帖子的**Silent Room 审核**
- **系统健康监控**(追踪 6 个系统)
- **统计与分析**
## 🚀 快速开始
### 前置条件
- Node.js 18.x 或更高版本
- Turso (LibSQL) 数据库账户
- Gemini API 密钥
- OpenRouteService API 密钥
### 安装
1. **克隆仓库**
```
git clone https://github.com/AbdullahAnsari103/SAFENEX-.git
cd SAFENEX-
```
2. **安装依赖**
```
npm install
```
3. **配置环境变量**
```
cp .env.example .env
# 使用你的 credentials 编辑 .env
```
4. **初始化数据库**
```
node scripts/init-verified-danger-zones-turso.js
```
5. **启动服务器**
```
npm start
```
访问 `http://localhost:5000`
## 📦 部署
### Vercel(推荐)
有关详细说明,请参阅 [VERCEL_DEPLOYMENT.md](./VERCEL_DEPLOYMENT.md)。
快速部署:
1. 推送到 GitHub
2. 导入到 Vercel
3. 添加环境变量
4. 部署!
### 其他平台
- **Heroku**:使用 `Procfile`(已包含)
- **Railway**:自动检测
- **Render**:使用 `npm start`
## 🔧 配置
### 环境变量
所需变量(参见 `.env.example`):
```
# Security
JWT_SECRET=your_jwt_secret
# Database
TURSO_DATABASE_URL=your_database_url
TURSO_AUTH_TOKEN=your_auth_token
# AI Services
GEMINI_API_KEY=your_gemini_key
GEMINI_API_KEY_SAFETRACE=your_safetrace_key
GEMINI_MODEL=gemini-2.0-flash-exp
# Navigation
OPENROUTE_API_KEY=your_openroute_key
# CORS
ALLOWED_ORIGINS=http://localhost:5000
```
## 🗄️ 数据库 Schema
### Users 表
- 用户身份验证和个人资料
- 文档验证状态
- SafeNex ID 和二维码
- 活动追踪
### SOS Sessions 表
- 紧急会话追踪
- 带有轨迹的位置数据
- 联系人信息
- 会话事件时间线
### Verified Danger Zones 表
- 孟买 20 多个已验证的危险区域
- 风险等级(严重、高、中、低)
- 活动时间和类别
- 地理围栏数据
### Silent Room 表
- 匿名帖子
- 举报和标记系统
- 用户警告
## 🛠️ 技术栈
### 后端
- **Node.js** - Runtime environment
- **Express.js** - Web 框架
- **Turso (LibSQL)** - Serverless 数据库
- **Socket.io** - 实时通信
### AI 与 API
- **Google Gemini 2.0 Flash** - AI 助手与分析
- **OpenRouteService** - 路线规划
- **Pelias Geocoding** - 地址搜索
### 前端
- **Vanilla JavaScript** - 无框架开销
- **Leaflet.js** - 交互式地图
- **Socket.io Client** - 实时更新
### 安全
- **JWT** - 身份验证
- **bcrypt** - 密码哈希
- **express-rate-limit** - 速率限制
- **CORS** - 跨源保护
## 📊 API Endpoints
### 身份验证
- `POST /api/auth/register` - 用户注册
- `POST /api/auth/login` - 用户登录
- `GET /api/dashboard` - 用户仪表板
### SOS
- `POST /api/sos/session` - 创建紧急会话
- `POST /api/sos/chat` - AI 聊天
- `GET /api/sos/config` - 获取 SOS 配置
### SafeTrace
- `POST /api/safetrace/routes` - 计算路线
- `GET /api/safetrace/danger-zones/all` - 获取所有危险区域
- `POST /api/safetrace/report` - 举报危险区域
### Silent Room
- `GET /api/silentroom/posts` - 获取帖子
- `POST /api/silentroom/posts` - 创建帖子
- `POST /api/silentroom/post/:id/report` - 举报帖子
### 管理员
- `GET /api/admin/users` - 获取所有用户
- `GET /api/admin/sos-sessions` - 获取 SOS 会话
- `GET /api/admin/danger-zones` - 管理危险区域
## 🔒 安全
### 已实施的措施
- ✅ JWT 身份验证
- ✅ 使用 bcrypt 进行密码哈希
- ✅ 速率限制(每 15 分钟 100 次请求)
- ✅ CORS 保护
- ✅ 输入验证
- ✅ SQL 注入防护(参数化查询)
- ✅ XSS 保护
- ✅ 环境变量加密
### 最佳实践
- 切勿提交 `.env` 文件
- 定期重新生成 API 密钥
- 使用强 JWT 密钥
- 在生产环境中启用 HTTPS
- 监控 API 使用情况
## 📱 功能详情
### Nexa AI SOS
AI 驱动的紧急助手使用 Gemini 2.0 Flash 来:
- 理解自然语言紧急请求
- 自动检测紧急关键词
- 提供冷静、有用的响应
- 通过 3 点 GPS 轨迹追踪用户位置
- 计算移动方向
- 检测用户是否静止不动(潜在危险)
- 通过 WhatsApp 发送详细的紧急警报
### SafeTrace 路线规划
将安全置于首位的智能路线规划:
- 获取每种出行方式的 3 条备选路线
- 根据危险区域计算风险评分
- 按以下条件对路线排序:危险区域最少 → 风险最低 → 距离最短
- 提供包含安全提示的 Gemini AI 分析
- 显示逐向导航
- 在接近危险区域时发出警报
- 支持步行、骑行和驾车模式
### Silent Room
匿名社区支持平台:
- 自动生成的用户名(例如,“Anonymous Panda”)
- 无需个人信息
- 社区驱动的审核(举报系统)
- 带有警告系统的管理员监督
- 实时帖子更新
## 📄 许可证
本项目基于 MIT 许可证授权 - 有关详细信息,请参阅 [LICENSE](LICENSE) 文件。
## 👨💻 作者
**Abdullah Ansari**
- GitHub: [@AbdullahAnsari103](https://github.com/AbdullahAnsari103)
- 电子邮件: abdullahansari01618@gmail.com
## 📞 支持
如需支持,请发送电子邮件至 abdullahansari01618@gmail.com 或在 GitHub 上提 issue。
## 🗺️ 路线图
- [ ] 移动应用 (React Native)
- [ ] 支持更多城市
- [ ] 实时位置共享
- [ ] 紧急服务集成
- [ ] 多语言支持
- [ ] 离线模式
- [ ] 语音命令
- [ ] 可穿戴设备集成
**用 ❤️ 创造,为了一个更安全的世界**
标签:Express, Gemini, GNU通用公共许可证, MITM代理, Node.js, SOS紧急求救, 公共安全, 导航系统, 社区论坛, 自定义脚本