🚀 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 上线部署完成
This commit is contained in:
212
DEVELOPMENT.md
Normal file
212
DEVELOPMENT.md
Normal file
@@ -0,0 +1,212 @@
|
||||
# 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。
|
||||
|
||||
---
|
||||
|
||||
*启明计划 - 让每个孩子都拥有明亮的未来*
|
||||
Reference in New Issue
Block a user