一款基于SpringBoot实现的考试学习系统,支持题库管理+在线考试+阅卷+数据看板,开箱即用

2026-09-04 16:36:57

50

35

私有化方案

前阵子接到一个粉丝需求,对方是一家做职业资格培训的小机构负责人,希望我帮忙搭建一套自己的在线考试学习平台

前阵子接到一个粉丝需求,对方是一家做职业资格培训的小机构负责人,希望我帮忙搭建一套自己的在线考试学习平台,能让学生在手机、电脑上刷题、模考,老师在线出题、阅卷,管理员在线查看数据看板。

这种需求去外面找团队报价,基本都要四五万起步,来回沟通需求,排期至少2-3个月,因为关注了我很久,觉得比较靠谱,所以比较信任我。他的预算比较有限,希望我帮忙开发。

因为之前也接触过类似系统开发,大多数功能都是相似的,在之前的基础上,我针对他的业务进行了一些定制化处理,最终30天给他交付一套完整的系统,含学生端+教师端+管理员端三端界面,跑通了从题库录入到自动阅卷再到ECharts成绩统计的完整闭环,客户验收一次性通过。
 

今天,也将它安利给大家,有需要的可以联系沟通!


简介

Learning是一款功能齐全、可开箱即用的考试学习系统,可帮助培训机构、培训学校等用户解决在线教育场景下出题难、阅卷难、成绩统计难等问题,也可用作个人毕设。系统集题库管理、试卷管理、在线考试、自动阅卷、签到学习、学习资源、数据可视化等完整功能于一体,支持学生端、教师端、管理员端三端使用,可实现在线考试的每个环节全流程跟踪。

系统采用前后端分离架构设计,基于主流技术栈SpringBoot + Spring Security + MyBatis-Plus + JWT + Vue + ECharts构建,界面简洁清晰,功能完整实用,操作简单清晰,支持二次拓展和私有化部署。十分适合培训机构、学校、企业内训等用户搭建个性化在线考试学习平台使用。

 

项目概况

项目类型:在线考试学习系统(学生端 + 教师端 + 管理员端)

开发周期:30 天

开发人数:1 人

维护费用:2500 元 / 年(含服务器维护、版本迭代、功能小幅新增、全年 bug 免费修复)

服务器:1 台云服务器(2 核 4G,CentOS7 系统,支持后期弹性扩容升级配置)

部署模式:Nginx 反向代理 + SpringBoot 后端 + Vue 前端 + MySQL 持久化 + JWT 鉴权

数据库:MySQL 8(兼容 5.7,需开启 innodb_large_prefix)

运行环境:JDK 11 + Maven 3.0+ + Node 12+

特色算法:遗传算法自动组卷(GA)

功能列表

  • 题库管理:

    • 后台提供题目录入界面,支持单选、多选、判断等多种题型,每道题可配置选项、答案、难度、知识点,用户无需再翻纸质题库,所有题目数字化沉淀,人员变动也不会影响题库资产,可有效提高机构竞争力。
  • 试卷管理:

    • 支持手动组卷(从题库选题)和遗传算法(GA)自动组卷(按题型/难度/知识点规则自动抽题)两种模式,老师无需手动选题,几分钟即可自动生成难度均衡的试卷,可节约大量排版时间,提高工作效率。
  • 在线考试管理:

    • 学生端提供在线答题界面,支持考试倒计时、答题卡跳转、交卷确认,提交后客观题自动判分,使用手机、电脑都随时随地参加模考,简单快捷。
  • 在线阅卷:

    • 教师端提供阅卷页面,对主观题在线打分、写评语,支持按学生/按题目两种阅卷视角,效率翻倍。
  • 资源管理:

    • 系统支持维护课程列表和学习资源(视频/文档/链接),资源分类管理。培训机构可把学习和考试串起来,学生学完课程直接做题,形成学习闭环。
  • 学习时长统计:

    • 支持签到功能,后端可自动累计每个学生的学习时长,按学生/按资源维度统计,机构可量化学生学习行为,为续费谈判提供有效数据支撑。
  • 角色管理:

    • 内置学生端(在线考试/我的成绩/我的题库/训练)、教师端(添加考试/考试管理/阅卷/题库管理)、管理员端(公告管理/用户管理)三套界面,不同角色看到的功能完全隔离,确保权限清晰不越权。
  • 数据可视化:

    • 内置ECharts数据看板,直观展示成绩分布、考试统计、资源统计、学生成绩等多维图表,管理员一眼就能看到全平台的学习和考试情况。
  • 权限管理:

    • 系统基于Spring Security + JWT实现无状态鉴权,搭配角色/菜单/权限三层RBAC模型,全方位保障系统安全,后期拓展新角色新功能也不用重写权限。
  • 公告管理:

    • 支持自定义发布机构公告和新闻资讯,前台学生端实时展示,无需再群发微信通知,平台内即可一键触达所有学生。
  • 数据管理:

    • 集成EasyPOI,支持题库批量Excel导入、成绩批量Excel导出,方便用户旧题库迁移,数据归档等场景使用。
  • 代码生成器:

    • 系统集成Swagger自动生成API文档,内置代码生成器(Controller/Service/Mapper/Vue模板),支持一件生成前后端代码,提升开发效率。

功能截图

登录:

 

试卷管理:

 

手动组卷:

 

测试管理:

 

公告管理:

 

在线考试:

 

评阅考试:

 

数据统计:

 

用户管理:

 

作业成绩:

 

公告管理:

 

系统架构

项目结构:

learning-system/
├── houduan/                    # 后端 SpringBoot 项目
│   └── src/main/java/com/online/study/
│       ├── common/             # 公共模块
│       │   ├── arithmetic/     # 遗传算法组卷(GA/Population/GetPaper)
│       │   ├── state/          # 考试/签到/学生试卷状态枚举
│       │   └── type/           # 题型枚举
│       ├── config/             # 配置模块
│       │   ├── interceptor/    # JWT 拦截器
│       │   ├── CorsConfig      # 跨域配置
│       │   ├── MybatisPlusConfig # MyBatis-Plus 配置
│       │   └── SwaggerConfig   # Swagger API 文档
│       ├── controller/         # 控制层(含 DTO)
│       │   ├── ExamController          # 考试
│       │   ├── ExamPaperController     # 试卷
│       │   ├── QuestionController      # 题目
│       │   ├── CourseController        # 课程
│       │   ├── StudyResourceController # 学习资源
│       │   ├── SignController          # 签到
│       │   ├── EchartsController       # 图表数据
│       │   ├── UserController          # 用户
│       │   ├── MenuController          # 菜单
│       │   ├── NoticeController        # 公告
│       │   └── ...
│       ├── entity/             # 实体层(含 DTO/VO)
│       ├── mapper/             # MyBatis-Plus Mapper
│       ├── service/            # 业务层(含 impl)
│       └── utils/              # 工具类(TokenUtils/EasyPOI/CodeGenerator)
│
└── qianduan/                   # 前端 Vue 项目
    └── src/
        ├── api/                # 接口封装(exam/question/grade/...)
        ├── assets/             # 静态资源(CSS/Font Awesome/图片)
        ├── components/         # 公共组件(Aside/Header/Identify)
        └── views/              # 页面
            ├── auth/           # 登录/注册
            ├── student/        # 学生端(在线考试/考试结果/我的成绩/我的题库/训练)
            ├── teacher/        # 教师端(添加考试/考试管理/阅卷/题库管理/题目管理)
            └── admin/          # 管理员端(公告管理/用户管理)

技术栈:

前端 (Frontend):
  核心框架:Vue.js
  数据可视化:ECharts
  UI 资源:Font Awesome
  构建工具:Vue CLI / Node >= 12

后端 (Backend):
  核心框架:SpringBoot
  安全框架:Spring Security + JWT
  ORM 框架:MyBatis-Plus
  数据库:MySQL 8(兼容 5.7)
  API 文档:Swagger
  Excel 工具:EasyPOI
  组卷算法:遗传算法(GA)
  代码生成:内置 CodeGenerator

运行环境:
  JDK 11
  Maven >= 3.0
  Node >= 12

快速开始

1、下载仓库:

cd learning-system

2、准备运行环境: JDK 11、MySQL 8(或 5.7)、Maven 3.0+、Node 12+。

3、数据库初始化: 如遇767 bytes报错,先执行以下SQL。

set global innodb_large_prefix = ON;
SET GLOBAL innodb_file_format=Barracuda;
SET GLOBAL innodb_file_per_table=ON;

4、修改后端配置: 配置数据库连接等,配置文件位置houduan/src/main/resources/application.yml。

5、后端打包并启动:

cd houduan
mvn clean package -DskipTests
java -jar target/online_study.jar

6、前端依赖安装与启动:

cd ../qianduan
npm install -y
npm run serve

如报错可使用以下命令:

npm install -g mirror-config-china
npm i
npm install --legacy-peer-deps

7、安装ECharts:

npm install cnpm -g
cnpm install echarts --save

面向 企业it管理者的知识。

这是一段示例评论内容,用于展示用户评论区域的格式。

  • 示例评论:关于设计趋势的讨论。
  • 示例评论:关于开发工具的分享。
  • 示例评论:关于用户体验的见解。
  • 示例评论:关于技术选型的思考。

搭私有云,建本地 AI

大秦智云,西安本土托管IT服务商,从云到AI一站式搞定。

预约免费评估

上一篇