1. 项目背景与需求分析
高校成绩管理一直是教务工作的核心环节,传统纸质或单机版管理系统存在数据孤岛、统计效率低下、协同困难等问题。随着教育信息化2.0推进,基于SpringBoot的数字化成绩管理系统成为解决以下痛点的关键技术方案:
- 多角色协同困境:教师手工录入成绩易出错,学生查询渠道单一,管理员无法实时监控教学数据
- 数据统计滞后:学分换算、绩点计算等需人工处理,无法动态反映学业情况
- 系统扩展性差:传统ASP/PHP系统难以应对高校扩招带来的并发压力
本系统采用SpringBoot+Vue前后端分离架构,实现:
- 教师端:课程成绩批量导入、正态分布分析、成绩修正申请
- 学生端:个人成绩多维分析、学分进度可视化、补考预警
- 管理员端:院系成绩对比、教师考评关联、数据归档导出
关键指标:支持5000+学生同时在线查询,成绩计算响应时间<200ms,数据导出速度≥1000条/秒
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构设计
2.1 整体技术栈选型
| 层级 | 技术方案 | 选型理由 |
|---|---|---|
| 前端 | Vue3 + Element Plus | 组件化开发效率高,表格性能优化好于React |
| 后端 | SpringBoot 2.7 + MyBatis | 自动配置简化部署,ORM层平衡开发效率与SQL可控性 |
| 数据库 | MySQL 8.0 | 支持JSON字段存储动态扩展属性,窗口函数简化成绩排名计算 |
| 中间件 | Redis 6 | 缓存热点数据(如班级平均分),减轻数据库压力 |
| 部署 | Docker Compose | 实现开发-测试-生产环境一致性,避免"在我机器上能跑"问题 |
2.2 核心模块划分
java复制com.university.grades
├── config // 权限控制及Swagger配置
├── controller // 三层架构中的控制层
│ ├── admin // 管理员专属接口
│ ├── teacher // 教师功能接口
│ └── student // 学生查询接口
├── service // 业务逻辑层
│ ├── impl // 接口实现
│ └── task // 定时任务(如成绩归档)
├── mapper // MyBatis映射文件
├── model // 实体类
│ ├── dto // 数据传输对象
│ └── vo // 视图对象
└── util // 工具包
├── excel // POI封装类
└── stats // 统计计算工具
2.3 数据库关键表设计
courses表(课程基础信息)
sql复制CREATE TABLE `courses` (
`id` bigint NOT NULL AUTO_INCREMENT,
`course_code` varchar(20) NOT NULL COMMENT '课程编号',
`name` varchar(100) NOT NULL,
`credit` decimal(3,1) NOT NULL COMMENT '学分',
`hours` smallint DEFAULT '0' COMMENT '课时',
`department_id` int NOT NULL COMMENT '开课院系',
`exam_type` tinyint DEFAULT '1' COMMENT '1-考试 2-考查',
`gpa_algorithm` json DEFAULT NULL COMMENT '自定义绩点计算规则',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_code` (`course_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
score_records表(成绩记录)
sql复制CREATE TABLE `score_records` (
`id` bigint NOT NULL AU
