APP下载

非煤矿山企业在线培训考试系统的设计与实现

2021-08-23朱珊珊徐兰梅沙梦钒

现代矿业 2021年7期
关键词:服务端试卷考试

朱珊珊 徐兰梅 沙梦钒 赵 鹏

(1.安徽工业大学计算机科学与技术学院;2.安徽工业大学工程研究院;3.中钢集团马鞍山矿山研究总院股份有限公司)

矿山安全是矿山企业稳定、持续、高速发展的根本保证[1]。非煤矿山企业注重对员工的安全培训,因为非煤矿山企业生产条件复杂,一旦生产中不重视生产管理的安全性,将诱发严重的生产安全事故[2]。矿山企业需要牢固树立安全生产理念,提高劳动者安全生产技术素质,对上岗的工作人员必须进行强制性安全培训,确保全员培训合格,对生产经营单位主要负责人、安全管理员、特种作业人员必须持证上岗且定期复训,负责人和管理人员安全培训时长不得少于48学时,每年再培训时长不低于16学时[3]。非煤矿山企业地理位置分散,不便于统一管理,集中培训对员工在学习时间和地点有限制。同时这种多次重复性的、经常性的培训和考试组织难度大,且耗费企业和员工大量人力物力,往往培训效果不理想,考试通过率低下[4]。

张清华指出,国企如移动、电信、石油等引入网络化远程培训教学方式,尤其是新冠疫情的影响,人员不能聚集,在线教学成为一种主流的教学培训模式。基于Web的在线培训考试系统拥有更加快捷方便的优势。它依托网络优势,无需下载软件,操作简单,能够降低培训考试的工作量,学员随时随地参与培训,得到了更多企业和学员的青睐。这种在线教学、观看教学视频、在线考试的培训模式,极大地减少了讲师培训的工作量。1次录制视频,学员可随时随地观看,增加了学员学习的积极性,避免了重复性的培训工作,在线考试简化了考试流程、节省了批改试卷的人力物力财力。目前,有很多成熟的在线培训模拟考试系统,但是这些平台针对的职业技能不同,对非煤矿山安全知识的讲解不全面,管理者不能灵活地添加视频和学员,不能添加特定学习专题,不能灵活编辑试卷内容。基于目前这种现状,搭建1个通用灵活的非煤矿山企业在线培训考试系统意义重大。

1 系统需求分析

非煤矿山企业在线培训考试系统旨在为非煤矿山企业员工提供课程点播、专题视频、专业培训等培训功能,以及个人培训、个人考试业务,为了便于管理,系统主要角色分为管理员、培训人员、非培训人员。

管理员使用服务端系统,管理员的行为主要包括对培训人员、培训活动、培训课程、专家信息、人员信息、视频库的管理,对视频专题主页、视频专题人员、专题课程的管理,对试卷、题库进行管理。试卷类型包括单选题、判断题、多选题、填空题、简答题,以及试卷评阅。评阅主要是对填空题和简答题进行打分,其他非主观题系统可自动判分。

培训人员使用浏览器端系统,在浏览器中进行在线培训学习与考试,主要包括微信扫码、绑定手机号、登录注册、修改个人信息、课程点播、专题视频、专业培训、课程详情、专家收费、发送留言、查看附件文件、在线考试等。当学员观看某一活动培训视频的累计时长超过该活动培训合格率,才可进行在线考试;也可在移动设备上通过微信公众号打开微端系统页面进行培训学习。

非培训人员也可注册登录浏览器端系统以及在微信公众号中登录注册进入系统,观看课程点播的视频;但只能查看专题视频和专业培训的部分信息,如果想加入学习,需联系主办方。

2 系统概要设计

系统采用MVVM(Model-View-ViewModel)设计模式[5],前端采用主流框架Vue.js,后端框架使用.NET Core3.1,采用C#开发语言。前端调用axios(基于Promise的HTTP客户端)跨域请求API网关(Ocelot),通过Restful(基于http的网络应用程序的设计风格)连接.NET Core接口。每个请求都需要验证IdentityServer4授权的身份认证token信息,请求并获取对应微服务中的数据。使用consul管理微服务,能够实现服务发现与注册、健康检查和键值存储,需要动态更新的内容也可通过Consul配置中心进行配置,服务启动后需要Skywalking监控服务是否正常,每个微服务都拥有NLog记录日志。数据库选用MySQL5.6关系型数据库,部分数据存储在redis内存数据库中,加快读取速度,通过Redis Cluster集群部署方式,主从数据库读写分离,这样做的优势是可以把系统的功能逻辑和展示页面分离开,互不影响。系统架构见图1。

3 系统详细设计

3.1 功能模块设计

根据非煤矿山企业在线培训考试系统的需求分析,为了提高企业培训效率,减少人力物力财力的浪费,对系统的功能模块进行划分,主要分为用户管理、活动管理、课程管理、视频管理、题库管理、试卷管理、在线考试7个功能模块。

(1)用户管理包括人员信息管理和注册登录2个模块。人员信息管理包括对专家信息、培训人员、人员信息、专题人员的增删改查以及导入;注册登录模块包括新用户的注册,验证短信验证码,以及账户信息的合法性。老用户的登录将个人信息和授权的token信息存储为cookie缓存,此后再加载请求时需要在请求头中携带token信息,登录系统之后可修改个人信息,包括用户头像、个人介绍、公司、部门、职业等,以及微信扫码登录获取用户微信头像、昵称、openID等信息,判断是否绑定账户,未绑定账户需创建新账户。

(2)活动管理包括专题活动和培训活动。专题活动和培训活动可以设置企业名称、活动名称、活动介绍、活动分类,上传活动照片、收费标准,设置培训对象,除了增删改查操作外,还有其他功能,活动复制、关联专家、公告详情、查看留言、上传附件,对活动进行开启/关闭和显示/隐藏。用户登录系统后,可学习课程点播中的视频。当服务端导入学员信息或添加学员信息后,学员才能加入专题视频和专业培训的学习,获取专题视频和专业培训中的学习视频以及附件文件,查看培训介绍,发送留言信息,查看授课老师、主办方和学员,否则需要联系培训主办方。

(3)课程管理包括专题课程和培训课程。专题课程和培训课程分别是对专题活动和培训活动设置的课程。在增加活动课程时,需要对活动添加相关课程视频、设置课程的学时以及对课程排序,也可对课程进行增删改查。

(4)视频管理包括服务端的管理和视频播放两部分,服务端对视频进行增删改查,视频增加时添加视频名称、作者信息、视频分类、视频价格、会议名称、会议主办方、视频标签、视频描述、视频封面等信息,以及上传视频文件。视频播放包括视频点播、专题视频、专业培训视频的播放。除点播外,其他视频播放页面需要上传视频进度,禁止用户拖放进度条,禁止鼠标右键行为,鼠标离开页面时暂停视频播放,也可以查看演讲嘉宾及其详细介绍,获得相关推荐视频。视频播放采用流媒体播放技术。

(5)题库管理包括对试题进行增删改查,添加试题的企业名称、题目类别、题目类型、题干信息、解析、难度等级。题目类型分为客观题和主观题,客观题包括单选题、多选题、判断题,主观题包括填空题、简答题。

(6)根据培训活动添加试卷,包括考试时长、开始日期、结束日期、允许考试次数。每种类型的题目不限制次数,可根据需要编辑试卷的题目类型,组成符合要求的试卷。

(7)当培训学习的进度达到管理端设定的培训合格百分比,就可参加在线考试,在线考试包括考试倒计时和自动收卷功能,在倒计时结束前可提前交卷,在规定的允许考试次数内,可多次进行考试。

系统在浏览器端的功能设计见图2。

3.2 流媒体播放技术

为防止他人恶意盗取视频,提高播放流畅度,减小网络下载视频的压力,利用流媒体技术传输多媒体视频文件,使用HLS(HTTP Live Streaming)将媒体数据流分割成连续的TS格式文件,视频编码格式为H264。首先通过FFmpeg(开源多媒体视频处理软件)运行批处理命令,将MP4格式的视频转为m3u8文件和ts视频片段,m3u8文件是服务端建立的分片TS文件的索引,浏览器端请求并解析服务端的m3u8文件,获取分片信息后,按顺序向服务端请求下载TS分片的文件,实现视频的完整播放。

视频播放时先获取当前视频历史观看时长和视频总时长,并设置每秒加1的定时器,每5 s上传1次观看进度,包括观看时长、播放页面停留的时长,事件onPlayerTimeupdate中的player.cache_.currentTime获取到播放时间。当用户拖动进度条快进时,判断进度跨越是否超过1 s,若大于1 s视为快进事件,此时将进度player.currentTime设为上一秒观看的进度,达到禁止拖动的效果;通过@contextmenu.prevent来阻止鼠标右键的行为;视频播放页面全局检测鼠标的位置,鼠标移动获取clientX和clientY,当鼠标离开页面时(clientX或clientY为0),暂停视频播放,弹窗告诉用户不要离开视频页面。

3.3.NET Core框架

系统的服务端使用.NET Core,.NET Core是1个跨平台的高性能开源框架,提供类型系统、程序集加载、垃圾回收器等,它比.NET Framework优秀的地方在于.NET Framework支持Windows和Windows Server,而.NET Core还支持macOS和Linux。.NET Core内置依赖注入,生成webui和webapi的统一场景,拥有轻量级和模块化的HTTP请求管道(中间件),能够在IIS、nginx、Apache、docker上运行或在自宿主(selfhost)的进程中运行,能够简化现代web开发。

3.4 数据库设计

数据库是在线培训考试系统的核心。采用MySQL关系型数据库,通过Redis Cluster集群部署方式,主从数据库读写分离。系统中的实体主要包括培训人员、培训活动、培训课程、培训视频、试卷等,实体间的关系为一对一、一对多、多对一、多对多(图3)。

4 结 语

系统采用前后端分离技术,基于服务端、浏览器端、移动端3种平台的功能,实现在线培训、在线考试功能。培训视频采用基于HLS的流媒体播放技术,流传输适应性强,自适应码流。服务端采用跨平台的.NET Core框架,框架部署安全可靠,可大幅度提升用户体验。浏览器端不需要安装任何插件,通过网页地址栏输入网址进入系统,大大减少了用户的操作难度,移动端实现和浏览器端一致的功能,携带方便,操作简洁,符合当下移动互联网时代的需求。基于web的非煤矿山企业在线培训考试系统满足了通用培训考试的功能要求,对提高非煤矿山行业的技能水平和安全性起到一定的积极作用。

猜你喜欢

服务端试卷考试
新时期《移动Web服务端开发》课程教学改革的研究
在Windows Server 2008上创建应用
Module5 A Trip Along the Three Gorges
Module5 Great People and Great Inventions of Ancient China
Module 4 Sandstorms in Asia
Module 1 Europe
Japanese Artificial Intelligence Robotto Take Entrance Examinations
你考试焦虑吗?
准备考试
摸清黑客套路防范木马侵入