将在学校课程中的实验项目部署到服务器上,提供在线考试系统的服务。
本系统采用B/S模式开发,选择了JAVA、JavaScript和Html等语言作为开发语言。主体采用前后端分离开发,前端主题采用Vue框架,后端采用目前主流的Tomcat服务器技术和Axios技术,后台数据库选用MySQL,服务器采用Windows Server 2022 数据中心版 64位。主要开发工具有IntelliJ IDEA和VScode。主要接口测试工具为Postman和Swagger
本系统大体上包括管理端和客户端两个部分。管理端的功能有用户管理、题库管理、题目管理三个部分。客户端包括题目查看、自行组织考试两个部分,可以实现在线出题,在线考试等功能,极大地提高了出题和考试的效率,节约了考试成本。
(一)、功能需求
1、需求分析概述
获取需求是系统开发过程中的第一个步骤,也是最关键、最需要交流的一步,通过小组交流,我们最终明确了该系统“做什么,不做什么,该符合什么”。
2、系统功能结构与项目流程
根据在线考试系统的需求,本系统分为管理员、用户两种权限。整体项目流程:通过在线考试系统选择合适的身份登录,登录之后获取所在身份的菜单页面,选择功能模块进行需要的操作,从而实现操作目的。总体功能流程图如图4所示。
(二)、系统设计
数据库是整个系统重要的组成部分,设计结构合理、功能齐全的数据库对于提高系统的开发效率和程序的性能是非常重要的,数据的正确关系整个系统地正常运行。所以在设计过程中不但要把所必须的数据字段加到数据库中而且还要加入一些可以方便控制数据库的字段,来增加数据库的完整性和安全性。因此我们用到了E-R图来帮助我们设计数据库。
整个系统使用前后端分离的开发模式,采用SPA(单页面应用),在现在普遍的MVVM框架中,后端负责提供接口,而前端可以专心开发更加美丽的页面,这样一来,大大提高了开发效率。
2、后端
(1) MVC框架
Model View Controller,是模型-视图-控制器的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个组件里,在改进和个性化定制界面的及用户交互的时候,不需要重新编写业务逻辑。
模型(Model):用于封装与应用程序业务逻辑相关的数据以及对数据的处理方法。Model 有对数据直接访问的权力,例如对数据库的访问。Model 不依赖 View 和 Controller,也就是说, Model 不关心它会被如何显示或是如何被操作。但是 Model 中数据的变化一般会通过一种刷新机制被公布。为了实现这种机制,那些用于监视此 Model 的 View 必须事先在此 Model 上注册,由此,View 可以了解在数据 Model 上发生的改变。(如,软件设计模式中的“观察者模式”);
视图(View):能够实现数据有目的的显示(理论上,这不是必需的)。在 View 中一般没有程序上的逻辑。为了实现 View 上的刷新功能,View 需要访问它监视的数据模型(即 Model),因此应该事先在被它监视的数据那里注册;
控制器(Controller):起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应。“事件”包括用户的行为和数据 Model 上的改变。
控制器(Controller):起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应。“事件”包括用户的行为和数据 Model 上的改变。
(2)后台网络数据处理
(3)控制器
(4)数据库连接
采用Mybatis+MySQL技术
(5)
3、服务器搭建
(1)控制台配置云服务器
从阿里云申请ECS云服务器后设置合理的安全组。对http访问的80端口、数据库访问的3306端口、后端访问的8080端口放行
(2)安装相应软件依赖
安装后端JavaWeb项目所需要的jdk1.8 以及构建JavaWeb项目所需要的maven环境。安装服务器软件TomCat 10.0.22 数据库软件MySQL
安装Nginx对vue项目打包后的资源文件进行反向代理,配置代理转发服务器,将请求接口转发至本地8080端口。
(3)部署运行
将vue、JavaWeb项目以及数据库分别运行起来。通过浏览器访问47.113.25.80服务器地址与后端JavaWeb项目交互。后端JavaWeb项目再通过3306端口与数据库交互。测试公网IP 47.113.25.80可正常访问到在线考试管理系统。由此一个前端、后端、数据库彼此分离的项目成功部署。