✅ 已完成功能: - 后端 Go 服务 (认证/授权/检测) - JWT 认证 + RBAC 权限控制 - 登录速率限制 (5 次失败锁定 15 分钟) - 密码强度校验 - 敏感数据脱敏 - Vue3 管理后台 - 路由守卫 - 删除二次确认 📦 部署配置: - Docker Compose 生产环境配置 - MySQL/Redis/MongoDB 数据库 - Nginx 前端服务 - 强密码安全配置 ⚠️ P2 待办 (下次迭代): - 学生/检测/预警等业务模块实现 - 错误处理统一化 - 缓存策略优化 - 日志分级 📍 生产环境: - 服务器:192.168.15.222 - 管理后台:http://192.168.15.222:8081 - API 服务:http://192.168.15.222:8080 2026-03-29 上线部署完成
4.2 KiB
4.2 KiB
AI近视防控系统 - 开发指南
项目概述
AI近视防控系统是一套用于监测、分析和预防青少年近视发展的智能平台。通过眼动追踪、视力检测算法和智能训练内容,帮助学校和家庭及时发现并干预近视发展。
技术栈
- 后端: Go 1.21+
- Web框架: Gin
- 数据库: MySQL 8.0
- 缓存: Redis 7.x
- 文档: Swagger
- 容器化: Docker
- 编排: Kubernetes
项目结构
ai-myopia-prevention/
├── api/ # API定义和处理器
│ ├── handlers/ # 请求处理器
│ ├── services/ # 业务服务
│ ├── router/ # 路由定义
│ └── middleware/ # 中间件
├── db/ # 数据库相关
│ ├── models/ # 数据模型
│ ├── migrations/ # 迁移脚本
│ └── seeders/ # 数据填充
├── internal/ # 内部业务逻辑
│ ├── config/ # 配置管理
│ ├── utils/ # 工具函数
│ └── constants/ # 常量定义
├── cmd/ # 主程序入口
├── docs/ # 文档
├── tests/ # 测试代码
├── scripts/ # 脚本文件
├── deploy/ # 部署配置
├── static/ # 静态文件
├── uploads/ # 上传文件
├── go.mod
├── go.sum
├── Makefile
├── Dockerfile
├── .env.example
├── README.md
└── DEVELOPMENT.md
开发环境搭建
1. 环境要求
- Go 1.21+
- MySQL 8.0+
- Redis 7.0+
- Docker
- Git
2. 项目初始化
# 克隆项目
git clone <repository-url>
cd ai-myopia-prevention
# 安装依赖
go mod tidy
# 复制环境配置文件
cp .env.example .env
# 编辑 .env 文件,配置数据库连接等信息
3. 数据库配置
创建数据库并执行初始化脚本:
# 创建数据库
mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS myopia_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
# 执行初始化脚本
mysql -u root -p myopia_db < scripts/init_db.sql
4. 启动开发服务器
# 使用Makefile启动
make run
# 或直接运行
go run cmd/main.go
# 服务器将启动在 http://localhost:8080
API文档
API文档可通过以下方式访问:
- 在线文档: http://localhost:8080/swagger/index.html
- 详细API文档: docs/api_documentation.md
代码规范
1. Go代码规范
- 使用
gofmt格式化代码 - 遵循Go语言命名约定
- 为导出的函数和类型编写文档注释
2. Git提交规范
- 使用语义化提交信息
- 遵循约定式提交规范
测试
单元测试
# 运行所有测试
make test
# 运行特定包的测试
go test -v ./api/handlers/...
# 查看测试覆盖率
make coverage
部署
1. Docker部署
# 构建Docker镜像
make docker-build
# 运行Docker容器
make docker-run
2. Kubernetes部署
# 应用部署配置
kubectl apply -f deploy/deployment.yaml
架构说明
微服务架构
系统采用微服务架构,主要包括以下服务:
- 用户服务 - 用户认证和权限管理
- 检测服务 - 视力检测和数据收集
- 预警服务 - 预警规则和通知
- 训练服务 - 训练内容和任务管理
- 报表服务 - 数据报表和分析
- 设备服务 - 设备管理和通信
- AI服务 - AI算法推理
数据库设计
- 使用GORM进行数据库操作
- 遵循数据库设计规范
- 实现数据完整性约束
安全考虑
- 使用JWT进行身份验证
- 实现API速率限制
- 输入数据验证和清理
- SQL注入防护
性能优化
- 数据库查询优化
- 缓存策略
- 连接池配置
- 静态资源压缩
监控和日志
- 结构化日志记录
- 性能监控指标
- 错误追踪
贡献指南
- Fork项目
- 创建功能分支
- 提交更改
- 发起Pull Request
常见问题
数据库连接问题
确保数据库服务正在运行,并且连接参数正确配置。
端口冲突
如果端口8080已被占用,可在.env文件中修改SERVER_PORT。
启明计划 - 让每个孩子都拥有明亮的未来