APP下载

5G时代下“合格父母”资格认证学习平台的设计与实现

2021-11-28张代钊王东王强万佳欣熊林周辉

电脑知识与技术 2021年30期
关键词:大数据

张代钊 王东 王强 万佳欣 熊林 周辉

摘要:家庭是孩子最直接受教育的地方,父母需要懂得深厚的知识和道理来为孩子的前程掌好舵,准父母有必要获得“合格父母”上岗证。该文旨在设计与实现了一个专为父母人群提供付费视频学习、试题测验等能帮助其获得“合格父母”认证的学习平台。该平台前端使用Vue.js搭建,后端使用Spring Boot+Spring Cloud+Mybatis-Plus等技术进行开发,从系统调试和试运行情况看,平台具有实用、可维护、可分布式部署等优势。

关键词:SpringCloud;微服务架构;Vue;大数据;准父母

中图分类号:TP311      文献标识码:A

文章编号:1009-3044(2021)30-0001-03

开放科学(资源服务)标识码(OSID):

1 背景

随着信息化、数字化时代的到来,网络应用已触及生活的每个角落,为人类的生活带来了很多便利。与此同时,人们也更容易接触到网络中的不良信息。尤其是小孩,他们会更加容易受到网络不良信息的影响,因此,这个时代的父母对孩子的成长引导显得比以往更加重要。然而,年轻的父母们往往是缺乏育儿经验的,如果不具备教育孩子的相应知识就结婚生子,必然会对孩子的健康成长产生不利影响。因此,该文设计和实现了一个5G时代下“合格父母”资格认证学习平台,为准父母人群提供全面的育儿课程推荐、视频课程教学、习题练习、教育經验分享和讨论服务;也为拥有丰富教育经验的讲师,提供一个可发布付费视频从中获取利益的平台。该平台的建立和应用,必将提升准父母人群在家庭教育方面的素养,促进未成年人的健康发展。接下来,该文将从需求分析、系统设计、系统实现几方面对平台的设计与实现过程进行详细讨论。

2 需求分析

2.1 前台功能需求

用户未登录时,是以游客的视角进行网站的访问,可以简单地浏览网站首页的相关信息,比如广告信息、热门课程信息、热门讲师信息等。在课程列表,用户可以通过设置类别、浏览数、购买人数、收藏数等参数来对课程进行查看,或直接在搜索栏搜索查找;在讲师列表,可以通过设置浏览数、关注数等参数进行查看。点击课程封面或讲师头像可进入对应的详情页面,包含了该课程的简介、课程大纲、评论或者该讲师的教育经历、教育资质和创作的视频等信息。

用户在通过验证并登录该平台后,成为该平台的正式用户,拥有了前台全部功能的使用权限。在游客原有的前台操作权限的基础上,可以在课程的详情页中进行评论、收藏、购买、视频学习、题库练习等操作;在讲师的详情页中进行私信、关注等操作。正式用户有个人中心模块的操作权限,可以修改个人基本信息、查看关注列表、查看购买课程列表、申请加入讲师、回复他人私信等。

2.2 后台管理功能需求

讲师需要拥有以下权限:1)可以对自己创建的课程进行查看、添加、修改和删除等操作;2)可以对自己每个课程对应的题库进行查看、添加、修改和删除等操作。

管理员需要拥有以下权限:1)可以对正式用户提出的讲师申请和讲师发布的视频进行审核的操作;2)可以对课程进行查看、添加、修改、上架和下架等操作;3)可以查看、添加、修改、删除课程分类。4)可以对课程对应的题库进行查看、添加、修改、删除等操作;5)可以添加、修改、查看、删除讲师账号信息等操作;6)可以对前台页面的广告、热门课程和热门讲师等信息的修改。

超级管理员拥有管理员的全部操作权限,除此之外还需要拥有以下权限:1)可以对系统的管理员账号进行添加、删除等管理操作;2)可以对管理员账号添加后台操作权限、删除后台操作权限等操作。

系统由准父母用户、讲师、管理员、超级管理员四种角色共同参与系统的操作。角色用例图如图1所示。

3 系统设计

3.1 系统功能结构设计

系统主要分为前台显示和后台管理两大模块。前台系统的功能模块主要有首页信息、课程信息、讲师信息、练习题信息、登录注册、个人中心等;后台管理系统的功能模块主要有权限管理、讲师管理、课程管理、题库管理、广告管理等。系统的功能结构如图2所示。

3.2 数据库设计

根据功能的需求分析,该系统使用MySQL关系型数据库来对大多数表和字段进行设计,使用MongoDB非关系型数据库来对题库进行表和字段的设计。在设计数据库表的字段长度时,需要根据实际需求对表中的字段长度进行设置,要充分考虑各个字段的长度,尤其是数字类型字段和文本类型的字段[1]。在数据库设计过程中,确定合适的外键和主键尤为重要,主键是每个表的唯一标识,表与表之间采用外键进行联系[2]。系统数据库中主要表包括:用户信息表、讲师表、课程表、课程类别表、章节表、订单表、题库表、父评论表、子评论表、视频表、权限表等。部分数据表之间的关系如图3所示。

4 系统实现

4.1 系统关键技术

该系统采用B/S结构,前端的前台页面采用基于Vue.js的Nuxt.js框架,该前端框架有强大的模块化体系结构;前端的后台页面则采用Vue+ElementUI框架,是一个美观、方便的后台管理框架。后端是基于Java实现微服务开发的主流框架Spring Cloud+Spring Boot,Spring Cloud是一系列框架的集合;其中的服务注册发现、服务日志、负载均衡、请求限流、服务容错与服务配置等功能[3],都可以基于Spring Boot框架的开发特性去实现简单启用和部署。数据库使用MySQL关系型数据库、Redis和MongoDB非关系型数据库来进行数据的存储。为了应对大数据时代的到来,部分课程数据上传到HDFS分布式文件系统,以便后续Hadoop集群进行MapReduce任务的数据处理与分析。最后选取MyBatis-Plus框架作为主要的持久层的框架[4]。

4.2 系统主要模块实现

5G时代下“合格父母”资格认证学习平台系统采用Spring Cloud+MySQL+Redis+MongoDB+Hadoop的微服务架构方式进行搭建。每个服务都会通过Spring Cloud Feign,使用HTTP协议进行远程服务的请求和调用,用户的请求由Spring Cloud Ribbon组件来实现负载平衡。当前端进行服务接口的请求时,由Gateway网关为微服务架构提供简单、有效且统一的API路由管理方式[5]。在分布式系统中部署的服务,由Spring Cloud Hystrix来提供服务隔离、故障恢复等容错功能;最后采用 Nacos 作为服务发现和配置中心的微服务管理平台,完成项目简单的配置和维护。

根据业务需求和系统具体实现,系统分为八个微服务,分别是权限服务、课程讲师服务、题库服务、邮件服务、订单服务、用户服务、视频存储服务和图像存储服务。每个模块的功能由单个或多个服务的调用来实现。系统中每个模块都按照高内聚,低耦合的思想,使系统拥有高度可扩展性[6]。由于篇幅限制,只介绍该平台具有代表性的三个模块的实现。

1)注册登录模块

游客用户想要获取前台更多的操作权限,必须进行正式用户的注册与登录。在用户注册页面,调用邮件服务,由spring-boot-starter-mail实现发送注册验证码的功能;后端使用Redis缓存存储注册验证码,来对用户的注册提交进行计时验证。

登录则采用SSO单点登录,一处登录处处登录。登录成功后,后端会按照规则由登录的用户信息加密生成一串Token字符串,把该Token字符串以键值对的方式存入Redis,并将Token字符串返回给前端,在前端获取到该字符串后立刻存入Cookie;当进入其他需要用户验证的模块时,直接从Cookie中取出Token字符串,然后调用后端对应的接口,根据Token值获取用户信息来实现用户验证及登录,如果在Redis中没有查询到该Token值或者时间失效,就返回给前端验证失败的信息,强制其重新回到登录页面进行登录。具体实现流程如图4所示。

2)课程管理模块

课程管理模块主要实现了对课程分类、课程详情、课程章节、课程列表的管理。

①在添加新的课程分类时,由后端的MultipartFile对象实现Excel文件的上传,使用阿里巴巴开源的EasyExcel工具来进行文件信息的读取和存储。Easy Excel工具对数据进行按行读取,逐个分析,这种读取数据的方式造就了Easy Excel使用简单、节省内存的特点,是excel数据处理得力助手[7]。这种特性使程序开发更加简单方便。

②课程详情中包含课程标题、课程分类、课程讲师、总课时、课程简介和课程封面等信息,课程的添加和修改都由同一页面进行数据显示,修改操作时的数据回显,由前端的路由进行判断。对于课程封面图片的存储,需要调用图像存储微服务的接口,使用阿里云OSS云存储来进行保存,解决了大数据存储与扩展的难题。为了课程简介内容显示出更多丰富的格式,前端使用Tinymce可视化HTML编辑器,该富文本编辑器样式好看、插件多、满足本系统的各种基本编辑显示需求。

③课程章节中,实现了对章节、小节的insert、update和delete操作。每小节包含课时标题、课时排序、是否免费、视频等信息;调用视频存储微服务下的接口,由阿里云提供的视频点播服务来实现视频云存储。

④课程列表中,为管理员或讲师分页展示了课程信息,实现了对course课程表的select、insert、update和delete操作。可根据课程名称、课程状态、課程添加时间来进行课程的排序查询,方便管理员和讲师对课程进行管理。当删除课程时,和课程表相关联的chapter章节表、comment_son评论子表、comment_father评论父表等,需根据外键course_id字段进行相关信息的删除。

3)课程信息模块

课程信息模块主要实现了课程搜索、课程评论、课程播放、课程购买等功能。

①在前台课程展示列表中,课程共有两个类别,第一分类是准父亲的职业类别,第二分类是准母亲的职业类别。用户可根据自身需求点击课程分类的进行查看;或者点击最新上架、销量、价格按钮对课程进行排序查看,后端则根据前端操作对应的gmt_create、buy_count、price字段在course课程表进行SQL语句的查询筛选,最后分页显示出每个课程的封面、课程名、学习人数、评论数等信息。由于现在处于5G大数据时代,大数据技术的使用是必不可少的,课程搜索推荐功能由Hadoop集群实现,进行大数据集的处理与分析。当用户根据关键字进行课程搜索时,后台调用接口并提交MapReduce任务,从HDFS分布式文件系统读取备份的课程简介和标题等数据信息,用MapReduce实现TF-IDF算法进行大数据集的数据挖掘,挖掘出与用户搜索关联度高的课程对其进行推荐。

②在课程详情页,可以浏览其他用户或讲师对该课程的评论、回复。在每个子级评论表中,会包含该评论最外层的评论的id、评论用户的id、被评论的评论id等信息,其中把被评论的评论id作为外键,使每个评论之间具有从属关系,在子级评论区根据评论用户昵称、被评论用户的昵称和评论的时间来区分每个评论间的回复关系。

③在课程详情页,每节课程是否收费由讲师来设置,用户可点击免费视频或者购买的课程视频进行视频播放学习。在阿里云提供的视频点播服务对应的aliyuncs包中,后端根据用户点击的视频id,调用视频存储微服务下的接口,创建获取视频凭证的DefaultAcsClient请求对象和GetVideoPlayAuthResponse请求返回对象,最后返回给前端一个视频播放凭证码。前端使用ApsaraVideo Player SDK阿里云播放器对视频进行加密播放、安全下载、清晰度切换等功能操作,为用户提供简单、快速、安全、稳定的视频播放服务[8]。

④用户可购买自己想学习的视频,购买后可解锁视频播放和习题练习等相关功能。当用户点击课程购买,后端会根据课程id和保存在Cookie中的用户Token值生成唯一订单并插入订单表,在用户确认订单信息后,使用vue-cli脚手架的vue-qriously组件来根据订单信息生成购买二维码,同时前端设置计时器,每3秒对订单微服务发起请求,查询该订单状态是否已支付,支付成功后销毁计时器并跳转到课程视频播放页面。

5 结束语

该文设计并实现了一个5G时代下“合格父母”资格认证学习平台,该平台为准父母用户提供了视频学习、习题练习、评论互动等服务,目的是帮助其获得更多优质的家庭教育知识;也为拥有丰富未成年人教育经验和政治思想教育经验的视频创作者提供一个可以投稿付费视频的平台。目前平台已按预定需求完成设计与开发,但仍有许多不足的地方需要完善,下一步重点是充实平台的内容和资源。

参考文献:

[1] 郑开涛.农产品质量安全追溯多方平台的研究与设计[D].北京:中国农业科学院,2018.

[2] 彭荣坤.电动汽车无线充电信息监控与管理软件系统设计[D].哈尔滨:哈尔滨工业大学,2020.

[3] 冯志勇,徐砚伟,薛霄,等.微服务技术发展的现状与展望[J].计算机研究与发展,2020,57(5):1103-1122.

[4] 洪柏桦,毛文琪,瞿少成.一种基于微服务架构的在线教育平台设计与实现[J].电脑知识与技术,2021,17(4):10-12.

[5] 张斌,任富彬,沈炜.基于SpringCloud的食品安全溯源系统的设计与实现[J].软件工程,2019,22(8):27-30.

[6] 马文艺,徐文欣.微服务架构Saa S多租户校园管理平台[J].电子世界,2021(10):150-151.

[7] 赵守才,杨校庆.基于SSM的线上考试系统[J].电子技术与软件工程,2021(3):220-221.

[8] 陈思慧.多校区间网络视频直播系统解决方案[J].现代计算机,2013(16):65-69.

【通联编辑:谢媛媛】

猜你喜欢

大数据
大数据环境下基于移动客户端的传统媒体转型思路
基于大数据背景下的智慧城市建设研究