版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录II软件开发的相关技术系统技术架构图SpringBoot这个开源的轻量级框架是此次开发“合木”学习交流平台的后端核心框架与此同时我还搭配了持久层框架MybatisPlus,前端框架我则使用了Vue+Nuxt的架构,除了这个框架外我在前端的开发过程中将使用到的技术还包括Ajax、Element-ui、HTML、jQuery、Axios、CSS等,而在数据库的选择上我除了使用开源的MySQL来存储持久数据外我还搭配了现在较为热门的Redis来进行数据的缓存以缓解数据库的压力。系统的技术架构图如图2.1展示。图STYLEREF1\s2.SEQ图\*ARABIC\s11系统技术架构图SpringBoot+MybatisPlus框架创建项目时有许多繁琐的过程特别是各种XML文件的配置而这些过程SpringBoot已经都帮我们省略了,通过SpringBoot大大的减少了我们在开发过程所耗费的各种额外开销,在短时间内我们就可以通过SpringBoot构建出一个新项目,并且SpringBoot能够很容易的帮助我们集成其他的框架,这将使得开发的过程变得非常简单;而MyBatisPlus是Mybatis的增强工具[7],它具有无浸入、损耗小等特点,由于SpringBoot本身的特性我们能很轻松的将MybatisPlus与SpingBoot集成,两者集成后将在很大程度上降低我们的系统耦合度,为系统的开发带来极大的便利,所以MyBatisPlus是非常适合此项目的开发的。Springboot项目结构图如图2.2所示。图STYLEREF1\s2-SEQ图\*ARABIC\s12Springboot项目结构图Vue“合木”学习交流平台的最主要的前端框架是Vue。而Vue是当下一个很火的JavaScriptMVVM库,它是以数据驱动和组件化的思想构建的[7]。和另外一个框架Angular.js相比,它具有易用,灵活,高效等特点。并且Vue提供的API更加简洁且更容易理解,使得Vue可以被我们快速地上手并使用,同时它也提供了一种模式使得我们可以快速地构建前端项目。并且与其他重量级框架不同的是,它仅仅聚焦在视图层,所以我们可以很容易的学习Vue,而且它可以很轻松的整合其它库或现有项目。除此之外Vue.完全有能力可以驱动单文件组件和使用Vue支持的库所开发的复杂单页应用。Nuxt合木学习交流平台的用户前端将采用了Nuxt,而Nuxt是一个基于Vue的框架,此次使用Nuxt的原因是通过Nuxt可以帮助我们实现搜索引擎优化。如果直接使用基于webpack的Vue项目进行运行,这时webpack会将编译出来的html文件和资源文件都打包放入到js中,而这样的页面在实际应用中是会存在问题的因为这样构建出来的页面不利于搜索引擎优化,并且内容到达时间也有很大的优化空间。为了解决上面叙述中会出现的问题,所以我引入了
Nuxt.js
框架。它预设了利用Vue.js开发服务端渲染(SSR,ServerSideRender)
的应用所需要的各种配置,同时也Nuxt也支持一键生成静态站点,这对于实际开发的项目有显而易见的优点。它有例如异步数据加载、中间件支持、布局支持等很多有用的特点,其原因就在于Nuxt.js是采用客户端/服务端这种典型的应用架构模式。将Nuxt与其他框架进行比较,Nuxt.js有许多比较明显的特性,如自动代码分层、强大的路由功能,支持异步数据、HTML头部标签管理、内置webpack配置,无需额外配置等。Ajax“合木”学习交流平台此次使用的前后端交互技术为Ajax。Ajax不是一种新的编程语言,而是一种技术,我们通过Ajax创建的web应用,它的交互性将会比没有使用Ajax更强更好而且这个实现的过程将会更快,并且在在这个过程中我们不需要使用任何的浏览器插件。通过发展现在的Ajax技术已经十分的成熟,并且市场运用是非常广泛[8]。所以此次前后端数据交互“合木”学习交流平台将采用Ajax实现,通过Ajax就可以使用户的网页从服务器请求少量的信息并进行客户端与服务器之间的异步数据传输,这样使得客户端与服务端之间的交互更为方便,这将在一定程度上提升户的体验。MySQL数据库“合木”学习交流平台的大部分数据的持久化存储使用了MySQL数据库。MySQL是一个关系型数据库管理系统(RelationalDatabaseManagementSystem),MySQL的速度和灵活性相较于其他数据库会更好,这是因为MySQL不是将所有的数据存储在同一个地方,而是将我们的数据分散开保存在不同的地方。在现在的关系型数据库管理系统中,其中最流行的就包括了MySQL,特别是在Web应用方面,MySQL几乎可以说是最好的
RDBMS
应用软件。Adobe、Google和Facebook等世界上最大的科技公司,都在使用MySQL来节省时间和金钱,通过MySQL来支撑他们高并发、高流量的网站和实现关键业务的打包,这足以体现MySQL在市场项目中的运用非常的广泛[9],所以此次“合木”学习交流平台使用MySQL数据库存储数据量较大且经常需要进行增删改查或不经常访问的数据,MySQL相较于其他的数据库有一个很重要的优点,那就是它是一个开源免费的的数据库系统,它的学习成本较低,并且因为系统小巧所以它对设备的要求不高,这就使得我们无需再投入更多的成本,同时它在CRUD操作上的便利性也减少了我们学习的成本。Redis数据库“合木”学习交流平台使用了Redis来存储本系统的热数据如首页数据缓存、短信验证码等。通过Redis我们可以存储多种数据结构,如列表、哈希、集合和有序集合等类型并且都是通过Key、Value的形式进行存储,而Redis最明显的优势在于它是一个开源的非关系型数据库,并且性能极高,据官方数据它的读写数速度都可以达到80000次/s以上,并且除了通过Redis实现数据持久化存储外我们还可以通过Redis来实现缓存、消息代理,集群化的协同方式[10]。所以此项目将使用Redis存储经常访问不经常修改的数据,通过Redis可以使“合木”学习交流平台的性能得到很大的提升,这能极大的提升用户体验。本章小结本章首先介绍“合木”学习交流平台在前后端开发的过程中所使用到的核心框架Vue.js和SpringBoot及其他相关技术,还有关系型数据库MySQL和NoSQL型数据库Redis,然后详细的阐述了“合木”学习交流平台所使用的框架和一部分将会使用到的核心技术。第3章需求分析需求分析系统总体需求分析通过从自身角度出发到对身边同学的调查和对市面上学习软件的使用及分析的基础上我最终决定开发设计“合木”学习交流平台。本系统的目的是为大学生和对专业知识内容有需求的用户提供一个更方便快捷的学习平台,用户可以通过本平台来观看视频学习专业知并通过问答的形式对自身的问题答疑解惑。本系统主要分为用户和管理员两个模块。用户模块包括注册登录、浏览搜索、视频上传播放、购买付费课程、个人信息、发帖问答,管理员模块则包括权限管理、课程管理、用户管理、数据分析等。图STYLEREF1\s3.SEQ图\*ARABIC\s11系统功能结构图系统可行性伴随5G时代的到来,互联网已经成为人们生活中中不可或缺的一部分,而随着经济和科技的发展对人们的专业技能要求也在不断提高,并且由于疫情的影响,互联网教育也迎来了重大利好,各大公司纷纷投资线上教育。而对于传统线上教育平台大多提供的是大而不全的内容,此时一个小而精的教育网站却未受到太多的关注,并且这个时代人们更多的是需要在某一领域的专业学习,进行催生“合木”学习交流平台,我将从三个方面来叙述“合木”学习交流平台的可行性。市场可行性:对于现如今的大多数线上教育平台,提供了种类繁多的内容,令人眼花缭乱,但仔细查看其实少有某一平台为用户提供一个深挖的领域,大多数网站确实在广度上提供了许许多多的内容,内容浅谈,对于想要在某一领域进行深挖的用户并不方便,并且用户可能在学习过程中会遇到许多问题,这是就需要在其他网站进行提问,这是非常不方便的。对于用户来说,在庞大的内容令用户不知道如何进行选择,并且可能选择了后并不是用户所需要的内容这时就耗费了用户的许多精力和时间,而止并且由于内容繁多造成了消费者在使用时的困难,用户在这时需要的是一个可以给他们提供在某一领域深入学习的内容。所以传统模式上的在线教育学习平台虽然内容广泛但其实也带来了相应的弊端,他们在领域上的划分以及领域上的深度相对来说就有所不足。而现在就需要一款在某一领域上进行深挖的平台为他们提供了内容,平台只专注于某一领域所以在内容上的深度会远远深于一般的平台,并且会在领域上有更多的细分更方便用户查找用户所需要的内容,并且可以在本平台进行提问来答疑解惑。经济可行性:用户可以花更少的时间的选择内容上,对于用户来说可以更精确的选择他们所需要学习的内容,并且由于本平台的机制,用户可以通过问答的机制来获取相应的奖励以观看收费的视频对于用户来说更加经济实惠,而对于录制视频的用户来说用户可以通过收费来获取收益这显然是一件两全其美的事情。技术可行性:“合木”学习交流平台所开发的方式是现在主流前后端分离,同时使用的开发框架是SpringBoot+Vue.js是相对来说比较成熟的开发技术,SpringBoot可以通过注解的形式帮助我们简化开发的步骤,注解试的开发省去一些不必要的配置过程,提高了开发的效率[10],这极大的缩短开发中的精力和时间;而Vue.js是当下一个很火前端框架,他提供的API更加简洁且更容易理解,我们可以很快的上手使用Vue.js,通过它我们可以快速地构建前端项目,并且而且很容易的整合其它库或现有项目。Mybatis-Plus是Mybatis的加强版,Mybatis的功能它全有并且更加强大,并且它通过将业务层与数据层的分离可以在一定程度上降低系统代码的耦合度[11]。而在数据库方面我选择了MySQL+Redis用来做数据存储。所以通过分析,在技术层面完全可行的。功能需求分析“合木”学习交流平台将分为两个模块这两个模块分别是管理端和客户端,下面是我对两个模块的需求分析。用户功能模块需求分析用户模块主要包括了登录注册、修改密码、课程发布、视频上传、视频播放、搜索、问答。用户的系统用例图如图3.2所示。图STYLEREF1\s3.SEQ图\*ARABIC\s12用户的系统用例图用户进入平台登录页面,首先需要输入帐号和密码,如果没有帐号密码则需要通过注册后在进行登录,如果用户已经注册过帐号则直接输入帐号密码,后端会查询数据库进行比对验证正确则返回验证码20001登录成功。注册用例规约如表3-1所示:表STYLEREF1\s3-SEQ表\*ARABIC\s11登录用例规范用例名称登录用例标识号U1参与者用户前置条件拥有帐号密码基本事件流1.用户进入客户端,输入帐号密码2.等待系统判断,正确则跳转至用户端主界面,错误则重新登录扩展事件流1a.重新进入系统或进入其他页面时,无需再进行登录直接跳转用户注册账户用例规约如表3.2所示:表STYLEREF1\s3.SEQ表\*ARABIC\s12注册并绑定账号用例规约用例名称注册用例标识号U2参与者用户前置条件无基本事件流1.用户进入登录页面点击注册按钮2.进入注册页面后输入帐号密码,点击提交3.注册成功,跳转至登录页面扩展事件流2a.帐号已经存在,提示用户帐号已经存在用户修改账户密码的用例规约如表3.3所示:表STYLEREF1\s3-SEQ表\*ARABIC\s13用户修改账户密码的用例规约用例名称修改密码用例标识号U3参与者用户前置条件用户已经拥有帐号基本事件流1.用户进入登录页面点击修改密码2.用户输入用户名和密码,在新密码和确认密码栏输入相同的密码,点击提交,系统提示用户“提交成功”扩展事件流3a.用户输入错误的原始密码,系统提示用户“提交失败!输入了错误的原始密码”3b.新密码和确认密码不一致,系统提示用户“两次输入的新密码不一致”后置条件修改密码成功用户搜索内容的用例规约如表3.4所示:表STYLEREF1\s3-SEQ表\*ARABIC\s14搜索查看的用例规约用例名称搜索查找内容用例标识号U4参与者用户前置条件无基本事件流1.用户在首页输入需要查找的内容,点击搜索2.搜索成功,界面显示出相应的内容扩展时间流4a.搜索的内容不存在,显示空页面后置条件查找出相关的内容用户可以查看自己的消费记录的用例规约如表3.5所示表STYLEREF1\s3-SEQ表\*ARABIC\s15视频播放的用例规约用例名称视频播放用例标识号U05参与者用户基本事件流1.可用可以直接点击相应的视频或通过搜索后点击相应的视频扩展时间流5a.搜索的视频不存在显示空页面后置条件用户可以观看到视频用户上传视频用例规约如表3.6所示表STYLEREF1\s3-SEQ表\*ARABIC\s16用户查看店铺积分的用例规约用例名称视频上传用例标识号U06参与者用户前置条件用户已经登录系统,且要上传的视频存在基本事件流1.用户需要先点击发布课程,创建课程和章节小节2.用户点击上传视频选择想要上传的视频进行上传扩展事件流6a.上传视频失败,系统提示“上传视频失败”6b.上传视频成功,系统提示“上传视频成功”用户问答的用例规约如表3.7所示表STYLEREF1\s3-SEQ表\*ARABIC\s17用户积分兑换记录的用例规约用例名称问答用例标识号U07参与者用户前置条件用户已经登录系统基本事件流1.用户进入问答界面点击提问或者选择想要回答的视频2.用户写入内容3.用户点击发表扩展事件流7a.用户发布成功,并获取相应的金币奖励7b.用户发布失败,系统提示“发布失败”用户发布课程的用例规约如表3.8所示表STYLEREF1\s3-SEQ表\*ARABIC\s18用户登出用户系统的用例规约用例名称发布课程用例标识号U08参与者用户前置条件登录用户系统基本事件流1.用户进入用户系统,点击发布课程2.用户选择课程分类和需要发布的视频然后发布课程扩展时间流8a.用户发布成功,系统提示“发布成功”8b.用户发布失败,系统提示“发布失败”管理端需求分析管理端具有查看所有用户、查看所有课程、权限控制、内容审核、数据分析。商家的系统用例图如图3.3所示。图STYLEREF1\s3.SEQ图\*ARABIC\s13商家的系统用例图查看所以用户的用例规约如表3.9所示表STYLEREF1\s3-SEQ表\*ARABIC\s19查看用户的用例规约用例名称查看用户用例标识号U09参与者管理员前置条件已经登录管理系统基本事件流1.管理员点击查看所有用户按钮2.系统显示所有的用户权限控制的用例规约如表3.10所示表STYLEREF1\s3-SEQ表\*ARABIC\s110商家管理店铺信息的用例规约用例名称权限控制用例标识号U10参与者管理员基本事件流1.管理员点击权限控制2.选择用户给用户分配的权限扩展事件流10a.客户只能使用管理员授予的功能内容审核的用例规约如表3.11所示表STYLEREF1\s3-SEQ表\*ARABIC\s111内容审核的用例规约用例名称内容审核用例标识号U11参与者管理员前置条件用户已经提交内容基本事件流1.点击内容审核2.点击通过或者不通过扩展事件流11a.用户内容审核通过可以观看数据分析的用例规约如表3.12所示表STYLEREF1\s3-SEQ表\*ARABIC\s112商家管理商品类别的用例规约用例名称数据分析用例标识号U12参与者管理员基本事件流1.点击数据分析扩展事件流12a.系统显示每日登录数据查看所有课程的用例规约如表3.13所示表STYLEREF1\s3-SEQ表\*ARABIC\s113查看所有课程的用例规约用例名称查看用户用例标识号U13参与者管理员基本事件流1点击查看所有的课程扩展事件流13a.系统显示所有的课程信息本章小结本章节的主要内容是对“合木”学习交流平台进行技术分析、市场分析和经济分析,同时我也对“合木”学习交流平台进行了可行性阐述,最后我还对“合木”学习交流平台的主要功能模块进行了详细的分析与说明。第4章系统设计系统设计系统框架设计此次开发使用的前后端核心框架是SpringBoot和Vue.js,而在数据库方面我则采用了MySQL+Redis的组合,编译器使用了Idea+Vscode,同时我还使用了Aliyun来实现视频点播和部分数据存储,系统架构图如图4.1所示图STYLEREF1\s4.SEQ图\*ARABIC\s11系统架构图系统流程设计客户端:用户登录成功后就可以进入首页,首页有走马灯广告最上方有搜索栏用户可以根据自己的需要进行搜索查看相关的视频,同时可以搜索查看相关的问题。同时可以进行提问答题,通过提问答题用户可以获取相应的奖励用以观看视频。还可以自己录制视频上传,供其他用户观看,用户可以在个人中心查看自己的相关信息。管理端:管理员使用和客户端一样的登录方式,区别就在于管理员进入的是管理员界面,登录成功后管理员可以查询所有的用户,查询所有的课程同时客户端还可以为用户分配权限以及进行用户内容的审核,同时可以根据统计分析界面可以查看当日用户登录的相关数据。系统功能设计用户登录功能流程图用户进入登录页面并输入对应的账号密码,点击提交,后端数据库根据用户输入的账号密码进行判断是否存在这个用户,如果存在则返回状态码20001直接跳转至首页面,登录功能的流程图如图4.2所示图STYLEREF1\s4.SEQ图\*ARABIC\s12用户登录流程图用户注册用户进入登录页面并点击注册,同时输入用户的账户密码点击提交,数据库判断此用户是否已经存在,如果是,则提示“用户已经存在,注册失败”,如果否,则判断用户名是否已经存在返回false。流程图如图4.3所示图STYLEREF1\s4.SEQ图\*ARABIC\s13用户注册并绑定本地账户流程图用户修改密码流程图用户进入登录页面然后点击修改密码,跳转至修改密码页面后分别输入帐号、密码、新密码和确认密码。先判断新密码和确认密码是否一致,如果不一致,系统则提示“两次输入的密码不同,请重新输入”,如果新密码和确认密码相同则继续判断输入的旧密码和数据库中的密码是否相同,如果不相同,则提示“旧密码错误,请重新输入”,如果相同,则密码修改成功,并跳转至登录页面。用户修改密码的流程图如图4.4所示。图STYLEREF1\s4.SEQ图\*ARABIC\s14用户修改密码流程图用户购买及播放视频的流程图用户点击看相关的视频即可进入,如果视频是免费视频即可直接观看,如果视频需要付费则需要先付费才能观看视频。用户购买播放视频流程图如图4.5所示。图STYLEREF1\s4.SEQ图\*ARABIC\s15用户播放视频流程图用户发布提问的流程图用户点击发布问题,然后进入编辑页面进行编辑在编辑完成后可以发布问题,如果发布失败则重新编辑。用户提问的流程图如图4.5所示。图STYLEREF1\s4.6用户发布提问流程图本章小结本章节的主要内容是介绍“合木”学习交流平台的系统设计,然后又介绍了系统的框架设计,系统的流程设计,以及主要的系统功能设计和流程图。第5章数据库设计数据库设计数据库平台环境及要求“合木”学习交流平台使用的数据库为MySQL和Reids,MySQL版本为8.0.18安装在版本为10.0.18363的64位Windows10系统。Redis安装在64位的Ubuntu系统,版本号为16.04LTS,由于Redis存放的是首页接口数据缓存,所以无需另外设计数据表。数据库表设计教师信息:edu_user如表5.1所示表STYLEREF1\s5.SEQ表\*ARABIC\s11教师表edu_user结构字段名类型是否可空字段描述是否主外键idchar(19)NOID主键namevarchar(20)NO姓名introvarchar(500)NO简介careervarchar(500)YES资历levelint(10)NO头衔avatarvarchar(255)YES头像sortint(10)NO排序is_deletedtinyint(1)NO逻辑删除1(true)已删除,0(false)未删除gmt_createdatetime(0)NO创建时间gmt_modifieddatetime(0)NO更新时间小节表:edu_chapter如表5.2所示表STYLEREF1\s5.SEQ表\*ARABIC\s12小节表edu_chapter结构字段名类型是否可空字段描述是否主外键idchar(19)NO章节id主键course_idchar(19)NO课程id外键titlevarchar(50)NO章节名称sortint(10)NO显示排序gmt_createdatetime(0)NO创建时间gmt_modifieddatetime(0)NO更新时间课程表:edu_course如表5.3所示表STYLEREF1\s5.SEQ表\*ARABIC\s13课程表edu_course结构字段名类型是否可空字段描述是否主外键idchar(19)NO课程ID主键teacher_idchar(19)NO课程讲师IDsubject_idchar(19)NO课程专业IDsubject_parent_idchar(19)YES课程专业父级IDtitlevarchar(50)NO课程标题pricedecimal(10)NO课程销售价格,设置为0则可免费观看lesson_numint(10)NO总课时covervarchar(255)NO课程封面图片路径buy_countbigint(10)NO销售数量view_countbigint(10)NO浏览数量versionbigint(20)NO乐观锁statusvarchar(10)NO课程状态Draft未发布Normal已发布is_deletedtinyint(3)YES逻辑删除1(true)已删除,0(false)未删除gmt_createdatetime(0)NO创建时间gmt_modifieddatetime(0)NO更新时间收藏表:edu_course_collect如表5.4所示表STYLEREF1\s5.SEQ表\*ARABIC\s14收藏表edu_course_collect结构字段名类型是否可空字段描述是否主外键idchar(19)NO收藏ID主键course_idchar(19)NO课程讲师IDmember_idchar(19)NO课程专业IDis_deletedtinyint(3)NO逻辑删除1(true)已删除,0(false)未删除gmt_createdatetime(0)NO创建时间gmt_modifieddatetime(0)NO更新时间课程描述表:edu_course_description如表5.5所示表STYLEREF1\s5.SEQ表\*ARABIC\s15店铺分类表edu_course_description结构字段名类型是否可空字段描述是否主外键idchar(19)NO课程ID主键descriptiontext(0)NO课程简介gmt_createdatetime(0)YES创建时间gmt_modifieddatetime(0)YES更新时间课程分类表:edu_subject如表5.6所示表STYLEREF1\s5.SEQ表\*ARABIC\s16区域类别表tb_area结构字段名类型是否可空字段描述是否主外键idChar(19)NO课程类别ID主键titleVarchar(10)NO类别名称parent_idChar(19)NO父IDsortInt(10)NO排序字段gmt_createDatetime(0)NO创建时间gmt_modifiedDatetime(0)NO更新时间视频信息表:edu_video如表5.7所示表STYLEREF1\s5.SEQ表\*ARABIC\s17商品表edu_video结构字段名类型是否可空字段描述是否主外键idchar(19)NO视频ID主键course_idchar(19)NO课程IDchapter_idchar(19)NO章节IDtitlevarchar(50)NO节点名称video_source_idvarchar(100)YES云端视频资源video_original_namevarchar(100)YES原始文件名称sorttnt(10)NO排序字段play_countbigint(20)NO播放次数is_freetinyint(1)NO是否可以试听:0收费1免费durationfloat(0)NO视频时长(秒)statusvarchar(20)NOEmpty未上传Transcoding转码中Normal正常sizebigint(20)NO视频源文件大小(字节)versionbigint(20)NO乐观锁gmt_createdatetime(0)NO创建时间gmt_modifieddatetime(0)NO更新时间统计表:statistics_daily如表5.8所示表STYLEREF1\s5.SEQ表\*ARABIC\s18统计表statistics_daily结构字段名类型是否可空字段描述是否主外键idChar(19)NO主键主键date_calculatedVarchar(20)NO统计日期register_numInt(11)NO注册人数login_numInt(11)NO登录人数video_view_numInt(11)NO每日播放视频数course_numInt(11)NO每日新增课程数gmt_createDatetime(0)NO创建时间gmt_modifiedDatetime(0)NO更新时间用户信息表:ucenter_member如表5.9所示表STYLEREF1\s5.SEQ表\*ARABIC\s19用户信息表ucenter_member结构字段名类型是否可空字段描述是否主外键idchar(19)NO会员id主键openidvarchar(128)YES微信openidmobilevarchar(11)YES手机号passwordvarchar(255)YES密码nicknamevarchar(50)YES昵称sextinyint(2)YES性别1女,2男agetinyint(3)YES年龄avatarvarchar(255)YES用户头像signvarchar(100)YES用户签名is_disabledtinyint(1)NO是否禁用1(true)已禁用,0(false)未禁用is_deletedtinyint(1)NO逻辑删除1(true)已删除,0(false)未删除gmt_createdatetime(0)NO创建时间gmt_modifieddatetime(0)NO更新时间幻灯片表:crm_banner如表5.10所示表STYLEREF1\s5.SEQ表\*ARABIC\s110店铺商品日交易表:tb_product_sell_daily结构字段名类型是否可空字段描述是否主外键idchar(19)NOID主键titlevarchar(20)YES标题image_urlvarchar(500)NO图片地址link_urlvarchar(500)YES链接地址sorttnt(10)NO排序is_deletedtinyint(1)NO逻辑删除1(true)已删除,0(false)未删除gmt_createdatetime(0)NO创建时间gmt_modifieddatetime(0)NO更新时间教师评价表:edu_comment如表5.11所示表STYLEREF1\s5.SEQ表\*ARABIC\s111教师评价表edu_comment结构字段名类型是否可空字段描述是否主外键idchar(19)NO讲师ID主键course_idvarchar(19)NO课程idteacher_idchar(19)NO讲师idmember_idvarchar(19)NO会员idnicknamevarchar(50)YES会员昵称avatarvarchar(255)YES会员头像contentvarchar(500)YES评论内容is_deletedtinyint(1)NO逻辑删除1(true)已删除,0(false)未删除gmt_createdatetime(0)NO创建时间gmt_modifieddatetime(0)NO更新时间问题表:question如表5.12所示表STYLEREF1\s5.SEQ表\*ARABIC\s112问题表question结构字段名类型是否可空字段描述是否主外键idchar(19)NO问题id主键user_idchar(19)NO提问者idcontentvarchar(500)NO提问内容is_deletedTinyint(1)NO逻辑删除1(true)已删除,0(false)未删除gmt_createDatetime(0)NO创建时间gmt_modifiedDatetime(0)NO更新时间回答表:answer如表5.13所示表STYLEREF1\s5.SEQ表\*ARABIC\s113回答表answer结构字段名类型是否可空字段描述是否主外键idchar(19)NO回答id主键question_idchar(19)NO问题idcontenttext(0)NO回答内容is_deletedTinyint(1)NO逻辑删除1(true)已删除,0(false)未删除gmt_createDatetime(0)NO创建时间gmt_modifiedDatetime(0)NO更新时间E-R模型通过需求分析以及系统设计,本系统主要设计了幻灯片表、分类表、课程表、章节表、小节表、课程描述表、课程评价表、教师表、用户表、数据统计表、问题表、答案表,系统主要的模块的E-R模型图5.1所示。图STYLEREF1\s5.SEQ图\*ARABIC\s11E-R模型图本章小结本章的主要内容是对“合木”学习交流平台的数据库版本、环境以及对“合木”学习交流平台所使用到的表在设计及属性结构做了详细介绍,最后还使用了E-R模型将数据库关系展示出来。第6章系统实现系统实现开发流程“合木”学习交流平台将会尽力按照企业开发软件的完整流程来进行开发,以下是我对“合木”学习交流平台全部开发流程的详细介绍:在对国内在线教育平台进行多方面多层次的调研的同时查阅相关的文献后对其资料进行分析,从而最终确定“合木”学习交流平台的开发方向;先熟悉相关的web开发技术,然后分析市场上主流的在线教育平台的优缺点,再结合自身的需求扬长避短,在分析过后规划出系统的整体架构,从而确定开发“合木”学习交流平台的框架及技术;从自身角度及市场需求出发,通过分析规划出“合木”学习交流平台所需要的功能模块,然后再深入到每一个模块的细节;通过事先已经规划好的功能模块串联好各个模块之间的关系再设计出相应的数据库表;通过以上的规划及设计,开始进行“合木”学习交流平台的开发,粗略的开发出第一个版本,然后再根据需求的变化不断的在之前的版本的基础上进行迭代开发;在项目大致完成后,对“合木”学习交流平台进行软件测试,通过测试来确定系统的功能是否在大体上符合该项目的实际需求,并在这个过程中查缺补漏修复发现的Bug,从而进一步完善“合木”学习交流平台。开发环境软件版本Idea2019.3.5JavaJDK1.8MySQL8.0.18SpringBoot2.2.1.RELEASEVue2.5.17Vscode1.55.2Redis6.2.2功能实现用户登录功能实现用户通过登录页面可以直接输入帐号密码进行登录,在登录后无需再输入密码而是直接跳转至首页登录页面如图6.1所示。图STYLEREF1\s6.SEQ图\*ARABIC\s11绑定本地账户的页面用户修改密码功能实现用户需要输入用户名,原密码,新密码,确认密码,输入正确的验证码。修改密码的页面如图6.2所示。图STYLEREF1\s6.SEQ图\*ARABIC\s12修改密码的页面用户播放视频功能实现用户登录后,就可以看到首页的走马灯然后可以通过搜索栏进行搜索或者后续可以通过直接点击课程分类的方式进入视频页面然后点击视频就可以进行播放如图6.3所示。图STYLEREF1\s6.SEQ图\*ARABIC\s13视频播放页面用户添加课程功能实现用户登录后可以点击添加课程按钮,然后填入课程信息和小节信息后可以发布课程。发布课程的页面如图6.4、6.5、6.6所示。图6.5用户添加课程信息图6.6用户添加小节图STYLEREF1\s6.6用户最终发布课程页面用户上传视频功能实现用户在添加课程时可以点击添加视频按钮,点击后选择需要上传的视频如果系统提示“视频上传成功”则上传成功。上传视频的页面如图6.7所示。图STYLEREF1\s6.7用户上传视频页面用户提问功能实现用户可以通过搜索来查找想要的内容,而在搜索栏旁边还有一个提问按钮通过,在点击提问按钮之后可以进行提问如图6.8所示图STYLEREF1\s6.8用户的提问用户回答功能实现用户在点击相应的回答后可以点击评论,即可编辑答案。用户的回答页面如图6..9所示。图STYLEREF1\s6.9用户的回答管理员查询所有用户功能实现管理进入管理员页面后可点击左侧的查询用户即可查询所以的用户。查询所有用户的页面如图6.10所示 图STYLEREF1\s6.10查询所有用户页面管理查询所有课程功能实现管理进入管理员页面后可点击左侧的查询所有课程即可查询所有的课程。查询课程页面如图6.11所示图STYLEREF1\s6.11查询课程页面管理员权限管理功能实现管理员进入管理员页面后可点击左侧的查询权限管理即分配用户权限。权限管理如图6.12所示。 图STYLEREF1\s6.12权限管理页面用户首页浏览搜索功能用户首页浏览搜索功能购买付费课程功能管理员统计数据功能管理员可以点击统计分析种的图标显示然后选择相应的筛选条件即可以图表显示出用户数据。图6.13统计数据查询页面本章小结本章的主要内容是阐述“合木”合木学习交流平台的主要功能实现,除此之外还介绍“合木”学习交流平台的开发流程和系统的开发环境。第7章系统测试系统测试测试目的软件的开发是一个非常繁琐的过程,在软件的开发过程中存在的一些错误是不可避免的,所以绝对没有缺陷的软件是不存在的[12]。正因如此,在实际的项目开发中,软件测试是非常重要的一个步骤,通过软件测试,可以帮助我们在系统上线前及时发现Bug方便我们在系统纠错成本较低时及时进行修复。这极大的降低了后续系统的维护成本,进而为用户带来更好的体验从而提高软件系统的质量[13]。功能测试用户管理里员登录系统功能测试用户管理员信登录系统功能测试如表7.1所示:表STYLEREF1\s7.SEQ表\*ARABIC\s11用户/管理员登录系统功能用例标识01项目名称“合木”学习交流平台模块名称登录系统测试人员黄泽锋测试类型功能测试测试日期2021/1/15测试方法黑盒用例目的规范系统登录模块功能测试用例描述登录前置条件帐号存在用例编号测试项输入动作说明期望的输出响应测试结果缺陷编号备注1界面UI无页面及各功能组件位置与预计设想相同符合期望无无2登录端无用户登录的是用户端,商家登录的是商家管理端符合预期无无用户管理员注册功能测试用户管理员注册功能测试如表7.2所示:表STYLEREF1\s7.SEQ表\*ARABIC\s12用户/商家注册系统功能测试用例标识02项目名称“合木”学习交流平台模块名称注册系统测试人员黄泽锋测试类型功能测试测试日期2021/1/16测试方法黑盒用例目的规范系统注册模块功能测试用例描述注册前置条件无用例编号测试项输入动作说明期望的输出响应测试结果缺陷编号备注1界面UI无页面及各功能组件位置与预计设想相同符合期望无无2注册输入账号密码和正确的验证码提示注册成功符合期望无无用户修改密码功能测试用户修改密码功能测试如表7.3所示:表STYLEREF1\s7.SEQ表\*ARABIC\s13用户修改密码功能测试用例标识03项目名称“合木”学习交流平台模块名称系统登录测试人员黄泽锋测试类型功能性测试测试日期2021/1/17测试方法黑盒用例目的规范系统修改密码模块功能测试用例描述修改密码前置条件能够正常登陆系统,并绑定本地账户用例编号测试项输入动作说明期望的输出响应测试结果缺陷编号备注1界面UI无页面及各功能组件位置与预计设想相同符合期望无无2修改密码输入非本地账号密码提示输入账户非本次登录的账户符合期望无无新密码和确认密码不一致提示两次修改的密码不一致符合期望无无输入本次登录的账户密码,新密码和确认密码一致提示修改成功符合期望无无视频播放功能测试视频播放功能测试如表7.4所示:表STYLEREF1\s7.SEQ表\*ARABIC\s14用户积分相关功能测试用例标识04项目名称“合木”学习交流平台模块名称系统登录测试人员黄泽锋测试类型功能性测试测试日期2021/1/28测试方法黑盒用例目的规范系统视屏模块功能测试用例描述视频播放前置条件存在视频用例编号测试项输入动作说明期望的输出响应测试结果缺陷编号备注1界面UI无视频正常播放符合期望无无视频上传功能测试视频功能测试如表7.5所示:表STYLEREF1\s7.SEQ表\*ARABIC\s15商家新增店铺功能测试用例标识05项目名称“合木”学习交流平台模块名称新增店铺测试人员吴伟杰测试类型功能性测试测试日期2020/05/03测试方法黑盒用例目的视频上传功能测试用例描述视频上传前置条件存在视频用例编号测试项输入动作说明期望的输出响应测试结果缺陷编号备注1界面UI上传相应的视频上传视频符合期望无无发布帖子功能测试发布帖子测试如表7.6所示:表STYLEREF1\s7.SEQ表\*ARABIC\s16商家新增商品功能测试用例标识06项目名称“合木”学习交流平台模块名称商品管理测试人员黄泽锋测试类型功能性测试测试日期2020/05/03测试方法黑盒用例目的规范系统发布帖子功能测试用例描述发布帖子前置条件用户已经登陆用例编号测试项输入动作说明期望的输出响应测试结果缺陷编号备注1界面UI编辑帖子内容发布成功符合期望无无本章小结本章节首先阐述了为什么需要进行软件测试,通过软件测试可以降低在后续开发维护过程中的成本开销,再下面则是我对“合木”交流学习平台进行的功能测试。第8章总结与展望总结与展望总结“合木”学习交流平台的主要用户是大学生和各种职场人士,是为了帮助有需要的大学生和专业职场人士更轻松便捷的获取专业相关学习资源而开发的网站。大学的课堂很大程度上并不能为学生提供全面而又具有深度的教学,在很多情况下课堂上教授的内容都是为了方便学生后续进行自学的基础内容。而通过“合木”学习交流平台学生则可以更方便的学习相关专业的知识,弥补自己在以往学习过程中广度和深度的不足。而对于职场人士来说,在工作中不断学习这是必要的,平台提供的问答和学习机制可以在帮助解决学生和职场人士在工作和学习中的问题,同时进行更系统的学习。平台所设想和开发的模式在现阶段已有类似网站出现,这也证实了此系统开发的可行性,同时这是我与许多同学在实际学习中遇到的问题并非空穴来风。“合木”学习交流平台的完成,是我第一次真正意义上自己一个人完成从前端到后端的所有功能和框架的搭建。在指导老师的帮助下确定项目的主题,然后查看论文和相关新闻论坛了解行业背景和开发的实际意义,最后构建项目架构对项目进行分析确定技术和需求再慢慢的完成每个部分的设计、开发和测试。在这个过程中我才发现学海无涯,知识是永远学不完的,深刻的认识到自己在计算机这个领域的沉淀
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年印刷设备预防性维护与生产效率报告
- 2026年旅游连锁加盟发展分析报告
- 2026年农业产业加盟模式创新与市场前景分析报告
- 河北2026年10月高中高二化学期中试卷及答案
- 2026年餐厨垃圾处理行业创新驱动报告
- 河南省信阳市长竹园一中学2027届中考物理押题卷含解析
- 2026年民宿行业特色民宿报告:主题民宿与市场拓展
- 2026年制药行业基因编辑药物创新报告
- 2026年种植技术发展趋势报告:农资市场新机遇
- 广东2026年10月小学三年级道德与法治期中试卷及答案
- 储能电站工程监理规划
- 安徽合肥产投资本创业投资管理有限公司招聘笔试题库2026
- 2026届九师联盟高三11月期中历史试题及答案
- 团中央课题申报书
- 职教高考语文复习阅读与欣赏专题九古代诗歌阅读第一节把握诗人的感情评价作品的思想内容 课件
- 中职《机械基础》电子教案
- 2025-2030中国纳米银网行业市场现状供需分析及投资评估规划分析研究报告
- 2025年四川成都电子科大出版社有限责任公司招聘笔试参考题库含答案解析
- T-CSEE 0399-2023 水电站紧固件技术监督导则
- 核心网及增值数据类工程项目施工方案
- 老年肾脏病诊治
评论
0/150
提交评论