270 lines
7.6 KiB
Markdown
270 lines
7.6 KiB
Markdown
# Seer Teach Cloud - 智能教育AI云平台
|
||
|
||
[](https://www.oracle.com/java/technologies/javase/jdk21-archive-downloads.html)
|
||
[](https://spring.io/projects/spring-boot)
|
||
[](https://spring.io/projects/spring-cloud)
|
||
|
||
## 项目概述
|
||
|
||
**Seer Teach Cloud** 是一个基于Spring Cloud微服务架构的智能教育AI云平台,集成了先进的AI技术,提供个性化学习、智能批改、知识图谱构建等功能。该平台专为现代教育场景设计,支持多终端访问,包括智能设备、移动端和Web端。
|
||
|
||
## 架构特点
|
||
|
||
### 微服务架构
|
||
- **服务拆分**:按业务领域拆分为多个独立的微服务模块
|
||
- **技术栈**:Spring Boot 3.5.9 + Spring Cloud 2025.0.1 + Spring Cloud Alibaba
|
||
- **网关层**:Spring Cloud Gateway统一入口,支持路由、限流、鉴权
|
||
- **注册中心**:Nacos服务注册与发现
|
||
- **配置中心**:Nacos统一配置管理
|
||
|
||
### AI智能教育引擎
|
||
- **大语言模型集成**:支持阿里云百炼、火山引擎等多种AI平台
|
||
- **智能批改**:AI自动批改作业和试卷,提供详细解析
|
||
- **个性化推荐**:基于学习行为的智能推荐系统
|
||
- **知识点拆分**:AI自动拆分和构建知识图谱
|
||
- **智能问答**:支持自然语言交互的智能答疑
|
||
|
||
### 核心功能模块
|
||
|
||
#### 1. 教师服务 (seer-teacher)
|
||
- 知识点管理与拆分
|
||
- 教学目标生成
|
||
- 讲课稿与音视频生成
|
||
- 学生学习报告分析
|
||
- AI辅助教学工具
|
||
|
||
#### 2. 用户服务 (seer-user)
|
||
- 用户注册与登录
|
||
- 权限管理
|
||
- 用户扩展信息管理
|
||
- 等级与积分系统
|
||
|
||
#### 3. 商城服务 (seer-mall)
|
||
- 商品管理与分类
|
||
- 订单处理
|
||
- 购物车功能
|
||
- 支付集成
|
||
|
||
#### 4. 支付服务 (seer-pay)
|
||
- 学豆系统(虚拟币)
|
||
- 充值与消费
|
||
- 订单支付
|
||
- 退款处理
|
||
|
||
#### 5. 物联网服务 (seer-iot)
|
||
- 设备管理
|
||
- 硬件交互
|
||
- 数据采集与分析
|
||
|
||
#### 6. 消息推送 (seer-netty)
|
||
- 实时消息推送
|
||
- IM通信
|
||
- 音视频流处理
|
||
|
||
#### 7. 微信服务 (seer-mp)
|
||
- 微信公众号集成
|
||
- 小程序支持
|
||
- OAuth认证
|
||
|
||
#### 8. 开放API (seer-open-api)
|
||
- API网关
|
||
- 第三方集成
|
||
- 访问控制
|
||
|
||
## 技术栈
|
||
|
||
### 后端技术
|
||
- **基础框架**: Spring Boot 3.5.9 / Spring Cloud 2025.0.1
|
||
- **微服务**: Spring Cloud Alibaba, Nacos, OpenFeign
|
||
- **持久层**: MyBatis-Plus 3.5.15, MySQL, Redis
|
||
- **消息队列**: RocketMQ
|
||
- **任务调度**: XXL-Job
|
||
- **API文档**: SpringDoc OpenAPI
|
||
- **权限认证**: Sa-Token
|
||
- **对象存储**: MinIO
|
||
- **序列化**: Protobuf, Fastjson2
|
||
- **模板引擎**: Freemarker, Velocity
|
||
|
||
### AI与数据处理
|
||
- **AI平台集成**: 阿里云百炼、火山引擎
|
||
- **大模型调用**: LLM API集成
|
||
- **文本转语音**: AI语音合成
|
||
- **智能批改**: OCR + AI分析
|
||
- **知识图谱**: 知识点拆分与关联
|
||
|
||
### 网络通信
|
||
- **Netty**: 高性能网络通信框架
|
||
- **Protobuf**: 高效序列化协议
|
||
- **SSE**: Server-Sent Events实时通信
|
||
- **MQ**: RocketMQ消息队列
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
seer-teach-cloud-21/
|
||
├── seer-dependencies/ # 依赖管理
|
||
├── seer-common/ # 通用组件
|
||
│ ├── common/ # 通用工具类
|
||
│ ├── common-auth-scan/ # 认证扫描
|
||
│ ├── common-cache/ # 缓存组件
|
||
│ ├── common-config/ # 配置管理
|
||
│ ├── ... # 其他通用模块
|
||
├── seer-gateway/ # API网关
|
||
├── seer-teacher/ # 教师服务
|
||
│ ├── seer-teacher-api/ # 教师API接口
|
||
│ ├── seer-teacher-service/ # 教师业务服务
|
||
│ ├── seer-teacher-service-admin/ # 教师管理服务
|
||
│ └── ... # 其他教师模块
|
||
├── seer-user/ # 用户服务
|
||
├── seer-mall/ # 商城服务
|
||
├── seer-pay/ # 支付服务
|
||
├── seer-iot/ # 物联网服务
|
||
├── seer-netty/ # 网络通信服务
|
||
├── seer-mp/ # 微信服务
|
||
└── seer-open-api/ # 开放API服务
|
||
```
|
||
|
||
## 快速开始
|
||
|
||
### 环境要求
|
||
- Java 21+
|
||
- Maven 3.8+
|
||
- MySQL 8.0+
|
||
- Redis 6.0+
|
||
- Nacos Server
|
||
- MinIO (可选)
|
||
|
||
### 本地开发
|
||
|
||
1. **克隆项目**
|
||
```bash
|
||
git clone https://github.com/seer-teach-cloud/seer-teach-cloud-21.git
|
||
cd seer-teach-cloud-21
|
||
```
|
||
|
||
2. **配置环境**
|
||
```bash
|
||
# 配置数据库连接、Redis连接等
|
||
# 修改各模块的 application.yml 文件
|
||
```
|
||
|
||
3. **编译项目**
|
||
```bash
|
||
mvn clean install -Dmaven.test.skip=true
|
||
```
|
||
|
||
4. **启动服务**
|
||
```bash
|
||
# 1. 启动 Nacos Server
|
||
# 2. 启动 MySQL 和 Redis
|
||
# 3. 按顺序启动各微服务模块
|
||
```
|
||
|
||
5. **本地开发执行命令**:
|
||
```shell
|
||
mvn flatten:clean
|
||
mvn clean install '-Dmaven.test.skip=true'
|
||
```
|
||
|
||
## API接口设计规范
|
||
|
||
### RESTful接口设计
|
||
- 资源使用复数名词(如/users),单个资源通过ID标识(如/users/{id})
|
||
- 避免URL中出现动词,操作通过HTTP方法区分
|
||
- 统一返回JSON格式,包含code、message、data字段
|
||
|
||
### HTTP方法与操作映射
|
||
|
||
| 方法 | 场景 | 状态码示例 |
|
||
| ------ | ---------------------------- | ---------------- |
|
||
| GET | 获取资源(支持过滤参数) | 200, 304, 404 |
|
||
| POST | 创建资源(需返回Location头) | 201, 400, 415 |
|
||
| PUT | 全量更新资源 | 200, 409(冲突) |
|
||
| DELETE | 删除资源 | 204, 404 |
|
||
|
||
### 过滤与分页参数
|
||
- 使用 `?limit=10&offset=0` 或 `?page=1&per_page=10` 控制返回数据量
|
||
- 支持排序(`?sort=field&order=asc`)和条件筛选(`?status=active`)
|
||
|
||
## 数据库设计规范
|
||
|
||
### 表结构设计
|
||
- 表名使用复数(如user改为users),主键为id,外键用关联表名_id(如user_id)
|
||
- 字段命名使用小驼峰(如create_time),避免保留字
|
||
|
||
### 索引优化
|
||
- 主键自动创建聚簇索引,唯一字段添加唯一索引
|
||
- 高频查询字段添加普通索引,复合索引遵循"最左前缀原则"
|
||
|
||
### 事务与连接池
|
||
- 使用@Transactional注解管理事务,明确传播行为
|
||
|
||
## 数据库迁移规范
|
||
|
||
### 版本化迁移脚本 (Versioned Migrations)
|
||
- 命名格式:V + 版本号 + 双下划线 + 描述 + .sql
|
||
- 示例:V20240619__init.sql、V1.5.0__add_user_table.sql
|
||
|
||
### 可重复迁移脚本 (Repeatable Migrations)
|
||
- 命名格式:R + 双下划线 + 描述 + .sql
|
||
- 示例:R__update_view.sql
|
||
|
||
## AI功能模块
|
||
|
||
### 支持的AI场景
|
||
- 知识点生成示例题目
|
||
- 知识点生成题目
|
||
- 教材解析
|
||
- 知识点拆分与检查
|
||
- 举一反三题目生成
|
||
- 教学目标生成
|
||
- 讲课稿生成
|
||
- 文本转语音
|
||
|
||
### AI平台支持
|
||
- 阿里云百炼平台
|
||
- 火山引擎(即梦)
|
||
- 本地模型
|
||
|
||
## 开发规范
|
||
|
||
### 代码规范
|
||
- 遵循Java编程规范
|
||
- 使用Lombok简化代码
|
||
- 使用MapStruct进行对象映射
|
||
- 统一日志记录
|
||
|
||
### 测试规范
|
||
- 单元测试覆盖率达到80%以上
|
||
- 集成测试覆盖核心业务流程
|
||
- 性能测试确保系统稳定性
|
||
|
||
## 部署说明
|
||
|
||
### 生产环境部署
|
||
1. 配置生产环境的数据库、Redis、Nacos等中间件
|
||
2. 编译打包各微服务模块
|
||
3. 使用Docker容器化部署
|
||
4. 配置负载均衡和监控
|
||
|
||
### Docker部署
|
||
```bash
|
||
# 构建Docker镜像
|
||
mvn spring-boot:build-image
|
||
|
||
# 使用Docker Compose部署
|
||
docker-compose up -d
|
||
```
|
||
|
||
## 监控与运维
|
||
|
||
### 监控指标
|
||
- 应用性能监控(APM)
|
||
- 业务指标监控
|
||
- 系统资源监控
|
||
- AI服务调用监控
|
||
|
||
|
||
|
||
---
|
||
**Seer Teach Cloud** - 让AI赋能教育,让学习更智能! |