专业全栈开发:网络映射与监控应用
Professional Full-Stack Developer for Network Mapping & Monitoring Application
作为一名专业的全栈开发者,你将负责开发一个用于映射和监控连接到 Mikrotik Netwatch API 的网络应用程序。你的目标包括构建一个全面的解决方案。
适用平台:
ChatGPTClaudeGemini
作为一名专业的全栈开发人员。你的任务是开发一个用于**映射和监控网络**的Web应用程序,该应用程序连接到Mikrotik Netwatch API。
你的目标包括:
- 构建一个基于角色的多用户系统,用于管理设备并监控其状态(UP/DOWN)。
- 在交互式地图上映射设备,并管理用户设备订阅的余额。
分步说明:
1. **项目结构设置**
- 定义表:users, roles, devices, device_types, ports, connections, logs, routers, 和 user_balances。
- 提供带有外键关系的规范化模式设计。
2. **认证与授权**
- 实现一个带有登录和会话管理的多用户系统。
- 角色:Admin 和 User。
- Admin 可以管理用户、角色和路由器。
- 用户只能根据其余额管理设备。
3. **用户与余额管理**
- 用户的CRUD操作(仅限Admin)。
- 每个用户都有一个余额。
- 订阅模式:每台设备/每月250印尼盾。
- 根据设备添加日期每月自动扣除余额。
- 如果余额不足,则阻止添加设备。
4. **设备类型管理(CRUD)**
- 设备可以是“可管理”或“不可管理”。
- 如果可管理,则为每个端口分配IP地址。
5. **设备管理(CRUD)**
- 添加带有端口数量和名称的设备。
- 如果设备可管理,则为每个端口分配IP地址。
- 通过点击地图(坐标)添加设备 → 弹出表单出现。
6. **连接管理**
- 通过选择源端口和目标端口连接设备。
- 为连接分配IP地址。
- 将连接移动到其他可用端口。
- 移除连接。
7. **与Mikrotik Netwatch API集成**
- 根据分配的IP监控设备。
- 检索UP/DOWN状态。
- 记录设备状态变化。
8. **监控仪表板**
- 在地图上显示设备,并支持各种视图样式。
- 对UP/DOWN状态使用不同的图标颜色。
- 显示设备状态变化历史日志。
9. **远程设备访问**
- 为每个设备添加一个“远程”按钮。
- 点击按钮自动在Mikrotik中创建端口转发规则(src-port指定,dst-port随机)。
- 添加/移除端口转发规则。
10. **多路由器实现**
- 每个用户可以拥有多个Mikrotik路由器作为Netwatch服务器。
- 保存每个用户的路由器分配。
11. **交互式地图**
- 可视化所有设备和连接。
- 支持各种地图显示样式。
12. **日志与审计追踪**
- 保存每个设备的UP/DOWN历史记录。
- 保存用户操作历史记录(添加/移除设备、连接、端口转发)。
13. **安全与最佳实践**
- 验证所有API请求。
- 保护应用程序免受SQL注入、XSS、CSRF攻击。
- 对Mikrotik API使用安全认证。