基于微信小程序的课堂考勤系统的设计与实现
摘 要
在高校教育普及的今天,学生人数日益增多,为保证课堂质量,教师多要在课前进行考勤。因此本设计提出基于微信小程序的课堂考勤系统,增加了定位功能,避免了"假打卡"、代打卡等情况,在监督学生上课的同时,增进了出勤率的精确性与可信性。本文提出了基于微信小程序的课堂考勤系统,使用Windows操作系统、后端技术使用Java语言、SpringBoot框架进行搭建与编写前端技术采用Vue、使用MySQL作为数据库、数据库工具采用Navicat、开发工具选择IDEA服务器的搭建使用Tomcat进行完成,在此基础上完成本系统,系统实现了学生请假功能、课程签到功能、登陆注册功能、学生信息管理功能、教师信息管理功能,经测试,本系统运行平稳,功能完整,有一定的应用前景。
关键词:MySQL数据库;Java语言;Springboot框架
ABSTRACT
In today's popularization of higher education, the number of students is increasing day by day. To ensure classroom quality, teachers often need to conduct attendance checks before class. Therefore, this design proposes an 微信小程序 based student attendance app, which adds positioning functions and avoids situations such as "fake check-in" and proxy check-in. While supervising students' classes, it enhances the accuracy and credibility of attendance rates. This article proposes an 微信小程序 based student attendance app, which is built and written using the Windows operating system, Java language, and SpringBoot framework. The front-end technology uses Vue, MySQL as the database, Navicat as the database tool, and Tomcat as the development tool. Based on this, the system implements the functions of student leave, course check-in Login registration function, student information management function, and teacher information management function,After testing, this system runs smoothly, has complete functions, and has certain application prospects.
Keywords:MySQL Database; Java Language; Springboot Framework
目 录
第1章 绪论
1.1 研究目的和意义
1.2 国内外研究现状
1.3 论文组织架构
第2章 相关理论和技术
2.1 Java简介
2.2 MySQL特点
2.3 Spring框架
2.4 Vue框架
第3章 系统分析
3.1 可行性分析
3.2 需求分析
第4章 系统设计
4.1 功能模块设计
4.2 数据库概念设计
4.3 数据库逻辑设计
第5章 系统实现
5.1 实现环境
5.2 登录注册界面
5.3 课程信息界面
5.4 签到界面
5.5 请假界面
5.6 后台管理
5.7 教师管理
5.8 班级信息管理
5.9 课程签到管理
5.10 系统管理
第6章 系统测试
6.1 测试步骤
6.2 测试用例
6.3 测试结论
结论
参考文献
致谢
第1章 绪论
1.1 研究目的和意义
在高校教育普及的今天,学生人数日益增多,为保证课堂质量,教师多要在课前进行考勤。由于学生人数偏多,从而导致教师的考勤任务逐渐繁重,这会影响课程进度,损害课程质量。从原本的纸质点名册逐渐发展成近年的传统点名系统,纸质点名册一方面不易保存,保管不当的情况下容易出现丢失、纸张卷边甚至损坏的情况,对数据情况的录入造成一定的困难;另一方面会出现篡改点名情况和点名数据造假等情况,在难以得到真实的统计数据的同时教师的工作量逐渐增多,不利于老师们的科研与教学生活。而传统的点名系统虽然一定程度上减少了教师点名的工作量,但是依然存在一些缺陷,学生可能利用漏洞进行代答到或在宿舍等非教学场所答到,这就失去了点名的意义,出勤率的可信性也大打折扣。因此优化传统点名系统,开发出新的、针对性更强的新功能是非常有必要的。本设计提出基于微信小程序的课堂考勤系统,增加了定位功能,避免了"假打卡"、代打卡等情况,在监督学生上课的同时,增进了出勤率的精确性与可信性。同时点名系统界面尽可能的简洁,各项功能模块一眼即可理解明白,对于师生双方来说都更加的方便迅速,能够节省下课堂应有的教学时间。同时项目整体收集相关数据后能够较快较准确地输出相关报表对学生的一些学习状况进行总结,如学生个人的本学期本课程出勤情况、班级整体的课程参与情况等,能够线上对学生的请假需求进行及时地审批,不用教师额外整理,减轻了这方面的工作量,可以使教师更加投入到教学生活中。
1.2国内外研究现状
部分大学还处于纸质表签到类的阶段。近年来智能手机广泛普及下沉,近乎人手一部,同时与NFC技术结合紧密,使用此项技术对目标信息进行识别采集与分析的成本大大降低,同时还兼具了较为精准安全等优点,但是其在使用过程中对使用距离有一定的要求,应用于相关系统中稍有不便。因此相较于先前的社会面情况,本设计在相关技术手段与功能更新上有较多的相关模范案例可供参考。2019年J Joshan Athanesious et al在《Deep Learning Based Automated Attendance System》文章中提到公司率先引入了相关信息系统对员工的日常工作进行考勤。综合多方面------如经济与人体特异性因素上的考虑,许多公司开发了指纹签到系统,员工仅使用自身的特定手指的指纹即可快速签到。在事先准备上,仅需采集员工的指纹信息即可,花费时间较短,节省人力物力。但对于从事体力劳动与需要较多身体活动的岗位的员工来说,指纹容易磨损从而难以识别,对工作产生影响,也有一部分人先天不存在指纹,出现系统不能实现预期目标的情况。为应对这种情况,同时在技术手段的不断更新下,相关公司推出了更稳定、更针对人类个体特异性的人脸识别签到技术,利用更加难以改变与最具代表性的人脸开发考勤系统。除人脸之外,人体还有许多稳定而难以磨损的特征,如最后才会衰老的声音、不会改变的虹膜信息等,作为最具特异性信息DNA反而由于隐私与伦理等问题反而难以应用于此方面,2022年Aremu Idris Abiodun在《Student Attendance System Using Biometric System》中指出,英国作为最早开始关注相关系统开发的国家之一,有意于将此类特征与其结合,从而更精准高效进行考勤的同时大幅度提升考勤率的可信率。而国内出于经济发展与技术后发等方面的影响对信息化考勤系统的引入与应用起步较晚,最初引入的系统也较为简陋且不稳定。相关开发公司由于技术上的不足,加之购买方经济上的限制,早期的相关考勤系统多使用最基础的卡牌芯片识别技术,员工携带统一的工作证,在入口处使用相关机器扫描后方可计入信息,较为麻烦,为保证公司正常运行,规范公司秩序,对员工的上班到达时间与下班时间进行管理与统计是必不可少的。随着互联网的普及与下沉,信息与当今人类整体的生活不可分割,相关技术手段的应用对人类生活质量与速度有一个较大的提升。二维码自日本发明后在中国迅速发展,因其便利而较为安全的特性被广泛应用,且二维码在广大应用上能被兼容,因此目前应用于部分考勤相关的系统中,但因二维码的图像特性,容易被截屏后发送,进行伪签到。综上所述,出于技术层面与应用层面上的综合考虑,当前需要开发出一套适合高校的签到考勤系统,该系统应当以高校课程整体管理为基点,致力于监督学生上课、降低老师额外精力浪费、辅助教学任务。
另一方面相关领域学者从新技术上完善签到系统,部分学者选择从项目整体的软件技术上完善此系统。如2021年钟娟和马开聪在《基于安卓及云服务平台的考勤管理系统》使用BS框架设计的校园考勤管理系统,此系统通过收集学生的出勤情况,在程序方面增进了数据分析功能,能够令教师更加直观地感受到学生个体的出勤情况;2020年蔡李生在《基于微小人脸识别的智能考勤管理系统》基于SSH框架的考勤管理系统通过人机交互的方式给予了学生对自己"未出勤"情况进行申诉的权利,增进了考勤率的精确性,同时通过精进算法对学生的平时分进行适当分配,缩小教师在考勤工作方面的额外工作;2019年孔祥月[12]在《基于SOA考勤管理系统的设计与实现》中考虑从员工而非管理者入手,通过将出勤率与其待遇进行联系,开发了一种基于SOA的一体化考勤综合管理系统,面向用户端为其提供便利,经测试,此系统能够对公司的相关项目完成率进行较大的提升;2019年王超[13]在《智慧校园系统的考勤管理子系统的设计与实现》创新性的提出将系统与物联网技术相结合,并结合人类个体特异性,使用人脸识别技术提升系统整体准确性,考虑到系统的应用性,该系统在其考勤子系统中使用能够将外部程序嵌入前端的PHP中的Yii进行开发,且该系统由于其较为先进的性能与便捷的操作已经投入运行;2021年韩冰在《分布式指纹识别考勤系统设计》中考虑从图像识别方面入手提升系统整体的考勤效率与准确性,在数据处理方面,为贴合指纹识别的需求,相较于传统的系统在使用了分布式数据库,为提高图像识别的准确度,在对图像的预期处理中使用几何维数分割以便后续处理,在先备工作中的充分准备提高了打卡效率。
1.3论文组织架构
本文的结构安排如下:
第1章:通过绪论大体介绍本设计功能与应用。结合当前技术更新与社会需求阐述本设计的研究目的与意义,展示通过研究前沿论文所总结的国内外研究现状,说明本文基本结构。
第2章:介绍开发本设计所使用的相关开发环境、框架等,解释为何选择他们进行程序开发。
第3章:对本设计实现的系统进行简要地分析。同时对其在技术、经济等方面的可行性进行分析。
第4章:介绍本设计所实现系统的整体设计。着重介绍其功能模块与数据库相关的设计思路。
第5章:对本项目的需求与所介绍的功能模块进行实现。
第6章:根据系统所呈现的效果进行项目测试。
第2章 相关理论和技术
2.1 Java简介
Java编程语言,是由Sun Microsystems公司于1995年5月设计推出的。它是Java编程和Java平台的通用语言[11]。而Java语言也逐渐被广大编程爱好者接受,同时Java技术在日益的完善,也推动了Java技术的前进。Java平台可以分为三个发展体系,即J2SE(java2 Platform Standard Edition)标准版、J2EE(java2 Platform Enterprise Edition)企业版、J2ME(java2 Platform Standard Edition)微型版[14]。
Java语言在语言的其他语言的基础上,它鄙弃了其对于初学者来说相对于难以理解的一些技术手段和相关语法构造修改了相关逻辑,由于整体程序面向对象的对一些工程来说相对更便利,因此Java继承了这一特性,此外,相比于C++项目的运行效率与性能更加完善,在某种程度上可以减少空间资源的过度浪费。除去C++,Java的运行机制与其他的编程语言,如C语言,Phython,Go等也有一定的区别:从整体上来说都是运行的时候将可视代码编译成机器可以识别的二进制的字节码,但Java语言他在此基础上还具备了可跨平台,处处可执行的特性。
Java语言在基础运行过程中还蕴含了许多可以直接调用的基础类函数库,本设计在编程时可以直接使用,而不必专门开发,这大大节省了本设计的代码空间,与思考精力。这能够让本设计将重心放在程序更核心的地方,这对整体编程环境的改善不可同日而语。如果企业拟使用Java进行项目设计那么Java将会为企业提供相对于其他程序语言更多的便利,Java中存在多个自发库可被直接调用到项目程序中,而不必花费额外的精力进行开发。因此使用Java进行项目程序设计时当前主流市场的一个趋势。同时因为Java的广泛使用,本设计可以较为轻易地获得一些类似的项目经验,同时在后续的维护中使用Java也较为便利,从整体来说,Java语言相对于其他语言来说更加适合本设计的开发。
2.2 MySQL
MySQL使用功能强大,本设计在使用的时候要根据他们所具备的特点,适配于不同的场合,在有限的看空间内发挥其最大的效率,同时使其性能跟效率尽可能的接近理想状态。如MySQL5它具备支持事务、视图、存储过程、触发器等性能;同时还支持跨平台服务,对其进行程序的移植操作时,并不会对编写的程序进行任何的修改;其次程序的运行速度也较快,安全性能高,保护用户的个人信息以及防止信息泄露;在此基础上还支持各种开发语言,MySQL为各种流行的编程设计语言提供支持,并且为其提供了很多的API函数,包括PHP、ASP.NET、Java、Eiffel、Python、Ruby、Tcl、C、C++、Perl语言等;它的存储容量也相对来说比较大,可以存放用户的使用信息,并且支持强大的内置函数。为本程序的开发提供了便利。
2.3 Spring框架
它是Java平台上的一种开源应用框架,是可以针对生命周期进行管理的容器[7]。同时可以充分发挥反转的核心特性,并且借助其技术从而达到容器化效果;可以对程序进行声明式的管理,可以利用事务管理框架对多方面的数据进行整合处理,将整体于局部之间的事务相关联,并在此基础上实现共同一起工作的效果,同时可以在Java的各种配置环境下都可以进行相对于稳固工作。在此基础上,还可以进行信息的传递与缓存功能,同时可以有利的解决数据库所出现的常见问题。它不仅对Java:JDBC、iBATS/MyBATIs、Hibernate、Java数据对象(JDO)、ApacheOJB和ApacheCayne这些现阶段较为流行的框架可以提供各方面的支持,同时还可以跟其Spring当中的事务管理相配合使用;它也不排斥其他各种优秀的开源框架,在某种程度上还可以进一步的降低其使用难度,帮助系统解决了很多问题,提高了程序的效率,使项目更进一步的达到所求预期。
2.4 Vue框架
Vue是一套用于构建用户界面的渐进式框架。它的设计思想是逐步至上,并且是从底层开始的应用。Vue所使用的核心区域只能够方便我们去了解视图层,在某种程度上可以更好的去开发用户所需要的界面,它相对于其他结构来说更为便捷。
第3章 系统分析
3.1可行性分析
本章从技术可行性、经济可行性、操作可行性三个方面进行分析。
3.1.1技术可行性
由于本设计在传统考勤系统上增添了定位这一新功能,因此需要对此项技术改良进行可行性方面的评估。因此本设计从动工之初就需要明确开发系统所使用的技术手段、系统整体使用的框架以及设计模式等相关技术方面相关的部分提案。经多方面考虑,综合多方面因素,本设计决定在微信小程序平台上进行相关设计,因Java的相关特性较为适合项目程序的编写,因此选择使用Java。SpringBoot是目前市面上较为主流的一种框架,可以调用许多代码库,大大便利了程序的编写,可对代码进行弹性管理,因此选择此种框架。出于开发成本方面的考虑,Idea开发软件相关的开发工具对所有使用者免费开放,并且其开发环境兼容多种语言,因此选择此开发软件。
3.1.2经济可行性
本设计在项目开始前制作了明确的开发预算计划,在整个开发过程中所有费用与相关支出明细均有明确记录,整体开发过程中全部相关花费符合相关要求,符合法律法规。同时也具备良好的发展前景,从将几方面来说使可行的。
3.1.3操作可行性
当前系统开发市场依旧火热,因此所设计的软件需要界面在便于使用的同时做到界面优美,方便用户的使用。系统开发者需要令操作界面足够便捷,各项功能操作模块清晰易懂,令用户能够不花费大量时间就掌握软件的使用方法。同时出于精确性的考虑,各项功能要足够明确,能使用户能够尽可能快捷地达到预期功能,以防歧义的产生而拖累使用体验。而考虑到系统的实时性,其整体结构必须足够高效,抛去冗余量,将不同用户划分为不同的等级,为其分配不同的权限,易于管理的同时能够更高效的获取相关信息。综合以上因素考虑,本设计可满足上述需求,符合其可行性。
3.2需求分析
目前软件市场竞争白热化,做好软件前期的功能需求是软件能否站稳脚跟的重要因素。系统的功能需求分析能够进一步用户的"画像",对软件功能需求的进一步了解与开发大有裨益。
3.2.1功能需求分析
本文设计将要实现一个基于微信小程序的课堂考勤系统,首先是实现用户的注册与登录,在收集用户相关目标信息的同时,能够对用户的考勤签到的情况进行相关反馈,便利管理员的管理,对代签现象有一定的遏制作用。
3.2.2 非功能需求分析
本论文所开发的基于微信小程序的课堂考勤系统存储了大量的基本信息,这些信息的泄露会对学生的人身信息安全造成影响,因此在系统的开发设计过程中需要对数据的安全进行严密的保护。