版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于微信小程序的移动学习系统的设计 学
基于微信小程序的移动学习系统的设计基于微信小程序的移动学习系统的设计摘要随着社会的发展,人们使用手机的时间越来越多。其中微信就是伴随社会发展的产物之一。而且随着信息技术的更新换代,几年时间内就成为当下最流行的信息传播平台之一。信息化教育也越发的普及。微信作为当今流行的聊天工具,可以将微信与信息化教育相结合。本毕业设计通过对国内外信息化移动学习系统及相关小程序进行横向和纵向的比较,分析使用最近流行的微信小程序进行移动学习系统的开发的可行性。对于学生而言,使用微信小程序,可以满足即时学习,移动学习等需求,充分利用碎片化时间进行知识积累。并且小程序不需要安装不占用内存,即开即用,不需要等待同类学习APP加载的时间,有着非常好的用户体验。对于开发者而言,小程序轻量快捷易开发,并且有云后端数据库可以进行存储,程序编码也非常容易。扩展性也是很好的。因此移动学习的小程序可以满足移动互联网时代移动学习的需求。关键字:微信小程序,移动学习,云开发
AbstractWiththedevelopmentofsociety,peoplespendmoreandmoretimeonmobilephones.WeChatisoneoftheproductsofmoderntechnology.Andwiththerapiddevelopmentofinformationtechnology,withinafewyearshasbecomeoneofthemostpopularinformationdisseminationplatform.Information-basededucationisalsoincreasinglypopular.WeChat,asapopularchattool,cancombineWeChatwithinformationeducation.Thisgraduationprojectcarriesonthehorizontalandthelongitudinalcomparisontothedomesticandforeigninformationizationmobilelearningsystemandthecorrelationsmallprogram,theanalysisUSEStherecentlypopularWeChatsmallprogramtocarryonthemobilelearningsystemdevelopmentfeasibility..Forstudents,usingWeChatsmallprogramcanmeettheneedsofinstantlearning,mobilelearning,etc.,andmakefulluseoffragmentedtimetoaccumulateknowledge.Moreover,thesmallprogramdoesnotneedtobeinstalledanddoesnotoccupymemory.Itisout-of-the-boxanddoesnotneedtowaitfortheloadingtimeofsimilarlearningAPP.Ithasaverygooduserexperience.Fordevelopers,smallprogramsarelight,fastandeasytodevelop,andtherearecloudback-enddatabasesforstorage,programcodingisalsoveryeasy.It'salsoveryscalable.Therefore,thesmallprogramofmobilelearningcanmeettheneedsofmobilelearningintheeraofmobileInternet.KeyWords:WeChatapplet,mobilelearning,clouddevelopment目录TOC\o"1-3"\h\u1绪论 绪论研究背景及意义几十年前,第一台移动终端诞生了。移动终端伴随移动通信发展了几十年的时间。同时移动通信的发展也使得移动设备发展迅速。移动终端作为简单通信设备伴随移动通信发展已有几十年的历史。2007年,智能引发了移动终端产业的转型和跨境整合,移动智能终端行业已经成为信息通信技术领域发展的核心驱动力之一。移动智能终端引发的颠覆性变革揭开了移动互联网产业发展的序幕,开启了一个新的技术产业循环。快速的产品迭代和高强度的市场竞争使移动智能终端市场逐步成熟,以智能手机为代表的移动智能终端产品迅速普及并广泛渗透人类社会生活的各方面,成为工业发展的重要动力。众所周知,传统教育的核心是知识的传授,由此可得教师是处于一个极其重要的地位。但是由于教师的传授,多少会扼制学生的个性,降低学生主动学习与潜能发挥。教师并不能完全照顾到课堂中的每个学生,学生们只能被动的接受教师的知识传授。而传统的在线学习,作为前几年曾经流行的学习方式,也越来越与现今脱节。在线学习的优点是脱离了课室的束缚,但是弊端也很明显:首先,在线学习的核心是需要一台设备,而设备并不是随时随地可以获取到的;其次,在线学习无法很好的与老师进行沟通与交流,只是进行知识灌输,缺乏人际交往。因此,随着智能手机的出现,移动学习逐渐进入了人们的视野。移动学习(MobileLearning)是一种可以在任何时间、任何地点通过移动设备进行的学习,是在数字化学习的基础上通过有效结合移动计算技术带给学习者随时随地学习的全新感受。用于移动学习的移动设备必须能够即时有效地呈现学习内容,且可以提供教师与学生之间的双向交流互动。除具备了数字化学习的所有特征之外,移动学习还有其独特的特征,即学习者不再被限制在电脑桌或者课桌前,可以自由自在、随时随地进行不同目的、不同方式的学习。包括但不限于学习环境、教师、科研人员和学生都是可以在移动中进行互动的。从实现模式来看,实现移动学习的技术基础是移动互连技术;所实现的工具是一种小型化的移动计算设备,即设备形状小、重量轻,便于随身携带,设备无需连线,而且使用者在移动中也可以很好的使用。相较传统的学习来说,课堂传授知识过于依赖老师的讲解,而且需要特定的场所进行授课。而以往的在线学习,则过于依赖电脑等硬件设备,在获取成本,使用难度等方面无法与移动智能设备相比。最重要的一点是移动学习可以充分利用学生们的碎片化时间。作为大学生,完全有能力利用互联网和相关应用软件来交流讨论和自主学习,可以对自己的学习能进行有效的管理和调控。可以充分利用大量的时间进行自主学习。但是自学难免会产生一些问题。移动学习就可以解决理解难,没有例题等问题,也可以通过在线测试随时对自己的学习成果进行评估。综上所述,信息时代的到来使得知识量急剧增加,知识的更新速度也几何式增长。原有的获取知识的途径已经无法满足人们对于知识的需求,无法满足日益激烈的社会竞争。所以越来越多的人想要充分利用自己的时间进行学习,最理想的状态当然是随时随地随心所欲的进行学习,充分利用自己的碎片化时间来汲取知识。正是由于这种时代需求,本文研究的课题着眼于移动学习。本文设计并实现了基于微信小程序的移动学习系统,顺应时代潮流,给学习者提供一个利用自己课余时间进行移动学习、练习的平台。可以使学习者根据自己个性化的学习需求,摆脱学习场地、设备的束缚,随时随地随心所欲的选择喜爱的科目进行视频学习或在线练习。并可与老师或其他人进行交互,以期获得更好的学习成果。充分利用碎片化时间也满足了学习者对知识的需求。国内外研究现状移动学习研究始于国外,主要集中在发达国家,目前已经有七年多的历史。虽然移动学习兴起不久,但发展非常迅速,有越来越多的研究者(主要集中在发达国家国家)不断的投入到移动学习的研究中去。目前各国对移动学习的研究的主要方法为分成项目来进行科学研究。,其中比较著名的有美国加州大学伯克利分校(UCBerkeley)的人机交互研究室在2000年开始进行的“MobileEducation”项目,国际远程教育专家戴斯蒙德•基更((DesmondKeegan)博士主持的“FromE-learningtoM-learning”项目等。这些科研项目侧重点各不相同,范围包括了移动学习的各个部分,研究内容包括可行性,商务运营模式,移动学习系统的平台的开发等。由于时间等多种原因,国内对于移动学习的研究深度和研究广度不及国外。其中研究人员包括主要是一些学者,科研机构等。在早期主要是个别学者进行研究,如最早对将移动学习概念带入国内并对移动学习进行研究的是裘伟廷的《移动远程教育研究》和丁兴富教授翻译基更教授的《从远程学习到数字学习再到移动学习》。随后研究移动学习的主力军就变成了大学科研机构,如对移动教育进行了系统研究,开发出了三个不同版本的移动教育平台的北京大学现代教育中心(CenterforModernEducation)承担的教育部高教司的“移动教育的理论与实践”研究项目。同时,北京大学现代教育中心也是中国最早对移动教育进行系统研究的机构。随着时间流逝,在目前对移动学习的研究大多是商业公司与大学科研机构相结合的方式进行研究,移动学习更多的是采取商业公司和大学科研机构联合进行研究的方式。如南京大学和日本松下通信工业公司以及SCC公司合作的项目[1]。论文研究内容及结构移动互联网的爆发式增长导致了与之相关联的移动设备和应用的迅猛增长,在教育领域,这种增长带来了移动学习发展的契机和新颖的学习体验,人们可以借助手机等移动设备获取、处理和交换信息,同时也可以进行学习。而微信小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,只需进行二维码扫描或搜索一下即可开启小程序。小程序具有即开即用、不占内存、开发成本低、用户使用难度低、推广简单等优点。因此设计并实现基于小程序的课程学习系统在移动互联时代是十分有意义的。本课题要求通过整合微信小程序和内容管理系统,开发一款操作简便、使用友好的移动学习平台,为学习者提供一种新的学习工具。以某一课程为例,进行学习系统的设计与开发。系统应分为各个子页面的进行设计与开发。子页面应包括登陆页面,实现小程序的授权登陆;课程学习页面,实现在线网页课程学习;课程评价页面,实现课程评价功能;个人中心页面,实现课程管理,课程进度查询,在线测试,课程学习页面及课程评价页面的跳转。在实现阶段,选用云平台建立后台,以合适的语言例如wxml/wxss/javascript构建页面,通过WebSocket方式进行前后台交互。在测试阶段,通过对测试方法的分析,检测各子页面能否正常运作。本论文总共有以下五部分组成:第一章为绪论部分,描述了本课题的研究背景、移动学习系统的国内外发展状况分析以及所研究的目标和内容。第二章为移动学习系统小程序设计的关键技术的介绍部分,主要对本毕业设计所涉及和运用的关键技术进行详细介绍,主要包括MINA框架、node.js、websocket、微信小程序、微信云。第三章为移动学习系统小程序的需求分析部分,先对系统的需求进行一个概括,然后将分两部分功能需求分析和非功能需求分析对系统的需求进行详细分析,从而得出系统的设计框架。第四章为移动学习系统小程序的设计部分,主要分为移动学习系统小程序的总体设计和详细设计两大模块。通过总体设计我们可以了解到系统的功能总体架构和规划,通过详细设计我们可以了解到各个功能模块的详细功能和实现。第五章为移动学习系统小程序的实现部分,通过本章内容,你可以了解到如何一步一步搭建起移动学习系统小程序的整个过程。
小程序移动学习系统设计关键技术微信小程序简介微信小程序,简称小程序(WeChatapplet),是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想。想要使用小程序只需要用户扫一扫或搜一下即可。经过几年的发展,微信已经构造了新的小程序开发环境。这么多年来,小程序已经成为中国IT行业里一个真正能够影响到底层程序员的创新成果,现在已经有超过150万的开发者加入到了小程序的开发,与我们一起推动小程序的发展,目前,小程序应用数量超过了一百万,覆盖200多个细分的行业,日活用户达到两个亿。小程序发展也为社会带来了更多的就业机会,截至2017年,小程序带动就业104万人,社会效应不断提升。价值微信小程序按照目前发展来看,专家推断可能会是未来移动互联网应用的主要形式,它的特点是小而快。这是它的优点,同时也是它的缺陷所在。它无法替代所有的App,因为微信小程序的出发点还是为了解决小应用的问题,它的优点在于灵活、快捷、用完即走,所以它始终无法代替功能丰富的APP。对用户来说,小程序触及到了传统PC网页、公众号、H5应用、APP无法触及到的地方,换句话说它的初衷就是帮助用户解决一些特殊需求的,比如在用户遇到没有流量、手机内存不足、不想下载APP等各种特殊情况时,小程序就可以发挥它的价值了。首先,当不得不使用低频服务时,小程序会比临时下载低频服务类的APP要方便的多,需要使用时只需扫码或搜索一下打开小程序,用完了就可以随手关掉,并不需要消耗流量等待下载或者占用手机内存。这种即开即用用完即走的特点则刚好迎合用户使用低频服务类APP时的需求。例如购票类APP。还有一种场景则是线下消费:线下消费的需求是快捷方便灵活,不需要占用太多的等待时间。比如在奶茶店选购奶茶,只需扫描二维码,就可以直接进入小程序,只需很短的时间就可以完成点单下单付款的整个流程,不必排队等待,也不必下载APP,更不必关注公众号。对用户来说,小程序可以说是最方便快捷的方式了。小程序优势微信小程序具有以下三大优势:推广入口更便捷由于背靠微信这棵大树,小程序在运营方面能大大降低开发者的推广成本。而且小程序自身在推广方面也极具优势。比如线下扫码,搜索查找,对话分享,公众号关联等。人群分销更巨量类似APP,微信小程序,微信公众号这类互联网产品,用户量是其核心竞争力。而小程序天生的优势就是借助微信这个超级入口,又可以解决低频刚需APP的痛点等,所以小程序在人群分销方面优势巨大。而且小程序可以解决如何找到精准人群,实现用户量从0到1这个几乎所有的初创公司都会面临的最艰巨的问题研发成本更低廉一般情况下,正常的新项目上线形式是:挖掘用户需求点,试点验证需求,制作MVP(MinimumViableProduct,最小化可行性产品),抓取用户,打磨产品,产品成熟,推广。这种上线形式既费时又费力。而小程序在微信的支持下,开发变得更简单,研发成本也更低廉。比如如果想要开发一款APP,如果公司技术人员极度不足,那么可以依托小程序来进行MVP制作,测试用户需求,等到验证成功后再进行APP开发。这样既不影响项目进度,也不会产生项目空窗期,还能帮助初创型互联网公司节省不少费用开支和宝贵时间,让APP项目在最短的时间内验证成败[3]。微信云微信云简介微信云是由腾讯云团队主导开发的微信开发者聚合平台,能够提供的功能和服务包括平台搭建、数据存储分析、运营营销、交易安全等多个维度。“微信云”的目的是规范微信开发者市场,为开发者提供综合底层服务,保障运营体验和客户信息安全[2]。微信云价值微信云可以为开发者搭建平台,提供底层服务和支撑,降低公众平台入驻的门槛。提供基础服务,提升公众号的社交性和服务能力,并通过大数据优势,更好地运营和服务用户。扩大微信用户群体,提升微信公众平台体量。同时,安全便捷、性价比高的服务成为了最受欢迎的服务。面对微信服务商被恶意攻击、公众号发生数据泄露,非法入侵等安全问题,企业、开发者和用户群体面临着极大的安全隐患,而由于各平台的数据库大多都是进行自行运营或托管于第三方服务平台,安全性难以得到保障,运营成本也很难下降。微信云针对抗风险能力和安全性提供了高性价比的、完善的服务。这项服务可以保证数据、交易等环节的安全,提供云服务的支持,使信息安全得到保障。[2]微信云优势易开发——微信小程序在2018年9月10日正式上线了利用微信云进行开发的功能,从此大大简化了小程序的开发过程。微信云开发弱化了后端和运维概念,以前开发一个小程序需要准备一个https的域名,一个后端服务器,以及申请一个小程序;而现在有了微信云开发之后只需申请一个小程序,一个前端就可以搞定一个完整的小程序。方便快捷——微信云开发的三大基础构建——云函数,云数据库,云存储,几乎可以完美代替服务端甚至在处理微信相关操作时还犹有过之。并且这些都被封装成特定的API,调用非常方便。websocket简介为了解决服务器想浏览器端及时推送消息的需求,提出了一些替代的解决方案,例如iframe,AJAX,这些替代方案的基本思路是让浏览器端及时提交请求,服务器收到请求后进行阻塞,并保持连接,在有消息需要发送时及时向浏览器端进行响应推送。但是这些技术都是基于HTTP协议实现的,从根本上讲,HTTP是半双工协议,也就是说同一时刻的信息只能进行单向传输,并无法双向传送。浏览器端向服务器端发送请求之后服务器端才能进行响应请求。其实服务器端依旧只能被动的接受请求信息才能向浏览器端进行响应请求。但是随着人们对信息的实时性要求性越来越高,当服务器数据发生变化时需要主动向浏览器端推送信息(例如订票系统,股票交易系统等)。所以一种高效节能的全双工通信机制websocket就产生了。[4]微信小程序中就采用了websocket技术来进行前端后台的通信。Websocket的优点节省流量:Websocket通过一个单一的套接字在Web上进行操作,以最小的开销高效地提供了Web连接。相较于经常需要使用推送实时数据到浏览器端的轮询、长轮询、长连接来说,极大地减少了不必要的网络流量。双向传输:Websocket实现了浏览器和服务器端的双向通道,服务器和浏览器端可以主动的发送数据给对方了降低延迟:Websocket减少了延迟,因为一旦建立起websocket连接,服务器可以在消息可用时发送它们,不用频繁创建TCP请求及销毁请求,减少网络带宽资源的占用,同时也节省服务器资源。节省资源:websocket节省了服务端资源,因为一旦建立起websocket连接,服务器端就可以在后台数据更新时及时推送消息给客户端。[4]Websocket协议Websocket协议独立的、基于TCP的协议。其本质是先通过HTTP/HTTPS协议进行握手之后创建一个用于交换数据的TCP连接此后服务器端与浏览器端通过此TCP连接进行实时通信。图2.1即为websocket的通信模式:浏览器首先向服务器端发起一个HTTP请求。这个请求包含了一些附加头信息,是一个升级的HTTP请求。服务器端解析这些附加头信息之后产生应答信息返回给浏览器端。这样浏览器端和服务器端之间的websocket连接就建立起来了。双方可以通过这个连接通道自由的传输数据,直到浏览器端或服务器端主动关闭该连接[4]。图2.1websocket协议通信方式(全双工)MINA框架、WXML、WXSSMINA框架简介WXML是MINA框架设计的一套标签语言,结合基础组件、事件系统,可以构建页面的结构。组件式MINA框架中一些预设置的标签,同时也是视图的基本组成单元。其中作为组建的大部分标签在MINA中有预制样式,在使用时需注意样式和目标样式的冲突。MINA框架是微信开发小程序的框架,目标是通过尽可能简单、高效的方式让开发者可以在微信中开发具有原生APP体验的服务。在开发小程序的过程中,必须熟练掌握MINA框架提供的基本机制,如果能深入了解MINA框架运行的方式,便能更好的对小程序进行结构设计和性能上的优化。MINA框架中,整个小程序的内容分为两个层次:视图层和逻辑层。视图层是小程序的外观,定义了小程序的页面结构和样式。,是小程序内容的展示;逻辑层是小程序的内涵,控制了小程序的生命周期和数据处理等。除处理本地的业务逻辑外,小程序开发的过程中逻辑层往往还要通过HTTP与远程服务器进行数据交互。MINA框架提供了自己的视图层描述语言规范WXML和WXSS,以及基于JAVAScript的逻辑层框架,并在视图层与逻辑层之间提供数据传输和事件系统,可以让开发这将重点放在数据与视图的编写上。整个框架最核心的部分就是视图层与逻辑层之间的数据绑定和事件绑定系统。这个系统实现了视图层和逻辑层基于数据绑定和事件机制的数据交互;在逻辑层传递数据到视图层的过程中,逻辑层使两个方向的数据传递都尽可能的简单易开发。MINA框架主要提供了页面管理、基础组件、API三方面的功能。WXML简介框架的视图层由WXML(WeiXinMarkupLanguage)和WXSS(WeiXinStyleSheet)编写,由组件进行展示。WXML用于描述页面结构。WXSS用于描述页面样式。组件(Component)是视图的基本组成单元。WXML是MINA框架设计的一套标签语言,结合基础组件、事件系统,可以构建页面的结构。组件式MINA框架中一些预设置的标签,同时也是视图的基本组成单元。其中作为组建的大部分标签在MINA中有预制样式,在使用时需注意样式和目标样式的冲突。WXSS简介WXSS是类似于CSS的样式表文件,用于在视图层中定义样式。其语法大部分和CSS相同。相对于CSS文件,WXSS对于选择器的支持范围较窄,企且不支持级联选择器。在微信小程序的开发过程中,应尽可能使用组件类定义的方式实现样式。
需求分析在大多数服务型应用中,核心都是用户需求与用户体验。只有符合用户需求并且用户体验优良的应用才能在应用潮流中生存下来。本移动学习系统前端负责用户交互,后端可以通过云数据库进行数据存储,包括存储学习资源,用户账户信息、学习数据、笔记信息和错题记录等重要数据。优秀的应用程序要求能够迅速响应用户指令,给予用户良好的体验,并且十分迎合用户需求。可行性分析技术环境分析移动学习中最重要的因素之二——网络技术与基础设备日渐成熟,大范围高传输效率的无线网络覆盖与高普及率的移动设备,使得移动学习的基础设备环境与技术都得以解决。学习需求分析-技术进步带来了新的学习方法,也就催生了新的学习需求。随着移动学习、碎片化学习等新的学习理念逐渐流行并为人们所普遍接受,借助碎片化时间进行学习也是越来越被学习者所喜爱。杨传斌在针对国内大学生移动学习现状的探究中发现,有九成以上的大学生都听过“移动学习”这一说法,有85%以上表示自己有利用移动设备查资料进行学习的经历,并且移动学习对于自主能力强的学生帮助很大[5]。推广分析微信自2011年上线以来就一直保持着非常高的关注度。截止到2016年第二季度,微信已经覆盖全中国94%以上的智能手机,每个月的活跃用户达到8.06亿,用户覆盖超过200个国家、多达20种语言。除此之外,各品牌微信公众账号的总数已经超过8000000,移动应用对接数量超过85000个,广告收入达36亿余人民币,微信支付用户则达到了4亿人左右[6]。由以上的数据可以得知,微信使用人数之多,影响范围之广,足以支撑小程序的快速推广,加之小程序扫码推广,无需下载,即开即用的特性,小程序的推广是十分容易的。功能需求分析教师开设课程:教师需要有在移动学习系统中开设相关课程的权利,包括课程的名称、分类等课程相关信息。开设课程是教师的必要的职能。只有教师拥有开课权力才能根据自己的实际教学需求来对应开设相关的课程。学习者才可以对课程进行自行选择并学习。管理教学资源:在开设课程之后,教师应可以对教学资源进行管理。教学资源包括但不限于文本,文档,视频等类型,需要教师对其进行集中管理。交互功能:教师将教学资源上传之后,便可以根据学习者的选择将教学资源呈现在学习者的学习端处。学习者通过小程序便可对教学资源进行查看、阅览、查询等操作,将自己的所学疑问通过交互功能传达给老师、同学并进行在线交流。学习者在线学习:学习者可以再移动平台上进行学习,选择自己感兴趣的内容在线学习,因此移动学习平台首要考虑的是要如何呈现这些教学内容和教学资源,以方便学习者查看,学习。在线笔记:在学习中遇到什么问题或者灵感,都可以将通过笔记功能随时记录下来并保存。在线测验:在学习之后可以进行在线测试,检测自己的知识点掌握情况,并巩固自己对知识的掌控理解。并且会将成绩反馈给各科老师。错题本:学习者在学习并测试之后,后台会自动将错题添加到错题本里以便学习者随时进行查阅。非功能需求分析网络传输安全:小程序的安全性是毋庸置疑的。首先,小程序是完全处于微信的控制之下的,任何一家公司或个人想要开发一个小程序都需要完全的严格的按照微信的规范来申请制作。而且上线之前需要得到微信的审批才可以。由于后台是微信,所以开发商也并不能拿到你的微信账号和密码,同样的也得不到你的微信号和社交圈,只能通过用户授权获取部分个人信息,例如昵称,微信头像,个人资料中填写的性别,所在地等资料。最后也是最重要的一点,小程序不允许跳转到外部网站,不允许放置链接,不允许相互之间进行跳转操作。所以小程序的安全性得到了充分的保证。数据存储安全:小程序对于数据存储会以(key,value)形式放在本地缓存中,并且小程序会将需要存储的key/value值进行加密处理之后存储在本地的StorageDB中。之后微信APP会对DB数据整体做本地加密保护。所以小程序本地存储数据的安全性依赖于微信数据库加密方案的安全性。可以说是非常安全的。文件存储安全:文件保存在SD卡中,存放SD卡的文件有做完整性校验,无法被轻易篡改。首先最终存储下来的文件名是通过对称加密(文件流内容Alder32校验和|原始文件名)生成的,最终文件名和文件内容会通过自校验的方式来判断完整性;其次,本地缓存是通过HASH映射查找文件。所以就算可以破解文件名和文件内容,绕过文件自身签名校验,篡改为非法攻击者的伪造文件,小程序也无法映射到该伪造文件并让用户使用。扫描二维码安全:扫码功能是依赖于微信APP的原生的扫码功能,生成小程序的特定页面的直达二维码则依赖于ACCESS_TOKEN,而ACCESS_TOKEN是通过小程序私有的APPID和appsecret请求得到,攻击者无法获知到该信息以伪造生成二维码并进行传播。微信开放接口安全:小程序获取的用户信息包含以下内容,如图3.1所示。图3.1小程序获取用户信息接口返回的明文数据会进行签名校验,需要依赖登录session_key;接口返回的敏感数据会通过密文返回,解密算法依赖登录session_key。攻击者无法获知用户的session_key进行破解,窃取用户数据。此外分享、客服消息、模板消息中输入的内容仅会以文本形式输出;模板消息会将数据通过https传输到服务器,而后推送到客户微信服务通知;微信支付功能继承微信平台原有的功能,安全性较为可靠。开放平台大部分功能会先通过wx.login获得code;然后使用该code换取openid;以此openid进行既定的微信功能操作,比如发送模板消息推送、发起微信支付等。真实性:微信小程序以唯一appid标识身份,不同小程序拥有不同的appid。如果恶意开发者伪造流行的小程序APP,且使用不同的appid,有可能绕过微信的审核流程发布到市场。小白用户如无辨识能力,极可能被骗。但由于小程序无法嵌入url跳转,同时有访问域名的控制,使得风险在一定程度上减轻。小程序风险依赖于微信平台的发布审核、监管控制。移动学习系统设计在开发方面,使用微信提供的微信小程序开发工具。在数据库选择方面,由于小程序背靠微信APP,所以本移动学习系统选择使用云数据库作为存储数据库。云数据库由于是小程序自带的云后台的数据库,交互会更加便捷,访问速度也会比访问自己搭建的服务器更快。功能模块结构设计本移动学习系统主要有以下几大功能模块组成。分别为移动学习模块,移动测评模块,笔记模块,个人中心模块四部分组成。如图4.1所示。图4.1移动学习小程序功能模块结构系统设计本系统参照目前主流的软件工程开发思想,采用表现层、业务逻辑层、数据访问层三层体系结构。如图4.2所示。图4.2系统架构图表现层设计表现层是最贴近用户的一个层面,用于与用户进行交互,并接受用户输入数据的界面。表现层采用微信特定语言WXML和WXSS来编写。分为登录界面,在线学习界面,选课页面,笔记页面,个人中心页面等。业务逻辑层设计业务逻辑层(BusinessLogicLayer)无疑是系统架构中体现核心价值的部分。它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统所应对的领域(Domain)逻辑有关,很多时候,也将业务逻辑层称为领域层。业务逻辑层在体系架构中的位置很关键,它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。由于层是一种弱耦合结构,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何影响。如果在分层设计时,遵循了面向接口设计的思想,那么这种向下的依赖也应该是一种弱依赖关系。因而在不改变接口定义的前提下,理想的分层式架构,应该是一个支持可抽取、可替换的“抽屉”式架构。正因为如此,业务逻辑层的设计对于一个支持可扩展的架构尤为关键,因为它扮演了两个不同的角色。对于数据访问层而言,它是调用者;对于表示层而言,它却是被调用者。依赖与被依赖的关系都纠结在业务逻辑层上,如何实现依赖关系的解耦,则是除了实现业务逻辑之外留给设计师的任务。业务逻辑层采用JavaScript实现,主要用于操作数据变化,接收用户传递信息并向上传递到数据访问层。数据访问层设计数据库操作是应用中最多的一个操作,代码也极为冗余。该层主要与数据库打交道,实现对数据库内数据的增删改查,提取数据并提交给业务逻辑层或者将业务逻辑层的数据保存到数据库。(1)访问方法访问方法包括GET方法和POST方法(2)调用数据库示例GET方法示例constdb=wx.cloud.database({})constsql_cls=db.collection("sql_class");sql_cls.where({college:that.data.college[that.data.idx]}).get({success(res){}})POST方法示例constdb=wx.cloud.database({});//引用环境名为test的数据库constsql_note=db.collection("sql_note");sql_note.add({data:{_id:"note_"+item.Title},success(res){console.log(res)},fail:console.error})(3)返回值说明(此处为主要的res.data展示),如图4.3、图4.4所示。 图4.3GET返回值 图4.4POST返回值详细设计页面主要分为以下几个结构:登录模块:用于通过账号密码登录并可以跳转到注册页面进行注册,注册的唯一id为手机号码,而且注册必须有学号认证才可以进行注册。而教师认证则是特殊的工号进行注册认证。学习模块:在登录之后小程序会自动跳转到学习模块,需要学生先进行学院的选择,选择后小程序会将用户选项发送到后台,后台查找数据库后返回该学院所拥有的课程。之后学生就可以可以根据所选择的学院来进行课程的选择,之后就可以看到该课程的课程简介,包括授课老师等信息,同时也可以点击跳转到学习页面或者直接联系老师。所有信息数据都通过访问数据库获取。跳转到学习页面之后,学习者可以直接进行学习,资源由任课教师进行上传,或者可以选择在线测试,试题内容也由任课教师进行整理。任课教师可以进行题库的创建、编辑和删除,每一套试题都有独特的title标识进行标注,每一道题也会对应着唯一的_id。在用户做完题目之后点击提交试卷,小程序会将测试情况返回到后台并进行对比,再将测试结果返回界面。后台也会对用户提交的答案做一个记录存储下来,筛选出其中的错题并记录在该用户的错题本上。在线测试结束后学习者可以将错题整理到错题本上,方便以后即时查阅。教师也会收到一份学习者测试的反馈结果,以便与学习者进行更好的沟通交流。笔记模块:学习者可以随时随地将自己的一些想法记录在笔记本里,这些数据会存放在后台数据库中,也可以通过搜索模块对笔记进行搜索,方便学习者学习。个人中心模块:可以在个人中心修改自己的个人信息,查看错题本,查看软件相关信息,向软件后台反馈使用时遇到的问题以及寻找各科老师的联系方式。错题本模块:后台会自动将学习者学习时遇到的错题记录在数据库中,以便学习者随时查阅复习。
系统实现基本环境及软硬件介绍微信开发者工具Stablev1.02.1904090微信云开发控制台node.jsv10.15.3OPPOR9m测试机小程序开发准备微信开发者工具下载地址/miniprogram/dev/devtools/download.html解压安装包:G:\qianduan_G\微信web开发者工具申请APPID:登录微信公众平台注册账号,选择小程序填写小程序信息及服务类目复制APPID返回微信开发者工具打开开发者工具,微信扫码,选择小程序并创建项目图5.1小程序项目登录界面Node.js下载Node.js下载地址:/en/download/选择Windows64位下载至C:\nodejs并进行安装,如图5.2所示。图5.2node.js下载全局化配置:此时node还无法使用,需要进行全局化环境变量配置。打开我的电脑→属性→高级系统设置→高级→环境变量,在系统变量下面新加一个变量,key和value值分别为NODE_PATH和node.js所在的位置。如图5.3所示图5.3环境变量配置打开命令行窗口,输入node–v即可查看node版本号,现在需求node8以上的版本。其他部署及配置云后台部署在小程序根目录下的app.json中添加{"cloud":true}在小程序根目录下的project.config.json中添加{"cloudfunctionRoot":"./functions/"}配置及调用云函数打开微信开发者工具,在编辑器根目录下找到cloudfunctions,右键新建node.js云函数下载依赖,小程序目录下打开node命令行,输入npminstallwx-server-sdk–save下载云端依赖打开云开发控制台,在云函数列表中添加同名函数返回根目录,右键选中云函数,选择上传并部署:所有文件,之后每次修改云函数都需要上传并部署:云端安装依赖初始化云函数,添加一行cloud.init()调用云函数:wx.cloud.callFunction({name:'cloud_class',data:{a:1,b:2},success:function(res){console.log(res.sum)},fail:console.error})配置数据库打开云开发控制台,选择数据库,首先需要创建一个集合。这一步就相当于常规数据库的建表。接下来就需要在数据库里添加记录了。每条记录必不可少的两个字段分别是_id和_openid,前者是数据库存储的唯一标识,后者是用户id,用来备注该字段是谁添加的。配置app.jsonApp.json是整个小程序中不可或缺的一步,所有页面都需要通过app.json进行注册,否则会报页面路径错误。在pages里注册所有的页面,在tabBar里注册小程序的切换页面(数量为2-5个)页面实现登录及注册登录系统通过学号和密码进行登录,用户输入信息之后,前端通过getUsername函数即时修改变量username和password的值并在单击登陆后将username和password的值传至后台,进行访问数据库操作。待数据库进行查找后返回空值或返回登录信息并在前端进行登录操作。小程序会根据学号(或教师工号)来进行判断是进入教师端还是学习者端。登陆成功后会自动跳转到课程选择界面。如图5.4所示。图5.4小程序登录界面登陆界面也可以跳转至注册界面,注册账号通过唯一key值手机号来进行用户识别。在填好注册信息并点击注册按钮后,前端收集用户输入数据并传至后台数据库,如果注册栏内的手机号已进行注册,后台会返回注册失败,该手机号已被注册。如果注册栏内的手机号可以进行注册,后台会修改一个状态值reqState,表明这个手机号可以进行注册。之后小程序会检测所填信息是否完整以及所填学号(工号)是否符合规范。如果符合规范会弹出“注册成功”的提示,并将页面跳转到登录页面;如果不符合规范,会弹出“注册失败,请输入正确的手机号并输入账号密码”的提示。如图5.5所示。图5.5小程序注册界面课程选择及学习界面登陆后首先会跳转到课程选择界面。在这个界面学习者需要先选择自己的学院。前端会将学习者的选项发送至后台进行数据库查找,并返回该学院所对应的课程。之后前端界面会展示该门课程的基础信息,包括课程名称,授课老师等,也可以在这里选择开始学习进行课程学习,如图5.6所示。图5.6小程序课程选择界面学习界面主要内容为课程学习及在线测试。学习者根据所选科目进行学习,学习资源由教师上传到数据库之后学习者便可进行在线学习。在线测试则是由教师预先将试题和答案上传至数据库,学习者即可进行在线测试,测试结果会反馈给教师,同时错题也会被相应的记录在错题本上。笔记可以方便学习者将所学所想随时随地的记录下来。每一条输入的笔记都会上传到后台数据库中进行保存,笔记界面笔记可以方便学习者将所学所想随时随地的记录下来。每一条输入的笔记都会上传到后台数据库中进行保存,由于每一条笔记的唯一key值就是笔记自身内容,所以不会存在重复记录的情况。由于笔记长度有限,所以长度不能超过50字。笔记可以随时进行有序添加,对于不需要的笔记也可以进行删除操作,点击删除按钮会向后台发送删除数据的请求,如图5.7所示。图5.7小程序笔记记录界面笔记模块还有一个非常有用的功能就是笔记搜索,这是一个模糊搜索,可以通过关键词来进行搜索,而且可以通过多关键词来进行联合查找。这在笔记较多的时候极大的方便了学习者的查找,如图5.8所示。图5.8小程序模糊搜索界面个人中心界面个人中心界面包含了许多个人资料,在这里可以看到当前学习的课程。可以进行个人信息的修改,账号切换,错题本查看,查看软件作者,向后台反馈问题,联系老师。修改个人信息可以通过弹窗的方式对个人信息进行修改,修改后的个人信息会上传到后台数据库进行存储。退出登录会清除当前登录状态并返回登录页面,此时可以重新进行登录或者账号注册。查看错题可以查看学习者做在线练习中遇到的错题,方便学习者及时复习。错题集存放在数据库中,由每个人的学号作为唯一key值。其他包括软件作者查看,问题反馈可以将使用中遇到的问题或者有什么需要改进的地方,都可以通过问题反馈进行提交;联系老师可以获取所有课程老师的联系方式,以更方便学习者与老师进行沟通。如图5.9所示。图5.9小程序个人中心界面
系统测试测试计划测试目标测试移动学习系统的基本功能测试移动学习系统的逻辑性测试环境Windows7操作系统微信开发者工具Stablev1.02.1904090OPPOR9m测试机测试环境白盒测试测试流程测试内容测试注册界面用户添加功能测试微信登录功能测试用户课程选择及联系老师功能测试笔记添加删除功能测试笔记模糊搜索功能测试个人中心功能,包括信息修改,退出登录,错题本查看,问题反馈,联系老师等功能。测试在线测试功能测试错题本功能测试用例测试注册界面用户添加功能,添加4-6个用户,如图6.1所示。部分测试用例:{_idusername:3115001336,password:123456}{_idusername:3115001337,password:1}图6.1注册界面测试测试微信登录功能测试用例:{username:3115001337, password:1}登陆成功后控制台输出成功登陆以及此时的用户名username,如图6.2所示。图6.2登录成功测试用户课程选择及联系老师功能部分测试用例:学院{_id:“自动化学院”}{_id:“机电学院”}课程{_id:“数据库”,college:“自动化学院”,teacher:“李老师”}{_id:“大英”,college:“自动化学院”,teacher:“李老师”}{_id:“数字电路”,college:“机电学院”,teacher:“王老师”}联系老师,如图6.3,6.4所示。图6.3王老师信息图6.4拨打王老师电话测试笔记添加删除功能测试用例如图添加如图6.5,6.6所示图6.5输入框输入信息图6.6添加成功
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福建农林大学《金融学基础题库》2025-2026学年期末试卷
- 闽南理工学院《中医耳鼻喉》2025-2026学年期末试卷
- 皖北卫生职业学院《保险法》2025-2026学年期末试卷
- 南昌航空大学《外国法制史》2025-2026学年期末试卷
- 安徽绿海商务职业学院《国际结算》2025-2026学年期末试卷
- 华东交通大学《西方经济学题库》2025-2026学年期末试卷
- 福建船政交通职业学院《新媒体概论》2025-2026学年期末试卷
- 福建农林大学金山学院《学前卫生学》2025-2026学年期末试卷
- 贵州特岗政治试题及答案
- 铁合金炉外法冶炼工安全生产知识考核试卷含答案
- 哈尔滨2025年哈尔滨“丁香人才周”(春季)事业单位招聘1347人笔试历年参考题库附带答案详解
- 脑血管病的饮食指导
- 创伤救护-止血、包扎、固定、搬运课件
- 2024年华夏银行股份有限公司校园招聘考试试题完整
- 《陆上风电场工程概算定额》NBT 31010-2019
- DZ∕T 0142-2010 航空磁测技术规范(正式版)
- 二次安全措施票培训
- 残疾学生送教上门备课、教案
- 口腔前台接诊流程和话术培训
- 保洁礼节礼仪培训
- 土建劳动力计划表劳动力安排计划及劳动力计划表
评论
0/150
提交评论