springboot基于云计算的在线教育平台设计与开发
摘要
本文所设计的基于云计算的在线教育平台系统的设计与实现拥有前端和后端,前端使用Vue.js框架和创建,后端使用Springboot框架创建,开发语言采用Java,使用Mysql数据库对后台数据进行存储。将IDEA作为主要的开发工具。接着进行系统的需求分析、功能设计、数据库设计,最后进行编码实现。
实现了一个完整的基于云计算的在线教育平台系统,其中主要有作业信息模块、作业提交模块、资料类型模块、学生模块、用户表模块、token表模块、系统简介模块、收藏表模块、公告信息分类模块、公告信息模块、课程资料模块、课程信息模块、课程类型模块、课程报名模块、教师模块、在线讨论模块、考试记录表模块、试题库表模块、试题表模块、在线考试表模块、课程资料评论表模块、课程信息评论表模块、配置文件模块、成绩信息模块、关于我们模块、账户的注册与登录等功能模块。本文详细介绍了该基于云计算的在线教育平台系统的设计过程,并通过全面测试,完善了预期的功能。研究表明采用B/S架构,通过Vue.js框架、Springboot框架以及Mysql数据库可以构建一个完整基于云计算的在线教育平台系统。最后,整个论文从系统分析、设计、实现以及最后的测试做了一个合理的安排。通过最终的研讨做出一个可行性的方案,在完成以后我们做了详细的介绍并找出系统的不足之处,从而来弥补系统的完善,最终打到符合毕业答辩要求的标准。
1 绪论
1.1 开发背景
越来越多的学习者选择网络环境平台这种既先进又普遍的学习方式。而互联网这种有双向交换特点的技术平台,和多媒体技术在创建真实情景方面的独特优势,是网络平台这种学习方式和传统媒相比有着独特的优势,更适合学习者进行自主学习。而随着经济社会的发展和信息技术的普及越来越多的学生将会选择利用互联网来学习,同时也是适应现在这个学习型社会的必然要求。况且无论是课堂教学改革还是满足学生自学的要求网络学习平台的设计和开发都将成为教育技术学专业学生必须思考的问题,而网络学习教育平台的核心就是如何让学生自学,如何吸引学生,如何保证学生能获得他们需要的知识。
这是一个崭新的、以信息为基础的新时代。目前,我国大学生的心理辅导工作已成为一个比较困难和复杂的问题,迫切需要找到一种行之有效、方便快捷的方式来帮助大学生进行在线教育。因此,日益完善的电脑系统,就成了解决这个问题的必然选择。现在,用电脑的信息管理技术来解决这个问题,简直是得心应手,事实上,在所有的企业中,都是以它为中心的,它的作用是非常重要的。但是,随着社会主义的发展,人们的生活质量得到了极大的提升,许多事情都可以通过互联网来完成,因此,互联网就成了最直接、最方便、最快速的接入方式。
1.2 开发意义
云计算技术为在线教育平台提供了强大的计算和存储能力,能够支持大规模用户同时在线学习,提高了教育资源的利用效率。
在线教育平台可以突破地域和时间的限制,实现全球范围内的教学和学习,为学生提供更广阔的学习机会。
云计算技术可以提供灵活的扩展性和弹性,使得在线教育平台能够根据用户需求进行动态调整和扩展,提供更好的用户体验。
与传统的方式相比,使用系统有许多优势:第一,可以极大地提升的检索效率,只要输入有关的信息,就可以在几秒钟之内将所要的结果反馈给用户。其次,可以储存海量的辅导资料,并且基于云计算的在线教育平台系统的安全性得到较高的保证;与传统的纸质文件相比,系统可以节约大量的人力资源。这一优势极大地改善了经营的效率和节约了经营费用。所以,一定要对系统进行合理、高效的管理,这就提升了系统的效果和特点,增强了用户信息的安全性,让用户可以将信息及时地反馈到管理员那里,从而增加了用户与管理员之间的互动交流,更可以提升用户的体验强度。
由于考虑到数据库结构的灵活性,本系统想要使用 MySQL来设计数据库[1],而 java技术[2], B/S架构则确保了较高的平台适应性。本文的重点是对该系统的开发环境、要实现的基本功能和开发步骤进行了说明,并重点阐述了系统设计方案的关键点、设计思想。
2 相关技术介绍
2.1 开发环境和技术介绍
2.1.1 运行开发环境介绍
基于云计算的在线教育平台系统的设计与实现在开发环境上选择如下:
硬件参数:
笔记本品牌:华硕飞行堡垒;
内存容量:8GB(8GB×1)DDR42666MHz
硬盘容量:256GB+1TB混合硬盘
CPU型号:Intel酷睿i78750H
显卡芯片:NVIDIAGeForceGTX1050Ti
软件参数:
操作系统:Windows10企业版操作系统
开发平台:IntelliJ IDEA IntelliJ IDEA2019.3.4;MySQL5.7版本;
环境版本:Jdk1.8版本(包含Jre);Maven工程3.6(配置阿里云仓储镜像)
2.1.2 Springboot框架
springboot框架简化了spring的构建和开发过程。Springboot不仅简化了依赖关系管理,而且基本摆脱了XML和starter配 置文件。Springboot真正实现了自动文件配置,而且创建环境的速度也非常快。安装只需几秒钟即可完成。创建和配置 springboot包括创建想法和网站。它的主要功能是启动依赖项和核心配置。
2.1.3 前后端分离vue.js框架
Vue 是一套构建用户界面的渐进式框架,框架架构方面自底向上增量开发的设计方式,相比其他重量级框架比如React、Angular等,更加灵活和开放。对于新手来说更容易入门,而对于资深工程师来说就是一个更好的框架选择。Vue还便于与第三方库或既有项目整合,在实现前后端分离的开发模式上,它会是一个不二之选,它有强大的生态圈,结合Vuex和Vue-router能够为复杂的应用程序提供驱动[2]。
2.1.4 Mybatis介绍
Mybatis框架是针对于系统数据持久层的一个优秀的开发框架。在使用Mybatis框架进行系统开发的时候可以完成对于JDBC的封装,只需要用Xml文件的配置进行数据库的映射就可以进行执行,将Sql语句实现了与业务层代码的分离,在进行系统开发的时候可以提升代码的优化程度,可以对于Sql语句的书写更加的专注。因此本次的设计将Mybatis框架作为系统数据持久层的开发框架。
2.2 开发工具介绍
2.2.1 IntelliJ IDEA开发工具
IntelliJ所支持的语言编译组合不限于Java。在IntelliJ idea编译器中,还可以编译Python、Android、PHP等语言以及其它语言。与Eclipse开发工具一样,也可以中断代码,调试测试函数。IntelliJ idea有很多功能,例如智能码的选择、丰富的导航格式、编译辅助工具、灵活的拼写、代码语言识别等。在IntelliJ idea中,与其他移动环境一样,也可以显示组合键的设置。这样一来,习惯idea开发的程序员可以迅速的对程序进行编译开发。
2.2.2 Mysql数据库介绍
MySQL数据库与其他的一些大型的数据库相比虽然有很多的缺点,但是MySQL数据库也有其强大之处和别的数据库不及备的 优点。首先,MySQL数据库是一款关系型较强的数据库,并且在执行的效率上非常的搞并且MySQL数据库还可以作用在不同的操 作系统上。MySQL数据库在管理上以及安装上也比较的简便,最主要的是MySQL数据库还是一款免费的数据库开发工具,在中小型的系统开发上首选的是MySQL数据库作为开发工具。
图2.3 MySQL数据库架构图
。
3 需求分析
3.1 系统架构选择
本次系统采用的架构是B/S架构而非C/S架构,与C/S架构不同的是,B/S架构采用的是浏览器/服务器模式,而C/S架构需要下载客户端安装的客户机/服务机模式。两种模式相比较而言,C/S架构是桌面级的应用开发软件,更适用于电脑端的使用,响应的速度更快,安全性强,但随之也有着对应的缺点,C/S架构需要购买能力更强的服务器用于系统。而B/S架构不需要通过软件下载来使用,B/S架构的系统可以实现跨平台的使用,对于客户端而言不需要维护,其一部分的简单业务逻辑可以通过客户浏览器web端进行执行,因此可以节省服务器的运行算力,节省服务器成本。。
图3-1 B/S结构图
3.2 系统性能分析
对网站性能进行分析,可对系统反应度、界面简洁清晰度、储存能性、易学性和稳定性进行分析;
系统反应度:同时上万人在线时反应时间应该在两三秒以内,。
界面简洁清晰:系统界面要求简单明了,操作简单,用户操作容易上手。
储存性能高系统中需要存储的信息有很多,所以对系统的存储量要求很高,因此数据库就应该很强大,才能保证信息能安全稳定的进行存储;
易学性:该系统在操作上必须简单好上手,没有很多复杂的操作,只需要简单的进行学习就能操作该系统。
稳定性:要求系统运行要稳定,界面清楚、字体清晰等。
3.3 可行性分析
在研制之前,首先要对该制度进行一次可行性分析,以便采取一种行之有效的办法来解决最大的难题。这个过程一旦被设计出来,符合顾客的需求,将会带来很多好处。接下来,我们将从技术上、操作上、经济上三个方面,来选择这个系统。
3.3.1 技术可行性
本次基于云计算的在线教育平台系统的设计采用的是SpringBoot框架集成Mybatis框架的形式来进行业务逻辑的处理以及数据持久层的开发,选用的框架能够将业务层的代码和Sql语句进行分析,与Vue等框架也有很高的贴合性。除此之外,Maven工程可以对依赖进行全方位的管理,让Jar包的配置和管理更加的方便。因此本次的设计在技术上是可行的。。
3.3.2 经济可行性
在设计和开发的过程中使用的数据库的开发环境大部分都是开源的或者是社区版本的软件,可以从各大官网中直接下载和安装使用,不需要我们有太多的经济的投入,因此在经济和开发成本上是非常少的。对于开发所消耗的成本基本都运用在了硬件层。但是学院所提供的硬件设备和自身计算机的配置都基本符合我们开发时所需的硬件需求,从而大幅度了又省去了开发上的成本。项目后期的服务器部署基本可以靠租赁的方式来解决,因此从项目的开发到部署使用的各个方面在经济上都是可行的。
3.3.3 操作可行性
随着科技的飞速发展,电脑已经进入每个人的生活,每个人的工作环境也不再是以前那样恶劣。员工必须到特定的地方工作,有些工作是可以在家中完成的。这让他们的效率更高了。经营范围也越来越广。因此,方便、便捷、信息化是当今时代发展的必然趋势。各类智能化的软件种类繁多,不同的软件能够适应不同的用户需求,提高工作效率,也能够适应某些特定的需求。这个系统不仅是一个简洁的网页,而且还采用了一个直观的数据显示网页。用户可以使用滑鼠及键盘对相关资料进行修改,删除,添加等。因为本系统操作起来相对容易且切合实际,所以初次使用本系统只需花费很少的时间。因此,本系统具有较高的应用价值。
。
3.4 系统流程分析
3.4.1 用户管理流程
进入用户管理页面,可以查看当前保存的所有用户信息,如姓名、邮箱、电话等。选择修改个人信息,并进入修改页面,完成对用户信息的修改后,点击提交或保存按钮,如果验证通过,系统将管理员修改后的用户信息保存到数据库中。这代表完成用户信息的修改。在此之外,对于用户管理功能,同样可以对系统信息进行新增、删除、查询等基础管理操作。
3.4.2 添加信息流程
用户在添加信息时,系统编号自动生成,用户需要输入信息,系统会对其进行验证,验证通过则添加成功,反之添加失败,添加信息流程如图3-3所示。
图3-3 添加信息流程图
3.4.3 修改信息流程
修改信息这一块的流程和添加信息类似,首先由用户选定需要修改的信息,然后输入对应要修改的数据,系统对输入的这些数据再进行验证,验证成功就可以添加到系统的数据库里面,相反不能添加成功。图3-4就是修改信息的流程图。
图3-4 修改信息流程图
3.4.4 删除信息流程
用户在删除的时候,系统会再次提示是不是确定要删除,因为一旦删除了,信息就不存在了,确定要删除的话,就会从数据库里将这些数据删除,重新更新数据库。图3-5演示的就是删除信息的流程图。
图3-5 删除信息流程图
3.5 系统运行环境
完成系统后需要进行测试,测试和开发是不同的环节。测试前,对系统进行环境搭建[13]。
系统的环境包括服务器和客户端。
服务器:部署系统的项目和数据库。
处理器:英特尔芯片,I7八核。
内存:16G
硬盘存储:200G容量。
服务器软件:使用MYSQL服务器、tomcat8.0、windows操作系统、Docker虚拟机。
客户端:系统的客户端要求较低,可以正常启动,并具有日常操作的计算机即可。浏览器使用最新的IE或者360版本。需要注意的是,客户端宽度需要2G以上[6]。
4 详细实现
4.1 网站首页
系统的首页设计采用了菜单栏的设计,将系统的主要功能放置在左侧菜单栏中,用户要使用功能,则只需点击菜单栏中的tab即可进入到对应功能的页面
图5-1所示:
4.2 系统注册
系统注册:在系统首页,点击右上方的登陆/注册按钮,就可以进入到登陆注册页面,点击注册,进行系统注册操作,系统注册界面具体如下:图5-2所示:
4.3 系统登陆
户登录系统时,前端页面会向系统的login.vue URL发送登录请求,后端代码获取用户登录的请求,获取用户登录的参数。根据这些参数,使用MyBatis在关系数据库的用户表中查找对应用户实体。当能用这些参数查找到用户实体时,说明用户登录时向后台请求的登录参数正确,系统设置用户登录信息和状态,并向前端返回登录成功。用户登录采用AJAX方式进行验证,先是在前台获取用户输入的登录账号、密码以及登录类型,点击登录后,通过AJAX方式,后台异步进行验证,实现页面无刷新的用户登录,图5-3所示:
4.4 作业提交管理
本作业提交模块主要实现对主要实现对的作业提交表的(创建时间,课程名称,课程封面,发布时间,作业要求,作业提交,提交时间,教师账号,教师姓名,学号,姓名,批改状态)数据管理;系统截图如下所示:
截图
4.5 作业信息管理
本作业信息模块主要实现对主要实现对的作业信息表的(创建时间,课程名称,课程封面,发布时间,作业要求,作业附件,教师账号,教师姓名,学号,姓名,作业进度)数据管理;系统截图如下所示:
截图
4.6 课程信息管理
本课程信息模块主要实现对主要实现对的课程信息表的(创建时间,课程名称,课程类型,课程封面,上课时间,上课地点,课程时长,课程详情,发布时间,教师账号,教师姓名,点击次数,评论数,收藏数)数据管理;系统截图如下所示:
截图
4.7 课程资料管理
本课程资料模块主要实现对主要实现对的课程资料表的(创建时间,课程名称,资料类型,资料简介,相关图片,相关视频,附件下载,发布日期,教师账号,教师姓名,赞,踩,评论数,收藏数)数据管理;系统截图如下所示:
截图
4.8 教师管理
本教师模块主要实现对主要实现对的教师表的(创建时间,教师账号,密码,教师姓名,性别,联系方式,照片)数据管理;系统截图如下所示:
截图
4.9 课程报名管理
本课程报名模块主要实现对主要实现对的课程报名表的(创建时间,课程名称,课程类型,课程封面,上课时间,上课地点,课程时长,教师账号,教师姓名,报名时间,学号,姓名,跨表用户id,跨表主键id,最近点击时间,点击次数)数据管理;系统截图如下所示:
截图
5 总体设计
5.1 测试的定义
测试是一种系统性的活动,旨在评估、检验或验证特定的产品、服务或系统是否符合预期的需求和标准。测试是为了确定软件或系统是否能够满足业务需求或功能需求,以及在不同的负载和条件下是否能够正常运行。测试通过执行一系列的操作、输入和输出,以及记录和分析测试结果,来评估软件或系统的质量、可靠性、稳定性和安全性等方面的情况。测试可以帮助发现和修复软件或系统中的错误、缺陷或漏洞,提高软件或系统的质量和性能,确保最终交付的产品或服务符合用户的需求和期望。。
。
。
5.2 软件测试的方法
黑盒测试,也被称为功能测试或数据驱动测试,主要是在已知产品所应具有的功能的前提下,通过测试来检验每个功能是否都能够正常使用。在进行黑盒测试时,测试人员把程序看作一个不能打开的黑盒子,完全不考虑程序内部结构和内部特性,只通过程序接口进行测试,检查程序功能是否按照需求规格说明书的规定正常使用,是否能适当地接收输入数据并产生正确的输出信息。在黑盒测试之前,需要明确系统的需求和规范,以确保测试的对象和目标明确。测试人员需要了解系统的预期功能、性能、安全等方面的需求和规范。测试人员需要根据系统的需求和规范,设计一系列测试用例,以覆盖系统的不同功能和行为。测试用例应该包括输入数据、预期输出和测试步骤等信息。黑盒可以帮助测试人员检查系统的正确性、可靠性、稳定性和安全性等方面的情况,提高系统的质量和性能,确保最终交付的产品或服务符合用户的需求和期望。
。
5.3 测试用列
5.3.1 登录测试用例
在实现系统的权限区分时,主要通过登录注册功能实现,因此需要对登录注册功能进行详细的测试,其测试用例表如下所示:
表6.1 登录测试用例分析表
测试用例ID测试描述前置条件测试步骤预期结果实际结果结论(通过/失败)
01正常登录用户未登录,页面显示正常1. 打开登录页面 2. 输入正确的用户名和密码 3. 点击登录按钮登录成功,页面跳转到用户首页或提示登录成功消息登录成功,页面跳转到用户首页或提示登录成功消息通过
02登录失败(错误的用户名)用户未登录,页面显示正常1. 打开登录页面 2. 输入错误的用户名和正确的密码 3. 点击登录按钮显示错误消息,提示用户名不存在或错误显示错误消息,提示用户名不存在或错误通过
03登录失败(错误的密码)用户未登录,页面显示正常1. 打开登录页面 2. 输入正确的用户名和错误的密码 3. 点击登录按钮显示错误消息,提示密码错误显示错误消息,提示密码错误通过
04登录失败(用户名和密码都为空)用户未登录,页面显示正常1. 打开登录页面 2. 不输入用户名和密码 3. 点击登录按钮显示错误消息,提示用户名和密码不能为空显示错误消息,提示用户名和密码不能为空通过
05注册新用户(成功)用户未登录,页面显示正常1. 打开注册页面 2. 输入有效的用户名、密码和其他必要信息 3. 点击注册按钮注册成功,页面跳转到登录页面或提示注册成功消息注册成功,页面跳转到登录页面或提示注册成功消息通过
结束语
毕业设计和毕业论文是本科学习阶段一次非常难得的理论与实际相结合的机会,通过这次比较完整的毕业设计,我摆脱了单纯的理论知识学习状态,和实际设计的结合锻炼了我的综合运用所学的专业基础知识,解决实际项目问题的能力。通过此次本系统的实践,亲自动手编程,把已经掌握的东西在实际的开发中运用,加深了对理论的理解同时掌握到技术在实际开发中的运用点;并且在开发的过程中不断学习,提高自学和探索的能力;积累了一定的开发经验和增强团队合作的能力
独立开发程序期间,才会发现有许多知识都是现学现用得来的,毕竟大学期间所学知识比较有限,专业知识掌握得比较浅显,这也给自己制造了许多麻烦,比如程序开发期间遇到的中文乱码问题,程序对应数据库的数据安全问题,程序开发中框架的使用问题等,这些问题都需要随时去翻阅书籍,或通过百度浏览器等方式寻找解决办法,这也耽误了许多程序开发的宝贵时间,后期我也通过对周边同学的请教,以及指导老师的悉心指导,让我找到了程序开发的相关技巧,也积累了一定的知识量,慢慢地纠正了许多不该犯的错误。也推动了我的程序开发进程。