主页 > 案例大全 > 论文方法写作-基于web技术的云学院设计与实现

论文方法写作-基于web技术的云学院设计与实现

2021-04-23 12:50:25

随着“互联网+教育”的普及与发展,现如今很多院校的教学模式也开始发生变化,从传统的教育教学模式逐渐转变为“云教育教学”模式。在传统教育教学过程中,教师占主导地位,学生处于被动学习状态,学习效率低,自控能力差,不能更好的全面掌握知识,而云教育采用更精准、更高效、更全面的方式辅助学生学习,以及帮助教师提升自身业务能力,提高学校的知名度。

本文主要讲述设计并实现云课堂的过程,使用PHP与MySQL技术进行相关的设计与实现。通过创建云课堂来更好的解决学生学习效率低、自控能力差、知识掌握不全面等问题,以及教师通过在线测试结果对学生的知识掌握情况有所了解,针对学生遇到的困难才能对症下药。通过琴岛云学院平台的设计和实现,对青岛理工大学琴岛学院的未来建设与发展具有积极的促进作用。

1.1开发背景

我国大部分院校随着科学技术的发展,从最初的传统教育教学模式转变为智慧教育教学模式,这种模式同样也称之为“云教育”。其实随着社会的发展,“云教育”已不是新鲜词汇,但在2020年发生的新冠肺炎再次把“云教育”推上了热搜,迎来了教育界的“双十一”。

2019年12月中旬,湖北省武汉市发生了多例不明原因肺炎病例,此后确诊人数逐渐上升,各地由于疫情纷纷按下了暂停键。忙碌的快递小哥、各式各样的年货等等,因为疫情而不复存在。

各地的学校面对疫情无可奈何,学生的假期余额“充值”不断,由于疫情防控需要,学校延迟开学,广大家长担忧居家孩子的学习情况,因此国家提出了“停课不停学”。而此举动让教师摇身变成网络主播,各大办公软件变成授课平台。

2020年2月11日迎来网上开学第一课,各大平台均发生奔溃情况,如B站、雨课堂、钉钉等平台。面对平台奔溃问题,与其怨天尤人,不如换一种思路,如果可以错开学校网课平台高峰期,问题有所解决;或者每一个学校拥有属于自己的教学云平台,更好的解决平台奔溃问题。

将教师讲课内容收集到本校的教学平台网站,不仅是学生可以进行自我知识的提升,同样对未来高校的建设与发展具有积极的促进作用。

1.2开发的目的及意义

2019年7月8日,在中共中央国务院公布的《关于深化教育教学改革全面提高义务教育质量的意见》中,强调了让学校严格按照国家课程方案标准进行实施教学,确保学生达到国家规定的学业质量标准。[1]

云学院针对琴院学子创建的一套完整的在线教学网站,包含优质课程视频教学、自我检测、资源下载等内容,让琴院学子在课余时间可以充实自己,对自己的知识得到拓展,将不懂、不会的知识点解决,从而实现国家规定的学业质量标准。教师也可通过本网站对学生的学习情况有所了解,对学生提出的问题答疑解惑,可拓宽自己的知识面,自身实力的提升。

1.3论文创新点

琴岛云学院针对青岛理工大学琴岛学院所创建的教学服务平台,涵盖范围广,包含琴岛学院12个大系,52门专业;专业内容细,学生可以通过对某些科目的测试,查看自己评测结果,从而发现自身在那些知识领域没有掌握;问题答复及时,教师通过该云学院平台可以在线解答学生提出的问题,减少学生冗余问题。其次琴岛云学院搜集用户的个人习惯,如喜欢的课程、关注的新闻资讯以及发表的论坛等等,系统并对其进行数据分析,为用户提供便捷的服务。琴岛云学院还涉及每个系的论坛,里面包含各种各样的论坛问题,学生进行技术讨论,提升学习能力的同时,实现自身的战术价值。

1.4研究内容

针对上述的需求,琴岛云学院主要采用PHP和MySQL技术对网站进行搭建。学生通过碎片化知识学习,论坛技术的讨论,知识评测等功能提升学习能力;教师通过技术解答,上传课程资料等功能辅助学生学习,从而实现国家规定的学业质量标准。

本系统主要采用当下流行的B/S架构,B/S架构拥有跨平台、无需更新、不需要安装客户端等诸多优点,解决学生、教师手机内存限制问题。同时,B/S下的网站更新或者修改,用户只需要刷新即可浏览网站,这大大提高了网站开发和运维效率。

综上所述,该网站采用B/S架构进行搭建与维护,实现0安装,多访问,细学习,高成就的目标。

1.5论文组织结构

本文共分为五章:

第一章是绪论,主要讲述琴岛云学院网站项目开发背景、实现的目标及意义、本项目区别于其他教育网站的创新点。

第二章是产品的需求分析,通过对市场分析、竞品分析以及可行性分析,确定本项目的业务需求、产品用户定位和目标用户使用场景等内容。

第三章是产品的概要设计,根据书写的立项报告以及需求规格说明书对产品进行相关的设计,包含系统整体结构设计、物理部署、平台技术路线、平台技术架构以及开发环境设计等内容;其次为数据库设计,包含概念结构设计以及逻辑结构设计。

第四章是产品的详细设计,根据概要设计说明文档,设计各个功能模块、算法以及程序逻辑等内容,其中包含典型的课程模块、论坛模块以及测试模块。

第2章需求分析

2.1市场分析

2.1.1市场概述

“云教育”是互联网时代的产物,每个课程由15-20分钟的视频构成,这不仅改变了以往传统教育的学习方式,增加了课程与学生的交互性,使课堂生动了起来,同时也增加了学生的学习兴趣。

图2-1 2013年-2018年中国财政性经费图

图2-2 2008年-2018年中国财政性经费所占GDP比重图

在《教育信息化2.0行动计划》中指出2020年要实现创建“互联网+教育”的大平台,能够提供学生进行相关知识的学习。如图2-1和图2-2所示,通过对比可以看出教育经费连续7年超过4%,根据最新的调查,到2020年我国的财政性教育经费占GDP将超过4.5%。

在2019年公布的《中国互联网络发展状况统计报告》数据显示,截止2019年5月,我国在线教育用户达到2.32亿人次,较去年增加3122万,占网民整体的27.20%。手机在线用户高达1.99亿人次,较去年增加530万,占手机网民的23.6%,如图2-3和图2-4所示。

图2-3 2016年-2019年中国在线教育用户规模及使用率

图2-4 2016年-2019年中国手机在线教育用户规模及使用率

据官方不完全统计,琴岛学院在校学生人数14400左右,其中包含本科8140人次,专科6260人次。在本院中,暂无相关产品,学生学习其他知识主要通过智慧树平台、超星尔雅平台、学银在线平台等进行学习,并无本校课程视频,因此市场饱和度为0%,市场规模大。

2.1.2市场问题

基于市场概述以及相关数据的显示,本院暂无学习软件平台,学生和教师通过其他平台进行学习,学习一门课程,下载多个软件,这大大的降低了学生的学习效率,导致学生没有一个准确的认知。

本次疫情也让教育再次成为热榜,而各大学习软件迎来了“网课双十一”,如图2-5所示,可以看出预计在2020年中国的教育行业处于上升阶段,在此期间,各大高校也是针对本校建立相关课程网站。

图2-5 2012-2022年在线教育行业市场规模统计及增长情况预测图

综上所述,未来的发展趋势是一片光明。依据问卷调查和学校调研,以下是针对相关的业务人员主要存在的痛点:

(1)学校端

① 无固定的学习软件或者平台;

② 本校资源(教师、课程资料)没有更好的收集/展示平台。

(2)教师端

① 与学生沟通较少;

② 不能及时解决学生问题(冗余);

③ 不能了解学生学习情况。

(3)学生端

① 无固定的学习软件或者平台;

② 教学资源需从教师索要;

③ 问题解决不及时;

④ 暂无相关就业信息。

2.1.3市场机会

通过上述市场分析,琴岛云学院整个闭环流程涉及到:学生、教师和学校教务管理层三类角色。表2-1为角色痛点分析表,用于展示这三类角色在这此平台上需要解决市场所存在的什么痛点和将带来什么经济效益。

表2-1角色痛点分析表

对象 解决什么痛点 带来了什么价值

教务管理层 无平台、资料难收集 扩大知名度、降低成本,提高效率

名师 沟通少、解决问题冗余 扩大知名度、忠实度高、收入高

学生 无本校资料参考,问题难解决 技能强、竞争力强、收入高

2.1.4总结

综上所述,通过市场分析,得出结果为在本院中此产品的饱和度为0%。该网站的建设实现琴院教育智能化、动态化和多态化。对于高校的建设与发展具有积极的促进作用。

2.2竞品分析

2.2.1功能分析

表2-2为功能分析表,通过对超星尔雅、慕课网、智慧树和学银在线教育平台的功能比较与分析,把握需求对应的功能点,从而验证本产品的想法是否可靠以及产品是否能够进行研发,并且根据已有产品对本产品进行挖掘或者完善。

通过对比发现,超星尔雅和慕课网针对课程内容为定向发展,大学生课程其他组成部分较少,这四个学习平台资料下载需要花费金钱;在学习问答和评论部分,都采用了匿名评论方式,而学习笔记/参考笔记只有慕课网拥有。

表2-2功能分析表

学习平台

功能分析 超星尔雅 慕课网 智慧树 学银在线

课程内容 主要针对中小学 程序员课程 覆盖范围广 覆盖范围广

课程书籍 有部分资料 材料需购买 暂无 暂无

学生问答 有 有 有 有

学生评论 有 有 有 有

学习笔记 无 有 无 无

学习监控 无 无 无 无

2.2.2各大教育平台用户体验

产品的诞生是由于人类的需求而生,每一款产品都是以一切用户体验为基础的。只有当满足了人类的需求,这款产品才不会让用户感觉脆而不坚。表2-3为各大教育平台用户体验表,根据知乎、百度贴吧以及CSDN博客调查了用户对慕课网、超星尔雅、智慧树和学银在线教育四个平台的体验,通过用户的体验以及评价从而完善本项目的需求分析。

2.2.3结论

通过功能以及用户体验和技术问题等多维度的讨论,我院应该创建一个属于本院的教育平台,其能够改善学生的学习方式以及解决上述平台未能解决的问题。

表2-3各大教育平台用户体验表

平台 技术问题 用户体验

网 ① QQ登录后返回卡死;

② 视频一直loading中;

③ 已缓存的视频偶现无声;

④ 已经做好的职业路径没了;

⑤ 闪退。 ① 主页面课程筛选不合理;

② 观看视频体验有待提高;

③ 路径付费课程教学质量不一;

④ 课程太琐碎,没有系统性;

⑤ 不能一站式学习;

⑥ 安卓要求强制升级。

雅 ① 代刷情况严重;

② 无人工服务,机器人解决问题。 ① 不能暂停;

② bug频出;

③ 权限多;

④ 签到频出问题;

⑤ 垃圾短信和推销带电话。

树 ① 代刷情况严重;

② 课程时长记录有bug;

③ 互动分机制不合理;

④ 互动分时以贡献度排名算法有问题;

⑤ 广告多。 ① 不稳定;

② 互动感差;

③ 作业批改不方便;

④ 闪屏;

⑤ 回放找不到。

学银在线 暂无。 ① 课程分类太广;

② 学习一门课程费用太高。

2.3可行性分析

2.3.1业务可行性分析

根据教育部发布的相关信息,基于信息化建设要求、业务需求和业务用户等多维度,本方案实施可行。

2.4需求分析

2.4.1细分目标用户定位

本产品主要用户分为三类,分别是琴岛学院教务层、琴岛学院教师以及琴岛学院学子,表2-4为客户特征分析表,用于展示的是每类客户的特征描述。

表2-4客户特征分析表

客户细分 关键特征

教务层 资料收集繁琐、主要通过人工操作对资料进行整理

教师 关心学子学习情况

学生 知识难练习、问题难解决

2.4.2细分目标用户业务场景

针对上述目标客户特征进行细分目标用户业务场景,从而判断项目针对每类目标客户具体的需求,具体如表2-5所示。

表2-5目标用户业务场景分析表

客户细分 需求场景

教务层 希望通过鼠标点击就可以将相关资料进行存储

教师 能够分析出学生的学习情况

学生 希望问题能够及时解决,配套练习,对知识进行巩固

2.4.3目标用户使用场景

王某,青岛理工大学琴岛学院计算机工程系,平时课余时间丰富,为了以后毕业之后能够找到一份稳定的工作,在琴岛云学院学习其他计算机课程,充实自己。

李某,青岛理工大学琴岛学院会计系,上课有些知识点没能够及时理解,通过琴岛云学院网站课程再次学习,并能够与其他学生或者教师讨论相关问题。

丁某,青岛理工大学琴岛学院教师,通过学生对自己课程的评论以及学生的答题情况,了解学生对哪些知识点未能理解,在线回答学生问题。

2.4.4需求总结

根据上述的各大平台用户体验、目标客户的特征分析和目标客户的需求,对本项目进行需求分析总结,主要针对三类角色,学生、教师和管理人员,通过对这三类目标用户的特征分析得出以下内容。学生使用场景分为学习场景、了解时事新闻场景以及问答场景;教师使用场景分为教学视频上传和发布场景、学生问答场景等;管理员使用场景分为信息发布场景,增删改查页面信息场景等等,依据场景进行需求提炼并进行对应功能总结,具体如表2-6所示。

表2-6需求总结表

序号 使用场景 需求提炼 对应功能

1 想知道各系的时事热点 观看热点内容 新闻资讯

2 了解当下疫情情况 中国疫情 疫情地图/内容

3 想了解哪些课程即将上线 即将上线课程 即将上线课程

4 想知道本网站法律声明 发布信息法律 法律声明以及隐私权政策

5 因为受贿等某些原因进行匿名举报 匿名举报 廉正举报

6 出现问题,如何与工作人员取得联系 联系网站的方式 联系我们

7 如何加入这个集体 加入 加入我们

8 各系课程的学习 云课程 琴岛云课程

9 课程评论/课程分享给其他人/问题解答 评论/分享/问题解答 评论/分享/问题解答

10 教学文档的下载/上传/收藏 下载/上传/收藏 下载/上传/收藏

11 想看看有哪些职业岗位 招聘 招聘专区

12 讨论相关问题 论坛 论坛

13 本网站APP的下载 APP下载 二维码

14 想管理自己的用户信息 管理个人信息 个人中心

... ... ... ...

2.5系统角色的需求分析

本系统中用户角色分为三类:分别是学生、教师和管理员。根据不同的角色在此系统中执行不同的功能,具体内容如下。

(1)学生角色

图2-6学生用例图

未登录状态下,学生可以浏览网站的基本信息;学生通过申请注册账号进行网站登录,输入账号和密码,与数据库信息进行匹配,若不匹配则提示账号/密码输入错误。该模块所对应的用例图,如图2-6所示。

学生登录本网站,可以浏览课程详细内容,参与课程考试,发表论坛,信息修改等操作,学生操作的用例如表2-7所示。

表2-7学生登陆用例描述表

用例编号 UC001

用例名称 学生登录操作

用例说明 学生输入用户名密码登录琴岛云学院,系统连接数据库检测用户名密码成功进入到主界面。并可以进行其他操作。

主要参与者 学生

前置条件 输入用户名,密码,登录

后置条件 登陆成功后,浏览网站信息,修改信息等操作。

事件流 ① 学生在登录界面输入用户名和密码操作;

② 验证成功则进入,失败则返回原页面;

③ 对网站进行正常浏览。

(2)教师角色

教师同样可进行网站账号的注册和登录,但不同于学生,主要区别于教师的身份,教师可进行上传课程文档资料,包含视频、音频、PPT、word等内容,默认状态为未发布,此时需要等待管理员对其进行审核。另外是针对试卷进行操作,可以编写试题,调节试卷内容难度。该模块所对应的用例图,如图2-7所示。

图2-7教师用例图

教师登录后,网站对用户身份进行判别,如果是教师身份,则可以进行上传课程文档资料和试卷操作,如果不是该身份,则不能进行上述的操作。教师操作的用例如表2-8所示。

表2-8教师工作用例描述表

用例编号 UC002

用例名称 教师工作操作

用例说明 教师输入用户名密码登录琴岛云学院,系统连接数据库检测用户名密码成功进入到主界面。并可以进行其他操作。

主要参与者 教师

前置条件 输入用户名,密码,登录,身份

后置条件 登陆成功后,浏览网站信息,修改信息,上传资料等操作。

事件流 ① 教师在登录界面输入用户名和密码操作;

② 验证成功则进入,失败则返回原页面;

③ 根据权限不同,进行不同的操作。

(3)管理员角色

管理员采纳多类型管理员进行管理网站,如网站管理员、课程管理员、资讯管理员、考试管理员、普通管理员和超级管理员。每个管理员的身份不同,所管理的内容不同,为了网站运行的效果与安全,设置超级管理员,可以对任何内容进行操作,设置各个管理员的增删改的权限。该模块所对应的用例图,如图2-8所示。

图2-8管理员例图

管理员通过后台的登录,系统进行判别该管理员的身份,从而访问授予权限的页面,如果不符合该页面身份,则不能进行该页面内容的改动。管理员操作的用例如表2-9所示。

表2-9管理员工作用例描述表

用例编号 UC003

用例名称 管理员工作操作

用例说明 管理员输入用户名密码登录琴岛云学院后台,系统连接数据库检测用户名密码成功进入到主界面。并可以进行其他操作。

主要参与者 管理员

前置条件 输入用户名,密码,登录,身份

后置条件 登陆成功后,对受限的内容进行访问以及操作。

事件流 ① 管理员在登录界面输入用户名和密码操作;

② 验证成功则进入,失败则返回原页面;

③ 管理员根据不同的权限对不同的内容进行增删改查。

2.6开发环境

表2-10为开发环境表,用于存储本项目开发所需要的环境支持。在本系统中采用HTML、less和JavaScript用于编写静态页面,采用的编程软件为Vs Code,由于Vs code相比于IntelliJ可以免费使用,并且拥有海量插件,如对编写的less文件进行自动转换成css文件,其次为UI渲染与业务逻辑隔离,保持一致的用户体验,最后各个层面不断被更改、刷新,让代码编写者不断提高技能水平。

表2-10开发环境表

运行环境要求 采用的设备/软件

操作系统 Microsoft Windows XP/win7/win8/win10

数据库服务器 Navicat for MySQL/phpMyAdmin4.8.5

编程软件 VS code、NetBeans

web服务 Xampp/phpstudy_pro

浏览器 Chrome、火狐浏览器、IE浏览器

处理器 Intel core i5 2.4GHz

内存 1GB

数据库编写语言采用SQL语言,由于在本系统中数据量各个表的数据量均少于5000条,,则数据库软件采用MySQL。相比于Oracle,MySQL是一个真正的多用户、多线程SQL数据库服务器,能够高效安全的处理大量数据。

将静态网页进行动态化,使用的语言为PHP语言,使用的编程软件为NetBeans,NetBeans是开源软件开发集成环境,是一个开放框架,可扩展的开发平台,可以用于java、C/C++,PHP等语言的开发,本身是一个开发平台,可以通过扩展插件来扩展功能。[2]

第3章概要设计

3.1任务概述

3.1.1目标

(1)设计琴岛云学院平台前端基本页面;

(2)设计云学院在线测试系统;

(3)设计云学院平台后台管理页面。

3.1.2设计前提与约束条件

(1)遵循上述参考的项目开发文档;

(2)产品设计符合客户需求;

(3)符合权限管理。

3.2总体设计

3.2.1系统整体结构设计

图3-1系统整体结构图

在本系统中共分为六个子系统,分别是云课程子系统、新闻资讯子系统、疫情地图子系统、论坛子系统、我的学习中心子系统以及在线测试子系统,从而共同构成琴岛云学院系统。琴岛云学院的网络服务基于xampp的Apache服务,数据库基于MySQL关系型数据库,前台中的六个子系统通过网络服务进行访问数据库信息,并将其返回前台页面进行显示。管理员也可通过对数据库中的表进行增删改查。

由于琴岛云学院系统属于青岛理工大学琴岛学院子系统,因此两系统可进行信息交换,为了在疫情期间更好的为学生、教师和管理员服务,增加与CSDN、钉钉等网站进行信息交互,具体如图3-1系统整体结构图所示。

3.2.2产品功能结构图

图3-2琴岛云学院网站功能结构图

琴岛云学院网站主要分为十个功能模块,其中包含大家最关心的中国疫情、本院的新闻资讯、学习论坛、课程学习、APP下载、廉正举报、登录/注册模块、个人中心、加入我们、了解我们等功能模块,如图3-2所示。

在中国疫情模块中用户可以实时关注疫情最新动态;考虑到用户对新冠肺炎不了解,因此在本模块中增添医疗服务、疾病知识和热门话题,同时为了让用户能够清楚了解自己的出行状况,添加同程查询了解自身是否与新冠肺炎患者有接触,并通知相关部门进行隔离。

新闻资讯模块让学生和教师能够及时了解我院动态,包含各系动态、招聘专区、推荐课程、教学文档和高校合作五大部分。而学习论坛展示学生或者教师关于技术的讨论,并评比论坛牛人。

课程学习模块主要展示我院的课程,此模块为本系统的重点部分,包含课程内容、课程评论等内容,用户可以对某课程进行学习,习题练习等。而个人中心模块是对个人信息的展示。

3.2.3产品信息架构图

本节为产品信息架构图,主要是针对琴岛云学院网站功能结构图的细化,方便逐步细化功能模块,如图3-3产品信息架构图所示。

在中国疫情模块中,用户可以查看最新疫情消息,包含境外输入、无症患者、累计确诊等详细数据,用户也可查看本省的最新的疫情数据。在学习论坛中,用户可以发帖或者评论帖子,系统通过用户积分和网站贡献进行评比每周、每月、每年的论坛牛人。

本系统增添了廉正举报模块,用户填写举报对象、内容和上传附件等方式对某些违法行为实施者进行举报,管理员收到举报信息,进行核查是否存在违法行为,对违法行为进行上报。

图3-3琴岛云学院网站产品信息架构图

3.2.4物理部署关系图

用户可以通过PC端或者手机端对本网站进行访问,用户通过本地端对服务器发送请求,在服务器接收到请求后,查询数据库信息,并将查询结果返回到前端页面供用户进行浏览,具体物理部署如图3-4所示。

图3-4物理部署关系图

3.2.5平台技术架构图

图3-5平台技术架构图

采纳HTML+CSS+JavaScript技术对网站进行搭建,网站功能进行逐步细化,实现高内聚、低耦合;数据库采用关系型数据库,对每一个实体进行分析其属性以及和其他实体的联系,通过和超文本相结合,实现高可用的网站。从内部的高内聚、低耦合到网站的高可用,实现功能需求。如图3-5所示。

3.3全局说明

3.3.1登录

(1)权限说明

登录状态下可以进行所有操作;

未登录状态进入网站,不可以点赞、不可评论、不可查看详细视频,不可查看消息,不可查看个人主页。要进行上述操作需跳转到登录页面。

(2)页面名称

琴岛云学院登录页面。

(3)页面入口

在未登录状态下,点击课程评论、课程收藏、课程分享、本节资料、用户评价、在线测试、我要发帖、廉正举报、加入我们等任何互动功能时,自动跳转到登录界面。

(4)页面逻辑内容及其交互详细信息

① 初始界面下,有账号登录按钮,点击之后进入密码登录界面;

② 手机号/用户名/邮箱输入框,密码输入框。密码输入栏可输入大小写字母、数字和各种符号;

③ 账号、密码和验证码正确,完成登录,转到琴岛云学院首页。

3.3.2网络环境

(1)无网络情况

用户浏览此网站时,如果发生没有移动数据支持、无信号状态以及无网络状态时,则页面不能正常进行浏览,如图3-6所示。

(2)有网络情况

用户在移动数据、有网络支持下,用户可以正常浏览本网站,如图3-7所示。

图3-6无网络页面图 图3-7有网络页面图

3.4产品流程图

3.4.1登录流程图

图3-8登录流程图

在本系统中,用户可以通过三种方式进行登录琴岛云学院,分别是第一种为用户名/手机号/邮箱密码登录;第二种为手机验证码登录(暂无);第三种为第三方软件登录(暂无)。具体流程如图3-8所示。

3.4.2观看云课程流程图

在此之前,需要判定用户是否登录,若无登录则转入到登录页面,登录之后即可观看完整的教学视频,可以通过系部课程的选择,同时也可进行课程的搜索,主要包含三个关键字,分别是课程等级、课程名称和授课教师,让用户精确定位所要学习的课程内容,如图3-9所示。

图3-9观看云课程流程图

3.4.3发帖/评论流程图

系统首先会检查用户是否登录,未登录跳转到登录/注册页面,登录成功后可评论/发帖,系统进行检查题目、内容是否为空以及是否符合法律法规,都满足后发帖评论成功,具体流程如图3-10所示。

图3-10发帖/评论流程图

3.4.4在线测试流程图

图3-11在线测试流程图

此处开启的考试监测,主要包含以下部分:学生在每道题花费的时间,鼠标是否离开本页面等页面,为以后进行数据分析学生的学习状况提供数据支持,具体在线测试流程如图3-11所示。

3.4.5试卷生成流程图

试卷的生成分为两种方式,第一种方式为教师上传试卷内容,学生进行试卷下载,答题结束之后学生上传答卷;另一种方法为主动生成试卷,教师可以设置试题的难度、试题的数目、试题的分数和答题时间,后台会从题库中依据教师设置的内容进行随机抽取试题构成一份试卷,详细的流程图如图3-12所示。

图3-12试卷生成流程图

3.5接口设计

3.5.1内部接口

内部接口采取三种方法,分别为参数传递,返回值以及函数调用等进行信息传递。

3.6数据结构设计

3.6.1概念结构设计

采用E-R图的分析方法,首先对局部视图进行分析与设计,之后实现视图集成。[3]在本项目中一共包含三十三张数据库表,由于表的数量多,因此在此处主要展示核心的E-R图。

(1)疫情地图子系统模块

在疫情地图子系统模块中,包含六个实体,其大致相同。就以全国疫情实体为例,包括的属性为现有确诊,累计确诊,累计死亡,累计治愈,现有重症,现有疑似,境外输入病例。

由于此系统要结合疫情实际需求,每个实体会添加必要的字段名,在此处主要展示最初设计的字段名。如图3-13所示:

图3-13疫情系统E-R图

(2)云课程子系统模块

云课程子系统包括五个实体内容,分别是课程实体,课程评论实体,课程资料实体,课程章节实体,课程内容实体。在本系统是以课程实体为核心建立的,课程实体主要包含课程标题,课程简介,课程图片等内容。本系统和后面叙述的在线测试子系统相关联,属于包含关系,如图3-14所示。

图3-14云课程系统E-R图

(3)在线测试子系统模块

图3-15在线测试系统E-R图

在线测试子系统和云课程子系统属于包含关系,该子系统包含四个实体,其中习题实体和试卷实体是本系统的核心,教师与用户的tel属性为信息表和登录表所继承的,进行多表关联查询,如图3-15所示。

3.6.2逻辑结构设计

根据上述的概念结构设计,对其进行转换为一般的关系,网状,层次模型,将转换后的结构向指定的MYSQL支持的数据模型转换,并实现对数据模型的优化。在此处主要展示核心表的逻辑结构设计。[4]

(1)疫情地图模块

表3-1为全国疫情数据表,用于存储全国疫情数据。全国疫情数据表包含主键(id),数据发布时间(time),现存确诊数据(now_diagnosis),现存疑似数据(suspected),现存重症数据(server_cases),累计确诊数据(diagnosis),累计死亡数据(death),累计治愈数据(cure)以及输入病例(input)。其中id为本表的主键,数据自动增加,数据类型为int,长度为11位。

表3-1全国疫情数据表

字段名称 数据类型 数据长度 小数点 空值 字段说明

Id Int 11 0 不 主键

Time datetime 0 0 不 发布时间

Now_diagnosis Int 5 0 不 现存确诊

suspected Int 5 0 不 现存疑似

severe-cases Int 5 0 不 现存重症

diagnosis Int 5 0 不 累计确诊

death int 5 0 不 累计死亡

cure Int 5 0 不 累计治愈

Input Int 5 0 不 输入病例

(2)云课程模块

①课程表

表3-2课程表

字段名称 数据类型 数据长度 小数点 空值 字段说明

Id Int 11 0 不 主键

Img Varchar 50 0 不 课程图片

Title Text 0 0 不 课程标题

Infro Text 0 0 不 课程简介

Teacher Int 11 0 不 授课教师

Study-hour Int 5 0 不 课程学时

People int 11 0 不 在学人数

Level Varchar 11 0 不 课程难度

System Int 11 0 不 系部ID

Time Date 0 0 不 发布时间

Hits Int 5 0 不 点击量

表3-2为课程表,用于存储课程数据。课程表主要包含以下字段:主键(id),课程图片(img),课程标题(title),课程简介(infro),课程的授课教师(teacher),课程的课时(study_hour),在学人数(people),课程的难度(level),课程发布的时间(time),课程点击量(hits),课程所属系(system),其中system为课程表的外键,参照system表的id值,teacher为课程表的外键,参照teacher表的id值,level为课程表的外键,参照level表的id值。在本表中,为了防止无课程图片,添加默认图片为0.jpg。

②课程章节表

表3-3为课程章节表,用于存储课程章节。课程章节表主要包含以下字段:主键(id),章节标题(title),章节简介(infro),所属课程(course),其中course为本表的外键,参照课程表的id。

表3-3课程章节表

字段名称 数据类型 数据长度 小数点 空值 字段说明

Id Int 11 0 不 主键

Title Text 0 0 不 标题

Infro Text 0 0 不 简介

Course Int 11 0 不 系

③课程内容表

表3-4为课程内容表,用于存储课程内容。课程内容表主要包含以下字段:主键(id),图片(img),标题(title),视频资源链接(url),所属课程(course),所属章节(chapter),其中course为本表的外键,参照课程表的id值,chapter为本表的外键,参照章节表的id值。

表3-4课程内容表

字段名称 数据类型 数据长度 小数点 空值 字段说明

Id Int 11 0 不 主键

Img Var 50 0 不 图片

Title Text 0 0 不 标题

Url Text 0 0 不 链接

Course Int 11 0 不 课程

Chapter Int 11 0 不 章节

(3)论坛模块

表3-5为论坛表,用于存储用户发表的帖子。论坛表主要包含以下字段名:主键(id),标题(title),内容(content),发布时间(time),点击量(hits),所属系(system),发布人(username),其中system为本表的外键,参照系部表的id值,username为本表的外键,参照登录表的tel值。

表3-5论坛表

字段名称 数据类型 数据长度 小数点 空值 字段说明

Id Int 11 0 不 主键

Title Text 0 0 不 标题

Content Text 0 0 不 内容

Time Date 0 0 不 发布时间

Hits Int 11 0 不 点击量过

System Int 11 0 不 系

Username Varchar 50 0 不 发布人

3.6.3容灾设计

(1)出错情况

① 用户不规范的输入导致程序错误;

② 系统运行时容器奔溃;

③ 编码中的逻辑错误或者漏洞导致系统报错;

④ 不包括由于硬件损失、网络中断等情况的容错处理。

(2)出错处理对策

根据上述出错情况,网站可采取的补救措施如表3-6所示。

表3-6容灾设计表

出错原因 补救措施

用户不规范的输入导致程序错误 ① 尽量减少用户输入动作的数量;

② 加强对输入项的合法性检测,包括web端和服务器端检测;

③ 消除冗余输入,可能的话提供缺省值;

④ 加强程序的控制能力防止用户的恶意输入,不能将程序的正确运行建立在用户的正确输入上。

系统运行时容器奔溃 使用最稳定的软件版本。

编码中的逻辑错误或者漏洞导致系统报错 ① 改进编码,加强边界检测;

② 加强错误检测和单元测试。

3.6.4安全保密设计

(1)管理员口令进行加密

在网站设计中,编程人员主要通过get方法和post方法进行页面传值,违法者很容易进行获取信息,因此在本网站中加入管理员口令加密操作,防止不法分子进行恶意操作。

(2)对管理员进行权限识别和分级

在琴岛云学院平台中,不同的业务需不同的管理人员操作,并且不同的管理员对数据的操作也是不同的,因此为防止其他管理员对网站数据在不知情的情况下更改数据内容,采用对管理员进行权限识别和分级。

第4章详细设计

4.1目标

根据概要设计说明书中的设计内容,对整个系统所需要实现的功能以及系统的功能模块的划分和功能模块的实现过程提供详细的说明,为整个系统的开发、测试、评定和移交提供基础。

4.2详细设计方法与工具

(1)工具

① vsdx作图工具:针对于模块业务流程图;

② axure原型工具:针对于模块结构图;

③ FSCapture截图工具:针对于业务流程图和结构图大小之间的设定、网页色彩,网页尺子等。

(2)主要设计

① 软件开发声明周期方法和敏捷开发相结合;

② 自顶向下,逐步求精的结构化设计;

③ 模块化组件的综合和多元化窗口利用的设计理念。

4.3系统设计

4.3.1全局变量

表4-1全局变量定义表

序号 定义文件 说明

1 Conn.php 用于连接数据库的文件

2 function.php 定义的各种函数

3 Base.css 公共样式表

4 Reset.css 重置样式表

在本节中主要展示项目中的全局变量,包含四部分,分别为连接数据库文件,定义各种函数的文件,公共样式表和重置样式表。具体内容如表4-1所示。

4.3.2公用控件

表4-2公用控件定义表

序号 名称 说明

1 SelectAll 查询某表的全部信息函数

2 SelectOne 查询某表的单条信息函数

3 Delete 查询某表的信息函数

4 Update 更新某表的信息函数

5 Add 为某表添加信息函数

6 MyPage 分页函数函数

7 FormatCnDateToDate 日期格式化函数

8 Download 下载文档函数

在本项目中共定义了八个控件,用于页面的动态化,包含表的增删改查操作,分页操作,日期格式化操作和下载资料操作,具体名称与说明如表4-2所示。

4.4界面设计要求

在本系统中采用全屏网页设计、扁平化、视差化的化繁为简的设计思维,打造灵活、节约、多功能效果网站。色调主要分为两类,分别是主体色调(蓝、灰、橙)和嵌入色调(黑、白、绿)。该网站平台采用的字体为Helvetica Neue,Helvetica,Arial,Microsoft Yahei,Hiragino Sans GB,Heiti SC,WenQuanYi Micro Hei,sans-serif。[5]

4.5平台各模块的设计说明

4.5.1大文件上传模块

在此项目中,管理员需要上传文档资料,普通的文件上传只需普通上传操作即可,但是在php.ini中超过500M为大文件,最主要包含视频/压缩包等。为实现其功能采取Web Uploader+php进行实现。

大文件上传主要采用文件分片、文件传输、文件组合等过程。具体操作为利用WebUploader配置进行对大文件的分片,并且更改PHP.ini文件中的post_max_size配置。

在服务器PHP接收分片中,WebUploader插件提供一个GUID,我们可以通过GUID对分片文件进行重命名,之后当所有分片文件上传成功后,调用合并函数请求对分片文件进行组合。

考虑到管理员上传大文件时可能发生中断现象,因此在我们的服务器中会产生分片文件冗余现象,因此需要对服务器中的分片文件进行定期或者定时处理。主要有两种方案,分别是设置一个系统时间,超过这个系统时间,系统进行冗余文件删除;或设置分片文件的过期时间,当分片文件超过此时间进行删除。表4-3为大文件上传详细设计说明表。

表4-3大文件上传详细设计说明表

模块名称 大文件上传 模块代号 模块001

适用范围 全局 类型 PHP

模块功能 实现大文件的上传

作者 郑峰 编写时间 2020.3.20 修改人

修改时间 修改批准人 修改次数

性能要求 对精度、灵活性、权限性、时间性、容错性等的要求。

限制条件 只有具有此模块操作权限的人才能执行本模块。

本模块属于课程文件上传资料的子模块和课程视频管理的子模块。

点击上传资料执行本模块。

根据角色,判断是否拥有此页面的访问权限。

输入 文件在本地的地址。

输出 在本项目中指定的文件夹中上传目标文件。

算法逻辑 文件分片:后台通过WebUploader插件提供的GUID,对文件进行分片并重命名。

文件传输。

文件组合:调用合并函数对分片文件进行组合。

冗余文件删除:由于上传可能发生中断现象,因此需要对冗余文件进行删除。

备注

4.5.2富文本模块

富文本的存储于显示与其他HTML元素显示有所不同,为了网站编辑的高效性,在此采用的是百度的Ueditor开源富文本编辑器,通过调用Ueditor,将其内容存储在$content变量中,并调用insert()函数对数据进行插入操作。

在显示上,编写一个高度被内容所撑开的盒子,若用户点入论坛内容/新闻内容,在地址栏上进行传输新闻id或者论坛id,跳转此页面进行接收id值,使用selectone函数对数据库进行查询,并把内容显示到指定位置即可。表4-4为富文本编辑与存储详细设计说明表。

表4-4富文本编辑与存储详细设计说明

模块名称 富文本编辑与存储 模块代号 模块002

适用范围 全局 类型 PHP

模块功能 实现富文本的编辑与存储

作者 郑峰 编写时间 2020.3.20 修改人

修改时间 修改批准人 修改次数

性能要求 对精度、灵活性、权限性、时间性、容错性等的要求。

限制条件 只有登录本网站才能进行此操作。

本模块属于论坛发帖的子模块和新闻资讯的子模块。

点击发帖执行本模块或者查看资讯/论坛信息。

输入 文本、图片、视频、音频(包含格式)

输出 文本、图片、视频、音频(包含格式)

算法逻辑 调用百度的Ueditor开源富文本编辑器,将其内容存储在$content变量中。

显示:通过SQL语句查询并在前台进行显示。

发帖:将$content变量调用insert函数进行插入。

备注

4.5.3课程管理

在课程管理板块中,管理员调用公共控件对课程进行增删改查,当点击每个课程的章节时,页面进行传值,通过get方法对课程id进行获取,之后使用selectALL控件对该课程的章节进行查询,并显示在页面中。之后对章节内容进行增删改查。

在删除时,由于是多表关联,课程表,课程章节表,课程内容表每个表在删除时进行提示,是否需要删除所关联表的内容,如果返回true,则删除该课程下的所有内容或者章节下的所有内容,如果false,则不删除数据。表4-5为课程管理详细设计说明表。

表4-5课程管理详细设计说明

模块名称 课程管理 模块代号 模块004

适用范围 全局 类型 PHP

模块功能 实现管理员管理的课程列表、课程章节列表、课程内容列表、笔记列表、资料列表、评价列表。

作者 郑峰 编写时间 2020.3.20 修改人

修改时间 修改批准人 修改次数

性能要求 对精度、灵活性、权限性、时间性、容错性等的要求。

限制条件 只有具有此模块操作权限的人才能执行本模块。

根据角色,判断是否拥有此页面的访问权限。

输入 输入项参考课程表、课程章节表、课程内容表、课程问答评论表、课程评价表、课程资料表、课程评价表以及课程考试表。

输出 输出项参考课程表、课程章节表、课程内容表、课程问答评论表、课程评价表、课程资料表、课程评价表以及课程考试表。各项意义同输入个数据意义相同,输出方式为屏幕显示。

算法逻辑 查询:查询课程相关信息内容。

修改:修改课程相关信息内容。

添加:添加课程相关信息内容。

删除:删除课程相关信息内容。

返回按钮:返回此窗口。

状态改变:修改课程发布状态。

切换按钮:切换不同功能的模块内容。

备注

4.6平台各模块的设计实现

4.6.1大文件上传模块

使用Web Uploader实现大文件上传需要引入三种资源,分别是JS、CSS和SWF。首先创建页面容器,包含存放文件信息的容器、上传和选择按钮三个部分。代码如下所示:

选择文件

之后对Web Uploader参数进行设置,由于处理大文件上传需要分片处理,设置chunked为true,设置每片大小chunkSize值为5242880,设置上传并发数threads为4,设置上传方式method为post。

管理员点击上传文件,后台通过getFile()和addFile()函数对文件进行获取,由于webUploader不处理UI逻辑,因此需要监听fileQueued事件实现显示用户的选择,并通过md5File函数计算文件的md5值,返回一个promise对象,进行监听文件上传进度,核心代码如下:

uploader.on('fileQueued',function(file){

$list.append('

'+

'

'+file.name+'

'+

'

等待上传...

'+'
');});

管理员将文件上传后,后台使用$file变量接收文件名,upload_path定义文件存储目录。调用add()函数对course_file表进行添加,并提示上传是否成功。

4.6.2富文本模块

(1)富文本编辑器实例化

在本系统中,富文本用于论坛内容的编写、新闻内容的编写等,由于上述内容包含图片、视频、音频等,在此调用百度开源的Ueditor插件实现其功能。

富文本编辑器的实例化,需导入三个入口文件,分别为配置文件,核心文件以及语言文件,代码如下所示:

(2)富文本存储

首先使用isset()函数进行判断$my变量是否存在,如果存在则进行后续操作,如果不存在,则返回上一页面。后台进行接收用户输入的标题、简介、所属系和内容,时间系统进行自动获取,并对时间进行格式化。调用add()函数对forum表进行插入数据,核心代码如下:

$sql="insert into forum(title,infro,content,time,hits,system,

username)values('{$title}','{$infro}','{$content}','{$date}','0','{$system}','{$_SESSION['username']}')";

dd($sql,'forum.php','forum-post.php','发帖成功','发帖失败');

(3)富文本显示

用户通过论坛页面点击标题或者评论进入论坛内容页面,从地址栏中获取论坛id值,使用selectone()方法对forum表进行精确查询,并将其内容显示在指定区域内,核心代码如下:

$sql="select*from forum where id={$forum_id}";

$row=selectOne($sql);

4.6.3课程管理

本系统中课程管理为核心模块,它的作用是对琴岛云学院的课程进行管理,由于课程管理关联的数据表较多,因此采用间接管理方式。网站判断管理员的身份是否为课程管理身份,如果是则进行后续操作,如果不是则不能进行操作。

在本模块中,由于增删改操作是建立在查询基础上,因此需要对课程表进行查询,使用selectALL()函数对course表进行查询并将结果赋值于infros,使用foreach对infors进行遍历。

由于采用间接管理,在课程查询页面中提供课程其他内容管理链接,以及在地址栏中提供课程id值。代码如下所示:

详情

详情

管理员点击增加课程章节管理,填写课程章节标题、课程章节简介、所属课程和发布状态,后台使用post方法进行接收内容,执行SQL语句对课程章节表进行添加操作。核心代码如下所示:

$sql="insert into chapter(title,infro,course,zt)

values('{$title}','{$infro}','{$course}','{$zt}')";

add($sql,"course-chapter-list.php?course_id=".$_GET["course_id"],"course-chapter-list.php?course_id=".$_GET["course_id"],"添加成功","添加失败");

在add()函数中,第一个参数为sql语句,第二个参数为添加成功时跳转的页面,第三个参数为添加失败时跳转的页面,第四个和第五个参数分别是添加成功或失败的提示语。由于其他增加内容与其操作原理相同,在此不作更多解释。删除操作采用多表关联删除,当管理员点击删除按钮时,获取课程id值,执行sql语句,完成删除功能。

$sql="delete from(select 1 from course,chapter,course_content

where course.id=chapter.course and course.id=course_content.course)"

delete2($sql);

上述代码主要采用多表级联删除方式进行删除,利用get获取地址栏传递的课程id,执行delete2方法将该课程从课程表、课程章节表等表删除。