基于LAMP的亚伟速录教学网站的设计与实现

时间: 2020-11-06 18:56:31     来源: 论文范文网

摘  要

伴随着互联网的快速发展,通过互联网获取信息已经成为人们日常生活的重要组成部分,这种获取信息方式的转变给传统行业带来挑战的同时也催生了新的传播媒介。与传统媒介的传播信息方式相比,互联网传播具有无可比拟的优势,为了更好的传播亚伟速录的速录技术,响应互联网教学的潮流,北京亚伟速录科技有限公司决定开发亚伟速录教学网站。

本项目首先进行了详细的需求调研,明确了网站的所有功能需求。网站包括前台和后台两个模块,网站前台分为教师应用和学生应用两个功能模块,网站后台包括用户管理、课程管理、成绩管理三个主要功能模块。网站基于LAMP技术开发,根据功能需求完成了架构设计、数据库设计、网络拓扑图等。本项目关键技术难点是使用memcache解决了课堂考试中的高并发问题,基于oauth2.0协议保证了接口的安全性,在项目开发完成后进行了功能测试、性能测试,目前网站已上线6个月运行正常。

亚伟速录教学网站具备了互联网教学网站的一般特点的同时,对于网站的关键功能和用户体验上进行了创新,为以后互联网教学网站的开发提供了一定的参考方向。

关键词:LAMP,互联网教学,memcache,oauth2.0


Abstract

With the rapid development of the Internet, Access to information via the Internet has become an important part of people's daily life,it not only brings challenges to traditional industries but also brings a new medium of communication. Compared to mode of transmission of traditional media,Internet communication has an unparalleled advantage. In order to better and faster dissemination of Yawei Sulu teaching culture,response to the trend of Internet Teaching,we decided to develop Yawei Sulu teaching website.

This project has carried on the detailed demand research,clear all the functional requirements of the site.the site includes foreground and background, the foreground is divided into two functional modules of teachers application and students application,The background consists of three functional modules,such as user management、curriculum management、performance management and so on. Site based on LAMP technology development, According to the functional requirements to complete the architecture design, database design, network topology. the key technical problems in this project is to use memcache to solve the high concurrency issues in the classroom test, make sure the safety of interface based on oauth2.0 agreement, after completion of the project development for the functional testing, performance testing, At present, the site has launched six months running normally.

With the general characteristics of the internet teaching website at the same time,for some of the key features and user experience on the site of innovation,for the future development of the internet teaching website to provide a certain reference.

Key words: LAMP,Internet Teaching,memcache,oauth2.0



目录

第一章 绪论 5

1.1 课题背景及意义 5

1.1.1课题背景 5

1.1.2课题意义 5

1.2 国内外研究现状及发展趋势 6

1.3 论文研究目标及内容 7

1.3.1研究目标 7

1.3.2研究内容 7

1.4 论文组织结构 8

第二章 系统需求分析 9

2.1 需求概述 9

2.2 详细需求 10

2.2.1速录百科 10

2.2.2基本信息 11

2.2.3课堂考试 12

2.2.4课堂练习 12

2.2.5虚拟课堂 13

2.2.6 开放中心 14

2.2.7课件库与题库管理 14

2.2.8用户管理 15

2.2.8课程管理 16

2.2.9成绩管理 17

第三章 系统概要设计 19

3.1设计目标 19

3.2设计原则 19

3.3系统架构设计 20

3.3.1系统体系架构 20

3.4 技术难点分析 22

3.4.1高并发 22

3.4.2对外安全提供网站接口 22

3.4.3 JavaScript编程中存在的依赖关系混乱和代码纠缠等问题 22

第四章 系统详细设计 23

4.1 网站包结构设计 23

4.2 网站视图设计 24

4.3 用户权限管理 25

4.4 数据库设计 26

4.4.1 数据库设计思路 26

4.4.2 数据表设计 28

4.4 技术难点的设计与实现 35

4.4.1高并发 35

4.4.2对外安全提供网站接口 36

4.4.3 JavaScript编程中存在的依赖关系混乱和代码纠缠等问题 43

第五章 系统测试及性能分析 44

5.1 测试环境 44

5.2 测试工具 44

5.3 测试方法 45

5.3.1 单元测试 45

5.3.2 集成测试 46

5.3.3 功能测试 47

5.4 测试用例的设计 48

5.4.1 网站功能测试 49

5.4.2 网站权限测试 50

5.4.3 网站界面测试 50

5.4.4 网站安全性测试 50

5.4.5 网站性能测试 51

5.5 测试结果分析 52

总结与展望 53

参考文献 54

致谢 55














图目录

图 1 网站前台用户活动图 5

图 2亚伟速录教学网站组织结构图 6

图 3速录百科用例图 7

图 4用户基本信息用例图 7

图 5课堂考试用例图 8

图 6课堂练习用例图 9

图 7虚拟课堂用例图 9

图 8开放中心用例图 10

图 9课件库与题库管理用例图 11

图 10用户管理用例图 12

图 11课程管理用例图 13

图 12成绩管理用例图 14

图 13网站体系结构图 17

图 14网站包图 19

图 15网站前台视图 20

图 16网站后台用户权限管理图 22

图 17数据库E-R图 24

图 18学生提交成绩时序图 24

图 19授权码模式图 33

图 20简化模式流程图 35

图 21授权模式类图 38

图 22服务器响应时间、吞吐量性能测试报告 44

图 23服务器cpu性能测试报告 44












表目录

表1 用户表 25

表2 简历表 26

表3 班级表 26

表4 学校表 27

表5 课程表 27

表6 权限authitem表 28

表7 权限auth_assignments表 28

表8 权限auth_itemchildren表 33

表9 客户端oauth_clients表 33

表10 令牌oauth_access_tokens表 33

表11 授权码oauth_authorization_codes表 34

表12 刷新令牌oauth_refresh_tokens表 34

表13 密码模式oauth_users表 34

表14授权范围oauth_scopes表 35

表15授权码模式获取授权码需提供参数表 38

表16授权码模式获取令牌需提供参数表 38

表16授权码模式获取令牌需提供参数表 38

表17简化模式获取令牌需提供参数表 41

表18客户端模式获取令牌需提供参数表 42

表19密码模式获取令牌需提供参数表 43

表20测试环境 46

表21测试工具 46

表22网站性能测试用例表 53


第一章 绪论

1.1 研究背景和意义


当前市场教育培训模式主要有传统教学培训和在线教育两种模式。传统教学培训模式虽然仍然占据着较大的市场份额,但由于其具有限制时间、地点以及信息资源少等固有的缺点,从而阻碍了其进一步的发展。在线教育是互联网技术与传统教育的结合,在线教育的便利、时间弹性、丰富的资源都是传统教育所欠缺的。

通过市场调研发现,我国学龄人口数量庞大、教育消费比重大、职教培训需求旺盛、网民规模巨大,通过网络进行学历教育、职业技能培训、专业认证考试培训的需求十分旺盛。随着我国信息化程度的不断提高,在线教育市场发展空间巨大,在线教育市场规模呈现加速增长的态势。人们更倾向于选择定价合理、资源丰富、持续稳定的在线教育培训,目前国内很多互联网公司都已经在积极开拓在线教育市场,网易、腾讯、阿里巴巴、极客学院、CSDN和51CTO都相继推出他们的在线教育产品。

北京市速录协会[2]一直以来都是通过线下培训的方式来传播速录技术,为了进一步拓宽市场、普及速录技术,从而决定开发亚伟速录教学网站。

1.2 国内外研究现状及对比意义


目前国内外已经有很多比较成功的在线教育产品,国内的IT在线教育培训极客学院和国外的LinkedIn都是比较成功的案例。对比一下美国的网上教育,我们存在的差距是显而易见的,但面临的机遇也是巨大的。随着网站在教育市场的投入和深化,以及网络速度的提高、上网费用的下降、电脑用户和上网用户的迅速增长,网上教育的市场将全面启动。由于中国人越来越重视对子女教育的投入,因此高质量地面向学生的网上教育必将成为热门。人们对学历、专业技能的重视,也将催生火热的专业教育培训市场。同时,随着终身教育观点的深入人心,面向各方面技能的素质教育网站也将会有广大的受众。

随着互联网的流行,以往的C/S型模式已经无法满足当前的全球网络开放、互连、信息随处可见和信息共享的新要求,所以国内外在线教育普遍是基于B/S架构的在线教育网站,B/S架构有如下优势:软件重用性强、不需要安装特殊的软件,客户端几乎零维护、一般只有初期一次性投入成本,有利于软件项目控制和避免IT黑洞。

1.3 研究目标及内容


1.3.1研究目标


本文的研究目标是以亚伟速录教学网站为例,依靠LAMP技术为基础完成亚伟速录教学网站的开发,在保证网站的易用性和稳定性的同时提高用户留存率,从而进一步普及速录技术。


1.3.2研究内容


本文的研究内容为基于B/S模式依靠LAMP技术搭建亚伟速录教学网站的前后台,具体研究内容如下:

(1)设计网站架构。对需求进行详细分析之后明确网站的所有功能模块,制定网站的程序架构、呈现架构、信息架构。

(2)数据库概念结构设计。在详细分析需求的基础上,设计出能够灵活满足用户需求的实体以及实体之间的关系。

(3)搭建网站页面。确保网站要能够成功运行在PC端、移动端并向用户展示更加友好的界面。

(4)后台用户权限管理。基于角色权限管理控制,能够灵活的管理后台用户。

(5)高并发问题。在用户访问高峰期 ,网站访问速度变慢,用户体验极其不友好,使用memcache很好的解决了高并发问题。

(6)网站安全问题。漏洞检测与修复、防止应用层攻击等

(7)基于OAuth2.0协议“开放中心”功能模块的实现。基于OAuth2.0协议安全的对外提供网站接口。

1.4 论文组织结构

亚伟速录教学网站的设计与实现主要包含以下五章内容:

第一章 绪论。本章首先介绍了亚伟速录教学网站的研究背景、研究意义和相关研究发展现状。并阐述了论文的研究目标和研究内容。

第二章 系统需求分析。本章首先对项目的需求做出阐述,简述需求来源及系统原型的基本要求;分析亚伟速录教学网站的主要功能需求以及辅助功能需求,进而为网站的概要设计提供参考方向。

第三章 系统概要设计。本章首先阐述了设计目标和设计原则,进而基于LAMP技术与MVC设计模式对整个网站进行功能模块设计和体系结构设计,以及对技术难点进行简单分析,阐述了开发环境的配置,为详细设计及系统实现提供支持。

第四章 系统详细设计。本章根据网站的概要设计,对网站进行细化,介绍网站的包图、类图等,并阐述了技术难点的具体实现。

第五章 系统测试。本章介绍了包括单元测试、集成测试、功能测试的系统测试方案,并根据测试结果进行了总结分析。


2.2 业务角色分析

2.3 业务流程梳理及优化


第二章 需求分析

2.1 业务现状


亚伟速录公司一直以来都是通过线下培训的方式传授速录技术,培训讲师现场讲解速录机的使用以及向学生解答问题。亚伟中文速录机可以实现快速录入汉字,一个初级的速录速记员可以实现200字每分钟录入说话人的说话内容,准确率达到95%以上。


上图为亚伟速录机,亚伟速录机是通过专用编码、专用键盘结合计算机实现快速记录汉字的专用设备。

由于公司是第一次尝试进行在线教育,项目的开发基本上是从零做起,针对需求方提出的需求,本系统需满足如下需求:

1.对于需求方的业务而言,培训讲师可以在线授课、灵活管理课件、在线回答学生问题,教务人员可以在后台管理学生的考勤、考试成绩、发布通知。

2.对于用户而言,无需安装任何桌面程序以及浏览器差价,只需成功登陆网站即可听课学习,与其他用户沟通。


2.2 业务流程梳理


2.2 总体需求


本系统旨在提高速录培训教学的质量,亚伟速录教学网站分为前台和后台两个功能模块,前台区分为教师应用和学生应用两个功能页面,教师应用分为虚拟课堂、课件库与题库管理、基本信息、技能等级检定考试,学生应用分为速录百科、基本信息、课堂考试、课堂练习、虚拟课堂、开放中心六个功能模块,后台主要涉及用户管理、课程管理、成绩管理三个功能模块。亚伟速录教学网站组织结构如图2所示,以上各个模块的具体功能需求将通过下面的用例图进行阐述。


用户登录网站前台时通过读取登录用户的角色来判定用户是学生还是教师,从而决定将用户重定向到学生应用模块还是教师应用模块,用户进入相对应的应用模块后即可进行相关的操作。

2.3 功能需求


2.3.1速录百科


速录百科功能模块主要用来提供学生关于速录技术历史的一些简单介绍和一些常用速录技术键位的查询。速录百科用例图如图3所示。


用户成功登陆网站前台后以后,鼠标放置在速录百科导航栏右侧即可出现两个二级菜单“速录百科”和“键位查询”,用户点击“速录百科”菜单进入速录百科页面,可以浏览一些关于速录这项技术的历史发展历程,用户点击“键位查询”菜单进入速录机键位查询页面,可以查询在平时操作速录机过程中经常用到的键位,若遇到经常使用的键位可以点击键位右上角的收藏按钮,将键位进行收藏,方便下次查询键位时节省时间,同时加深用户对该键位的记忆。    

               

2.3.2基本信息


基本信息栏位主要负责存储用户的一些个人资料、考试成绩等常用信息,为了让用户更方便的管理个人信息,基本信息栏位是必不可少的,用户成功登录网站后点击头像即可进入用户基本信息页面,用户基本信息用例图

用户点击头像后即可进入个人信息的展示页面,用户可以点击“新增信息”按钮将个人信息补充完整,最后点击保存按钮进行保存。用户可以点击“修改”按钮将之前填写的个人信息进行修改,修改完成后点击保存按钮进行保存。


2.3.3课堂考试


课堂考试功能栏位主要是为了打破传统的线下纸质考试,为用户提供更便捷的考试测评途径,不仅可以节省纸张的浪费,同时更便于管理和统计成绩,例如用实现分数由高到低排序只需要在数据库取出数据的时候按照分数进行排序,同时还可以统计男生平均分女生平均分等,为之后的教学研究提供了强大的数据支持。用户成功登录网站后点击“课堂考试”按钮即可进入课堂考试页面,课堂考试用例图如图5所示。


用户将鼠标放置在课堂考试导航栏右侧即可出现两个二级菜单“听打考试”和“看打考试”,用户点击“听打考试”或“看打考试”即可进入相应的功能页面,在考试时间未开始之前用户是无权进入考试页面的。听打考试内容为长约10分钟的会议记录语音,用户需在规定的时间内将听到的内容使用速录机将听到的内容记录在网页文本框里,考试结束的时候,文本框内容将自动提交,之后用户无权再次进入听打考试页面。看打考试内容为大约1万字的新闻文本,用户需在规定的时间内将看到的内容使用速录机记录在网页文本框里,考试结束的时候,文本框内容将自动提交,之后用户无权再次进入看打考试页面。听打考试和看打考试都是为了更好的提升用户使用速录机的打字速度和准确率而创建的,并且考试内容的取材也和用户将来参加工作的内容是相似的,通过听打考试和看打考试这两个环节的考试,可以更全面的提高用户使用速录机的技巧以及强化用户的心理素质。


2.3.4课堂练习


课堂练习主要是为了用户在线观看了老师的授课之后,可以根据老师的授课内容在线进行课堂练习,以强化学习效果,加强记忆。用户成功登录网站后点击“课堂练习”按钮即可进入课堂练习页面,课堂练习用例图如图6所示。


用户将鼠标放置在课堂练习导航栏右侧即可出现两个二级菜单“听打练习”和“看打练习”,用户点击“听打练习”或“看打练习”即可进入相应的功能页面,听打练习界面头部是一个网页音乐播放器,该播放器存储了将近20个会议录音片段,每个片段大约长10分钟左右,底部是一个文本框,用户可以将听到的内容输入到文本框里并提交查看正确率,音乐播放器具有播放、暂停、快进、快退、下一首、上一首的功能。看打练习界面头部由一段3000字左右的新闻组成,底部有一个文本输入框,用户将看到的内容输入到文本框里提交可查看正确率。


2.3.5虚拟课堂


虚拟课堂主要是提供给教师可以在线直播讲课同时学生可以在线听老师教课的平台,虚拟课堂克服了传统教学所存在的众多问题,进一步提升了速录技术的培训效果,同时吸引了更多的用户使用亚伟速录教学网站。用户成功登录网站后点击“虚拟课堂”按钮即可进入虚拟课堂页面,虚拟课堂用例图如图7所示。

在虚拟课堂功能应用模块,学生进入虚拟课堂后可以在线观看老师的视频直播,学生可以清楚的看到老师讲课的画面,清晰的听清楚老师讲课的声音,如果学生遇到不懂的问题可以在聊天室咨询老师或同学,老师进入虚拟课堂可以在线讲授知识点内容,并且可以在聊天室解答同学提出的问题或者布置作业交代学习重点等。


2.3.6 开放中心


开放中心主要是随着网站用户量的增大以及第三方应用调用接口的频繁,出于网站接口安全因素考虑而开发的,用户成功登录网站后点击“开放中心”按钮即可进入开放中心页面,开放中心最终目的是为了对外更安全的提供接口,开放中心用例图如图8所示。


用户在开放中心页面进行注册后可获得亚伟速录网站提供的客户端ID和客户端秘钥,用户持有客户端ID和客户端秘钥后可以选择网站许可的四种授权模式即授权码模式、简化模式、客户端模式、密码模式,向亚伟速录网站申请令牌和刷新令牌,令牌过期后可使用刷新令牌再次获取令牌,用户持有获取的令牌将是获取接口的唯一凭证。通过开放中心功能模块,使得接口对外提供时更安全,避免了对接口的恶意调用,减轻了服务器压力,确保了网站的数据安全。

2.3.7课件库与题库管理


课件库与题库管理功能模块主要是为了教师在视频讲课时调取资料方便而创建的,减少了教师查找资料的麻烦,教师可以在每次授课之前将可能会用到的授课资料上传到课件库与题库管理功能模块,课件库与题库管理功能模块支持用户按照用户名、上传日期、资料名称进行查询,方便快捷,教师可以随时随地选取授课资料,用户成功登录网站后点击“课件库与题库管理”按钮即可进入课件库与题库管理页面,课件库与题库管理页面用例图如图9所示。


图 9 课件库与题库管理用例图

课件库与题库管理模块为教师提供了更方便的管理教学资料的方式,教师在该模块下可以按照搜索条件查询教学资料是否已上传,下载要使用的教学资料,可以新增教学资料,若发现上传的资料某些地方有误可以进行修改,若存在已经不再使用的教学资料可以删除,课件库与题库管理模块相较于传统的方式不仅节约了纸质纸张的使用,同时更加方便快捷的管理教师教学资料。

2.3.8用户管理


网站用户管理功能主要是对网站用户的新增、修改、查询、删除操作,以及对用户的角色管理,前台用户角色分为学生、教师,后台用户角色分为超级管理员、普通管理员两类,用户成功登录后台管理界面后点击“用户管理”按钮即可进入用户管理页面,网站后台用户可分为超级管理员、普通管理员两类,用户管理页面用例图如图10所示。


图 10 用户管理用例图

普通管理员可以在后台新增用户,修改用户信息和查询用户,超级管理员可以删除用户,并且可以选择是否彻底删除该用户,若选择彻底删除该用户则该用户信息将从数据表删除,若选择不彻底删除该用户则该用户仅仅不在后台页面进行展示,数据表仍然存储该用户信息。通过灵活的用户管理机制更方便的管理网站用户,为前台以及后台的其他功能模块的实现打好基础。


2.3.9课程管理


网站课程管理功能主要是为了更灵活的管理学生课程而开发的,传统的纸质课表发放到学生手中来通知学生的上课情况是非常不灵活的,一旦课程有变学生并不能及时收到通知,通过课程管理功能,在后台可以针对每一个班安排课程,一旦课程有变可以进行修改,学生可以在个人信息栏位查看自己的课程安排,一旦课程有变学生将会在网站顶部的通知栏收到通知信息,邮箱也会收到课程变动的消息,非常灵活方便。用户成功登录网站后台管理界面后点击“课程管理”按钮即可进入课程管理页面,课程管理页面用例图如图11所示。


图 11 课程管理用例图

网站后台管理员可以查询对应的某一班级具体的课程,若发现尚未包括某一课程可以新增课程,并且可以修改课程,不再使用的课程可以进行删除操作,课程管理模块普通管理员和超级管理员具有相同的权限。


2.3.10成绩管理


网站成绩管理功能模块主要是为了更方便的记录和管理用户的成绩而创建的,传统的纸质方式记录学生成绩,不仅浪费了纸张的使用而且不方便对学生成绩进行统计分析,使用网站成绩管理模块可以轻松方便的统计学生的平均分,按照分数高低排序等功能,通过以上分析数据为教师授课提供新思路,改善教学方式,以更好的促进学生的学习,提高教学质量,用户成功登录后台管理界面后点击“成绩管理”按钮即可进入成绩管理页面,成绩管理页面用例图如图12所示。


图 12 成绩管理用例图

为了更好的管理学生成绩,确保学生成绩不被意外删除、修改,需要对后台管理员的权限进行限制,来保证数据安全,普通管理员只可以查询用户成绩,不能进行新增、修改、删除操作,若存在某个用户因为特殊原因成绩未能及时录入,超级管理员可以新增该用户成绩,若成绩录入有误,超级管理员可以修改该用户成绩,对于无效的成绩超级管理员同样可以执行删除操作。通过成绩管理模块可以更高效地管理用户成绩,为之后亚伟速录教学网站引入大数据做好准备。


2.4 非功能需求

 

非功能需求指的是系统除了满足用户功能需求以为的其它特性,包括系统的易用性、安全性、性能、可扩展性、稳定性。

系统的易用性使得系统设计必须以用户为中心,细分用户和场景进行设计,使得用户第一眼就能找到自己最关注的功能操作和数据信息,使得系统对于用户而言达到易学和易用的特性,系统在设计之前做了充分的用户需求分析调查,从用户的真实需求出发设计系统。

系统的安全性主要关注用户的授权控制、身份认证、数据安全等方面。系统在设计之初把安全放在了重中之重的地位,尤其是对于接口设计充分考虑了安全性。

系统的性能主要考虑在用户访问高峰期用户打开网页时的响应速度、结果精度以及服务器资源消耗问题,系统的性能问题依赖于系统架构的设计,因此对于频繁访问的网页都采取了缓存技术。

系统的可扩展性是考虑到系统上线之后可能会进行频繁的版本迭代,因此在开发之初就要充分考虑系统的可扩展性,所以在数据库字段设计、代码编写等方面都充分考虑了系统的可扩展性。

系统的稳定性是指系统在上线一段时间后会不会出现服务器宕机之类的问题,因此在系统上线之前需进行严格的压力测试,系统上线后使用工具实时监控服务器的运行状况。