springboot+Mybatis+vue前后端分离开发:作业管理系统

1、功能设计

本系统功能设计如下:
springboot+Mybatis+vue前后端分离开发:作业管理系统_第1张图片
按照需求分为教师端和学生端,教师端发布作业,查看自己发布的作业,查看学生名单,添加学生。
学生端查看作业、提交或修改作业。

2、数据库设计

student表:

字段名称 字段类型 字段描述
sid int 学生id,学生的唯一识别码
sName varchar(20) 学生姓名
sPassword varchar(20) 学生账号的密码

Teacher表:

字段名称 字段类型 字段描述
tid int 教师id,教师的唯一识别码
tName varchar(20) 教师姓名
tPassword varchar(20) 教师账号的密码

Homework表:

字段名称 字段类型 字段描述
hid int 作业id,作业的唯一识别码
tid int 教师id,发布该作业的教师
htitle varchar(300) 作业标题
hcontent varchar(300) 作业要求/作业内容
start_time BIGINT 作业开始时间,采用unix时间戳格式
end_time BIGINT 作业结束时间,采用unix时间戳格式

studentHomework表:

字段名称 字段类型 字段描述
id int 学生作业id,本处唯一识别码
sid int 学生id,提交该作业的学生
hid int 作业id
homework_content varchar(300) 学生提交的作业内容
create_time BIGINT 作业创建时间,采用unix时间戳
update_time BIGINT 作业更新时间,采用unix时间戳,默认与创建时间相同

3、后端设计

后端采用springboot整合Mybatis,创建bean、mapper、service、controller四个包,bean中包括studentHomework、Homework、Student和Teacher四个实例。
文件目录如下:
springboot+Mybatis+vue前后端分离开发:作业管理系统_第2张图片
其中在resource中的xml文件放置数据库语句,mapper进行映射,最后由controller中的接口发送给前端,展示在界面上。基本数据库配置等文件则写在yml文件中。关于springboot项目的建立,请自行查阅百度。
在此处需要注意的一点是,前后端分离开发时,接口链接涉及到跨域问题,控制台报错如下图:
JavaEE大作业-跨域报错
解决方法是在controller中加入@CrossOrigin注解,如下图所示:
springboot+Mybatis+vue前后端分离开发:作业管理系统_第3张图片

4、界面展示

本次采用前后端分离开发,前端采用vue框架+element组件,以呈现更好的界面效果。
界面和功能展示如下:

登录注册页:

如图所示,在输入框中输入学号和密码,选择身份,即可进行登录,学生学号和教师工号不互通。注册页则需要填写姓名、学号/工号并输入密码,密码需要输入两次进行验证,注册成功后,会跳出弹出框,提示用户回到登录分页进行登录。

教师首页:
springboot+Mybatis+vue前后端分离开发:作业管理系统_第4张图片
教师登录成功后,会跳转到教师首页,右上角会展现当前的用户名称,鼠标移至该选项上可以选择退出账号。教师可以查看自己发布的作业列表,列表展示作业名称、作业内容、开始和结束时间等,教师可以添加作业、修改作业信息、删除作业和查看作业提交情况。添加作业、修改作业信息、查看作业提交情况都通过弹出框来进行展现。

springboot+Mybatis+vue前后端分离开发:作业管理系统_第5张图片
教师添加作业时,需要填写作业标题、作业内容并选择作业时间范围,该范围会限制学生端的提交。

springboot+Mybatis+vue前后端分离开发:作业管理系统_第6张图片
选择修改作业时,则会自动将目前的作业标题和作业内容填充进输入框,方便教师进行修改。

springboot+Mybatis+vue前后端分离开发:作业管理系统_第7张图片
点击查看提交则会展示学生提交的作业列表,展现学生学号、提交内容、作业创建时间和更新时间。

springboot+Mybatis+vue前后端分离开发:作业管理系统_第8张图片
选择删除作业则会弹出提示,以防误删。
springboot+Mybatis+vue前后端分离开发:作业管理系统_第9张图片
点击菜单栏的添加学生则会跳转到添加学生页面,左侧展现学生列表,右侧则可以进行输入添加学生。被教师添加的学生默认账号密码是123456,添加后,需要刷新更新左侧的学生列表。

学生首页:
springboot+Mybatis+vue前后端分离开发:作业管理系统_第10张图片
学生账号登录后则会进入学生首页,左侧展现已有的作业列表,右侧展现学生自身提交过的作业。如果该作业处于提交时间范围在中,学生可以选择提交,否则会显示作业尚未开始或作业提交已截止。学生可以在右侧的列表中对自身提交的作业进行更新,但如果作业已截止,则不可以进行修改。

springboot+Mybatis+vue前后端分离开发:作业管理系统_第11张图片
springboot+Mybatis+vue前后端分离开发:作业管理系统_第12张图片
作业的提交和修改依然采用弹出框模式,提交作业时,作业的序号、名称和内容将会展示在弹出框中,方便学生确认作业要求。更新作业时则将原答案置入输入框,方便学生进行修改。

由于时间关系,本次系统不设计打分等功能,系统稳定性也有待商榷,本博客和代码仅供参考。

代码地址:
前端地址:https://github.com/ShuheLiu/javaEE–client
后端地址:https://github.com/ShuheLiu/javaEE–server

docker镜像已上传,名称为17301129-final-project。

你可能感兴趣的:(springboot+Mybatis+vue前后端分离开发:作业管理系统)