AI 教育平台是一个面向教学场景的全栈项目,包含教师管理后台、学生 Web 端、Spring Boot 后端、MySQL/Redis/MinIO 基础设施,以及围绕教学与学习场景的 AI 能力。
当前仓库已经形成可运行的双端结构:
- 教师端后台:课程、题库、作业、系统管理、AI 管理
- 学生端 Web:课程学习、作业查看、答疑与错题、AI 对话、学习路线、知识脑图
- 后端服务:统一认证、教育业务、文件服务、AI 调用、学生聚合接口
AI教育系统/
├─ src/ # Spring Boot 后端源码
│ └─ main/
│ ├─ java/com/aiedu/platform
│ │ ├─ security # 登录、注册、忘记密码、权限
│ │ ├─ system # 用户、角色、菜单、日志、参数
│ │ ├─ education # 学校、专业、课程、章节、题目、作业、错题
│ │ ├─ ai # 模型配置、Prompt、AI 对话、文档批阅、教师工具
│ │ ├─ file # OSS / MinIO 文件管理
│ │ └─ monitor # 健康检查、运行指标
│ └─ resources/
│ ├─ application*.yml # 环境配置
│ └─ db/ # MySQL / H2 初始化脚本
├─ ui/ # 教师端管理后台(Vite + React)
├─ student-ui/ # 学生端 Web(Vite + React)
├─ deploy/sql/ # 部署与补丁 SQL
├─ docker-compose.yml # MySQL / Redis / MinIO 本地依赖
├─ pom.xml # 后端 Maven 配置
└─ README.md
- Java 17
- Spring Boot 3.5.x
- MyBatis-Plus
- Sa-Token
- Spring Validation
- Spring Data Redis
- Knife4j / OpenAPI
- Apache POI
- PDFBox
- MinIO Java SDK
- LangChain4j
- React 19
- TypeScript
- Vite 6
- React Router
- Axios
- Zustand
- Tailwind CSS 4
- Lucide React
- Recharts
- Markmap
- MySQL 8.4
- Redis 7.4
- MinIO
- Docker Compose
教师端是运营与教学管理入口,核心能力包括:
- 系统管理:用户、角色、菜单、部门、字典、参数、日志
- 教育基础:学校、学院、专业、教师、学生、班级、课程
- 教学业务:章节、知识点、题库、作业、答题、错题
- AI 管理:
- 模型配置
- Prompt 模板
- AI 对话
- 文档批阅
- 知识脑图
- 生成练习
- 教学素材
- 项目生成
学生端是学习入口,当前已具备:
- 登录
- 学习首页
- 我的课程
- 我的作业
- 答疑与错题
- AI 对话
- 代码运行
- 学习路线
- 知识脑图
- 个人中心
后端对外提供三类核心接口:
- 管理后台接口:
/api/auth/**、/api/system/**、/api/education/**、/api/ai/** - 学生聚合接口:
/api/student/** - 公共接口:
/api/public/**
- 账号登录
- 注册
- 忘记密码
- 基于角色的菜单和接口权限控制
- 支持教师上传标准答案卷和学生答卷
- 后台异步批阅
- 支持图片 OCR 补偿
- 支持横向填空题结构化识别
- 支持人工改分、编辑扣分项、确认最终分
- 知识脑图:生成课程主题脑图
- 生成练习:根据课程和章节生成练习
- 教学素材:生成课堂讲解材料
- 项目生成:生成教学项目骨架与 README
- 文本对话
- 拍照/上传答疑
- 答疑结果加入错题本
- AI 学习路线生成
- 学生侧知识脑图生成
- 代码运行与 AI 分析
在项目根目录执行:
docker compose up -d默认容器与端口:
- MySQL:
localhost:3306 - Redis:
localhost:6379 - MinIO API:
http://localhost:9000 - MinIO Console:
http://localhost:9001
当前 docker-compose.yml 默认账号:
- MySQL root:
1234 - MySQL 业务库用户:
aiedu / aiedu123 - MinIO:
admin / Admin@123456
.\mvnw.cmd spring-boot:run "-Dspring-boot.run.profiles=local"后端默认地址:
- 应用:
http://localhost:8080 - API 文档:
http://localhost:8080/doc.html - 运行指标:
http://localhost:8080/api/public/runtime-metrics
说明:
local环境当前默认接 MySQL,不再使用 H2 作为主运行方式application-local.yml会自动执行 MySQL 初始化脚本
cd ui
npm install
npm run dev访问地址:
http://localhost:3000
cd student-ui
npm install
npm run dev访问地址:
http://localhost:3001
- 管理员:
admin / 123456 - 教师:
teacher / 123456
- 学生:
student / 123456
- 注册页默认创建教师角色账号
- 忘记密码通过“用户名 + 注册邮箱”直接重置密码
application-local.yml 默认配置:
DB_URLDB_USERNAMEDB_PASSWORD
REDIS_HOSTREDIS_PORTREDIS_DATABASEREDIS_PASSWORD
MINIO_ENDPOINTMINIO_ACCESS_KEYMINIO_SECRET_KEYMINIO_BUCKET
DASHSCOPE_API_KEYAI_VISION_MODEL_CODE
建议在本地或服务器环境中通过环境变量覆盖,不要把生产密钥写入配置文件。
初始化脚本位于:
src/main/resources/db/schema-mysql.sqlsrc/main/resources/db/data-mysql.sql
部署补丁位于:
deploy/sql/init-ai-edu-platform.sqldeploy/sql/phase2_increment.sqldeploy/sql/sync-menu-permissions.sqldeploy/sql/fix-garbled-demo-data.sql
如果你是新环境,优先使用应用启动时的自动初始化;如果是已有环境升级,再按 deploy/sql/ 的补丁顺序执行。
- MySQL / Redis / MinIO 使用 Docker Compose
- 后端使用
spring-boot:run - 教师端和学生端使用 Vite dev server
- 后端打包:
.\mvnw.cmd clean package -DskipTests-
生成产物:
target/ai-edu-platform-0.0.1-SNAPSHOT.jar
-
前端建议分别构建后交给 Nginx 托管:
cd ui
npm run build
cd ../student-ui
npm run build建议部署形态:
- Nginx
/-> 教师端后台静态资源/student/-> 学生端静态资源/api/-> 反向代理后端8080
- Spring Boot 单独进程
- MySQL / Redis / MinIO 独立服务
- 用户管理
- 角色管理
- 菜单管理
- 部门管理
- 字典管理
- 参数配置
- 登录日志
- 操作日志
- 教育基础:学校、学院、专业、教师、学生、班级、课程
- 教学业务:章节、知识点、题库、作业、答题、错题
- 模型配置
- Prompt 模板
- AI 对话
- 文档批阅
- AI 生成记录
- 教师 AI 工具
- 学生 AI 能力
- OSS 文件
- 教学资源文件
以下目录或文件属于本地构建/测试产物,不应提交到版本库:
target/logs/temp/ui/dist/student-ui/dist/ui/node_modules/student-ui/node_modules/
相关规则已写入 .gitignore。
仓库中保留了以下设计文档,便于继续扩展:
AI教育平台系统开发文档_v1_0.mdai教育平台后端系统设计文档_v_0_1.md学生端Web设计文档_v1_0.md
如果继续迭代,建议优先保持:
- README 与实际运行方式一致
- 数据库补丁与代码版本一致
- 教师端、学生端、后端接口文档同步更新