基于小程序的在线教育系统平台的设计与实现_第1页
基于小程序的在线教育系统平台的设计与实现_第2页
基于小程序的在线教育系统平台的设计与实现_第3页
基于小程序的在线教育系统平台的设计与实现_第4页
基于小程序的在线教育系统平台的设计与实现_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ⅣⅣ摘要随着互联网技术的不断发展,传统线下教育模式受制于时空限制、资源分配不均以及互动形式单一等问题,难以满足用户对灵活、个性、高效学习的需求。构建轻量化、高可用性的教育平台,已成为当代教育领域亟待解决的关键问题。有鉴于此,本文设计并实现一个集课程管理、互动、资源共享等功能于一体的在线教育平台。该平台运用微信小程序、SSM框架以及数据库存储管理技术,并借助API实现前后端交互,显著降低了访问门槛。借助小程序,用户能够随时随地参与到课程学习,极大提升了学习的便利性与效率。此外,平台经黑盒白盒测试的打磨,并依据用户反馈对系统性能进行优化,其稳定性和易用性均得到了有效验证。本文不仅证实小程序在推动在线教育普及和优化用户体验方面的可行性,而且为未来在线教育的发展提供了切实可行的解决方案。关键词:在线教育;微信小程序;SSM框架;数据库管理;API交互

AbstractWiththecontinuousdevelopmentofinternettechnology,traditionalofflineeducationfaceschallengessuchastimeandspaceconstraints,unevenresourcedistribution,andlimitedinteraction,makingitdifficulttomeetthedemandforflexible,personalized,andefficientlearning.Thispaperproposesanonlineeducationplatformintegratingcoursemanagement,interactivefeatures,andresourcesharing.BuiltwithWeChatMiniPrograms,theSSMframework,anddatabasemanagementtechnology,theplatformusesAPIsforseamlessfrontend-backendcommunication,reducingaccessbarriers.Userscanaccesscoursesanytimeandanywherethroughtheminiprogram,significantlyenhancinglearningconvenienceandefficiency.Afterrigorousblack-boxandwhite-boxtesting,theplatform'sperformancewasoptimizedbasedonuserfeedback,confirmingitsstabilityandusability.Thisstudydemonstratesthepotentialofminiprogramsinadvancingaccessibleonlineeducationandofferspracticalinsightsforfuturedevelopmentsinthefield.Keywords:

OnlineEducation;WeChatMiniProgram;SSMFramework;DatabaseManagement;APIInteraction

目录TOC\o"1-2"\h\u1绪论I1绪论研究背景微信小程序诞生后,依托微信成熟的用户体系,拓展出多样化功能模块,迅速获得社会普遍重视REF_Ref8030\r\h[1],伴随信息技术的演进升级,在线教育产业正在经历快速成长阶段,伴随全球疫情持续发酵,线上学习逐渐成为教育体系的核心形式,快速催生了远程教育模式的优化与迭代。传统授课方式面临时空条件的束缚,学习者需按既定的时空规划进行课堂参与,时间地点约束强,且传统教学模式的学生能够接触的教学资源多集中于校内及本地,较难支撑学生特色化需求与可拓展发展路径,疫情席卷全球后,传统教学模式及其作用正逐步减弱。当代教育体系中,在线教育独树一帜,以线上课堂为载体,学习方式展现出较高的弹性空间,消弭时空距离的阻碍,数字化教育资源存量庞大,选课过程充分体现学生自主性,依照个人学习倾向或时间管理灵活选择课程及学习模式,实现学生多元成长与学习方式可调,且支出有限。伴随移动互联网及"微技术"的迅猛进步,微信软件迅速走红,这种应用支持不下载直接启动REF_Ref8324\r\h[2],微信小程序立足开发灵活性、终端适配好、转化效果好、市场前景广、入口便捷等特质,逐步成为企业和开发者的首选方案,正在吸引社会多方的高度聚焦,逐步发展为现代社会的关键数字工具。该课题聚焦于开发微信小程序端的在线教学平台,大幅优化线上教育的灵活操作与便捷体验,实施前后端分离方案,能显著简化小程序后端开发流程,提升开发速度,同时减少开发投入和后期运维开支,从而提升用户的线上学习服务质量REF_Ref8030\r\h[1]。研究意义本研究拟采用小程序操作直观、随取随弃的交互特性,借助智能手机等移动终端实现教育资源的学生端触达,支持学习者全天候下载教育资源,对知识点存疑或产生兴趣时可即时与教师线上交流,由此可提高学生的参与主动性,优化学习中的快乐体验,还可针对学生的思维模式与性格差异,围绕学生兴趣焦点,锁定学生热衷的学习主题,以增强学生的求知欲,利用微信小程序进行学习,学生可向教师传递真实的学习反馈,便于教师及时掌握学生的学习成果,较之实时对话更见成效,其真实性也更为可靠REF_Ref9542\r\h[3],小程序在线课堂功能实现与《教育信息化2.0行动计划》相匹配,呼应国家政策指引,实现用户学习需求的多样化适配,依托系统开发实践,将为在线学习领域提出创新型的处理办法,对今后技术攻关具有借鉴意义。国内外研究现状国内在线教育市场发展呈现井喷态势,教育行业主体陆续采用微信小程序作为线上教学的实施载体,微信的用户规模十分庞大,为在线教育行业开拓了巨大的市场潜力,受此现象的直接推动,推动国内教学实践中引入社交媒体工具,采用投票机制、答疑互动、问卷测评等途径,增强学生的课堂互动性,诸多教学设计者正运用相似手段优化学生的学习体验。众多国内教育研究者探索了微信小程序支持下的各类教学模式,采用翻转课堂或混合式教学等途径,相关模式的探索实践,可同步推进在线教育平台建设与学生积极性培养,现阶段网络授课平台形式多样,诸如网易云课堂、中国大学MOOC、智慧树、学习通、腾讯课堂等。该类型教育平台因其差异化的运作体系及商业模式而迅速崛起,虽然主流方案普遍采用B/S模式,其架构均为浏览器侧前后端分离,实际应用仍停留在PC层面,移动终端仅实现前端页面的直接移植,用户定制空间小,当前多数教育平台的互动功能明显不足,仅采用静态的视频课程资源,未形成互动化学习跟踪体系,教育类平台需进一步夯实该领域的发展基础。国外现有研究中社交媒体影响的探讨,往往探讨社交媒体对线上教学的效果,基于Facebook和WhatsApp等平台的在线教育实施效果,尽管微信小程序在西方用户中的占比不大,对西方用户辐射有限,而相关功能正被学术界重点考察。近期学术共识认为,国外教育工作者正意识到社交媒体赋能的在线课堂对学生参与度的提升效应,尤其是依托话题讨论和及时反馈,研究结果反映,在课堂实施阶段,在线即时沟通可优化师生交互体验,强化师生对话,诸如采用Chatbot等AI问答工具实现学生问题的自动回复,现有平台运用社交媒体的建群机制推动学生项目团队合作,提高学生团队配合水平,微信小程序同样支持此类效果的实现基于微信小程序的教育研究在国内外呈现出不同的关注点,但核心发展态势仍高度吻合:互联网基础设施正稳步更新换代,网络学习将迈向更灵活高效的阶段,学界需优先聚焦于学习体验、教育品质及个性化培养三大维度,伴随教育技术的不断进步,教育效果的有效测评与公平机制建设需重点探讨,上述研究对教育政策制定和平台优化具有理论建设与实践指导双重意义。本文研究内容及组织结构本文围绕基于微信小程序的在线网课系统的设计与实现展开,主要为以下六个模块:第一部分:绪论,主要介绍了本文的研究背景与意义,以及本文所要研究和探讨的内容分析近年来在线教育的发展趋势,特别是新冠疫情如何推动了线上学习的普及。探讨微信小程序在用户便利性、社交分享以及功能集成方面的优势。第二部分:系统需求分析,主要介绍了本文针对目前市面上的需求所制定的系统需求,分别为功能性需求和非功能性需求,功能性需求主要由用户端和管理端的功能需求分析组成,如用户注册/登录、课程查看、学习进度记录、作业提交、教师发布公告等。非功能性需求由系统的响应时间、并发用户数、数据安全性等组成。第三部分:系统设计,介绍了系统的整体架构,包括前端和后端的分层设计,以及各层之间的交互。详细说明了数据库的ER图、表结构设计,主要涉及用户表、课程表等。会对系统的各个部分功能进行逐一介绍,例如课程管理、用户管理、用户界面等。第四部分:技术实现,前端描述微信小程序的前端开发框架和使用的技术栈,包括UI设计、数据交互等。后端介绍SSM框架的应用,重点阐述控制器、服务层和数据访问层的设计与实现。展示前后端交互的API设计,包括数据格式和调用方式。第五部分:系统测试与评估,是对系统中的每个功能模块进行测试,确保其符合设计要求。搭建测试环境,进行整体测试,评估系统在高并发情况下的表现。第六部分:项目成果结论与展望,回顾系统设计与实现过程中取得的主要成果,归纳经验与不足。未来改进如与更多第三方服务整合、引入AI技术进行个性化学习推荐等。2技术选型与可行性分析2.1关键技术概述(1)微信小程序微信体系下的轻量级程序化服务模块,依托微信平台实现快速触达用户与社交裂变传播,微信方面给出的说明是,该模式实现了即扫即用的零安装体验,支持扫码与搜索两种快捷启动方式REF_Ref5626\r\h[4],系统设计符合"即用即退"的交互范式,避免了因安装大量应用而占用存储空间的困扰REF_Ref5626\r\h[4],小程序展现出界面友好、可个性化设置及灵活扩展的特点,开发人力物力投入精简,多端兼容特性明显。(2)MySQL数据库数据安全和完整性的实现需要数据库技术支撑,以数据层为依托,既保证系统运行稳定又提升软件处理效能,为用户实现数据的精确管控,进而推动其工作效率和业务素养REF_Ref9513\r\h[5],基于数据模型的分类标准,数据库可分为网状型、层次型及关系型等类型,这类数据库中,关系型数据库的部署规模和技术生命力均居首位REF_Ref9497\r\h[6]。MySQL技术归属于关系型数据库范畴,采用标准SQL实现对数据库记录的增删改查功能,融合了结构精简、处理迅捷、代码可获和预算友好四大特性,可充分满足个人及中小企业的需要REF_Ref27717\r\h[7],本研究开发的微信小程序在线教育平台采用了MySQL这一关系型数据库。(3)uni-app若业务需跨平台呈现时,为各平台单独开发适配代码需要耗费大量资源,采用uni-app能实现全平台同步编译输出,实现iOS版本编译,适配各大小程序等多样化平台,明显减少开发开支REF_Ref30215\r\h[8],uni-app采用开放生态模式,其组件资源十分充足,实现了对小程序组件库与SDK生态的全面兼容,采用uni-app技术实现前端应用开发,采用Vue的语法逻辑,主要依托CSS与JavaScript实现功能(4)SSM框架后端采用Spring系列框架协同MyBatis的方案,即SSM组合框架REF_Ref13529\r\h[9],就Web应用程序开发而言,业务逻辑的实现由Spring框架承担,Mybatis实现数据库交互的核心组件,在SpringMVC的MVC架构下,用户请求被转化为数据模型并渲染为页面输出REF_Ref13565\r\h[10],现代Web开发领域普遍采用SSM框架作为技术基础,用于企业级应用的开发实现,项目后端采用SSM框架进行Web开发。2.2系统需求分析(1)功能性需求分析用户身份验证、课程信息查询、教学评价收集、课程体系管理、后台控制中心用户管理:·注册与登录:涵盖邮箱注册及自定义注册模式。课程管理·课程上传:视频课程资料及相关课件可通过管理员端上传。·课程编辑:管理员可对线上课程资料进行后续内容修订。·课程浏览:用户可借助分类标签或关键词检索目标课程。互动区·论坛讨论:学习者拥有创建帖子及答复帖子的权利,围绕课程议题互动。安全和权限管理实施用户与管理人员的权限分级机制,保障数据层级间的互不干扰。采用密码隐藏机制,实现用户数据加密。进度跟踪与反馈·学习进度记录:系统实时捕获每位学生的知识掌握进度与评估分数。·学习报告生成:按固定周期制作学习分析报告,整合学习时长及完成度等参数。·教师反馈:依托学习报告,教师可向学生提供量身定制的反馈意见。(2)非功能性需求分析性能需求·界面友好:用户界面设计干净利落,操作步骤化繁为简,满足各年龄阶段用户需求。·系统稳定性高:系统实现了多用户在线学习的稳定承载,实现系统无故障运行。·数据安全性高:系统需保障用户身份资料及学习轨迹的私密性。·响应速度快:系统需实现毫秒级响应,实现用户跨场景的无障碍学习体验。·兼容性强:兼容主流移动操作系统及微信客户端版本。技术需求·前端技术:整合HTML5、CSS3与JavaScript技术,结合Vu.JS框架呈现动态交互界面效果·后端技术:后端实现依托SSM框架支持,完成用户信息及课程数据的管理操作。·数据库技术:采用MySQL数据库作为存储方案,保存用户与课程相关的所有数据。·服务器技术:采用Tomcat作为服务器的运行环境,兼顾系统运行稳定性与架构扩展灵活性。2.3系统性能分析(1)系统安全性在线教育平台对数据要严格控制不同身份的不同权限,要求如下:对微信小程序的在线教育平台进行管理,用户要使用注册之后,拥有权限的账号和密码登录移动端,无权限者无法登录或查看、修改数据。系统按权限分级管理,不同用户的身份登录后拥有不同的对系统操作范围。用户身份权限进行严格管理,保证权限合理性。(2)数据完整性核心数据必须全部填写,不能为空。不同数据项的关联需达到精准要求,不同数据条目中的相同字段值要统一。该系统设计可预防核心信息录入偏差,依据系统既定格式执行。2.4可行性分析针对该在线网课微信小程序开展初步分析与测试,形成可行计划,继而对该方案进行实证分析,本研究的分析聚焦于软件开发、成本控制和操作友好度三个关键点。(1)技术可行性本在线教育平台使用SSM框架对后端进行开发,例如:访问数据库、API的撰写等。前端使用微信开发者工具对平台的界面UI、动态交互、调用后端API进行开发。二者已经是市面上非常成熟的技术并在网络上皆有教程。

从技术角度看,此在线教育平台具备良好可行性,若掌握核心语法概念,即可上手操作,足见该系统的技术基础切实可靠。(2)经济可行性本在线教育平台的技术架构全面采用免费开源的方案,在简化开发流程的同时也做到了减少开发成本。系统运行时对硬件配置的要求也保持在较低的水平上。因此,本系统在经济层面上是具有可行性的,是十分可行的。(3)操作可行性本在线教育平台的界面简洁明了易操作,用户只需平时使用过其他小程序,就可以对系统进行相对应的操作。本平台具备操作便捷、管理高效、交互友好等核心特性,并且用户使用学习成本低,在实践操作层面验证了其可行性。综合论证表明,本平台目标明确、需求清晰,在技术方面采用较为成熟的框架和开源的方案,系统在经济开支上具有成本优势,操作简单便于管理,整体开发风险可控且具备较高的实践价值。3系统设计3.1系统结构设计前端利用微信小程序实现用户界面,后端使用SSM框架处理数据和程序逻辑,并通过API接口与前端进行数据交互REF_Ref30768\r\h[11]。如3-1下图所示,图3-1功能结构图后端实现采用B/S(浏览器/服务器)与C/S(客户端/服务器)双模架构,其中后者依托Web服务技术,采用浏览器/客户端一体化整合策略,系统架构体现为前后端分离与分布式协同设计,本系统将eb服务器与客户端发送请求和回发双向互动,并且web服务器与后端数据库连接。是适用于当下互联网环境下的模型结构。只要用户能够满足在互联网联通的条件下,便可以不局限于时间、地点、空间去使用。3.2数据库设计从计算机技术诞生至今,数据库技术逐步演进为其关键的技术精华,多数现代信息管理系统都采用数据库作为技术底座,这导致数据库建设成为主流信息管理系统的重要支柱REF_Ref8935\r\h[12]。作为计算机技术发展的产物,数据库技术集中体现了其演进精华,现有信息管理系统大多采用数据库作为核心数据载体,数据库建设是现阶段信息系统开发的核心内容REF_Ref8896\r\h[13]。在概念设计阶段,当前最主流的设计方案当属ER模型法,该方案以系统需求分析为底层逻辑,运用ER图直观呈现系统实体间的交互关系,形成适配用户数据管理及操作需求的数据库概念方案,以生成用户友好化的业务数据展现体系为目的,这样就能对应到数据库的逻辑层面,方便终端用户阅读,数据库概念模式本质上是数据关系的抽象模型,与数据库系统的工程实现存在应用隔阂,系统设计阶段支持用户开展深度反馈活动,从而达成系统设计与用户需求的无缝衔接,实现用户与系统的良性互动。3.2.1用例图用例图,又称作ER图描述各种用户与系统之间的交互,标识出系统的功能需求和用户角色。在系统结构设计完成后,设计出整个系统的ER图,主要实体类有学生、教师、班级、课程、试题、试卷、评论等,每个实体都有对应的属性,在此ER图中只展示了实体类的部分主要属性。教师通过工号教授不同课程,学生可以选择通过课程信息选择课程,并查看课程资源,同时也可以使用课程相关的试卷试题,对课程资源进行评论互动。如图3-2所示图3-2用例图3.2.2数据库设计表数据存储设计涉及用户管理、课程信息及评价体系相关表单,科学设计表结构实现高效存储与快速查询。(1)班级表班级表包含了班级的详细信息,记录班级基本信息,用于方便班级的管理。其主键为ID,是班级的唯一标识,addtime为班级创建时间,banji为班级名称。每增加一个班级,ID将会自增,并记录班级的创建时间和班级。如表3-1所示:表3-1班级表字段类型空默认注释id

(主键)bigint(20)否AUTO_INCREMENT主键addtimetimestamp否CURRENT_TIMESTAMP创建时间banjivarchar(200)否DEFAULT_BANJI班级(2)教师表教师表存储了教师的基本信息以及其教学的相关数据,其中主键为ID,jiaoshigonghao为教师工号,是教师的登陆账号,renjiaokecheng即任教课程,是教师负责的课程(如:“Java程序设计”),其他为教师的相关个人信息。如表3-2所示。表3-2教师表字段类型空默认注释id

(主键)bigint(20)否AUTO_INCREMENT主键addtimetimestamp否CURRENT_TIMESTAMP创建时间jiaoshigonghaovarchar(200)否DEFAULT_ACCOUNT教师工号mimavarchar(200)否DEFAULT_PASSWORD密码jiaoshixingmingvarchar(200)是NULL教师姓名xingbievarchar(200)是NULL性别zhaopianvarchar(200)是NULL照片zhichengvarchar(200)是NULL职称renjiaokechengvarchar(200)是NULL任教课程lianxidianhuavarchar(200)是NULL联系电话jiaoshiyouxiangvarchar(200)是NULL教师邮箱(3)课程成绩表课程成绩表用于记录学生课程考核成绩和教师评语,其中主键为ID,kechengmingcheng为课程名称,是外键,指向课程信息表。教师工号为外键,指向教师表,Pingyu即教师对学生的评语。如表3-3所示表3-3课程成绩表字段类型空默认注释id

(主键)bigint(20)否AUTO_INCREMENT主键addtimetimestamp否CURRENT_TIMESTAMP创建时间kechengmingchengvarchar(200)是NULL课程名称kechengleixingvarchar(200)是NULL课程类型tupianvarchar(200)是NULL图片banjivarchar(200)是NULL班级nianjivarchar(200)是NULL年级xueqivarchar(200)是NULL学期kaohechengjiint(11)是NULL考核成绩pingyuvarchar(200)是NULL评语dengjishijiandate是NULL登记时间jiaoshigonghaovarchar(200)是NULL教师工号jiaoshixingmingvarchar(200)是NULL教师姓名xuehaovarchar(200)是NULL学号xueshengxingmingvarchar(200)是NULL学生姓名useridbigint(20)是NULL用户id(4)课程分类表课程成绩表用对课程进行类型划分,fenlei为课程的分类名称,例如:“编程类”如表3-4所示表3-4课程分类表字段类型空默认注释id

(主键)bigint(20)否AUTO_INCREMENT主键addtimetimestamp否CURRENT_TIMESTAMP创建时间fenleivarchar(200)否DEFAULT_FENLEI分类(5)课程评价表课程成绩表用于学生对于课程质量的评分反馈表,其中kechengmingcheng为外键,指向课程信息,jiaoshigonghao为外键指向教师表,学生姓名为外键,指向学生表,如表3-5所示表3-5课程评价表字段类型空默认注释id

(主键)bigint(20)否AUTO_INCREMENT主键addtimetimestamp否CURRENT_TIMESTAMP创建时间kechengmingchengvarchar(200)是NULL课程名称kechengleixingvarchar(200)是NULL课程类型tupianvarchar(200)是NULL图片banjivarchar(200)是NULL班级jiaoshigonghaovarchar(200)是NULL教师工号jiaoshixingmingvarchar(200)是NULL教师姓名jiaoxuezhunbeiint(11)是NULL教学准备jiaoxueshejiint(11)是NULL教学设计jiaoxuefangfaint(11)是NULL教学方法jiaoxuexiaoguoint(11)是NULL教学效果zongpingfenvarchar(200)是NULL总评分zhengtipingjialongtext是NULL整体评价pingjiariqidate是NULL评价日期xuehaovarchar(200)是NULL学号xueshengxingmingvarchar(200)是NULL学生姓名useridbigint(20)是NULL用户id(6)课程信息表课程信息表用于管理课程基本信息,如年级、学期、授课教师等,其中jiaoshixingming为外键,指向教师表,banji为外键指向班级表。如表3-6所示表3-6课程信息表字段类型空默认注释id

(主键)bigint(20)否AUTO_INCREMENT主键addtimetimestamp否CURRENT_TIMESTAMP创建时间kechengmingchengvarchar(200)否DEFAULT_NAME课程名称kechengleixingvarchar(200)否DEFAULT_LEIXING课程类型tupianvarchar(200)是NULL图片nianjivarchar(200)是NULL年级xueqivarchar(200)是NULL学期banjivarchar(200)是NULL班级faburiqidate是NULL发布日期jiaoshigonghaovarchar(200)是NULL教师工号jiaoshixingmingvarchar(200)是NULL教师姓名(7)管理员表管理员表用于系统管理员账号管理。其中role为角色,支持权限分级,如表3-7所示表3-7管理员表字段类型空默认注释id

(主键)bigint(20)否AUTO_INCREMENT主键usernamevarchar(100)否DEFAULT_USERNAME用户名passwordvarchar(100)否DEFAULT_PASSWORD密码rolevarchar(100)是管理员角色addtimetimestamp否CURRENT_TIMESTAMP新增时间(8)学生表学生表用于存储学生基本信息及其学习数据。其中xuehao为学号,使学生唯一登陆的账号,banji为学生所属班级,外键,指向班级表,如表3-8所示表3-8学生表字段类型空默认注释id

(主键)bigint(20)否AUTO_INCREMENT主键addtimetimestamp否CURRENT_TIMESTAMP创建时间xuehaovarchar(200)否DEFAULT_ACCOUNT学号mimavarchar(200)否DEFAULT_PASSWORD密码xueshengxingmingvarchar(200)否DEFAULT_NAME学生姓名xingbievarchar(200)是NULL性别touxiangvarchar(200)是NULL头像banjivarchar(200)是NULL班级shoujivarchar(200)是NULL手机youxiangvarchar(200)是NULL邮箱(9)学生选课表学生表用于记录学生选课的记录及选课审核成功与否。其中sfsh为是否审核,默认为否,jiaoshigonghao和学生姓名皆为外键,如表3-9所示表3-9学生选课表字段类型空默认注释id

(主键)bigint(20)否AUTO_INCREMENT主键addtimetimestamp否CURRENT_TIMESTAMP创建时间kechengmingchengvarchar(200)是NULL课程名称kechengleixingvarchar(200)是NULL课程类型tupianvarchar(200)是NULL图片banjivarchar(200)是NULL班级nianjivarchar(200)是NULL年级xueqivarchar(200)是NULL学期xuankeriqidate是NULL选课日期jiaoshigonghaovarchar(200)是NULL教师工号jiaoshixingmingvarchar(200)是NULL教师姓名xuehaovarchar(200)是NULL学号xueshengxingmingvarchar(200)是NULL学生姓名sfshvarchar(200)是否是否审核shhflongtext是NULL审核回复useridbigint(20)是NULL用户iduseridbigint(20)是NULL用户idxueshengxingmingvarchar(200)是NULL学生姓名sfshvarchar(200)是否是否审核shhflongtext是NULL审核回复useridbigint(20)是NULL用户id3.3后端模块设计3.3.1教师信息管理模块管理员身份可以管理教师信息,查看教师列表,同时可以对教师信息进行增删改查,上方的搜索框可以对教师工号、教师姓名、任课课程进行查询,点击详细按钮可以查看教师的基本相关信息。具体界面的展示如图3-3所示。图3-3教师信息界面3.3.2课程资源管理模块教师和管理员可以对课程信息进行添加修改删除以及查询课程操作,点击详细按钮,上面搜索框输入课程名称和班级可以查询与搜索内容有关的课程,可以查看课程的基本信息。具体界面如图3-4所示。图3-4课程信息管理界面3.3.3课程信息的管理模块教师和管理员可以对课程资源进行添加修改删除和查询操作,例如:课程标题、封面图、分类等。界面如下图3-5所示:图3-5课程资源管理界面3.4前端模块设计3.4.1系统首页模块小程序用户是需要注册才可以进行登录的,登录后在首页可以查看相关信息,并且下面导航可以点击到其他功能模块,例如:课程信息、作业布置(学生只可提交作业)、课程资源、我的界面。同时,可以点击课程进行课程观看,提交评论。界面如下图3-6所示:图3-6系统首页3.4.2我的菜单模块在小程序里点击我的,会出现关于我的界面,在这里可以修改个人信息、账号、密码等,以及可以点击其他功能模块,例如:作业布置去提交作业、查看成绩、课堂签到、查看本人选课情况。界面如下图3-7所示:图3-7我的菜单3.4.3学生选课模块学生再选课模块可以进行学生选课,点击选课显示提交成功后,可以到个人页面点击学生选课查看是否成功。界面如下图3-8所示:图3-8学生选课界面4系统实现4.1后台模块的实现4.1.1教师登陆注册管理模块的实现如果教师没有申请过账号,要先进行账号注册,点击注册,从前台传入一个请求,在@PostMapping注解里面用Register控制器进行信息拦截,读取请求中的信息,通过@RequestBody接收json格式的JiaoshiEntity对象,根据工号查询是否存在相同用户,若存在则返回错误,使用当前时间戳作为用户的ID,调用jiaoshiService.insert(jiaoshi),将用户信息写入数据库如果教师已有帐号,输入正确的账号密码,在@RequestMapping中的Login中的jiaoshiService.selectOne方法查询数据库中的教师信息是否正确,根据返回的token判断用户身份。登录登录

@IgnoreAuth

@RequestMapping(value="/login")

publicRlogin(Stringusername,Stringpassword,Stringcaptcha,HttpServletRequestrequest){

JiaoshiEntityuser=jiaoshiService.selectOne(newEntityWrapper<JiaoshiEntity>().eq("jiaoshigonghao",username));

if(user==null||!user.getMima().equals(password)){

returnR.error("账号或密码不正确");

}

Stringtoken=tokenService.generateToken(user.getId(),username,"jiaoshi","管理员");

returnR.ok().put("token",token);

}

注册

@IgnoreAuth

@RequestMapping("/register")

publicRregister(@RequestBodyJiaoshiEntityjiaoshi){

//ValidatorUtils.validateEntity(jiaoshi);

JiaoshiEntityuser=jiaoshiService.selectOne(newEntityWrapper<JiaoshiEntity>().eq("jiaoshigonghao",jiaoshi.getJiaoshigonghao()));

if(user!=null){

returnR.error("注册用户已存在");

}

LonguId=newDate().getTime();

jiaoshi.setId(uId);

jiaoshiService.insert(jiaoshi);

returnR.ok();

}4.1.2课程资源管理模块的实现在RequestMapping注解里面用page接口,从HttpSession中获取tableName,若为"jiaoshi",则设置查询条件中的教师工号为当前登录用户的用户名。通过条件构建。通过EntityWrapper工具拼接条件:likeOrEq:处理模糊查询或等值查询。between:处理范围查询,如时间区间。sort:添加排序条件。最终调用queryPage方法执行分页查询。将分页数据包装put("data",page)。list接口进行分页查询课程信息与/page接口逻辑相同,直接返回所有匹配的课程分页数据。@@RequestMapping("/page")

publicRpage(@RequestParamMap<String,Object>params,KechengxinxiEntitykechengxinxi,

HttpServletRequestrequest){

StringtableName=request.getSession().getAttribute("tableName").toString();

if(tableName.equals("jiaoshi")){

kechengxinxi.setJiaoshigonghao((String)request.getSession().getAttribute("username"));

}

EntityWrapper<KechengxinxiEntity>ew=newEntityWrapper<KechengxinxiEntity>();

PageUtilspage=kechengxinxiService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,kechengxinxi),params),params));

returnR.ok().put("data",page);

}

@IgnoreAuth

@RequestMapping("/list")

publicRlist(@RequestParamMap<String,Object>params,KechengxinxiEntitykechengxinxi,

HttpServletRequestrequest){

EntityWrapper<KechengxinxiEntity>ew=newEntityWrapper<KechengxinxiEntity>();

PageUtilspage=kechengxinxiService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,kechengxinxi),params),params));

returnR.ok().put("data",page);

}4.1.3课程信息管理模块的实现使用@RequestMapping注解中的list接口,查询课程资源列表,返回所有匹配条件的记录。通过kechengziyuanEntity接收查询条件并返回,调用selectListView(ew)返回视图对象列表,将返回结果为put(“data”,)query接口用于查询单个课程资源详情,返回视图对象。与/lists同理,调用selectView(ew)返回单条视图对象。返回带成功消息为put("data",...)。列表列表

@RequestMapping("/lists")

publicRlist(KechengziyuanEntitykechengziyuan){

EntityWrapper<KechengziyuanEntity>ew=newEntityWrapper<KechengziyuanEntity>();

ew.allEq(MPUtil.allEQMapPre(kechengziyuan,"kechengziyuan"));

returnR.ok().put("data",kechengziyuanService.selectListView(ew));

}

查询

@RequestMapping("/query")

publicRquery(KechengziyuanEntitykechengziyuan){

EntityWrapper<KechengziyuanEntity>ew=newEntityWrapper<KechengziyuanEntity>();

ew.allEq(MPUtil.allEQMapPre(kechengziyuan,"kechengziyuan"));

KechengziyuanViewkechengziyuanView=kechengziyuanService.selectView(ew);

returnR.ok("查询课程资源成功").put("data",kechengziyuanView);

}4.2小程序前端模块的实现4.2.1系统首页模块定义了几个方法主要用于处理用户点击事件,实现页面之间的跳转逻辑。方法中使用了字符串拼接的方式构造了目标的URL地址,并通过导航API来完成页面的跳转。其三个方法完成了具体的页面跳转操作,且都是通过动态生成URL来实现的。

methods:

{

onSwiperTap:

function

(n)

{},

onNewsDetailTap:

function

(n)

{

this.$utils.jump(

"../news-detail/news-detail?id=".concat(n)

);

},

onDetailTap:

function

(n,

t)

{

this.$utils.jump(

"../".concat(n,

"/detail?id=").concat(t)

);

},

onPageTap:

function

(t)

{

n.navigateTo({

url:

"../".concat(t,

"/list"),

fail:

function

()

{

n.switchTab({

url:

"../".concat(t,

"/list"),

});

},

});

},

},4.2.2我的菜单模块通过定义了一个处理页面跳转的方法onPageTap。当这个方法被调用时,它会尝试导航到指定的页面,如果导航失败(通常是因为目标页面不能被导航,例如在某些情况下页面已经在tab中),则会使用switchTab切换到该页面。

methods:

{

methods:

{

onPageTap:

function

(e)

{

t.navigateTo({

url:

e,

fail:

function

()

{

t.switchTab({

url:

e

});

},

});

},

},4.2.3学生选课模块通过定义一个函数,函数用来检查当前用户是否拥有访问“选课”和“布置作业”功能的权限,并更新根数据root反映用户权限。确保只有具有适当权限的用户能够访问特定功能。

i

=

function

()

{

var

t

=

this,

i

=

function

()

{

var

t

=

this,

n

=

t.$createElement,

e

=

(t._self._c,

t.isAuth("kechengxinxi",

"选课")),

a

=

t.isAuth("kechengxinxi",

"布置作业");

t.$mp.data

=

Object.assign({},

{

$root:

{

m0:

e,

m1:

a

}

});

},5系统测试系统测试是系统在投入使用前的最后一个环节。系统测试的目的是发现系统存在的缺陷和错误,从而验证系统的功能能否满足指定的要求REF_Ref26663\r\h[14]。5.1测试方式软件测试中有两中主要的测试方法,分别为黑盒测试和白盒测试。黑盒测试是最常用的软件测试方法,又被称为驱动测试。黑盒测试时可以将测试的对象先看成一个黑盒子,实际也并不应该单独考虑内部程序处理的过程。人们在实际测试时需要同时考虑合法的和不合法的相关内容。白盒测试实际就是结构测试,为的是在分析程序内部不同结构的基础上来发现新的问题。白盒测试可以将程序看成被装在一个透明的白盒子里,更多的人可以透过这个白盒子来了解其中的结构和程序,并全面检查内部的结构是否正确[15]。5.2搭建测试环境测试环境是为了完成系统测试所必须进行的软硬件环境,是通过在标准化的运行环境内,减少外部对软件在运行中的干扰因素,最终达到提高测试效率和真实测试结果的效果。一般是指给系统一个新的运行环境,若系统在新的测试环境工作产生问题,那么肯定不能把它发布到正常使用的环境上。前端测试工具:微信开发者工具、Node.js16以上+npm8以上后端测试工具:Postman5.3功能测试在系统需求设计中,确定了系统的功能需求,功能测试将会从适用性、准确性、可操作性、依从性、安全性五大方面进行测试,系统核心功能逻辑正确,数据反馈与预设一致,功能实现与用户需求基本相等。得出本系统功能测试表如5-1所示:表5-1系统功能测试测试内容测试结果适用性好准确性好可操作性好依从性好安全性好所有模块均通过黑盒测试,通过Postman的模拟调用API,后端API返回的数据与预期相同,接口平均响应时间<2s,符合系统需求分析中的功能需求,基本满足用户需求,如图5-1所示图5-1Postman测试图5.4性能测试Web性能测试是指在各种负载条件下,利用测试工具模拟运行被测系统,以此获得该系统的各种性能指标,并对所得结果加以分析的一种测试活动REF_Ref30066\r\h[16]。性能测试主要通过对系统运行环境的模拟,测试出系统的性能是否符合需求。本系统性能测试的三大技术指标为:运行速度、响应时间和错误率,最终得出性能趋势分析。如图5-2本系统测试图所示图5-2系统测试图5.5测试评估与分析本系统设计时参考了国内许多应用平台的优良之处,无论从前端还是后端为了用户能够方便操作做出了大量设计。系统测试后的总体分析如下:(1)本系统具有优异的适配性和指向性,指向性高可以对用户提供更好更精准的服务,而适配性可以在移动终端的多个版本中稳定运行,显著提升用户便捷的使用体验。(2)本系统内容全面、管

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论