Files
ai-myopia-prevention/DEVELOPMENT.md
虾司令 881144269c 🚀 AI 近视防控系统 - 生产环境上线版本 v1.0
 已完成功能:
- 后端 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 上线部署完成
2026-03-29 18:16:41 +08:00

212 lines
4.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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. 项目初始化
```bash
# 克隆项目
git clone <repository-url>
cd ai-myopia-prevention
# 安装依赖
go mod tidy
# 复制环境配置文件
cp .env.example .env
# 编辑 .env 文件,配置数据库连接等信息
```
### 3. 数据库配置
创建数据库并执行初始化脚本:
```bash
# 创建数据库
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. 启动开发服务器
```bash
# 使用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提交规范
- 使用语义化提交信息
- 遵循约定式提交规范
## 测试
### 单元测试
```bash
# 运行所有测试
make test
# 运行特定包的测试
go test -v ./api/handlers/...
# 查看测试覆盖率
make coverage
```
## 部署
### 1. Docker部署
```bash
# 构建Docker镜像
make docker-build
# 运行Docker容器
make docker-run
```
### 2. Kubernetes部署
```bash
# 应用部署配置
kubectl apply -f deploy/deployment.yaml
```
## 架构说明
### 微服务架构
系统采用微服务架构,主要包括以下服务:
1. **用户服务** - 用户认证和权限管理
2. **检测服务** - 视力检测和数据收集
3. **预警服务** - 预警规则和通知
4. **训练服务** - 训练内容和任务管理
5. **报表服务** - 数据报表和分析
6. **设备服务** - 设备管理和通信
7. **AI服务** - AI算法推理
### 数据库设计
- 使用GORM进行数据库操作
- 遵循数据库设计规范
- 实现数据完整性约束
## 安全考虑
- 使用JWT进行身份验证
- 实现API速率限制
- 输入数据验证和清理
- SQL注入防护
## 性能优化
- 数据库查询优化
- 缓存策略
- 连接池配置
- 静态资源压缩
## 监控和日志
- 结构化日志记录
- 性能监控指标
- 错误追踪
## 贡献指南
1. Fork项目
2. 创建功能分支
3. 提交更改
4. 发起Pull Request
## 常见问题
### 数据库连接问题
确保数据库服务正在运行,并且连接参数正确配置。
### 端口冲突
如果端口8080已被占用可在.env文件中修改SERVER_PORT。
---
*启明计划 - 让每个孩子都拥有明亮的未来*