高校教务课设/毕设,常常卡在「会 CRUD,但讲不出完整故事」:三角色权限怎么分、选课高峰怎么防超卖、答辩时怎么一键演示。这篇整理的是一套前后端分离的教务中枢:学生选课退课、课表成绩考试、通知与评教;教师录成绩、排考试;管理员管用户角色权限与审计日志。附 Redis 库存抢课与超卖保护,以及可选的本地 AI 教务助手;Docker Compose 可一键拉起主服务、AI 服务、Gateway、Nacos、MySQL、Redis、Seata 等。
本机已按 Compose 路径实跑:前端可开、主服务可访问、管理员/学生/教师三角色均可登录。资源含界面截图与完整源码包(积分约 80,以站内资源页为准)。适合「教务系统/高并发选课/AI 助教」答辩演示;不是可直接上公网的生产教务。
能做什么
- 学生端:登录后看首页/课表,进入选课页选课或退课,查成绩、考试、通知与评教
- 教师端:维护成绩、安排/查看考试相关业务(以界面菜单为准)
- 管理端:用户与角色权限、系统健康与审计日志等后台能力
- 抢课侧:课程容量与 Redis 库存配合,演示选课高峰下的防超卖思路
- AI 助手(可选):默认关闭真实大模型;不开 Ollama 时也有本地兜底回复,便于答辩时「点开助手」不至于空白
相对「只有一张选课表」的课设,本文更强调三角色闭环 + Docker 全家桶 + 审计/云组件证明点,报告可按「权限与审计 → 选课库存 → 可选 AI」三条线讲。
技术栈一览
| 层级 | 技术 |
|---|---|
| 后端 | Java 17、Spring Boot、Spring Security、Flyway、OpenFeign |
| 前端 | Vue 3、TypeScript、Vite、Element Plus |
| 数据 | MySQL 8、Redis |
| 编排/云组件 | Docker Compose、Nacos、Spring Cloud Gateway、Seata(Compose 默认可起,便于截图证明) |
| AI(可选) | 独立 ai-service;OLLAMA_ENABLED 默认 false,可接 Ollama/RAG |
历史包名/服务名里可能仍能看到兼容保留的旧命名,属同一套项目,勿当成另一个仓库。
环境与资源提醒
- 本机需 Docker 与 Docker Compose
- Compose 服务偏多(MySQL/Redis/Nacos/Seata/主服务/AI/Gateway/前端),建议可用内存 ≥ 6~8 GiB;内存吃紧时先停掉本机其他重型容器再起
- 默认端口(见
.env.example):前端 5174、主服务 8088、Gateway 9000、AI 18090、Nacos 18848、MySQL 宿主映射 13306、Redis 16379、Seata 8091/控制台 7091 - 端口冲突很常见:若本机已有其它项目占用上述端口,复制
.env后改*_HOST_PORT即可,不必改容器内端口 - 国内构建可把
MAVEN_MIRROR_URL换成阿里云等 Maven 镜像,缩短首次镜像构建时间 - AI 不是必须项:保持
OLLAMA_ENABLED=false也能演示助手兜底;真要接模型需本机另装 Ollama,再按文档 recreate 相关服务
Docker Compose 部署步骤
以下按仓库通用流程书写(本机验收时因端口/网络环境做过适配,你按自己机器改 .env 即可)。
- 解压源码包,进入项目根目录(含
docker-compose.yml、.env.example、scripts/)。 - 复制环境文件:
cp .env.example .env # Windows 可用:copy .env.example .env - 按需编辑
.env:至少确认各*_HOST_PORT不与本机冲突;可按需设置MAVEN_MIRROR_URL;保持OLLAMA_ENABLED=false即可完成最小演示。 - (推荐)跑端口检查脚本:
./scripts/check-ports.sh # Windows 对应 scripts/check-ports.ps1 - 构建业务镜像后启动:
./scripts/docker-build.sh docker compose --env-file .env up -d - 等待 MySQL 健康、Flyway 迁移与演示数据初始化完成,再看:
docker compose --env-file .env ps
期望主服务、前端、MySQL、Redis 等为 Up/healthy(一次性 init 容器退出码为 0 属正常)。
- 浏览器打开前端:http://localhost:5174(主服务宿主机端口默认 8088)。用下方演示账号走三角色验收:能登录 → 学生能打开选课 → 管理端能开健康/审计 →(可选)点开 AI 助手看兜底回复。
常用排障:
- 构建失败或依赖慢:检查 Maven 镜像与 Docker 网络;仓库
docs/docker-troubleshooting.md有常见坑 - 端口占用:改
.env后docker compose --env-file .env up -d重建映射 - 服务起不来:
docker compose --env-file .env logs -f academic-main(容器名以docker compose ps为准)
演示账号说明
仓库演示脚本提供三角色示例账号(密码见包内 docs/demo-script.md,正文与截图请勿写明文口令),角色大致为:
- 管理员:
admin001 - 学生:
student001 - 教师:
teacher001
演示口令偏弱,仅限本机课设演示。截图请打码学号/姓名类信息;上公网或给同学共用前务必改密,幹收紧 MySQL/Redis/Nacos 等访问面。
界面截图
以下为本机实跑界面(敏感信息已打码)。
1. Compose 多容器 Running

2. 登录页

3. 学生端首页/课表

4. 学生选课页(容量/已选)

5. 教师端(成绩或考试)

6. 管理端仪表盘

7. 管理端审计/权限相关页

8. AI 教务助手(兜底模式亦可)

风险与适用边界
- 默认弱口令:演示账号统一弱密码,截图打码;切勿原样用于公网或真实教务
- 资源与耗时:首次构建与多服务常驻占用明显;内存不够时优先保证 MySQL/主服务/前端,再考虑 Nacos/Seata 等加分截图
- 端口冲突:以
.env为准灵活改宿主端口;不要假设 13306/16379/5174 一定空闲 - AI「在线」≠ 已接真模型:默认关 Ollama;答辩若强调 RAG/自然语言查库,需另备模型环境并按文档启用
- 定位是课设/毕设演示:权限、审计、抢课与 Docker 故事线完整,但不等同于合规上线的高校教务产品;二次分发请遵守包内 MIT 许可并保留 LICENSE
小结
若你需要一份「Vue 3 前后端分离 + Docker 一键 + 三角色教务闭环」的课设素材:选课库存、权限审计、可选 AI 助手都能在本机串成可截图链路。按「复制 .env → 检查端口 → 构建 → Compose 启动 → 三角色登录」验收即可。要上公网或对接真实学工数据,请自行做安全加固与合规评估;本文项目定位就是练手与答辩演示。
源码压缩包可在本文件,需 80 积分。














暂无评论内容