# Seer Teach Cloud - 智能教育AI云平台

[![Java](https://img.shields.io/badge/java-21-blue.svg)](https://www.oracle.com/java/technologies/javase/jdk21-archive-downloads.html)
[![Spring Boot](https://img.shields.io/badge/spring--boot-3.5.9-brightgreen.svg)](https://spring.io/projects/spring-boot)
[![Spring Cloud](https://img.shields.io/badge/spring--cloud-2025.0.1-brightgreen.svg)](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赋能教育，让学习更智能！