考试系统开源版设计(java + vue 的前后端分离)

一、考试系统开源版项目介绍

云帆考试系统采用全新的技术栈来开发,后端采用Java17+SpringBoot3.0,前端使用Vue3.0+TypeScript+ElementPlus。项目实现了前后端的完整考试流程,基础功能组件完整可用。

二、技术栈

|----|---------------------------------------------------------|
| 后端 | Java17 + SpringBoot3.0 + Shiro + MyBatisPlus + Swagger3 |
| 前端 | Vue3.0 + TypeScript + ElementPlus + Vite |

三、运行环境

|-------|---------------------|
| JDK版本 | JDK17 |
| 数据库 | MySQL5.7 或 MySQL8.0 |
| Redis | 4.x及以上 |
| Nginx | 可选,用于做前后端分离部署,无版本要求 |

四、在线体验

|--------|---------|---------|
| 在线体验地址 | https://be2.yfhl.net ||
| 平台 | 账号 | 密码 |
| 管理端 | admin | admin |
| 用户端 | student | student |

五、数据库设计

表名:el_cfg_base

说明:系统设置引擎:InnoDB

参数 类型 描述 非空
id varchar(32) ID 否
site_name varchar(255) 系统名称 是
login_logo varchar(255) 登录LOGO 是
login_bg varchar(255) 登录背景 是
back_logo varchar(255) 后台LOGO 是
copy_right varchar(255) 版权信息 是


表名:el_cfg_switch

说明:功能配置引擎:InnoDB

参数 类型 描述 非空
id varchar(32) 功能名称 否
val varchar(32) 开关或值 是


表名:el_exam

说明:课程引擎:InnoDB

参数 类型 描述 非空
id varchar(64) ID 否
title varchar(500) 考试名称 否
content varchar(2000) 考试描述 是
open_type int 1公开2部门3定员 否
state int 考试状态 否
start_time datetime 开始时间 否
end_time datetime 结束时间 否
total_score decimal(10,2) 总分数 否
total_time int 总时长(分钟) 否
qualify_score decimal(10,2) 及格分数 否
chance int 考试机会 否
hand_min int 最低交卷分钟 否
late_max int 允许迟到分钟 否
thanks varchar(2000) 感谢文字 是
repo_id varchar(64) 组卷题库ID 是
create_time datetime 创建时间 否
update_time datetime 更新时间 否
create_by varchar(255) 创建人 是
update_by varchar(255) 修改人 是


表名:el_exam_record

说明:考试记录引擎:InnoDB

参数 类型 描述 非空
id varchar(64) ID 否
user_id varchar(64) 用户ID 否
exam_id varchar(64) 考试ID 否
paper_id varchar(255) 结算的试卷ID 是
try_count int 考试次数 否
max_score decimal(10,2) 最高分数 否
last_score decimal(10,2) 最近分数 否
passed tinyint 是否通过 否


表名:el_exam_rule

说明:考试规则引擎:InnoDB

参数 类型 描述 非空
id varchar(64) ID 否
exam_id varchar(64) 考试ID 否
repo_id varchar(64) 题库ID 是
qu_type varchar(64) 题型 否
qu_count int 出题数量 是
qu_score decimal(10,0) 每题分数 否


表名:el_paper

说明:试卷引擎:InnoDB

参数 类型 描述 非空
id varchar(64) ID 否
user_id varchar(64) 用户ID 否
exam_id varchar(64) 考试ID 否
title varchar(500) 考试标题 否
total_time int 考试时长 否
user_time int 用户时长 否
total_score decimal(10,2) 试卷总分 否
qualify_score decimal(10,2) 试卷及格分 否
user_score decimal(10,2) 用户总得分 否
limit_time datetime 最后截止时间 否
hand_time datetime 实际交卷时间 是
hand_state int 交卷状态,0未交卷,1已交卷,2强制交卷 否
passed tinyint 成绩是否合格 否
create_time datetime 创建时间 否
update_time datetime 更新时间 否
create_by varchar(255) 创建人 是
update_by varchar(255) 修改人 是


表名:el_paper_qu

说明:试卷考题引擎:InnoDB

参数 类型 描述 非空
id varchar(64) ID 否
paper_id varchar(64) 试卷ID 否
qu_id varchar(64) 题目ID 否
qu_type varchar(32) 题目类型 否
answered tinyint 是否已答 否
mark tinyint 是否标记 否
sort int 问题排序 否
score decimal(10,2) 单题分分值 否
actual_score decimal(10,2) 实际得分(主观题) 否
is_right tinyint 是否答对 否


表名:el_paper_qu_answer

说明:试卷考题备选答案引擎:InnoDB

参数 类型 描述 非空
id varchar(64) ID 否
paper_id varchar(64) 试卷ID 否
answer_id varchar(32) 回答项ID 否
qu_id varchar(32) 题目ID 否
is_right tinyint 是否正确项 否
answer varchar(2000) 填空题 是
checked tinyint 是否选中 否
sort int 排序 否
abc varchar(64) 选项标签 是


表名:el_repo

说明:题库引擎:InnoDB

参数 类型 描述 非空
id varchar(64) ID 否
title varchar(255) 题库名称 否
cat_id varchar(32) 分类ID 是
remark varchar(255) 题库备注 是
create_time datetime 创建时间 否
update_time datetime 更新时间 否
create_by varchar(255) 创建人 是
update_by varchar(255) 修改人 是


表名:el_repo_qu

说明:问题题目引擎:InnoDB

参数 类型 描述 非空
id varchar(64) ID 否
repo_id varchar(64) 所属题库 否
chapter_id varchar(64) 所属章节 是
qu_type varchar(32) 题目类型 否
difficulty_level varchar(32) 难度等级 否
content text 题目内容 否
analysis text 整题解析 是
create_time datetime 创建时间 否
update_time datetime 更新时间 否
create_by varchar(255) 创建人 是
update_by varchar(255) 修改人 是


表名:el_repo_qu_answer

说明:候选答案引擎:InnoDB

参数 类型 描述 非空
id varchar(64) ID 否
qu_id varchar(64) 问题ID 否
is_right tinyint 是否正确 否
content varchar(5000) 答案内容 否
image varchar(500) 图片地址 是
tag varchar(255) ABCD标签 是


表名:el_sys_depart

说明:部门信息引擎:InnoDB

参数 类型 描述 非空
id varchar(32) ID 否
dept_type int 1公司2部门 否
parent_id varchar(32) 所属上级 否
dept_name varchar(255) 部门名称 否
dept_code varchar(255) 部门编码 否
dept_level int 部门层级 否
sort int 排序 否
create_time datetime 创建时间 否
update_time datetime 更新时间 否
create_by varchar(255) 创建人 否
update_by varchar(255) 修改人 否


表名:el_sys_dic

说明:分类字典引擎:InnoDB

参数 类型 描述 非空
id varchar(32) ID 否
dic_code varchar(255) 字典编码 是
type int 1分类字典,2数据字典 是
title varchar(255) 字典名称 是
remark varchar(255) 字典描述 是
create_time datetime 创建时间 否
update_time datetime 更新时间 否
create_by varchar(255) 创建人 否
update_by varchar(255) 修改人 否


表名:el_sys_dic_value

说明:分类字典值引擎:InnoDB

参数 类型 描述 非空
id varchar(32) ID/字典编码 否
dic_code varchar(255) 归属字典 是
dic_value varchar(255) 子项编码 是
title varchar(255) 分类名称 是
parent_id varchar(32) 上级ID 是
remark varchar(255) 描述 是
create_time datetime 创建时间 否
update_time datetime 更新时间 否
create_by varchar(255) 创建人 否
update_by varchar(255) 修改人 否


表名:el_sys_menu

说明:系统菜单引擎:InnoDB

参数 类型 描述 非空
id varchar(32) ID 否
parent_id varchar(32) 上级菜单 是
menu_type int 1菜单2功能 否
permission_tag varchar(255) 权限标识 是
path varchar(255) 访问路径 是
component varchar(255) 视图或Layout 是
redirect varchar(255) 跳转地址 是
name varchar(255) 名称 是
meta_title varchar(255) 路由标题 是
meta_icon varchar(255) 路由标题 是
meta_active_menu varchar(255) 高亮菜单 是
meta_no_cache tinyint 是否缓存 是
hidden tinyint 是否隐藏 是
sort int 越小越前 是
create_time datetime 创建时间 否
update_time datetime 更新时间 否
create_by varchar(255) 创建人 否
update_by varchar(255) 修改人 否


表名:el_sys_role

说明:角色引擎:InnoDB

参数 类型 描述 非空
id varchar(32) 角色ID 否
role_name varchar(255) 角色名称 否
data_scope int 数据权限 否
role_level int 越大越高 否
remark varchar(255) 备注信息 是
create_time datetime 创建时间 否
create_by varchar(255) 创建人 否
update_time datetime 更新时间 否
update_by varchar(255) 修改人 否


表名:el_sys_role_menu

说明:角色菜单授权引擎:InnoDB

参数 类型 描述 非空
id varchar(32) ID 否
role_id varchar(32) 角色ID 否
menu_id varchar(32) 菜单ID 否
create_time datetime 创建时间 否
update_time datetime 更新时间 否
create_by varchar(255) 创建人 否
update_by varchar(255) 修改人 否
data_flag int 数据标识 否


表名:el_sys_user

说明:管理用户引擎:InnoDB

参数 类型 描述 非空
id varchar(32) ID 否
user_name varchar(255) 用户名 否
real_name varchar(255) 真实姓名 否
avatar varchar(255) 头像 否
password varchar(255) 密码 否
salt varchar(255) 密码盐 否
state int 状态 否
id_card varchar(255) 身份证号码 是
mobile varchar(255) 手机号 是
email varchar(255) 邮箱 是
dept_code varchar(32) 部门编码 是
create_time datetime 创建时间 否
create_by varchar(255) 创建人 否
update_time datetime 更新时间 否
update_by varchar(255) 修改人 否


表名:el_sys_user_role

说明:用户角色引擎:InnoDB

参数 类型 描述 非空
id varchar(32) ID 否
user_id varchar(32) 用户ID 否
role_id varchar(32) 角色ID 否


表名:pl_plugin_data

说明:插件信息引擎:InnoDB

参数 类型 描述 非空
id varchar(255) ID 否
code varchar(255) 唯一识别码 否
title varchar(255) 插件名称 否
schema_id varchar(255) 元数据ID 否
group_id varchar(255) 分组ID 否
config_data varchar(5000) 配置数据 是
service_clazz varchar(2000) 后端服务类 是
component varchar(255) 前端页面 否
in_use tinyint 是否使用 否
state varchar(255) 插件状态 否


表名:pl_plugin_group

说明:插件分组引擎:InnoDB

参数 类型 描述 非空
id varchar(255) ID 否
title varchar(255) 分组名称 是
single tinyint 独立排斥 是


表名:pl_plugin_schema

说明:插件元数据引擎:InnoDB

参数 类型 描述 非空
id varchar(255) ID 否
schema_data varchar(5000) 元数据 是
group_id varchar(255) 分组 是


表名:qrtz_blob_triggers


参数 类型 描述 非空
SCHED_NAME varchar(120) 无 否
TRIGGER_NAME varchar(200) 无 否
TRIGGER_GROUP varchar(200) 无 否
BLOB_DATA blob, 无 是
-- Records 无 是


表名:qrtz_calendars


参数 类型 描述 非空
SCHED_NAME varchar(120) 无 否
CALENDAR_NAME varchar(200) 无 否
CALENDAR blob 无 否


表名:qrtz_cron_triggers


参数 类型 描述 非空
SCHED_NAME varchar(120) 无 否
TRIGGER_NAME varchar(200) 无 否
TRIGGER_GROUP varchar(200) 无 否
CRON_EXPRESSION varchar(120) 无 否
TIME_ZONE_ID varchar(80) 无 是


表名:qrtz_fired_triggers


参数 类型 描述 非空
SCHED_NAME varchar(120) 无 否
ENTRY_ID varchar(95) 无 否
TRIGGER_NAME varchar(200) 无 否
TRIGGER_GROUP varchar(200) 无 否
INSTANCE_NAME varchar(200) 无 否
FIRED_TIME bigint 无 否
SCHED_TIME bigint 无 否
PRIORITY int 无 否
STATE varchar(16) 无 否
JOB_NAME varchar(200) 无 是
JOB_GROUP varchar(200) 无 是
IS_NONCONCURRENT varchar(1) 无 是
REQUESTS_RECOVERY varchar(1) 无 是


表名:qrtz_job_details


参数 类型 描述 非空
SCHED_NAME varchar(120) 无 否
JOB_NAME varchar(200) 无 否
JOB_GROUP varchar(200) 无 否
DESCRIPTION varchar(250) 无 是
JOB_CLASS_NAME varchar(250) 无 否
IS_DURABLE varchar(1) 无 否
IS_NONCONCURRENT varchar(1) 无 否
IS_UPDATE_DATA varchar(1) 无 否
REQUESTS_RECOVERY varchar(1) 无 否
JOB_DATA blob, 无 是


表名:qrtz_locks


参数 类型 描述 非空
SCHED_NAME varchar(120) 无 否
LOCK_NAME varchar(40) 无 否


表名:qrtz_paused_trigger_grps


参数 类型 描述 非空
SCHED_NAME varchar(120) 无 否
TRIGGER_GROUP varchar(200) 无 否


表名:qrtz_scheduler_state


参数 类型 描述 非空
SCHED_NAME varchar(120) 无 否
INSTANCE_NAME varchar(200) 无 否
LAST_CHECKIN_TIME bigint 无 否
CHECKIN_INTERVAL bigint 无 否


表名:qrtz_simple_triggers


参数 类型 描述 非空
SCHED_NAME varchar(120) 无 否
TRIGGER_NAME varchar(200) 无 否
TRIGGER_GROUP varchar(200) 无 否
REPEAT_COUNT bigint 无 否
REPEAT_INTERVAL bigint 无 否
TIMES_TRIGGERED bigint 无 否


表名:qrtz_simprop_triggers


参数 类型 描述 非空
SCHED_NAME varchar(120) 无 否
TRIGGER_NAME varchar(200) 无 否
TRIGGER_GROUP varchar(200) 无 否
STR_PROP_1 varchar(512) 无 是
STR_PROP_2 varchar(512) 无 是
STR_PROP_3 varchar(512) 无 是
INT_PROP_1 int 无 是
INT_PROP_2 int 无 是
LONG_PROP_1 bigint 无 是
LONG_PROP_2 bigint 无 是
DEC_PROP_1 decimal(13,4) 无 是
DEC_PROP_2 decimal(13,4) 无 是
BOOL_PROP_1 varchar(1) 无 是
BOOL_PROP_2 varchar(1) 无 是


表名:qrtz_triggers


参数 类型 描述 非空
SCHED_NAME varchar(120) 无 否
TRIGGER_NAME varchar(200) 无 否
TRIGGER_GROUP varchar(200) 无 否
JOB_NAME varchar(200) 无 否
JOB_GROUP varchar(200) 无 否
DESCRIPTION varchar(250) 无 是
NEXT_FIRE_TIME bigint 无 是
PREV_FIRE_TIME bigint 无 是
PRIORITY int 无 是
TRIGGER_STATE varchar(16) 无 否
TRIGGER_TYPE varchar(8) 无 否
START_TIME bigint 无 否
END_TIME bigint 无 是
CALENDAR_NAME varchar(200) 无 是
MISFIRE_INSTR smallint 无 是
JOB_DATA blob, 无 是

六、系统功能介绍

登录&注册

登录:使用账号+密码登录到系统,由系统判定角色,用户角色查看用户端功能,管理端角色管理考试系统

注册:(1)用户主动注册,填写用户名、姓名、密码,(2)管理端创建用户,包含用户名、姓名、密码、部门、角色、头像、身份证号、手机号码。

用户端

在线考试:(1)在线考试,交卷后系统自动出分,(2)支持单选题、多选题、判断题,(3)查看考试成绩,列出用户所有参与的考试记录,列出考试名称、考试次数、最高分数、最近分数、是否通过,取分逻辑为取成绩的最高分,(4)考试错题归类,考试错题自动归到错题集中,支持错题训练。

管理端

考试管理:(1)考试基本配置:考试名称、考试时间、总分、及格分、考试时长、考试机会、允许迟到时长、最低交卷时长、考试说明,(2)考试结果,显示分数,(3)考试权限:完全公开,(4)组卷方式:随机组卷,设置抽题的规则,保存的是规则不是真正的试题,而是系统抽题的规则。

题库管理:(1)题库名称,(2)自定义题库分类。(3)试题类型:单选题、多选题、判断题,(4)试题属性:自定义试题难度等级、试题题干、试题选项(干扰选项、答案选项、答案标识)、试题解析,(5)搜索试题。

组织架构:(1)管理部门组织结构,(2)管理系统用户:创建新用户、修改用户信息、启用用户、禁用用户。

系统配置:(1)管理系统菜单,(2)系统角色管理:分为学员和超级管理员,可以创建子管理员,(3)数据字典:试题难度、题库分类、用户状态等定义,(4)系统个性设置:系统名称、登录页背景图、后台图标、底部信息、用户注册开启与关闭。

如果开源版无法满足您的需求,商业版支持更加丰富的考试内容,周边课程学习、企业培训计划、发放证书、问卷答题等。
考试系统开源版 考试系统开源版设计 考试系统开源版在线体验

七、开源版下载

开源版考试系统下载 https://gitee.com/youth-is-as-pale-as-poetry/exam-system-v2.0https://gitee.com/youth-is-as-pale-as-poetry/exam-system-v2.0

相关推荐
weixin_4604435618 天前
2026年新修订《网络安全法》实施:Java私有化考试系统如何做好SBOM、漏洞治理与安全升级?
java·开发语言·在线考试系统·企业培训考试系统·宏远培训考试系统·国企培训考试系统·国产化培训系统
weixin_460443562 个月前
考试监控大屏为什么不能直接查数据库?WebSocket、Redis与实时数据聚合架构设计
数据库·redis·在线考试系统·培训考试系统·煤矿培训考试系统·煤矿在线考试系统·宏远培训考试系统
融智云考2 个月前
新学期高校补考数字化转型实践:线上组考模式的落地路径与应用观察
在线考试·在线阅卷·在线阅卷系统·高校补考·考试信息化
weixin_460443562 个月前
国企公共题库和部门私有题库如何同时管理?从数据权限到组卷调用的设计逻辑
在线考试系统·企业培训系统·企业考试软件·推荐考试系统·证书到期提醒
weixin_460443563 个月前
在线考试倒计时到底应该以前端还是服务器为准?浏览器时间漂移、断网与服务端校时设计
在线考试系统·考试系统·培训考试系统·企业考试软件·推荐考试系统
这里是杨杨吖4 个月前
SpringBoot+Vue高校在线考试系统 附带详细运行指导视频
vue·在线考试·springboot
shong_12295 个月前
2026年企业在线培训考试系统选型指南:从行业观察到实战落地
考试系统
shong_12295 个月前
企业培训考试系统补考管理功能设计与实现
考试系统·补考
在线培训考试研究所6 个月前
2026在线培训考试平台排名综合测评:五款热门产品解析
考试系统·培训系统
管鲍考试学习系统7 个月前
在线考试系统是什么?功能、部署、应用场景全详解(管鲍考试学习系统 V8.0 深度版)
学习·架构·在线考试·考试系统·培训考试·考试练习