SpringBoot
Spring Data JPA (不用)(Mybatis Plus)
BootStrap4 (不用)(自定义css,js)
Thymeleaf
Mysql
依赖管理工具: Maven(原定为Gradle)
最终技术栈: SpringBoot + MybatisPlus + Thymeleaf + Mysql + js + html + css
esayExcel
打包方式: jar包(SpringBoot支持jar包运行方式,而不用打成war包)
架构: B/S
jdk: 11.0.3(LTS)
IDE: IDEA 2019.2
SpringBoot: 2.2.0 RELEASE
Mysql: 8.0.18
管理员、学生、教师
管理员、学生、教师、院校、课程
管理员:
———— 学生信息管理
——基本信息管理(学号、姓名、年龄、性别、籍贯、政治面貌、在校担任职位、手机号、所在院校、入学时间、毕业时间等)
——选课管理(学号、课程号、成绩))
———— 教师信息管理
——基本信息管理(教职工编号、姓名、年龄、职称、所在院校)
——课程管理(教职工编号、课程号)
———— 课程信息管理
——学时、学分设置
——开课时间
———— 院校信息管理(院校编号、学校名称、学院名称)
————管理员管理
——权限设置
——修改密码
————按权限登录,显示不同视图
用户表
用户id 用户名 密码 角色(0,1,2)分别代表
学生表
教职工表
职工号 教师姓名 职称 学历 研究方向 所属学院
管理员表
课程表
学生课程表
涉及表: 用户表、角色表、用户角色关联表
逻辑:
- 启动StuApplication,程序访问IndexController中的RequestMapping("/"),通过@GetMapping访问index.html页面,进行登录操作。
- 用户输入用户名及其密码,用户名为用户的id,将表单提交到IndexController下的RequestMapping("/login").
- 首先进行用户是否存在的验证,如果查询结果为空,那么向request域中写入属性error,返回登陆界面
- 如果用户存在,那么根据用户id查询对应的角色,根据角色id,跳转到对应的角色路由。
- 通过url携带的角色id,查询该角色对应的菜单信息,并封装成集合,返回Main页面显示。
- 通过角色动态生成菜单,因此只需要写一个main页面,即可显示不同角色的信息,减少了工作成本。
左侧导航菜单项根据角色显示不同的内容。
目前有三种角色: 管理员、学生、教师
动态菜单可以扩展
目前只有管理员可以进行菜单的管理**(功能正在开发)**
目前遇到的问题: JPA采用native query的查询方式,会造成性能降低,查询速度极慢,因此决定更换持久化框架为mybatis
-
批量导入学生信息功能(完成)
批量导入学生信息,采用导入Excel文件的形式,项目使用easyExcel作为poi工具,Excel需要为固定格式,首先将读取到的内容封装到学生实体集合中,将每个学生实体写入数据库tbl_stu,之后通过学号和身份证号,封装用户实体,将用户写入数据库tbl_user,之后将用户id与角色id写入到数据库tbl_user_role
-
批量导入学生信息加载动画效果(完成)
由于导入excel时间比较长,因此需要给用户一个加载动画的提示
-
学生列表的显示(完成)
采用jpa Pagable实现分页查询
-
学生列表中的编辑和删除功能(完成)
已经实现了
-
学生选课信息的显示
(例如: 学生XXX 在 周一 上午 第一节到第三节 教A301 计算机导论课程 赵志燕授课 学分3 课时48 考试类型 闭卷考试 )
-
学生选课: 学生可以查看当前开设的课程列表,可以选择课程(每个学生有选课上限),可以退课
管理员可以通过查询学号的方式,查看某一个学生的选课信息
所需技术: 分页、excel表格导入
涉及表: tbl_user、tbl_stu、tbl_user_role
- 批量导入教师信息功能
- 教师列表的显示
- 批准教师开设课程
- 教师列表中的编辑和删除功能
教师可以给学生的课程打分
-
批量导入课程信息功能(该功能目前只能由教师申请)
-
课程列表的显示(改为课程搜索)
搜索某一个课程,按照课程名称或者教师名称,模糊查询
-
课程的编辑和删除功能(暂时不做,审核不通过,让教师重新申请)
-
搜索课程
-
审核课程
分页信息在无信息的情况下显示0
- 修改学生信息
- 删除学生信息
- 分页查询学生信息并显示
- Excel导入学生信息
- 统一的登录注销接口
- 首先信息的动态显示
- 动态菜单的实现
- 修改教师信息
- 删除教师信息
- 分页查询教师信息并显示
- Excel导入教师信息
- 修改课程信息
- 删除课程信息
- 分页查询课程信息并显示
- Excel导入课程信息
- 修改密码(修改完成后需要重新登录)
学生用户功能(已完成菜单设计)
-
首页 0 (选修课程数、及格课程数、未及格课程数)
-
基本信息 0 (基本信息的显示和部分修改)
-> 学生信息
-
选修课程 0 (选修课程/取消选择)
-> 已选课程
-> 待选课程
-
设置 0
-> 修改密码
-
退出登录 0
教师用户功能(已完成菜单设计)
-
首页 0 (开设课程数、已打分课程、尚未打分课程)
-
基本信息 0 (基本信息的显示和部分修改)
-> 教师信息
-
课程管理 0
-> 开设课程
-> 课程审计
-
设置 0
-> 修改密码
-
退出登录 0
学生选课功能
教师申请开设课程功能
教师录入课程分数功能
管理员搜索学生选课信息功能
管理员搜索教师开课信息功能
管理员批准教师开课功能
学生课程VO
学生课程表
id 自增
lessonId 课程id
stuId 学生id
score 分数
state 选课状态 (默认可以选择: 0 ,选课后: 1, 不能选课: 2)
教师课程VO
id 教师课程表自增id
teacherId 教师id
lessonId 课程id(自动生成 L+时间2019年11月03日22点17分33秒) 例如 L20191103221733
date 申请时间
state 申请状态(管理员修改状态 0: 待审核, 1: 审核通过,2: 审核未通过)
首先教师创建课程,课程创建成功后,课程的信息记录到课程表中,课程id写入到教师课程表中,
只有管理员审核通过(教师课程表中课程状态为1课程才能显示在学生用户界面)