




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
附录PAGE16PAGEI第1章绪论在线教育系统的设计与实现可以帮助讲师和学生在不受地理和环境的影响下,可以进行知识的传授。本章节主要介绍在线教育系统的设计与实现的目的和意义。1.1在线教育国内外现状我国互联网的发展之前比较缓慢,发展速度不是很快。现在互联网在我国的普及,对于在线教育的来说是一个很好的趋势。1.1.1国内现状中国在线教育用户规模达1.44亿,手机在线教育用户规模1.2亿,预计在未来几年间,在线教育的用户规模将保持约5%的快速增长率,而在线教育市场将以超过20%的增速发展[1]。用户的在线学习需求也随着国内互联网的普及而更加迫切,学习的领域也更加多元化,学习的方式也更多样化。国内在线教育呈现的三大主要趋势。趋势一、视频成标配,现在的在线教育基本上都以视频点播的形式存在,比以往的图文方式更加具备互动性,灵活性。趋势二、技术渗透,现在很多在线教育平台都已经加入了生物识别技术,比如语音识别、人脸识别等功能。其中语音识别技术可以对跟读效果进行评分。趋势三、小众品类也可以产生大规模。在线教育可以面向全国进行招生,这样发展更快,小众品类课程也可以汇聚成大规模。由于在线教育涵盖市场范围广泛,潜力巨大,且发展时日尚短,因此市场圈地尚未完成,众多细分领域仍处在开发初期或尚未开发的阶段[1]。国内网络基本上覆盖了全国大中小城市,但是很多乡镇农村还没有网络的普及,再加上传统教学观念的束缚,网络教学并未获得很高的推广。因此,我国在线教育平台的建设将有很大的前景。1.1.2国外现状在国外,不同国家有不同的情况。美国由于技术的优势,在线教育规模是最大的。近年来,美国高校远程教育建设快速发展,课程数目达到了4万种,其中本科课程3.5万种,研究生课程1.4万种,非学历学位课程5万种[2]。美国高校的教育内容一部分是在网络上来完成,在线学习是美国学生获取知识的主要渠道之一。英国的在线教育规模紧跟美国,高等教育基本上与美国保持了一致。英国在线教育发展的经费基本上是由国家的教育经费支持。英国在线教育被广泛的认可有三个主要因素,第一就是价格优势,在线教育价格比传统的家教要低很多;第二就是选择方便,家长可以为孩子选择更合适的讲师;第三就是方便,网络的方便性。1.2设计的目的和意义1.2.1设计的目的在线教育,顾名思义就是借助互联网,在线上进行课程传授。在平台中注册用户可以在平台上根据自己的需求选购课程并且学习,而且平台的部分课程也可以免费提供。在线教育平台的课程规划是为用户提供了一个学习计划,帮助用户更快的理解课程内容。平台上的主要的课程还是需要付费后进行学习,付费的课程可以吸引更多优秀的讲师提供优质的课程,而平台也可以在付费的课程中收取一定的费用。1.2.2设计的意义传统的授课方式是实时性的,讲师讲的知识点需要在课堂上掌握,或者通过笔记来记录,课后学生通过课堂笔记的辅助来梳理知识,这种传统的方式可能导致知识点的缺漏。讲师的授课方式也不是每一个学生都能适应,对于基础差的学生接受信息的速度较慢,并不能在课堂上及时掌握。在线教育系统可以将讲师的授课过程以视频方式记录后,学生只需要登录系统就可以查看讲师授课回放,非常方便于用户的课后梳理和复习。将实时性的课堂转换为一种可以重复循环的视频教学。
第2章需求分析随着互联网发展,在线教育成为一种零距离知识共享的交流方式,本在线教育系统主要完成在线课程选择、在线课程观看,在线知识交流,授课讲师的酬劳支付。达到只要网络允许就能够随时随地学习,为讲师提供了一条方便的教学途径,为学生制定一种的知识交流的路径。在线教育打破了传统的教学方式,只要有网络,就能学习。在线学习的学生可以将视频多次回放,直到学懂为止。在视频区域下方还可以进行评论,不懂的问题可以抛出,和热心的学生会一起讨论。而且此系统也可以让讲师的知识更快的转化为收入。2.1业务需求分析在软件的开发之前,需要对该系统中业务需求进行分析,根据分析的结果可以策划项目开发方案。一个良好的方案,可以极大的提高软件开发的效率。在线教育平台主要是平台管理者发布课程信息,学员选购课程。所以本小节从学员用户和管理员的两个业务进行分析。2.1.1管理员业务分析管理员是维护平台健康稳定运行的管理者。管理员通过账户密码登录系统后,可以对讲师的信息进行管理,管理员不仅需要管理讲师的基本信息,而且还需要将讲师的其他信息,比如学历,专业等附加信息进行管理。对于讲师有误或者变更的信息,还需要及时的修改。课程的主讲者也需要管理员去安排。管理员还需要对课程的管理,其中功能有添加课程,添加课程需要输入课程名、选择课程类型,对已经发布的课程及其内容进行审核。管理员可以管理学员信息,例如查看学员的信息,帮助学员修改基础信息等。用户对课程的印象最好的表现形式是通过对课程的评论来表示,对课程的评论,管理员需要审核评论内容,对于不符合条件的评论进行屏蔽或删除。对于收费的课程,学员购买后,需要给课程的主讲讲师提供一定的报酬,所以每一笔销售都需要记录下来。图2-1管理员用例图登录讲师管理图2-1管理员用例图登录讲师管理学生管理课程管理管理员评论管理2.1.2学员用户业务分析学员使用平台的服务时,需要先通过自己的账户和密码登录。登录系统后可以浏览所有发布的课程,课程中不仅有课程介绍、主讲老师的介绍,还有其他学员对课程的评价。学员可以根据自己的需求选购课程。对于已经选购了课程的学员,还可以查看自己的课程表。课程表中有课程名称、课程属性、授课老师等信息。。学员的密码遭到泄露或者其他因素都可以在线自助更改自己的登录密码,需要输入正确的旧密码和新密码后,方可修改密码,修改密码后用户自动退出系统到登录页面进行重新登录。图2-2学生用户用例图学生图2-2学生用户用例图学生登录课程管理信息管理注册评论管理2.2可行性分析为保证系统的设计可以顺利进行,方案的可行性分析在需求分析中是一个至关重要的环节。本系统从经济、技术、法律方面进行可行性分析。2.2.1技术可行性系统开发使用面向对象编程的Java语言,SSM(spring+springMVC+MyBatis)作为系统的框架支撑,还有利用Maven进行相关依赖的管理,系统将部署在Apache的Tomcat服务器上,数据存储选择轻量级的MySQL数据库,由于MySQL有集成的java工具包,使用上可以极大的减少开发的代码量。在此基础上采用MVC设计模式。开发使用的技术都是开源的项目,使用简单,便捷。因此在技术上是可行的。2.2.2经济可行性本系统开发主要用于在线授课,为讲师和学生提供了便捷。本系统投入的开发经费也很低。不需要大规模的设备硬件,而且数据库和开发工具都是免费的。系统部署在阿里云的云端服务器中,只作为测试,所需要的服务器配置也很低,对应的服务费也很便宜。开发成本很低,因此项目在经济上是可行的。2.2.3操作可行性本系统采用IntelliJIdea编程软件进行编写和测试代码。在Windows系统上搭建Web开发环境,连接MySQL数据库。系统设计完成后,部署在阿里云的云端服务器也是很简单的环境搭建,并且有相关文档的帮助。因此项目操作是可行的。2.3系统开发环境分析根据对系统的需求分析后,选择的开发环境最低配置如表2-1。表2-SEQ表格\*ARABIC1系统开发环境配硬件环境:处理器Intel酷睿i5存储硬盘200GB运行内存4G软件环境操作系统Windows10开发工具Idea,SQLyog,XshellJDK1.8服务器ApacheTomcat7.0及以上数据库MySQL5.5
第3章概要设计概要设计在需求分析和设计之间起到桥梁的作用,使得需求分析和设计无缝连接,概要设计将需求分析得到的用例图转化为软件结构和数据结构[4]。一个功能完善的系统逻辑非常复杂,为了让后续开发变的有条有理,可以将系统总体分割成多个模块,然后建立层次结构和模块之间的关联调用。概要设计的目的是建立逻辑模型。本章节主要包括系统的总体设计、各功能模块设计以及数据库设计。3.1系统总体设计3.1.1结构设计在软件的开发之前,需要对该系统中各模块的功能进行分析,根据分析的结果可以策划项目开发方案。一个良好的方案,可以极大的提高软件开发的效率。本节将从用户功能模块、课程管理模块、管理员模块结合用例图进行系统的功能分析。图3-1系统总体功能模块图在线教育系统用户功能模块图3-1系统总体功能模块图在线教育系统用户功能模块课程管理模块管理员模块3.1.2流程设计图3-2管理员流程图开始结束登录登录成功?课程管理图3-2管理员流程图开始结束登录登录成功?课程管理讲师管理学员管理YN(2)学员用户业务流程:当游客用户访问平台时,可以查看发布的课程信息,由于游客身份在平台上没有相应的记录,不能进行选购等操作。当游客需要进一步的操作时,系统会进行判断用户是否已经登录,若为游客身份的用户,会跳转到注册页面进行用户注册。注册后的用户,登录系统后,可以浏览课程、选购课程、查看课表等。如图3-3为学员业务流程图。图3-3用户流程开始结束浏览信息登录成功?图3-3用户流程开始结束浏览信息登录成功?浏览信息课程管理信息管理YN登录是否注册注册NYYN3.2.1管理员功能模块为保障系统能够稳定、健康的运行,管理员的作用至关重要。管理员能够对使用平台的学员、讲师、课程进行管理。(1)登录和注销:为了平台的安全性,管理员需要通过自己的账户和密码登录系统。只有账户和密码,还有随机产生的验证码通过了验证,就可以登录到系统中,否则无法登陆并且提示密码错误或者账户不存在。当管理员操作完成要退出系统时,可以通过注销按钮,清除登录缓存,完成安全退出。(2)学员管理:平台的用户是为了寻求知识的学员。学员的类型有在校学生、社会工作人员等。学员选购的课程等信息,管理员都可以在后台进行查看。为了给这些用户提供高质量的服务,管理员可以根据用户的需求,帮助用户修改个人信息。(3)讲师管理:在线教育平台也给讲师提供了授课途径的平台。学员在选购课程的时候,学员可以查看课程主讲讲师的信息,比如讲师的学历,专业,教学风格等。学员可以通过这些信息去选择自己喜欢的课程。管理员不仅需要对老师的信息进行管理,还需要给新课程进行主讲讲师的安排。图3-4管理员功能模块图管理员登录图3-4管理员功能模块图管理员登录讲师管理学生管理课程管理添加讲师修改信息安排课程信息修改信息导出课程发布课程修改章节添加信息查看讲师查询章节修改视频添加章节管理3.2.2学员功能模块(1)学员用户登录和退出:各学员都需要登录系统后,方可使用其他功能。登录时学员需要提供自己的账户和密码,并且符合要求后方可登录成功。为了信息安全,为已经登录系统的学员提供了安全退出功能。(2)学员注册:游客用户要使用更多功能时,需要进行注册为网站学员方可使用。游客用户注册时,需要提供自己的姓名、邮箱、手机号,并且自己需要设置一个新密码。这些提供的信息都符合要求后,注册为学员。(3)学员信息管理:本系统为学员用户提供个人信息的管理,包括基本信息的修改。为忘记密码的学员提供密码找回功能。(4)课程管理:可以浏览所有发布的课程,根据自己的需求进行选购。若已经购买了课程,可以查看自己的课程表,也可以在线通过视频进行学习。(5)评论管理:学员在选择课程时,课程的实际体验也是一个选择的标准。但是对应的课程没有经历过,就不会知道体验如何。因此,课程的评论对于学员来说是一个选择参考。以往学员学习后,对于课程的评论会展示给后来要学习的学员。让正在选择的学员有个参考。而对于已经学习了或者正在学习每个课程的学员,可以在课程的评论区中留下自己对课程的看法和意见,以帮助管理员审核,帮助讲师改进课程的教授,为选购者提供一个参考。图3-5学员功能模块图登录学员注册图3-5学员功能模块图登录学员注册课程管理信息管理课程浏览课程选购课程学习查看课表信息查看信息修改评论管理评论查看课程评论3.3数据库设计将数据存储到数据库中是数据持久化的一种方式。本系统采用轻量级,并且开源的MySQL数据库作为持久化支持。系统和数据库之间的连接比较频繁,为了保持较高的访问效率,需要对数据库的设计进行优化,在数据库设计时,需要规范化设计,将表中的数据做到更低的重复和冗余。3.3.1数据库概要设计根据系统的需求分析,系统中的业务逻辑是建立在多个实体之上,为了系统的稳定运行,实体的信息需要存储在数据库中进行持久化。本系统中的主要实体有学员实体、讲师实体、课程实体、课程节点实体、评论实体、购物车实体、学习记录实体、用户登录记录实体。以下是各个实体的详细设计。图3-6学员实体学员用户ID姓名用户状态密码电话注册时间图3-6学员实体学员用户ID姓名用户状态密码电话注册时间性别用户名年龄用户头像(2)讲师实体:在平台中,讲师没有登录平台的权限,讲师的所有信息都由管理员进行相关操作。记录讲师的信息主要是给学员用户展示。讲师实体的属性有讲师ID、讲师名称、讲师资历简介、讲师简介、讲师头衔、讲师介绍图片路径、创建时间、更新时间、专业ID、讲师状态。讲师实体如图图3-7讲师实体讲师ID图3-7讲师实体讲师ID简介头衔名称资历创建时间图片专业更新时间图3-8课程实体课程ID专业ID课程原价名称状态创建时间课程简介图3-8课程实体课程ID专业ID课程原价名称状态创建时间课程简介课程详情有效期课程售价总课时销售数量介绍图片路径(4)课程节点实体:课程实体中存储的是课程的介绍信息,课程的具体内容需要用课程节点实体来记录。课程实体节点属性有课程ID、节点名称、父级ID、添加时间、显示排序、播放次数、是否试听、视频地址、节点类型。图3-9课程节点实体课程节点课程ID图3-9课程节点实体课程节点课程ID显示排序节点名称父级ID添加时间播放次数是否试听视频地址评论ID父级ID内容用户ID创建时间点赞量回复量相关ID图3-10评论实体评论ID父级ID内容用户ID创建时间点赞量回复量相关ID图3-10评论实体(6)学习记录实体:为了给用户提供更好的服务,需要记录学员用户的学习情况。学习记录实体属性有用户ID、课程ID、观看次数、课程名称、节点名称、观看总时间、最后观看时间。学习记录实体如图3-11。学习记录ID课程ID学习记录ID课程ID用户ID观看总时间观看次数最后观看时间用户登录记录ID登录时间用户ID操作系统浏览器登录时IP(7)用户登录记录实体:学员用户的登录环境有很多,如Windows系统、iOS系统等,使用的浏览器有QQ浏览器、360浏览器等。用户登录记录实体的属性有ID用户登录记录ID登录时间用户ID操作系统浏览器登录时IP图3-12用户登录记录实体图3-13总体E-R图各实体之间的关系如图课程学员管理图3-13总体E-R图课程学员管理学员讲师课程节点评论用户登录记录用户学习记录11属于11N属于1NN13.3.2数据库逻辑设计(1)学员用户表(edu_user):学员用户是平台的主要使用者,为了给学员提供更好的服务,平台需要记录学员的基本信息。学员用户表的主要字段如表3-1。表3-1学员用户表字段类型长度备注USER_IDInt11自增,主键MOBILEVarchar15电话EMAILVarchar64邮箱PASSWORDVarchar100密码USER_NAMEVarchar50用户名SEXTinyint(1)性别AGEInt3年龄CREATE_TIMETIMESTAMP注册时间,非空IS_AVALIBLETinyint(1)用户状态PIC_IMGVarchar255用户头像(2)讲师表(edu_teacher):讲师表的主要属性有讲师ID、讲师名称、讲师资历简介、讲师简介、讲师头衔、讲师介绍图片路径、创建时间、更新时间、专业ID、讲师状态。如表3-2。表3-2讲师表字段类型长度备注IDInt11自增,主键NAMEVarchar20用户名,非空EDUCATIONVarchar200资历,非空(续表3-2)字段类型长度备注CAREERText简介,非空IS_STARVarchar50头衔,非空PIC_PATHTinyint图片,非空SUBJECT_IDInt11专业ID,非空CREATE_TIMETIMESTAMP创建时间,非空UPDATE_TIMETIMESTAMP更新时间,非空(3)课程表(edu_course):课程表的属性主要有ID、名称、状态、专业ID、课程原价、课程售价、课程简介、课程详情、总课时、销售数量、有效期、创建时间、介绍图片路径。如表3-3。表3-3课程表字段类型长度备注COURSE_IDInt11自增,主键COURSE_NAMEVarchar255名称,非空IS_AVALIABLEInt2状态,非空SUBJECT_IDInt11专业ID,非空SOURCE_PRICEInt6课程原价,非空CURRENT_PRICEInt6课程售价,非空TITLEVarchar200课程简介,非空CONTEXTLongtext课程详情,非空LESSION_NUMInt11总课时,非空PAGE_BUYCOUNTInt11销售数量,非空LOSE_TIMEVarchar255有效期,非空ADD_TIMETIMESTAMP创建时间,非空LOGOVarchar255介绍图片路径,非空(4)课程节点实表(edu_course_kpoint):课程节点表中的属性节点ID、主要课程ID、节点名称、父级ID、添加时间、显示排序、播放次数、是否试听、视频地址、节点类型。课程节点表如表3-4。表3-4课程节点表字段类型长度备注KPOINT_IDInt11自增,主键COURSE_IDInt11课程ID,非空NAMEVarchar20节点名称,非空PARENT_IDInt11父级ID,非空PLAY_COUNTInt11播放次数,非空SORTInt11显示排序,非空IS_FREETinyint是否试听,非空VIDEO_URLVarchar255视频地址,非空ADD_TIMETIMESTAMP添加时间,非空(5)评论表(edu_comment):评论表的属性主要要ID、评论内容、用户ID、父级ID、点赞数量、回复数量、创建时间。评论表如表3-5。表3-5评论表字段类型长度备注COMMENT_IDInt11自增,主键USER_IDInt11用户ID,非空CONTENTVarchar1000评论内容,非空SORTInt11父级ID,非空OTHER_IDInt11评论相关ID,非空PRAISE_COUNTInt11点赞数量,非空REPLY_COUNTInt11回复数量,非空ADDTIMETIMESTAMP创建时间,非空(6)学习记录表(edu_course_studyhistory):学习记录表的主要属性有ID、课程ID、用户ID、最后观看时间、观看总时长、观看次数。学习记录表如表3-6。表3-6学习记录表字段类型长度备注IDInt11自增,主键COURSE_IDInt11课程ID,非空USER_IDInt11用户ID,非空PLAYERCOUNTInt4观看次数,自增UPDATE_TIMETIMESTAMP最后观看时间,非空PLAYER_LONGInt11观看总时长(7)用户登录记录表(edu_user_login_log):用户登录记录表的主要属性有记录ID、用户ID、最近的登录时间、登录地址、操作系统、浏览器。如表3-7。表3-7用户登录记录表字段类型长度备注LOG_IDInt11自增,主键USER_IDInt11用户ID,非空LOGIN_TIMETIMESTAMP登录时间,非空IPVarchar20登录IPOS_NAMEVarchar50操作系统USER_AGENTVarchar50浏览器
第4章详细设计详细设计是在需求分析和概要设计的基础之上完成的。本章节从各个功能模块介绍系统的设计。4.1登录功能模块详细设计本系统中,主要有两种不同类型的用户,管理员和学员用户。管理员登录后跳转到系统后台管理页面,用户登录后跳转到平台首面。因此登录模块分为两个不同的用户。图4-1管理员登录界面(1)管理员登录:管理员通过平台后台管理地址跳转到管理员登录界面,管理员不仅需要提供自己的账户、密码,还要在验证码框中输入系统自动产生的4位数字验证码。填写完毕后点击登录按钮,可以进入系统中。若其中任意一项出现错误,系统会提示账户或密码错误、或者验证码错误,并且一直停留在登录页面,直到输入信息都正确才可进入系统。管理员登录界面如图4图4-1管理员登录界面管理员登录代码实现如下:@RequestMapping("/main/login")publicModelAndViewlogin(HttpServletRequestrequest,HttpServletResponseresponse,@ModelAttribute("sysUser")SysUsersysUser){ ModelAndViewmodel=newModelAndView(); model.setViewName(loginPage); model.addObject("sysUser",sysUser);if(sysUser.getLoginName()==null||sysUser.getLoginName().trim().equals("")){ model.addObject("message","请输入用户名!"); returnmodel; } if(sysUser.getLoginPwd()==null||sysUser.getLoginPwd().trim().equals("")){ model.addObject("message","请输入密码!"); returnmodel; } //获取Session中验证码StringrandCode=(String)request.getSession().getAttribute(CommonConstants.RAND_CODE); //用户输入的验证码 StringrandomCode=request.getParameter("randomCode"); if(randomCode==null||!randomCode.equals(randCode)){ model.addObject("message","验证码不正确!"); returnmodel; } request.getSession().removeAttribute(CommonConstants.RAND_CODE); sysUser.setLoginPwd(MD5.getMD5(sysUser.getLoginPwd())); SysUsersu=sysUserService.queryLoginUser(sysUser); if(su==null){model.addObject("message","用户名或密码错误!"); returnmodel;} returnmodel;}图4-2学员用户登录界面(2)学员用户登录:学员用户注册时提供了自己的邮箱账号。学员用户通过平台地址跳转到平台前台页面,点击页面上部的“登录”按钮。出现学员用户登录页面。输入自己注册时提供的邮箱账号、平台账号密码,输入验证码,三者都正确后,可以登录到系统中。当任意一项出错,都会提示用户对应的有误信息。学员用户登录界面如图4图4-2学员用户登录界面4.2管理员功能模块详细设计4.2.1学员信息管理(1)查看学员列表:管理员登录系统后,点击导向栏中“学员”按钮,点击左侧菜单栏中的“学员列表”按钮,右侧区域即可显示学员的列表。学图4-3学员列表界面员列表如图图4-3学员列表界面管理员查看学员列表代码实现如下:@RequestMapping("/getuserList")publicModelAndViewqueryUserList(HttpServletRequestrequest,@ModelAttribute("queryUser")QueryUserqueryUser,@ModelAttribute("page")PageEntitypage){ ModelAndViewmodel=newModelAndView(); try{ List<User>userList=userService.queryUserListPage(queryUser,page); model.addObject("userList",userList); model.addObject("page",page); }catch(Exceptione){ model.setViewName(this.setExceptionRequest(request,e)); logger.error("queryUserList()--error",e); } returnmodel;}(2)修改学员密码:管理员在学员列表中找到需要修改密码的学员后,点击对应的“修改密码”按钮,在修改密码框中填入用户的新密码,即可修改成功。图4-4修改学员密码界面修改学员用户密码界面如图图4-4修改学员密码界面管理员修改学员用户密码代码实现如下:publicMap<String,Object>initUpdateUser(HttpServletRequestrequest,@ModelAttribute("user")Useruser){ Map<String,Object>json=newHashMap<String,Object>(); if(user.getPassword()==null||user.getPassword().trim().length()==0||!WebUtils.isPasswordAvailable(user.getPassword())){json=this.setJson(false,"密码由字母和数字组成且≥6位≤16位",null); returnjson; } Stringpassword=request.getParameter("passwords")==null?"":request.getParameter("passwords"); if(!user.getPassword().equals(password)){ json=this.setJson(false,"两次密码不一至!",null); returnjson; } user.setPassword(MD5.getMD5(user.getPassword())); userService.updateUserPwd(user); json=this.setJson(true,"修改成功",null); returnjson;}图4-5学员登录日志界面(3)查看学员登录日志:在学员列表中找到需要查看的学员,点击右侧登录日志,即可看到该学员的登录日志,其中有登录时的时间、IP、所使用的系统和浏览器。学员登录日志如图4图4-5学员登录日志界面查看学员登录日志代码实现如下:publicModelAndViewlookUserLog(HttpServletRequestrequest,@PathVariable("userId")intuserId,@ModelAttribute("page")PageEntitypage){ ModelAndViewmodel=newModelAndView();model.setViewName(getViewPath("/admin/user/user-loginlog"));//日志 List<UserLoginLog>logList=userLoginLogService.queryUserLogPage(userId,page); model.addObject("logList",logList); model.addObject("page",page); model.addObject("userId",userId); returnmodel;}4.2.2讲师信息管理(1)讲师列表查看:管理员可以点击导航栏中的“讲师”按钮,页面左侧出现菜单栏,然后点击菜单中的“讲师列表”按钮,就可以看到讲师列表。讲师列表界面如图4-6讲师列表界面图4图4-6讲师列表界面图4-7讲师信息修改界面(2)讲师信息修改:在讲师列表中找到需要修改信息的讲师,点击“修改”按钮,跳转到讲师信息修改页面。将有误的信息更改,然后点击“提交”即可。讲师修改界面如图4图4-7讲师信息修改界面图4-8讲师信息删除界面(3)讲师删除:当讲师的信息需要删除时,在讲师列表中找到需要删除的讲师,点击对应教师信息条右边的“删除”按钮,再次确认后点击“确认”按钮,即可删除对应的讲师。点击“取消”将返回。讲师删除截图如图图4-8讲师信息删除界面图4-9讲师信息添加界面(4)讲师信息添加:管理员点击左侧“添加讲师按钮”,跳转到讲师添加页面,填写讲师的名称,讲师资历,资历可用一句话简述即可,然后选择讲师的专业、职称,再填写最后的讲师简介。符合要求即可注册到本平台中。讲师添加界面如图4图4-9讲师信息添加界面讲师信息添加代码实现如下:@RequestMapping("/teacher/delete/{id}")@RequestMapping("/teacher/add")publicStringaddTeacher(HttpServletRequestrequest,ModelAttribute("teacher")Teacherteacher){ if(ObjectUtils.isNotNull(teacher)){ teacher.setStatus(0);//状态:0正常1删除 teacher.setCreateTime(newDate());//添加时间 teacher.setUpdateTime(newDate()); teacherService.addTeacher(teacher); } return"redirect:/admin/teacher/list";}4.2.3课程信息管理图4-10专业添加界面(1)课程所属专业添加:点击导航栏中的“课程”按钮,再点击左侧菜单栏中的“专业管理”按钮,即可添加专业信息,专业信息只需要填写专业名称即可,在已有的专业下,可以继续添加子专业,但是不可添加第三级专业。专业添加界面如图4图4-10专业添加界面课程所属专业添加代码实现如下:@RequestMapping("/subj/createSubject")@ResponseBodypublicMap<String,Object>createSubject(Subjectsubject){ Map<String,Object>json=newHashMap<String,Object>(); json=this.setJson(true,null,subject); returnjson;}图4-11课程列表界面(2)课程列表查看:在课程页面导航栏下,点击左侧菜单栏中的“课程管理”按钮,即可看到所有的发布的课程以及课程的基本信息。如图4图4-11课程列表界面图4-12课程添加或修改界面(3)课程的发布与修改:管理员发布课程,点击“新增课程”,跳转到课程添加页面,修改课程休息时,点击对应课程的“修改”按钮,就可以跳转到对应课程的修改页面。新课课程和修改课程的页面是相似的,不同的是修改页面包含了已有的信息。添加课程与修改课程都需要添加或者修改课程名称、专业分类、状态、总课时、课程原价、课程售价、有效期限、主讲讲师、课程介绍。填写或者修改完毕后,点击提交按钮,即可完成添加或者修改。如图4图4-12课程添加或修改界面课程添加代码实现如下:@RequestMapping("/cou/addCourse")publicModelAndViewaddCourse(HttpServletRequestrequest,@ModelAttribute("course")Coursecourse){ ModelAndViewmodel=newModelAndView(); model.setViewName("redirect:/admin/cou/list"); course.setAddTime(newDate()); course.setUpdateTime(newDate()); courseService.addCourse(course); //添加课程与讲师的关联数据 this.addCourseTeacher(request,course); courseTeacherService.deleteCourseTeacher(course.getCourseId()); StringteacherIds=request.getParameter("teacherIdArr"); if(teacherIds!=null&&teacherIds.trim().length()>0){ String[]tcIdArr=teacherIds.split(","); StringBufferval=newStringBuffer(); for(inti=0;i<tcIdArr.length;i++){ if(i<tcIdArr.length-1){ val.append("("+course.getCourseId()+","+tcIdArr[i]+"),"); }else{ val.append("("+course.getCourseId()+","+tcIdArr[i]+")"); } } courseTeacherService.addCourseTeacher(val.toString()); } returnmodel;}(4)章节管理:课程是按照章节来排序,章节的划分也是为了课程的内容能够更模块化,将同一个系列的内容归在同一章节中,这样更加的方便学员学习,方便讲师授课。课程的章节可以分两级。一般来说,二级章节会有对应的课程视频。管理员在课程列表中找到对应的课程,点击“章节管理”按钮,就可以管理该课程的章节信息。第一级目录创建,只需要填写节点名称、选择为目录已经排序序号即可。创建第二级节点时,先选择第一级节点,点击“添加节点”,即可在第一级节点下创建第二级节点。第二级节点需要填写节点名称、节点类型选择视频或文本、上传视频地址、播放时间、是否免费,已经选择讲师。填写完后,点击“确定”按钮即可完成章节管理。章节管理界面如图4-13。图4-13图4-13章节管理界面@RequestMapping("/kpoint/addkpoint")@ResponseBodypublicMap<String,Object>addKpoint(@ModelAttribute("courseKpoint")CourseKpointcourseKpoint){ Map<String,Object>json=newHashMap<String,Object>(); courseKpoint.setAddTime(newDate()); courseKpoint.setFree(1); courseKpointService.addCourseKpoint(courseKpoint); json=this.setJson(true,null,courseKpoint); returnjson;}图4-15评论回复查看界面图4-14评论查看界面(5)评论管理:用户对课程的评论,管理员可以进行查看,对于用语不规范或者不符合相关规定的评论可以进行删除,也可以查看评论的回复内容。如图4-14图4-15评论回复查看界面图4-14评论查看界面查看评论回复代码实习如下:@RequestMapping("/commentreply/query")publicStringqueryCommentReply(HttpServletRequestrequest,@ModelAttribute("page")PageEntitypage,Commentcomment){List<Comment>commentList=commentService.getCommentByPage(comment,page);//查询评论 request.setAttribute("commentList",commentList);//评论list request.setAttribute("comment",comment);//查询评论条件 returnqueryCommentReply;}4.3学员用户功能模块详细设计4.3.1学员信息管理(1)学员用户注册:用户注册为本平台的学员用户,方可选购课程并学习。游客用户在浏览器地址栏输入本系统地址后,到达欢迎页面,点击“注册”按钮即可跳转到注册页面。用户需要提供一个未在本平台注册过的邮箱账号和手机号码,并自己设置一个密码后填写准确的验证码。图4-16学员用户注册界面平台会员才可以成功的注册。注册界面如图图4-16学员用户注册界面学员用户注册代码实现如下:@RequestMapping("/createuser")@ResponseBodypublicMap<String,Object>createUser(HttpServletRequestrequest,HttpServletResponseresponse,@ModelAttribute("user")Useruser){ Map<String,Object>json=newHashMap<String,Object>(); StringregisterCode=request.getParameter("registerCode")==null?"":request.getParameter("registerCode");ObjectrandCode=request.getSession().getAttribute(CommonConstants.RAND_CODE); user.setCreateTime(newDate()); user.setIsavalible(1); user.setPassword(MD5.getMD5(user.getPassword())); user.setLastSystemTime(newDate()); userService.createUser(user); request.getSession().removeAttribute(CommonConstants.RAND_CODE); json=this.setJson(true,"注册成功",null); returnjson;}图4-17学员密码找回界面(2)学员找回密码:学员用户忘记登录密码后,除了联系管理员修改密码外,还可以自助的修改登录密码。当学员用户忘记密码后,点击登录下方的“忘记密码”链接,即可跳转到密码查找页面。在邮箱账号一栏输入正确的邮箱,并输入验证码,点击“提交”按钮,系统会提示“邮件发送成功,请登录邮箱查收”。登录自己的邮箱,在邮箱中会有一个临时密码,用户使用临时密码登录系统,在个人中心中,找到密码设置按钮,输入旧密码,再输入新密码两次,点击“修改”按钮即可修改密码。另外通过邮箱得到临时密码的用户应该尽快完成密码修改。密码找回界面如图4-17、4图4-17学员密码找回界面通过邮箱发送信息代码实现如下:publicvoidSendToNewUser(Stringeamilurl,Stringtext,Stringtitle){ Propertiesprops=newProperties(); props.setProperty("mail.smtp.auth","true"); props.setProperty("tocol","smtp");图4-18学员密码修改界面图4-18学员密码修改界面 Sessionsession=Session.getInstance(props); session.setDebug(true); Messagemsg=newMimeMessage(session); Transporttransport=null; try{ msg.setSubject(title); msg.setText(text); msg.setFrom(newInternetAddress("发件人邮箱")); msg.setRecipient(Message.RecipientType.TO, newInternetAddress("收件人邮箱")); msg.saveChanges(); transport=session.getTransport(); transport.connect("发件人邮箱","授权码"); transport.sendMessage(msg,msg.getAllRecipients()); System.out.println("邮件发送成功..."); }catch(MessagingExceptione){ System.out.println("邮件发送失败...");} finally{transport.close();}}图4-19学员信息修改界面(3)个人信息修改:学员用户登录系统后,点击“个人中心”,再点击“基础资料”,就可以更新自己的信息。用户需要提供正确的邮箱、手机号等信息。信息修改界面如图4图4-19学员信息修改界面4.3.2讲师信息管理图4-19讲师详细介绍界面学员在选课的时候是可以查看主讲老师的的信息的,也可以直接根据讲师选择课程。学员用户只要点击老师的名字,即可看到讲师的基本信息。讲师基本信息如图4图4-19讲师详细介绍界面4.3.3课程信息管理图4-20课程详细介绍界面(1)课程选购:当游客用户注册为平台会员后,可以选购平台上所有发布的课程。学员用户点击选中课程后,页面跳转到课程详细信息页面,。用户点击“购买”按钮即可购得该课程。课程选购界面如图4图4-20课程详细介绍界面图4-21课程详细介绍界面(2)课程学习:学员用户购买了需要的课程后,点击“立即观看”按钮可以通过视频方式在线学习。在线视频播放完全支持快进、快退、暂停、播放。在视频下方也有讨论区和评价区。视频在线观看界面如图4图4-21课程详细介绍界面4.3.4问答信息管理图4-22问答浏览界面(1)问答浏览:“问答”是一种交流方式。相当于一个小小的论坛。学习或者使用平台有疑惑的用户可以在“问答”中提出问题,可以解惑的用户可以在该问题下进行解答。其他用户也可以看到问答。如图4图4-22问答浏览界面图4-23问答提问界面(2)问题提出:问答是全员可以使用的功能。有问题就可以提出来。用户点击“我要提问”按钮,跳转到发布问题页面。填写问题标题、问题描述,问题标签,就可以进行提问了。问题发布界面如图4图4-23问答提问界面问题提出代码实现如下:@RequestMapping("/questions/ajax/add")@ResponseBodypublicObjectaddQuestions(HttpServletRequestrequest,@ModelAttribute("questions")Questionsquestions){Map<String,Object>json=newHashMap<String,Object>();try{ StringrandomCode=request.getParameter("randomCode"); questions.setCusId(Long.valueOf(userId)); questions.setAddTime(newDate()); questionsService.addQuestions(questions); String
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 班助培训内容
- 桥梁冬季施工安全教育
- 度独家代理合同书:独家经营权授权
- 2024珠海艺术职业学院中职部工作人员招聘考试及答案
- 2024温州华侨职业中等专业学校工作人员招聘考试及答案
- 2024济南电子机械工程学校工作人员招聘考试及答案
- 企业数据共享与保密合同
- 货物运输居间合同范本
- 腔镜器械清洗规范
- 短期仓储租赁合同模板
- 沪教版小学五年级数学下册全册单元试卷
- 中俄技术创新合作的必要性和领域选择
- 表B旅游民宿一般要求评分表
- 河北省中等职业学校专业设置管理办法实施细则
- 医院物业运送服务专项方案
- 氯化铵安全技术说明书MSDS
- 河海大学材料力学第五章弯曲应力
- 关于建立涉农贷款专项统计制的通知银发号
- 螺杆设计说明书
- 国家开放大学《理工英语3》章节测试参考答案
- 常用螺电批扭力选用对照表
评论
0/150
提交评论