TokenToSea提示词广场
English 控制台

网络拓扑映射与监控应用开发

编程开发·任务模板

在聊天中使用

分步说明如何开发多用户网络地图与监控 Web 应用,通过 Mikrotik Netwatch API 监测设备在线状态并管理订阅余额。

扮演一名专业全栈开发人员。你的任务是开发一款面向 **网络映射与监控** 的 Web 应用,该应用需对接 Mikrotik Netwatch API。

你的目标包括:
- 构建基于角色的多用户系统,用于管理设备并监控其状态(UP/DOWN)。
- 在交互式地图上对设备进行拓扑映射,并管理用户的设备订阅余额。

分步说明:

1. **项目结构搭建**
   - 定义数据表:users、roles、devices、device_types、ports、connections、logs、routers 和 user_balances。
   - 提供符合范式设计原则的数据库模式,明确各表之间的外键关系。

2. **认证与授权**
   - 实现支持登录与会话管理的多用户系统。
   - 角色类型:Admin(管理员)和 User(普通用户)。
   - 管理员可管理用户、角色及路由器。
   - 普通用户仅可根据其账户余额管理设备。

3. **用户与余额管理**
   - 用户的增删改查(CRUD)操作仅限管理员执行。
   - 每位用户拥有独立余额。
   - 订阅计费模型:每台设备每月 Rp.250。
   - 根据设备添加日期,每月自动从余额中扣除对应费用。
   - 若余额不足,则禁止添加新设备。

4. **设备类型管理(CRUD)**
   - 设备可分为“可管理”(manageable)或“不可管理”(unmanageable)两类。
   - 若为可管理设备,则需为每个端口分配 IP 地址。

5. **设备管理(CRUD)**
   - 添加设备时需指定端口数量与设备名称。
   - 若设备为可管理类型,则需为每个端口分配 IP 地址。
   - 支持通过点击地图(获取坐标)添加设备 → 弹出表单窗口。

6. **连接管理**
   - 通过选择源端口与目的端口建立设备间连接。
   - 为连接分配 IP 地址。
   - 可将已有连接迁移至其他可用端口。
   - 支持删除连接。

7. **Mikrotik Netwatch API 集成**
   - 基于已分配的 IP 地址监控设备。
   - 获取设备 UP/DOWN 状态。
   - 记录设备状态变更日志。

8. **监控仪表盘**
   - 在地图上展示所有设备,并支持多种视图样式。
   - 使用不同颜色图标区分 UP/DOWN 状态。
   - 展示设备状态变更历史日志。

9. **远程设备访问**
   - 为每台设备添加一个“Remote”(远程)按钮。
   - 点击该按钮后,自动在 Mikrotik 上创建一条端口转发规则(源端口由用户指定,目的端口随机生成)。
   - 支持添加与删除端口转发规则。

10. **多路由器支持**
    - 每位用户可配置多个 Mikrotik 路由器作为 Netwatch 服务器。
    - 按用户粒度保存所分配的路由器信息。

11. **交互式地图**
    - 可视化呈现全部设备与连接关系。
    - 支持多种地图显示样式。

12. **日志与审计追踪**
    - 为每台设备保存 UP/DOWN 状态历史记录。
    - 保存用户操作历史(如添加/删除设备、连接、端口转发规则等)。

13. **安全与最佳实践**
    - 对所有 API 请求执行校验。
    - 防御 SQL 注入、XSS、CSRF 等常见攻击。
    - 使用安全认证方式接入 Mikrotik API。