基于Android的课程学习助手APP
摘 要
在数字化、信息化的时代背景下,移动学习已成为现代教育发展的重要趋势。为了满足广大学生对高效、便捷学习方式的迫切需求,一款基于Android平台的课程学习助手APP应运而生。这款APP巧妙地将先进的信息技术与学习体验相结合,为学生带来了一种全新的学习模式,使学习变得更加轻松、有趣且高效。
这款课程学习助手APP具备强大的课程管理功能,帮助学生轻松规划学习路径。同时,它整合了丰富的学习资源,包括课件、习题、视频教程等,以满足学生多样化的学习需求。此外,APP还提供了在线互动平台,鼓励学生之间、师生之间进行实时交流,分享学习心得,共同解决问题。
值得一提的是,这款APP还注重个性化学习体验。通过智能分析学生的学习行为和偏好,APP能够为学生推荐适合他们的学习资源和学习方法,帮助他们更好地发掘自身潜力,提升学习效果。
学习对于每个学生来说都至关重要,而这款课程学习助手APP无疑是学生学习路上的得力助手。它将陪伴学生度过每一个充实而美好的学习时光,助力他们取得更好的学习成绩和更广阔的发展前景。
关键词:课程学习助手;Java;Spring Boot框架;APP
An Android based course learning assistant app
Abstract
In the context of digitalization and informatization, mobile learning has become an important trend in the development of modern education. In order to meet the urgent needs of students for efficient and convenient learning methods, a course learning assistant APP based on the Android platform has emerged. This app cleverly combines advanced information technology with a learning experience, bringing students a new learning mode that makes learning easier, more interesting, and more efficient.
This course learning assistant app has powerful course management functions, helping students easily plan their learning paths. At the same time, it integrates rich learning resources, including courseware, exercises, video tutorials, etc., to meet the diverse learning needs of students. In addition, the app also provides an online interactive platform that encourages real-time communication between students and between teachers and students, sharing learning experiences, and solving problems together.
It is worth mentioning that this app also emphasizes personalized learning experience. By analyzing students' learning behavior and preferences through intelligent algorithms, apps can recommend learning resources and methods that are suitable for them, helping them better tap into their potential and improve learning outcomes.
Learning is crucial for every student, and this course learning assistant app is undoubtedly a powerful assistant for students on their learning journey. It will accompany students through every fulfilling and wonderful learning time, helping them achieve better academic performance and broader development prospects.
Key words:Course learning assistant; Java; Spring Boot framework; APP
目 录
基于Android的课程学习助手APP的研究背景与意义在于,随着移动互联网技术的快速发展和智能手机的普及,学生对于高效、便捷学习方式的需求日益迫切。传统的学习方式往往受限于时间和地点,无法充分满足学生个性化、灵活化的学习需求。而基于Android的课程学习助手APP则能够打破这些限制,为学生提供一种全新的学习体验。
这款APP不仅集成了课程管理、学习资源整合、在线互动等多项功能,还利用智能算法根据学生的学习行为和偏好推荐个性化的学习资源和学习方法。通过这款APP,学生可以随时随地访问课程信息、学习资源,与老师和同学进行实时交流,从而更加高效地完成学习任务。
此外,基于Android的课程学习助手APP还能够帮助学生更好地规划和管理自己的学习进度。通过设定学习目标、制定学习计划,学生可以更加有条理地进行学习,提高学习效率。同时,APP还提供了成绩管理和学习反馈功能,帮助学生及时了解自己的学习状况,调整学习策略。
因此,基于Android的课程学习助手APP的研究具有重要的现实意义和应用价值。它不仅能够满足学生对于高效、便捷学习方式的需求,还能够提升学生的学习效果和学习体验。随着移动互联网技术的不断发展和完善,这款APP有望在未来得到更广泛的应用和推广,成为学生学习和成长过程中的重要助手。
-
- 国内外研究现状
在国内,随着移动互联网技术的快速发展和智能设备的普及,基于Android的课程学习助手APP受到了广泛的关注和追捧。众多教育机构和科技公司纷纷投入研发,推出了各具特色的学习助手APP。这些APP不仅提供了丰富的课程资源和学习材料,还具备智能化的学习推荐和个性化的学习路径规划功能,帮助学生更加高效地进行学习。同时,国内的研究者也在不断探索和优化APP的功能和性能,以满足学生日益多样化的学习需求。
在国际上,基于Android的课程学习助手APP同样得到了广泛的关注和应用。尤其是在一些发达国家,如美国、英国等,这些APP已经成为学生日常学习的重要工具。国外的APP在功能和设计上更加注重创新性和用户体验,通过引入先进的人工智能技术、大数据分析等手段,提供更加精准的学习推荐和个性化的学习体验。此外,国外的教育机构和研究机构也在积极开展相关研究,探索如何利用APP提高学生的学习效果和满意度。
总体来看,基于Android的课程学习助手APP在国内外都受到了广泛的关注和应用,并且呈现出不断发展和完善的趋势。随着技术的不断进步和应用场景的不断拓展,相信未来这些APP将会为学生提供更加优质、高效的学习体验。
然而,值得注意的是,尽管国内外在基于Android的课程学习助手APP方面取得了一定的研究成果和应用经验,但仍存在一些挑战和问题,如如何保证数据安全和隐私保护、如何提升用户体验和学习效果等。因此,未来的研究和实践需要继续关注这些问题,并不断探索和创新解决方案。
根据市场调研得到的信息数据,结合国内外前沿研究,利用相关系统开发和设计方法,最终设计出课程学习助手APP。
本文共有七章,如下所示。
第一章概述了课程学习助手APP的研究背景和意义;精炼地总结了国内外研究情况和未来的研究趋势,最后给出了论文的组成结构。
第二章简要对系统各业务流程进行需求分析、可行性分析。
第三章对课程学习助手APP进行设计。
第四章对课程学习助手APP进行实现,并贴出相关页面截图,语言描述出具体功能实现的操作方法。
第五章对课程学习助手APP采用测试用例的方式来对一些主要功能模块测试,最后得出测试结果。
第六章总结全文并对未来的研究做出展望。
在软件开发的过程中系统的可行性分析是必不可少的,可行性的研究就是评估问题是否能得到解决并且是要以最少的时间和最少的代价来解决。为实现上面的目标还要必须考虑到解决这些问题的方法的优点和缺点,还要考虑到实现了这些系统规模的开发带来的经济效益。这里可以用技术的可行性,操作的可行性,经济的可行性对我们的系统进行可行性的研究。课程学习助手APP的可行性分析如下所示:
基于Android的课程学习助手APP结合Spring Boot框架,在技术上是完全可行的。Android平台提供了丰富的开发工具和API,使得构建功能强大的学习助手APP成为可能。而Spring Boot则以其快速开发、简化配置和强大的社区支持,为后端服务提供了稳定可靠的解决方案。通过将这两者结合,我们可以充分利用Android的前端展示能力和Spring Boot的后端处理能力,实现课程信息的有效管理、学习资源的整合与推荐,以及用户之间的实时交流等功能。因此,从技术角度来看,基于Android和Spring Boot的课程学习助手APP的开发是切实可行的,并且有望为用户提供高效、便捷的学习体验。
基于Android的课程学习助手APP结合Spring Boot框架,在经济上也是可行的。考虑到Android设备的普及率极高,且Spring Boot能够降低开发成本和提高开发效率,这样的组合能够使得学习助手APP的开发成本相对较低。同时,随着教育市场的不断扩大和学生对高效学习工具的需求增加,这样的APP具有广阔的市场前景和盈利潜力。因此,从经济角度来看,基于Android和Spring Boot的课程学习助手APP的开发是经济可行的,并且有望为投资者带来良好的回报。
本系统是基于浏览器和服务器的课程学习助手APP,系统开发完成之后用户只需要在浏览器中输入正确的URL地址即可进行访问。本系统的前台页面简单明了,在没有操作指导的情况下也可以进行操作,无论是系统管理员还是用户在页面中所有的操作都是在浏览器中完成的,因此只要电脑在有网络的情况下,打开浏览器都能操作。而且在使用之前也不用进行相关的环境配置,因此本系统方便、简单、易于使用,所以该系统是容易并且可操作的。
在设计和开发基于Android的课程学习助手APP之前,我们进行了深入的需求分析和用户调研,以确保APP能够精准地满足广大学生的学习需求和期望。
明确学习需求:通过与学生、教师和教育机构的沟通,我们了解到学生在学习过程中需要有效的课程类型管理、课程信息管理、选课记录管理、成绩信息管理、学习计划管理、师生交流管理等。此外,学生还期望能够与教师和其他学习者进行互动交流,分享学习心得和解决问题。
系统性能与稳定性:基于Android的课程学习助手APP需要处理大量的学习数据和用户操作,因此系统必须具备出色的性能和稳定性。这包括快速加载学习材料、流畅的用户界面、高效的数据同步以及稳定的网络连接,以确保学生在使用过程中能够获得良好的体验。
界面友好与易用性:考虑到学生可能来自不同的年龄层次和背景,我们在界面设计上注重简洁明了、易于操作。通过直观的导航、清晰的布局和友好的提示信息,帮助学生快速上手并轻松使用APP进行学习。
数据安全与隐私保护:学生的学习数据和隐私信息需要得到严格的保护。因此,我们采取了一系列安全措施,如数据加密、身份验证和访问控制等,以确保学生数据的安全性和隐私性。
扩展性与可定制性:随着教育技术的发展和学习需求的变化,课程学习助手APP可能需要不断升级和扩展。因此,我们在设计系统时充分考虑了扩展性和可定制性,以便在未来能够方便地添加新功能、调整学习算法或适应不同学科和课程的需求。
综上所述,基于Android的课程学习助手APP的需求分析旨在构建一个能够满足学生学习需求、性能稳定、界面友好、安全可靠的移动学习平台。我们希望通过这一APP,为学生提供更加高效、便捷和个性化的学习体验,促进学习效果的提升和学习方式的创新。
一、响应速度
课程学习助手APP的响应速度是其性能优劣的重要指标之一。良好的响应速度意味着用户在操作过程中能够迅速得到反馈,从而提升用户体验。为实现快速的响应速度,开发者需要优化APP的代码结构,减少不必要的计算和内存占用,同时利用Android平台的特性进行性能调优。
二、稳定性
稳定性是APP性能的另一个重要方面。一个稳定的APP能够在各种情况下保持正常运行,减少崩溃和故障的发生。为了提高稳定性,开发者需要充分测试APP在各种设备和网络环境下的表现,发现并修复潜在的问题。
三、资源占用
课程学习助手APP在运行过程中会占用一定的系统资源,包括CPU、内存和存储空间等。合理的资源占用是保障APP性能的关键。开发者需要优化APP的资源使用策略,减少不必要的资源消耗,避免对用户的设备性能造成过大影响。
四、兼容性
由于Android设备种类繁多,不同设备的硬件配置和屏幕尺寸可能存在较大差异。因此,APP的兼容性也是性能分析的重要方面。开发者需要确保APP能够在不同版本的Android系统和各种设备上正常运行,并呈现出一致的用户体验。
五、安全性
在性能分析中,安全性同样不可忽视。课程学习助手APP涉及用户的学习数据和隐私信息,因此必须采取严格的安全措施来保障数据的安全性和隐私性。开发者需要采用加密技术、身份验证和访问控制等手段,防止数据泄露和非法访问。
综上所述,基于Android的课程学习助手APP的性能分析需要综合考虑响应速度、稳定性、资源占用、兼容性和安全性等多个方面。通过不断优化和提升这些方面的性能,可以为用户提供更加高效、稳定、安全的学习体验。
课程学习助手APP的完整UML用例图分别是图2-1、图2-2、图2-3和图2-4,在参与者上包括学生用户、教师用户和管理员。
学生用户角色的用例描述:学生可以通过简单的注册登录流程快速加入,首页展示了清晰的导航和个性化推荐内容。在学习交流模块,学生可以参与课程讨论、分享学习心得,促进知识共享与互动。校园资讯功能让学生随时了解校园动态,课程信息模块则提供了详细的课程介绍和安排。网站公告及时发布重要通知,方便学生获取最新资讯。在“我的”页面中,学生可以查看并管理自己的基本信息、选课记录、成绩信息、学习计划等,还能与师生进行深度交流,管理论坛收藏,实现个性化学习管理。这款APP真正做到了学习资源的整合与优化,为学生提供了便捷、高效的学习体验。
学生用户角色用例如图2-1所示。
图2-1学生用户用例图
管理员角色的用例描述:管理员通过登录后台首页,可以全面掌控系统用户、课程类型、课程信息、选课记录、成绩信息等多方面的管理任务。系统支持对课程类型的灵活设置,方便管理员根据实际需求进行分类管理。同时,管理员可以便捷地添加、编辑和删除课程信息,确保课程数据的准确性和完整性。选课记录与成绩信息管理功能让管理员能够实时查看学生的学习进度和成绩情况,为教学决策提供有力支持。此外,管理员还可以通过后台进行学习计划管理、师生交流管理、轮播图设置、通知公告发布、校园资讯和资源分类管理以及交流论坛的监管,全面提升学生的学习体验和管理效率。这款APP的后台管理系统功能丰富、操作便捷,为管理员提供了全方位、高效的管理工具。
管理员角色用例如图2-2所示。
图2-2管理员用例图
教师用户角色(前端)的用例描述:教师用户通过简单的注册登录流程即可快速加入平台,首页清晰展示了各项功能入口,方便教师快速进入所需模块。在学习交流区域,教师可以与学生进行实时互动,解答疑问,分享教学心得,促进教学相长。校园资讯和课程信息模块则让教师能够随时掌握校园动态和课程详情,确保教学工作顺利进行。网站公告功能使得重要通知能够迅速传达给每位教师。在“我的”页面中,教师可以查看并编辑自己的基本信息,管理课程类型和课程信息,查看选课记录和成绩信息,进行师生交流,管理论坛和收藏内容,并通过统计图功能直观地了解学生的学习情况和教学效果。这款APP极大地提升了教师的教学效率和互动体验,是教师们不可或缺的教学辅助工具。
教师用户(前端)角色用例如图2-3所示。
![](https://i-blog.csdnimg.cn/direct/c6dcfe69eb314b7489de14b981d6bcc0.png)
图2-3教师用户(前端)用例图
教师用户角色(后端)的用例描述:教师用户通过登录后台首页,可以便捷地管理课程类型、课程信息、选课记录以及成绩信息等核心教学数据。他们可以根据教学需要灵活设置课程类型,并轻松添加、编辑和删除课程信息,确保教学内容的准确性和时效性。同时,选课记录和成绩信息管理功能使得教师能够实时掌握学生的学习情况,为教学评估提供有力支持。此外,师生交流管理、通知公告发布以及交流论坛的监管等功能,进一步增强了教师与学生之间的沟通与互动,提升了教学效果。这款APP不仅简化了教师的工作流程,还提高了他们的工作效率,是教师用户不可或缺的教学管理工具。。
教师用户角色用例如图2-4所示。
图2-4教师用户(后端)用例图
(1)增加数据流程
系统中的所有用户(管理员、学生用户和教师用户)都可以实现增加数据功能,图2-5显示的就是在增加数据时的流程。
图2-5增加数据流程图
(2)修改数据流程
在录入系统信息的时候如果信息有错,可以对系统中的数据进行编辑。图2-6显示的就是修改数据的流程。
图2-6修改数据流程图
(3)删除数据流程
在系统中经常会出现一些过期的数据,那就可以直接删除这些数据,图2-7就是删除数据时的流程图。
图2-7删除数据流程图
由于本系统在逻辑事务处理方面对数据库的操作比较频繁所以系统在底层连接数据库时并没有使用原生的JDBC,而是把JDBC进行了封装,封装之后相当于一个连接数据库的工具DB UTIL,这样使用起来会更加方便而且这样进行封装还可以降低系统中代码的冗余,当我们需要连接和使用数据库时只需要调用这个工具里面的一个方法就可以了。而且通过封装可以把对数据库的操作独立起来,当需要连接不同种类的数据库时只需要加以修改就可以达到目的。
DAO层本来并无这个类,它只是java中MVC构造里的一个model概念,主要就是里面的一些方法,而这些方法就是用来访问数据库的方法。我们在软件开发时DAO层我们一般都放接口和接口的实现类,用于来规范实现类的我们叫它接口,实现类重点用于对数据库的操纵。
MVC是一种系统研发的关键模型,M是Model模型,它是系统内部关键程序运行的核心,主要进行对数据库的各种操作。视图View是V也叫做视图,主要的作用是对一些数据进行显示。控制器Controller 是C执行从View的视图层来读取数据,然后控制用户的输入。
系统架构如下图所示。
图3-1系统架构图
进入系统后首先要进行登录,验证你的身份,赋予你不同的权限。当你成功登录后,页面会有多个板块,分别是后台首页、系统用户、课程类型管理、课程信息管理、选课记录管理、成绩信息管理、学习计划管理、师生交流管理、系统管理(轮播图)、通知公告管理、资源管理(校园资讯、资讯分类)。里面界面简单易懂,根据标示可以直接进行方便快捷的操作。
系统功能结构图如下所示。
图3-2系统功能结构图
一个好的系统它的后台数据库一定要考虑的全面,这和我们建造房子一个概念,房子不是随心所欲建起来的,一切都是在合理设计的基础是实现的,地基打牢固了房子才能建的更高。数据库如果设计的很合理,而且每个方面都能考虑到了那么这个系统才能不会出现大的问题。
一个好的数据库可以关系到程序开发的优劣,数据库设计离不开表结构的设计,还有表与表之间的联系,以及系统开发需要设计的数据表内容等信息。在进行数据库设计期间,要结合实际情况来对数据库进行针对性的开发设计。
-
-
- 数据库E-R图设计
-
本课程学习助手APP采用的是mysql数据库,数据存储快,因为课程学习助手APP,主要的就是对信息的管理,信息内容比较多,这就需要好好的设计一个好的数据库,分类要清楚,不能添加信息的时候,造成信息太过混乱,设计好的数据库首先就需要先把各个实体之间的关系表达明确,
系统的主要实体间关系E-R图如下图所示。
图3-3系统E-R图
此环节把概念转变成数据。由于整个数据库所处理的信息过多,就只展示以下几个表。
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | token_id | int | 10 | 0 | N | Y | 临时访问牌ID | |
2 | token | varchar | 64 | 0 | Y | N | 临时访问牌 | |
3 | info | text | 65535 | 0 | Y | N | ||
4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | article_id | mediumint | 8 | 0 | N | Y | 文章id:[0,8388607] | |
2 | title | varchar | 125 | 0 | N | Y | 标题:[0,125]用于文章和html的title标签中 | |
3 | type | varchar | 64 | 0 | N | N | 0 | 文章分类:[0,1000]用来搜索指定类型的文章 |
4 | hits | int | 10 | 0 | N | N | 0 | 点击数:[0,1000000000]访问这篇文章的人次 |
5 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
6 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
8 | source | varchar | 255 | 0 | Y | N | 来源:[0,255]文章的出处 | |
9 | url | varchar | 255 | 0 | Y | N | 来源地址:[0,255]用于跳转到发布该文章的网站 | |
10 | tag | varchar | 255 | 0 | Y | N | 标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 | |
11 | content | longtext | 2147483647 | 0 | Y | N | 正文:文章的主体内容 | |
12 | img | varchar | 255 | 0 | Y | N | 封面图 | |
13 | description | text | 65535 | 0 | Y | N | 文章描述 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000]决定分类显示的先后顺序 |
3 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
4 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
5 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
6 | icon | text | 65535 | 0 | Y | N | 分类图标: | |
7 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
7 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | collect_id | int | 10 | 0 | N | Y | 收藏ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
3 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
4 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
6 | title | varchar | 255 | 0 | Y | N | 标题: | |
7 | img | varchar | 255 | 0 | Y | N | 封面: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | course_information_id | int | 10 | 0 | N | Y | 课程信息ID | |
2 | teacher_users | int | 10 | 0 | Y | N | 0 | 教师用户 |
3 | course_title | varchar | 64 | 0 | Y | N | 课程标题 | |
4 | course_type | varchar | 64 | 0 | Y | N | 课程类型 | |
5 | course_poster | varchar | 255 | 0 | Y | N | 课程海报 | |
6 | course_duration | varchar | 64 | 0 | Y | N | 课程时间 | |
7 | course_location | varchar | 64 | 0 | Y | N | 课程地点 | |
8 | course_content | text | 65535 | 0 | Y | N | 课程内容 | |
9 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
10 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表course_selection_records (选课记录)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | course_selection_records_id | int | 10 | 0 | N | Y | 选课记录ID | |
2 | teacher_users | int | 10 | 0 | Y | N | 0 | 教师用户 |
3 | course_title | varchar | 64 | 0 | Y | N | 课程标题 | |
4 | course_type | varchar | 64 | 0 | Y | N | 课程类型 | |
5 | course_duration | varchar | 64 | 0 | Y | N | 课程时间 | |
6 | course_location | varchar | 64 | 0 | Y | N | 课程地点 | |
7 | course_content | text | 65535 | 0 | Y | N | 课程内容 | |
8 | student_users | int | 10 | 0 | Y | N | 0 | 学生用户 |
9 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
10 | course_selection_time | datetime | 19 | 0 | Y | N | 选课时间 | |
11 | course_selection_notes | text | 65535 | 0 | Y | N | 选课备注 | |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | course_type_id | int | 10 | 0 | N | Y | 课程类型ID | |
2 | type_name | varchar | 64 | 0 | Y | N | 类型名称 | |
3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | forum_id | mediumint | 8 | 0 | N | Y | 论坛id | |
2 | display | smallint | 5 | 0 | N | N | 100 | 排序 |
3 | user_id | mediumint | 8 | 0 | N | N | 0 | 用户ID |
4 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
5 | praise_len | int | 10 | 0 | Y | N | 0 | 点赞数 |
6 | hits | int | 10 | 0 | N | N | 0 | 访问数 |
7 | title | varchar | 125 | 0 | N | N | 标题 | |
8 | keywords | varchar | 125 | 0 | Y | N | 关键词 | |
9 | description | varchar | 255 | 0 | Y | N | 描述 | |
10 | url | varchar | 255 | 0 | Y | N | 来源地址 | |
11 | tag | varchar | 255 | 0 | Y | N | 标签 | |
12 | img | text | 65535 | 0 | Y | N | 封面图 | |
13 | content | longtext | 2147483647 | 0 | Y | N | 正文 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
16 | avatar | varchar | 255 | 0 | Y | N | 发帖人头像: | |
17 | type | varchar | 64 | 0 | N | N | 0 | 论坛分类:[0,1000]用来搜索指定类型的论坛帖 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
2 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
3 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
4 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
5 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
6 | icon | varchar | 255 | 0 | Y | N | 分类图标: | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | grade_information_id | int | 10 | 0 | N | Y | 成绩信息ID | |
2 | teacher_users | int | 10 | 0 | Y | N | 0 | 教师用户 |
3 | course_title | varchar | 64 | 0 | Y | N | 课程标题 | |
4 | course_type | varchar | 64 | 0 | Y | N | 课程类型 | |
5 | student_users | int | 10 | 0 | Y | N | 0 | 学生用户 |
6 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
7 | test_results | varchar | 64 | 0 | Y | N | 测验成绩 | |
8 | homework_grades | varchar | 64 | 0 | Y | N | 作业成绩 | |
9 | regular_grades | varchar | 64 | 0 | Y | N | 平时成绩 | |
10 | mid_term_exam_scores | varchar | 64 | 0 | Y | N | 期中考试成绩 | |
11 | final_exam_scores | varchar | 64 | 0 | Y | N | 期末考试成绩 | |
12 | total_score | varchar | 64 | 0 | Y | N | 总成绩 | |
13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | grade_records_id | int | 10 | 0 | N | Y | 成绩记录ID | |
2 | teacher_users | int | 10 | 0 | Y | N | 0 | 教师用户 |
3 | course_title | varchar | 64 | 0 | Y | N | 课程标题 | |
4 | course_type | varchar | 64 | 0 | Y | N | 课程类型 | |
5 | student_users | int | 10 | 0 | Y | N | 0 | 学生用户 |
6 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
7 | proportion_of_test_scores | varchar | 64 | 0 | Y | N | 测验成绩占比 | |
8 | proportion_of_homework_grades | varchar | 64 | 0 | Y | N | 作业成绩占比 | |
9 | proportion_of_regular_grades | varchar | 64 | 0 | Y | N | 平时成绩占比 | |
10 | the_proportion_of_mid_term_exam_scores | varchar | 64 | 0 | Y | N | 期中考试成绩占比 | |
11 | proportion_of_final_exam_scores | varchar | 64 | 0 | Y | N | 期末考试成绩占比 | |
12 | total_score | varchar | 64 | 0 | Y | N | 总成绩 | |
13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | learning_plan_id | int | 10 | 0 | N | Y | 学习计划ID | |
2 | student_users | int | 10 | 0 | Y | N | 0 | 学生用户 |
3 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
4 | target_name | varchar | 64 | 0 | Y | N | 目标名称 | |
5 | weekly_schedule | varchar | 64 | 0 | Y | N | 每周安排 | |
6 | daily_schedule | varchar | 64 | 0 | Y | N | 每日安排 | |
7 | reading_time | varchar | 64 | 0 | Y | N | 阅读时间 | |
8 | amateur_activities | varchar | 64 | 0 | Y | N | 业余活动 | |
9 | reading_content | text | 65535 | 0 | Y | N | 阅读内容 | |
10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
2 | title | varchar | 125 | 0 | N | N | 标题: | |
3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | praise_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | slides_id | int | 10 | 0 | N | Y | 轮播图ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | content | varchar | 255 | 0 | Y | N | 内容: | |
4 | url | varchar | 255 | 0 | Y | N | 链接: | |
5 | img | varchar | 255 | 0 | Y | N | 轮播图: | |
6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | student_users_id | int | 10 | 0 | N | Y | 学生用户ID | |
2 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
3 | student_gender | varchar | 64 | 0 | Y | N | 学生性别 | |
4 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
5 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表teacher_student_communication (师生交流)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | teacher_student_communication_id | int | 10 | 0 | N | Y | 师生交流ID | |
2 | sending_users | int | 10 | 0 | Y | N | 0 | 发送用户 |
3 | teachers_name | varchar | 64 | 0 | Y | N | 教师姓名 | |
4 | send_message | varchar | 64 | 0 | Y | N | 发送消息 | |
5 | receiving_users | int | 10 | 0 | Y | N | 0 | 接收用户 |
6 | reply_message | varchar | 64 | 0 | Y | N | 回复消息 | |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | teacher_users_id | int | 10 | 0 | N | Y | 教师用户ID | |
2 | teachers_name | varchar | 64 | 0 | Y | N | 教师姓名 | |
3 | teacher_title | varchar | 64 | 0 | Y | N | 教师职称 | |
4 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
5 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | upload_id | int | 10 | 0 | N | Y | 上传ID | |
2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
3 | path | varchar | 255 | 0 | Y | N | 访问路径 | |
4 | file | varchar | 255 | 0 | Y | N | 文件路径 | |
5 | display | varchar | 255 | 0 | Y | N | 显示顺序 | |
6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
7 | dir | varchar | 255 | 0 | Y | N | 文件夹 | |
8 | type | varchar | 32 | 0 | Y | N | 文件类型 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
13 | open_id | varchar | 255 | 0 | Y | N | 针对获取用户信息字段 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | vip_level | varchar | 255 | 0 | Y | N | 会员等级 | |
16 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 会员折扣 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | group_id | mediumint | 8 | 0 | N | Y | 用户组ID:[0,8388607] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000] |
3 | name | varchar | 16 | 0 | N | N | 名称:[0,16] | |
4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该用户组的特点或权限范围 | |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | register | smallint | 5 | 0 | Y | N | 0 | 注册位置: |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
- 系统实现
- 学生用户模块的实现
4.1.1 前台首页界面
进入系统首页,系统以上中下的布局进行展示,首先映入眼帘的是系统的轮播图,下面是课程信息,最下面是导航栏,其主界面展示如下图所示。
图4-1 前台首页界面图
4.1.2 用户注册界面
用户注册:当用户想要进入系统中对信息进行查看的时候,就必须要登录到系统当中,要是新的用户没有系统的账号的话,点击“注册”按钮,就会进入到新用户注册这个界面上,用户输入对应的账号(必须填写)+密码(必须填写)+确认密码(必须填写,而且要与密码一直)+昵称+邮箱+选择用户身份等,然后点击“注册”,系统在用户这一数据库中会查询账号是不是存在,两次密码是不是一样,都填写正确就会注册成功,然后再进行登录,如果是之前已经注册过的用户很长时间没有使用,忘记密码,也可以点击“忘记密码”进行找回。用户注册界面如下图所示。
图4-2 用户注册界面图
注册代码如下:
public String encryption(String plainText) {
String re_md5 = new String();
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(plainText.getBytes());
byte b[] = md.digest();
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < b.length; offset++) {
i = b[offset];
if (i < 0)
i += 256;
if (i < 16)
buf.append("0");
buf.append(Integer.toHexString(i));
}
re_md5 = buf.toString();
} catch (Exception e) {
e.printStackTrace();
}
return re_md5;
}
4.1.3 用户登录界面
系统中的前台上注册后的用户是可以通过自己的账户名、密码和验证码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到系统的首页中;否则将会提示相应错误信息。用户登录界面如下图所示。
图4-3用户登录界面图
登录代码如下:
/**
* 登录
* @param data
* @param httpServletRequest
* @return
*/
@PostMapping("login")
public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
log.info("[执行登录接口]");
String username = data.get("username");
String email = data.get("email");
String phone = data.get("phone");
String password = data.get("password");
List resultList = null;
Map<String, String> map = new HashMap<>();
if(username != null && "".equals(username) == false){
map.put("username", username);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}else{
return error(30000, "账号或密码不能为空");
}
if (resultList == null || password == null) {
return error(30000, "账号或密码不能为空");
}
//判断是否有这个用户
if (resultList.size()<=0){
return error(30000,"用户不存在");
}
User byUsername = (User) resultList.get(0);
Map<String, String> groupMap = new HashMap<>();
groupMap.put("name",byUsername.getUserGroup());
List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());
if (res==null){
return error(30000,"用户不存在");
}
if (!res.equals("已通过")){
return error(30000,"该用户审核未通过");
}
}
//查询用户状态
if (byUsername.getState()!=1){
return error(30000,"用户非可用状态,不能登录");
}
String md5password = service.encryption(password);
if (byUsername.getPassword().equals(md5password)) {
// 存储Token到数据库
AccessToken accessToken = new AccessToken();
accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
accessToken.setUser_id(byUsername.getUserId());
Duration duration = Duration.ofSeconds(7200L);
redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);
// 返回用户信息
JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
user.put("token", accessToken.getToken());
JSONObject ret = new JSONObject();
ret.put("obj",user);
return success(ret);
} else {
return error(30000, "账号或密码不正确");
}
}
4.1.4 校园资讯界面
当用户点击“校园资讯”这一菜单按钮,会显示管理员在后台发布的所有的校园资讯信息,支持通过关键词对资讯进行搜索,选择需要的资讯信息点击可以进入到资讯信息详细的介绍界面,同时可以进行点赞、收藏和评论等操作,校园资讯界面如下图所示。
图4-4校园资讯界面图
当用户点击“课程信息”这一菜单按钮,会显示管理员在后台发布的所有的课程信息,支持通过关键词对课程信息进行搜索,选择需要的课程信息点击可以进入到课程信息详细的介绍界面,同时可以进行选课、点赞、收藏和评论,课程信息界面如下图所示。
图4-5课程信息界面图
学生用户应该能够在APP中参与到学习交流中,包括发表评论、回复评论、发表问题、回答问题等操作,以便获得更好的学习效果。学习交流界面如下图所示。
图4-6学习交流界面图
-
- 管理员功能模块的实现
4.2.1 管理员登录界面
管理员进入到系统登录界面,需要填写正确的账号、密码和验证码等信息输入准确无误后登录进入到系统操作界面。管理员的账号是在数据表表中直接设置生成的,不需要进行注册;修改密码:管理员可以随时修改自己进入系统的登录密码,以保证系统的安全性。管理员登录界面如下图所示。
图4-7管理员登录界面图
4.2.2 管理员功能界面
管理员可以查看后台首页、系统用户、课程类型管理、课程信息管理、选课记录管理、成绩信息管理、学习计划管理、师生交流管理、系统管理(轮播图)、通知公告管理、资源管理(校园资讯、资讯分类)、交流管理等,并且可以根据需要进行相应的操作。在功能界面还可以查看成绩信息统计。管理员功能界面如下图所示。
图4-8管理员功能界面图
4.2.3 系统用户管理界面
管理员可以对系统中所有的用户角色进行管控,包含了管理员、学生用户和教师用户这三种角色,如果需要添加新的用户,点击页面中的“添加”按钮根据提示输入上用户信息,点击“提交”以后在对应的用户界面就可以查看到了,可以点击用户后面的“删除”按钮直接删除某一用户。系统用户管理界面如下图所示。
图4-9系统用户管理界面图
4.2.4课程类型管理界面
管理员应该能够管理系统中的课程类型,包括添加新的课程类型、编辑已有课程类型、删除不需要的课程类型等,以便用户能够更方便地浏览和选择课程。课程类型管理界面如下图所示。
图4-10课程类型管理界面图
4.2.5 系统管理界面
管理员可以对系统前台展示的轮播图进行增删改查,方便用户进行查看。系统管理界面如下图所示。
图4-11系统管理界面图
轮播图添加代码:
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
管理员可以对系统前台展示的通知公告进行增删改查,方便用户进行查看。通知公告管理界面如下图所示。
图4-12通知公告管理界面图
管理员需要能够管理系统中的校园资讯内容,包括添加、删除、编辑资讯信息,以保持系统中资讯的及时性和丰富性。管理员还需要能够管理资讯的分类,包括添加新的分类、编辑已有分类、删除不需要的分类等。资源管理界面如下图所示。
图4-13资源管理界面图
教师用户需要能够查看并管理学生的选课记录,包括课程名单、课程时间、课程地点、课程内容、选课情况等,以便更好地组织教学活动。选课记录管理界面如下图所示。
图4-14选课记录管理界面图
教师用户应该能够录入、修改和查看学生成绩信息,包括考试成绩、平时成绩等,以便及时了解学生学习情况并进行成绩管理。成绩信息管理界面如下图所示。
图4-15成绩信息管理界面图
教师用户需要能够在APP中与学生进行交流,包括发布教学通知、回复学生问题、布置作业等操作,以便更好地指导学生学习。师生交流界面如下图所示。
图4-16师生交流界面图
教师用户需要能够管理APP中的论坛板块,包括添加、删除、编辑帖子、回复等操作,以便更好地与学生交流和互动。论坛管理界面如下图所示。
图4-17论坛管理界面图
系统开发到了最后一个阶段那就是系统测试,系统测试对软件的开发其实是非常有必要的。因为没什么系统一经开发出来就可能会尽善尽美,再厉害的系统开发工程师也会在系统开发的时候出现纰漏,系统测试能够较好的改正一些bug,为后期系统的维护性提供很好的支持。通过系统测试,开发人员也可以建立自己对系统的信心,为后期的系统版本的跟新提供支持。
5.2 系统测试用例
系统测试包括:用户登录功能测试、校园资讯查看功能测试、课程信息添加、课程信息搜索、密码修改功能测试,如表5-1、5-2、5-3、5-4、5-5所示:
表5-1 用户登录功能测试表
用例名称 | 用户登录系统 |
目的 | 测试用户通过正确的用户名和密码可否登录功能 |
前提 | 未登录的情况下 |
测试流程 | 1) 进入登录页面 2) 输入正确的用户名和密码 |
预期结果 | 用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
实际结果 | 实际结果与预期结果一致 |
校园资讯查看功能测试:
表5-2校园资讯查看功能测试表
用例名称 | 校园资讯查看 |
目的 | 测试校园资讯查看功能 |
前提 | 用户登录 |
测试流程 | 点击校园资讯列表 |
预期结果 | 可以查看到所有校园资讯信息 |
实际结果 | 实际结果与预期结果一致 |
管理员添加课程信息界面测试:
表5-3 管理员添加课程信息界面测试表
用例名称 | 课程信息添加测试用例 |
目的 | 测试课程信息添加功能 |
前提 | 管理员正常登录情况下 |
测试流程 | 1)管理员点击课程信息添加,填写信息。 2)点击进行提交。 |
预期结果 | 提交以后,课程信息列表会显示新的课程信息 |
实际结果 | 实际结果与预期结果一致 |
课程信息搜索功能测试:
表5-4课程信息搜索功能测试表
用例名称 | 课程信息搜索测试 |
目的 | 测试课程信息搜索功能 |
前提 | 无 |
测试流程 | 1)在搜索框填入搜索关键字。 2)点击搜索按钮。 |
预期结果 | 页面显示包含有搜索关键字的课程信息 |
实际结果 | 实际结果与预期结果一致 |
密码修改功能测试:
表5-5 密码修改功能测试表
用例名称 | 密码修改测试用例 |
目的 | 测试管理员密码修改功能 |
前提 | 管理员用户正常登录情况下 |
测试流程 | 1)管理员密码修改并完成填写。 2)点击进行提交。 |
预期结果 | 使用新的密码可以登录 |
实际结果 | 实际结果与预期结果一致 |
5.3 系统测试结果
通过编写课程学习助手APP的测试用例,已经检测完毕用户登录模块、校园资讯查看模块、课程信息添加模块、课程信息搜索模块、密码修改功能测试,通过这5大模块为课程学习助手APP的后期推广运营提供了强力的技术支撑。
在大学的最后阶段,我专注于基于Android的课程学习助手APP的开发工作,这一经历不仅是对我专业技能的全面考验,更是一次将理论知识转化为实际应用、解决现实问题的宝贵实践。
这款基于Android的课程学习助手APP旨在为学生提供一个移动化、便捷化的学习平台。通过深入分析学生用户在学习过程中的实际需求,我精心设计了APP的功能模块,包括课程管理、学习资料浏览、在线答疑、学习进度跟踪、成绩查询等核心功能,旨在为学生打造一个全方位的学习辅助工具。
在开发过程中,我充分利用了Android平台的特点和优势,结合Java编程语言,实现了APP的各项功能。通过优化界面设计、提升用户体验、加强数据安全性等措施,我确保了APP的稳定性和可靠性。同时,我也注重与用户的互动和反馈,根据用户的使用情况和建议,不断优化和完善APP的功能和性能。
经过一段时间的开发和测试,这款基于Android的课程学习助手APP已经成功上线,并得到了广大学生的积极反馈和好评。学生们表示,这款APP不仅方便了他们随时随地进行课程学习,还提高了他们的学习效率和成绩。同时,APP的在线答疑和学习交流功能也为学生们提供了一个良好的学习互动平台,促进了学习氛围的营造。
展望未来,我将继续关注学生的学习需求和市场变化,不断优化和升级这款基于Android的课程学习助手APP。我将探索更多先进的技术和理念,将其应用于APP的开发中,提升APP的性能和功能。同时,我也将积极寻求与更多合作伙伴的合作,共同推动教育信息化的进程,为更多的学生提供更好的学习体验和服务。
总之,基于Android的课程学习助手APP的开发经历让我收获颇丰,不仅提升了我的技术能力和实践经验,也让我更加深入地了解了学生的学习需求和市场动态。在未来的道路上,我将继续努力,为教育信息化的发展贡献自己的力量。
参考文献
[1]陶思源,王海楠.基于J2EE和Android的动物疾病辅助诊断平台设计与测试[J].科技创新与应用,2024,14(13):120-123.DOI:10.19981/j.CN23-1581/G3.2024.13.029.
[2]韩烨.基于超星学习通平台信息技术基础课程线上教学的实践[J].家电维修,2024,(05):36-38.
[3]黄淑娜.设计类课程线上深度学习的设计与实践[J].福建开放大学学报,2024,(02):42-45.
[4]江帆.“岗课赛证”融通的Android程序设计课程建设与教学实践[J].计算机教育,2024,(04):199-203+208.DOI:10.16512/j.cnki.jsjjy.2024.04.001.
[5]马玲.电工电子课程在线自主学习平台设计与测试[J].农机使用与维修,2024,(04):39-41.DOI:10.14031/j.cnki.njwx.2024.04.010.
[6]阎庚顺.基于Android的手机视频资源系统设计及性能测试[J].科学技术创新,2024,(07):80-83.
[7]周海涛,何金花,王文杰,等.基于Android平台的乡村旅游App系统设计与实现[J].电脑知识与技术,2024,20(09):68-71.DOI:10.14004/j.cnki.ckt.2024.0391.
[8]李春光.初中健康教育项目式学习课程设计与实践[J].中学课程资源,2024,20(03):58-63.
[9]Vibriyanto N ,Utomo S ,Azizah N .Estimation of carrying capacity and price discrimination using carrying capacity analysis and willingness to pay for sustainable tourism (case of Bukit Kehi, East Java, Indonesia)[J].IOP Conference Series: Earth and Environmental Science,2024,1317(1):
[10]Andesgur I ,Hartono,Setyono P , et al.Water quality assessment and evaluation of human health risks in the Pusur River, Klaten Regency, Central Java, Indonesia.[J].IOP Conference Series: Earth and Environmental Science,2024,1317(1):
[11]Salsabila D ,Awalia N ,Maharani S , et al.The Correlation Between Economic Activities to Water Pollution in Banyumas District, Central Java Province, Indonesia[J].IOP Conference Series: Earth and Environmental Science,2024,1313(1):
[12]Insani N ,Ridhoi R ,Hidajat G H , et al.Pro-Environmental Tourism: Lessons Learned from Adventure, Wellness and Eco-tourism in Padusan Village, Mojokerto, East Java[J].IOP Conference Series: Earth and Environmental Science,2024,1313(1):
[13]Annisa F L ,Umi L .Accuracy of Antenatal Visits in West Java Province: Comparison between Rural and Urban Areas Data Analysis of the Indonesian Demographic and Health Survey 2017[J].IOP Conference Series: Earth and Environmental Science,2024,1313(1):
[14]陈长辉.高职学生课程知识学习系统架构设计[J].电脑编程技巧与维护,2024,(02):37-39+72.DOI:10.16184/j.cnki.comprg.2024.02.045.
[15]孙洪迪,贾民政,杨民峰.基于ChatGPT的课程学习助手系统的设计与实现[J].北京工业职业技术学院学报,2024,23(01):17-22.
[16]张冉,顾雪微.信息系统分析与设计课程智慧学习教学探索[J].福建电脑,2023,39(11):121-124.DOI:10.16707/j.cnki.fjpc.2023.11.026.
[17]史妮君.基于MOOC的个性化英语学习系统研究[J].信息技术,2023,(07):34-37+42.DOI:10.13274/j.cnki.hdzj.2023.07.007.
[18]贾振强.基于深度强化学习的课程推荐系统研究与应用[D].电子科技大学,2023.DOI:10.27005/d.cnki.gdzku.2023.004358.
[19]歹杰,李青山,褚华,等.突破智慧教育:基于图学习的课程推荐系统[J].软件学报,2022,33(10):3656-3672.DOI:10.13328/j.cnki.jos.006629.
[20]薛云兰,黄嘉浩,邵桐杰.微服务架构的在线课程学习系统的研究与设计[J].计算机时代,2022,(05):130-133+137.DOI:10.16644/j.cnki.cn33-1094/tp.2022.05.034.
经过几个月时间的努力终于完成了这篇文章,在文章的写作与研究的过程中遇到了很多困难,都在同学和老师的帮助下解决了。尤其非常感谢我最敬爱的老师,他对我进行了无私的指导和帮助,不厌其烦的帮助进行文章的修改。老师严谨的治学态度、渊博的学术知识、诲人不倦的敬业精神以及宽容的待人风范使我获益颇丰。此外,在校图书馆查找资料的时候,图书馆的老师也给我提供了很多方面的支持与帮助。在此,向帮助和指导过我的老师表示最衷心的感谢!感谢这篇文章所涉及到的各位学者。本文引用了数位学者的文献,如果没有各位学者的研究成果的帮助和启发,我将很难完成本篇文章的写作。感谢我的同学和朋友,在我写文章的过程中给与了我很多素材和帮助,还在文章的撰写和排版过程中提供热情的帮助。同时,感谢我的室友对我的热心指导和帮助,经常有不懂之处都是大家在帮助我,才使得我比较顺利的完成了这篇文章。由于我水平有限,所写文章难免有不足之处,恳请各位老师和学友批评和指正!
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~