1. 项目概述
这个基于SpringBoot的课程互助学习系统,是我在高校信息化建设过程中开发的一个实战项目。它主要解决了学生在课程学习过程中遇到的三大痛点:答疑不及时、资源共享困难、学习进度不同步。系统上线后,在我们学院的Java课程中试运行了一个学期,学生平均成绩提升了12%,课后问题解决效率提高了60%。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心需求解析
2.1 功能需求分解
系统需要实现的核心功能模块包括:
- 课程资料共享中心:支持PDF、PPT、代码等格式文件上传下载
- 智能问答社区:采用相似度匹配算法自动推荐历史解答
- 学习小组管理:支持创建不超过10人的学习小组
- 作业互评系统:实现匿名互评与评分统计
- 学习进度看板:可视化展示个人与班级学习轨迹
2.2 技术选型考量
选择SpringBoot作为基础框架主要基于:
- 快速开发特性:自动配置减少了XML配置工作量
- 丰富的starter依赖:轻松集成Redis、Elasticsearch等组件
- 内嵌Tomcat:简化部署流程,适合校园服务器环境
- 活跃的社区生态:遇到问题容易找到解决方案
3. 系统架构设计
3.1 整体架构图
code复制[前端] Vue.js
↑↓ HTTP/JSON
[网关] Spring Cloud Gateway
↑↓
[微服务]
├─ 用户服务 (Spring Security + JWT)
├─ 课程服务 (MyBatis-Plus)
├─ 文件服务 (MinIO)
├─ 问答服务 (Elasticsearch)
└─ 消息服务 (WebSocket)
↑↓
[数据层]
├─ MySQL 8.0 (主从架构)
└─ Redis 6 (缓存)
3.2 数据库设计要点
用户表设计中特别注意了:
- 采用雪花算法生成分布式ID
- 密码字段使用BCrypt加密存储
- 建立复合索引优化常用查询
- 使用逻辑删除而非物理删除
课程表关系设计:
sql复制CREATE TABLE `course` (
`id` bigint NOT NULL COMMENT '雪花ID',
`course_name` varchar(50
