这学期的期末项目将使用本学期所学技术,即使用 Spring + SpringMVC + MyBatis 的在线考试系统。

所需技术

本次期末项目采用以下技术,其中又分为前端部分和后端部分

后端部分

  1. Spring + SpringMVC + MyBatis
  2. Apache POI(处理word,excel)
  3. pageHelper(处理分页)
  4. JUnit(用于单元测试)

前端部分

  1. MiniLayUI
  2. JQuery

项目协作

项目协作的部分使用 git,使用 gitee 作为代码仓库。在使用 git 作为多人协作会可能出现以下的问题,一个是不会用,另一个是会用之后,不知该如何去合并。

还有一些合作上的问题,等等各种疑难杂项。

如何操作

在此之前,需要注册一个 gitee 的账号,后续的代码协作才能继续操作。

gitee 账号创建完成之后,需要配置 SSH,SSH 的配置可以参考下面的链接。

如何管理你的多个 SSH key

如果你是新加入的组员

1、首先获取项目:

git clone https://gitee.com/bestguo2020/ssm_online_exam.git

2、获取项目完成切换到 dev01 分支进行操作了

分支的可以理解成工作区,但是专业的叫法还是叫“分支”

git checkout dev01

接下来就是配置开发者的邮箱和用户名,配置用户名和邮箱可以参考以下链接

如何管理你的多个 SSH key - 项目配置

以下配置完成之后就可以继续愉快的写代码了。

3、假如你某项功能完成之后,需要添加你要提交的代码(“.” 代表全部的代码)

git add .

4、在提交代码时需要交代清楚你需要做了哪些工作,也就是 xxxxx 里的内容需要填写的部分。

git commit -m "xxxxxx"

5、推送到远程仓库之前,将 gitee 上的远程代码拉取下来

git pull origin dev01

6、开始推送,同时也需要将你的工作区推到 gitee

git push origin dev01

如果你是已经加入的组员

1、首先获取最新的项目:

git pull origin dev01

拉取完成之后就可以继续愉快的写代码了。

2、假如你某项功能完成之后,需要添加你要提交的代码(“.” 代表全部的代码)

git add .

3、在提交代码时需要交代清楚你需要做了哪些工作,也就是 xxxxx 里的内容需要填写的部分。

git commit -m "xxxxxx"

4、推送到远程仓库之前,将 gitee 上的远程代码拉取下来

git pull origin dev01

5、开始推送,同时也需要将你的工作区推到 gitee

git push origin dev01

可能出现的问题

在进行协作的时候,可能会出现代码冲突等等问题,后续出现了问题在新创建的日志中记录

2021-04-29

提交项目时出现权限不够的问题,其实就是没将成员添加进来。参考链接

2021-05-09

模拟提交代码的时候由于修改同一个位置导致的代码冲突,这种冲突没办法只好通过协商的方式解决。

拉取代码时出现代码冲突信息

$ git pull origin dev01
remote: Enumerating objects: 6, done.
remote: Counting objects: 100% (6/6), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 4 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (4/4), done.
From gitee.com:bestguo2020/ssm_online_exam
 * branch            dev01      -> FETCH_HEAD
   271754d..e441092  dev01      -> origin/dev01
Auto-merging asd.txt
CONFLICT (content): Merge conflict in asd.txt
Automatic merge failed; fix conflicts and then commit the result.

发生冲突之后,asd.txt 中的文件内容如下

QQ截图20210509173006

解决的办法有三种,一种是保留上面的,另一种时保留下面的,最后一种是两者都保留。

通过协商完成之后,重新执行如下命令

git add .
git commit -m "xxxxxx"

(xxxxx 里的内容需要填写的部分)

2021-05-13

问题 1

学生端登录之后跳出页面已过期的问题,其主要原因:学生端系统中右侧的 iframe 嵌入的页面是教师端。导致教师端的 session 为空。从而重定向到登录界面。

解决办法:新建一个学生端的左侧导航菜单的配置文件,重新配置该菜单即可。

呃(⊙o⊙)……

后面实在是没空记录了😂😂😂

分析

系统描述

在线考试系统中,学生和教师需要进行登录方可进入考试系统。教师可以将自己的题目上传到系统,形成自己的题库,可以发布考题进行线上考核,同时也可以生成试卷进行线下考核,但是线下考核的分数需要人工来进行判定。考试结束之后,系统会自动计算每个学生的考试成绩,成绩计算完成之后,教师可以查询学生的考试情况,也可以将线上考试成绩进行导出。

学生在登录进入考试系统参加考试,在参加考试之前需要加入班级并选择一个班级,并且可以查看,待老师发布考题,在规定的时间开始才能开始考试,考试结束之后,学生可以查看考试成绩,也可以不看,等老师将成绩公布出来也行。如果学生加错了班级或者想退出班级,可以直接退出该班级。

管理员除了拥有教师的全部功能,还可以管理教师信息、学生信息和班级信息。

表设计

该系统中的数据库表和表之间的关系,以及单个表中的字段和属性

数据库表之间的关系

后续就是和未来的组员沟通交流的时刻了。

心得

2021-06-08

这是我第一次和舍友进行多人项目合作,毕竟作为一个难度系数为 1.0 的考试系统,在加上时间才只有短短的一个月的时间,一个人硬刚肯定是受不了的。这也是我体会到多人协作的好处(前提是没有啥都不做的,不过我们还好,至少每个人都有去做的)。

其实遇到可以一起做项目的同学挺不容易的,而且还要和组员进行一个沟通。还要教舍友如何简简单单的使用 git ,用来方便的将我们写的代码进行一个合并。他们都能够较好的去使用,这个项目我觉得帮了大忙的还是 git ,它可以告诉我们在项目协作的时候,有提示冲突的地方,这种也是很好去解决的。还有代码的合并不需要我们人工来合并,这样也不会非常浪费在合并代码上了。

第一次和舍友进行协作,我觉得还是很成功的。

这周五就要开始项目答辩啦,祝我好运吧。今天还有一个安卓的期末项目答辩,加油加油!

———————–✂—————————

安卓期末答辩终于结束了,稳的一匹 💁👌🎍,就差周五的 J2EE 的项目答辩了,可以的。

突然想起这周还有英语四级。哈哈哈哈哈哈哈哈,完了,啥也没什么准备呀😂😂😂,直接裸考,英语四级又很差。英语四级就随缘吧 😅。这是我第一次考,也是我最后一次考。

2021-06-11

今天的 j2ee 答辩有点小紧张,还以为要从头到尾把所有的功能全部展示一遍。不过老师是按照功能点来进行演示的,这让我顿时不那么慌了,加上老师在旁边提醒着我别紧张,总得来说还是挺好的。还是挺感谢的,对这个项目指出了一些不足之处以及一些需要改进的地方这样子,后期也会抽空来对该项目进行一些改进的😊😊。

最终的项目整体成绩还是令人满意的。也非常感谢老师的指导。

上个月确实挺辛苦的,一直都在集中火力干 Java。

贡献度

不过……

明天的英语四级肯定过不了,只能等死啦 😂😂

———————–✂—————————

快快点这里 👉 点我点我,欢迎来玩耍呀

其实就是我的期末项目哒~