微信小程序的实验室考勤管理系统是一种专为学生和教师提供的软件,它能够帮助学生对实验的提升与了解。这款小程序的主要功能包括:学生、教师、实验室、实验室预约、实验课程、课程签到、学生请假、系统管理、用户信息等。微信小程序的实验室考勤管理系统是一款全面、实用的教学软件,能够为学生和老师提供全方位的帮助。
关键词:微信小程序;Java;springboot;MySql数据库;
通过对本文的开发背景、研究意义以及国内外研究现状和发展趋势的分析,确定本文的研究内容是系统开发的前提。 1.1开发背景及研究意义 随着科技的进步,实验室考勤管理已经从传统的手工记录方式逐渐转向数字化管理。微信小程序作为一种便捷、高效的应用程序,为实验室考勤管理提供了新的解决方案。本研究旨在利用微信小程序的优势,设计并实现一款实验室考勤管理系统,以提高实验室管理的效率和准确性。 通过微信小程序考勤管理系统,实验室管理员可以实时掌握学生的出勤情况,减轻手工记录的负担,提高管理效率。学生可以通过该系统自行查看考勤记录,对管理过程有更好的了解和参与,从而提高学生对实验室管理的满意度。通过微信小程序考勤管理系统,可以确保学生考勤数据的安全性,防止数据泄露和丢失。实验室考勤管理系统的应用,可以为科研工作提供更准确的数据支持,有助于提高科研效率和质量。微信小程序的实验室考勤管理系统的设计与实现具有很高的研究意义,不仅可以提高实验室管理的效率,还能增强学生和教师的满意度,为科研工作提供更好的支持。 1.2国内外研究现状和发展趋势 国内在实验室考勤管理系统方面的研究主要集中在高校、科研机构和实验室。目前,许多高校和科研机构都采用人工考勤的方式,这种方式不仅效率低下,而且容易出错。因此,越来越多的高校和科研机构开始尝试使用微信小程序来实现实验室考勤管理系统的设计与实现。 微信小程序作为一种轻量级的应用程序,具有简单易用、无需安装、无需维护等优点,非常适合实验室考勤管理系统的应用场景。目前,国内已经有一些高校和科研机构开始使用微信小程序来实现实验室考勤管理系统,并取得了一定的效果。 国外的实验室考勤管理系统研究相对较少,主要是由于国外高校和科研机构通常采用传统的考勤方式,如纸质签到等。然而,随着移动互联网技术的发展,越来越多的国外高校和科研机构也开始尝试使用微信小程序等移动应用程序来实现实验室考勤管理系统的设计与实现。 随着人工智能、大数据、云计算等技术的不断进步,实验室考勤管理系统将会越来越智能化,可以自动识别人员进出实验室的情况,并提供更准确的考勤数据。此外,物联网技术的应用也将使得实验室考勤管理系统更加方便、快捷和准确。实验室考勤管理系统将会更加注重用户体验,不仅要求系统简单易用,而且要能够提供人性化的界面设计、方便的数据查询和分析功能等。同时,系统设计也要考虑到安全性、可靠性和稳定性等方面的要求。微信小程序的实验室考勤管理系统具有很大的发展空间和潜力,未来将会得到越来越多的应用和推广。 1.3本文主要研究的内容 该系统采用java技术,结合springboot框架使页面更加完善,后台使用MySQL数据库进行数据存储。系统主要分为三大模块:即管理员模块、学生模块和教师模块。本文从实验室流程分析入手,分析了其功能性需求和非功能性需求,设计了一个由管理员、学生和教师三部分组成的微信小程序的实验室考勤管理系统。用户可在小程序端浏览实验室、实验课程;注册登录后在我的页面可以对实验室预约、实验课程、课程签到、学生请假、我的收藏、修改密码等进行详细操作;管理员可通过后台管理界面对学生、教师、实验室、实验室预约、实验课程、课程签到、学生请假、系统管理、用户信息等信息进行管理。
在开发系统过程中采用微信开发者工具,Java语言和MySQL数据库存储数据。系统以B/S为基础,实现管理一体化、规范化,为用户提供一个高效快捷的交流平台。利用springboot架构进行编程,具有良好的稳定性与安全性,并且操作简单,易于维护。下面介绍一下关键技术。 2.1开发环境 本系统使用MyEclipse开发工具。系统使用服务器为Tomcat服务器。系统数据库设计使用MySQL。 2.2Java技术 java是一种面向对象的面向对象编程语言,它不仅吸收了C++语言的优点,而且摒弃了C++不可理解的多继承和指针的概念,所以Java语言功能强大,使用方便。Javascript作为一种动态网页制作技术,jQuery提供了丰富而强大的脚本语言库支持。二者结合使用可以有效提高开发效率和质量。Java语言是静态面向对象编程语言的代表,是面向对象理论的优秀实现,使程序员能够优雅地思考复杂的编程。 Java是简单性的、面向对象、分布式、健壮性、安全性、平台独立、可移植性的、多线程、动态性的。它的应用使软件开发过程更加灵活,提高了软件质量,增强了软件可重用性。在当今网络技术迅速发展的情况下,Java已成为目前最流行的编程语言之一。Java是一种开源语言。Java可以编写桌面应用程序、Web应用程序、分布式系统、嵌入式系统应用程序等。 2.3微信开发者工具 在传统web浏览器中,在加载htm15页面时先加载视图层的html和css,后加载逻辑层的java script,然后返回数据并在浏览器中展示页面。而微信开发者工具的系统层是基于Native System的,视图层和逻辑层会同时被加载。微信小程序的这种逻辑方式大大的优化了页面响应速度,减少了页面加载的等待时间,提高了用户体验。微信开发者工具可以实现同步本地文件,开发调试,编译预览,上传,发布等一整套流程。 2.4MySQL数据库 现在的Web动态网站都是基于数据库的,一直以来,MySQL数据与java技术的组合都备受开发者们的亲赖,MySQL目前属于Oracle甲骨文公司,MySQL称之为关系型数据库。 (1)MySQL是相比与oracle更轻量、更简介便于使用,在服务部署方面相对复杂度低,更利于毕设系统的开发。 (2)MySQL对多数个人用户来说是免费的。 (3)MySQL支持sql语言,学习成本较低。 (4)MySQL可支持互联网数据共享也支持数据安全设置,防止数据泄露。 (5)MySQL运行到各种版本的操作系统中无论是服务器上还是开发用的笔记本上。 2.5springboot框架 Spring Boot是由Pivotal团队提供的轻量级框架,其“开箱即用”及“约定优于配置”的策略可以使开发者全身心的投入到业务逻辑代码的编写中,极大地提高了软件开发项目的效率。相比于Spring框架而言,Spring Boot框架更加能够节省程序员配置XML的时间,Spring Boot项目允许开发者使用它的所有模块和开发功能,此外, Spring Boot内置了服务器,简化了开发者启用服务器的整体流程,Spring Boot还可以自动适配不同类型的数据库以满足用户快速连接后台数据库管理的需求,这极大地方便了用户快速搭建应用程序的实现过程。 2014年4月,Spring Boot 1.0.0发布,截止到2022年2月,发布的Spring Boot版本为Spring Boot 3.0.0-M1。在系统的设计与开发中,为了能够快速搭建软件后台服务的开发环境,从技术实现的难度以及平台开发的成本两个方面考虑,Spring Boot框架能够使开发者更关注平台功能的业务逻辑代码实现,可采用Spring Boot框架搭建系统为前端App提供数据服务。因此,本案例项目后台开发选择Spring Boot框架。 2.6B/S架构 B/S结构就是指系统客户端与服务器分离,客户端通过浏览器访问服务端进行操作。 B/S结构目前广泛应用于绝大部分系统搭建中,这种结构摒弃C/S结构客户端服务端不分离的缺点,具有更多的优势: (1)跨平台性:B/S的标准由标准化组织确立,适用于绝大多数的系统搭建,通用于应用之。 (2)低维护成本:客户端和服务器端分离,减轻了两端的压力,尤其是客户端,对客户端设备,硬件、软件要求都比较低,并且系统需要升级或维护时,只需要在服务器端升级或维护就可以,使相应的费用减少。 2.7本章小结 本节作为开发的准备,简要介绍了系统开发所需的开发环境,然后介绍系统开发所需的技术,从而掌握系统开发的总体框架性。
系统设计是将被设计对象划分为单个模块进行构建,各个模块相互支持,相互制约,它们的组合是一个完整的系统。通过系统设计,可以最大限度地满足系统的预期目标,明确软件开发的目的。 4.1系统基本结构设计 本次系统采用springboot框架集进行开发,springboot框架是一款企业界主流的软件开发框架,其简化了开发流程,大大缩减了软件开发所需的时间提高了软件的响应速度。系统总体结构图如图4-1所示。
图4-1 系统总体结构图
4.2.2数据库表设计 数据表是用来保存多种数据的表,它是所有数据库的核心对象,且对于软件开发有着不可替代的作用。其相关数据表如下: 表4-1:配置文件 字段名称 类型 长度 字段说明 主键 默认值 id bigint 主键 主键 name varchar 100 配置参数名称 value varchar 100 配置参数值 url varchar 500 url
表4-2:token表 字段名称 类型 长度 字段说明 主键 默认值 id bigint 主键 主键 userid bigint 用户id username varchar 100 用户名 tablename varchar 100 表名 role varchar 100 角色 token varchar 200 密码 addtime timestamp 新增时间 CURRENT_TIMESTAMP expiratedtime timestamp 过期时间 CURRENT_TIMESTAMP
表4-3:收藏表 字段名称 类型 长度 字段说明 主键 默认值 id bigint 主键 主键 addtime timestamp 创建时间 CURRENT_TIMESTAMP userid bigint 用户id refid bigint 商品id tablename varchar 200 表名 name varchar 200 名称 picture longtext 4294967295 图片 type varchar 200 类型 1 inteltype varchar 200 推荐类型 remark varchar 200 备注
表4-4:实验室预约 字段名称 类型 长度 字段说明 主键 默认值 id bigint 主键 主键 addtime timestamp 创建时间 CURRENT_TIMESTAMP shiyanshibianhao varchar 200 实验室编号 shiyanshimingcheng varchar 200 实验室名称 shiyanshitupian longtext 4294967295 实验室图片 shiyanshiguimo varchar 200 实验室规模 shiyanshiweizhi varchar 200 实验室位置 yuyueshijian datetime 预约时间 jieshushijian datetime 结束时间 jiaoshigonghao varchar 200 教师工号 jiaoshixingming varchar 200 教师姓名 sfsh varchar 200 是否审核 待审核 shhf longtext 4294967295 审核回复 userid bigint 用户id
表4-5:实验室 字段名称 类型 长度 字段说明 主键 默认值 id bigint 主键 主键 addtime timestamp 创建时间 CURRENT_TIMESTAMP shiyanshibianhao varchar 200 实验室编号 shiyanshitupian longtext 4294967295 实验室图片 shiyanshimingcheng varchar 200 实验室名称 shiyanshiguimo varchar 200 实验室规模 shiyanshiweizhi varchar 200 实验室位置 shebeixiangqing longtext 4294967295 设备详情 shiyanshixiangqing longtext 4294967295 实验室详情
表4-6:实验课程 字段名称 类型 长度 字段说明 主键 默认值 id bigint 主键 主键 addtime timestamp 创建时间 CURRENT_TIMESTAMP kechengmingcheng varchar 200 课程名称 fengmian longtext 4294967295 封面 shiyanxiangmu varchar 200 实验项目 shangkeshijian datetime 上课时间 shiyanshibianhao varchar 200 实验室编号 shiyanshimingcheng varchar 200 实验室名称 shiyanshiweizhi varchar 200 实验室位置 kechengxiangqing longtext 4294967295 课程详情 jiaoshigonghao varchar 200 教师工号 jiaoshixingming varchar 200 教师姓名 reversetime datetime 倒计结束时间
表4-7:公告信息分类 字段名称 类型 长度 字段说明 主键 默认值 id bigint 主键 主键 addtime timestamp 创建时间 CURRENT_TIMESTAMP typename varchar 200 分类名称
表4-8:公告信息 字段名称 类型 长度 字段说明 主键 默认值 id bigint 主键 主键 addtime timestamp 创建时间 CURRENT_TIMESTAMP title varchar 200 标题 introduction longtext 4294967295 简介 typename varchar 200 分类名称 name varchar 200 发布人 headportrait longtext 4294967295 头像 clicknum int 点击次数 0 clicktime datetime 最近点击时间 thumbsupnum int 赞 0 crazilynum int 踩 0 storeupnum int 收藏数 0 picture longtext 4294967295 图片 content longtext 4294967295 内容
表4-9:课程签到 字段名称 类型 长度 字段说明 主键 默认值 id bigint 主键 主键 addtime timestamp 创建时间 CURRENT_TIMESTAMP kechengmingcheng varchar 200 课程名称 fengmian longtext 4294967295 封面 shangkeshijian varchar 200 上课时间 shiyanshimingcheng varchar 200 实验室名称 jiaoshigonghao varchar 200 教师工号 jiaoshixingming varchar 200 教师姓名 qiandaoshijian datetime 签到时间 xuehao varchar 200 学号 xueshengxingming varchar 200 学生姓名 crossuserid bigint 跨表用户id crossrefid bigint 跨表主键id userid bigint 用户id
表4-10:学生请假 字段名称 类型 长度 字段说明 主键 默认值 id bigint 主键 主键 addtime timestamp 创建时间 CURRENT_TIMESTAMP xuehao varchar 200 学号 xueshengxingming varchar 200 学生姓名 touxiang longtext 4294967295 头像 qingjiariqi date 请假日期 qingjiayuanyin varchar 200 请假原因 jiaoshigonghao varchar 200 教师工号 jiaoshixingming varchar 200 教师姓名 sfsh varchar 200 是否审核 待审核 shhf longtext 4294967295 审核回复 userid bigint 用户id
表4-11:教师 字段名称 类型 长度 字段说明 主键 默认值 id bigint 主键 主键 addtime timestamp 创建时间 CURRENT_TIMESTAMP jiaoshigonghao varchar 200 教师工号 mima varchar 200 密码 touxiang longtext 4294967295 头像 jiaoshixingming varchar 200 教师姓名 xingbie varchar 200 性别 lianxidianhua varchar 200 联系电话
表4-12:学生 字段名称 类型 长度 字段说明 主键 默认值 id bigint 主键 主键 addtime timestamp 创建时间 CURRENT_TIMESTAMP xuehao varchar 200 学号 mima varchar 200 密码 xueshengxingming varchar 200 学生姓名 touxiang longtext 4294967295 头像 xingbie varchar 200 性别 shoujihaoma varchar 200 手机号码
表4-13:公告信息评论表 字段名称 类型 长度 字段说明 主键 默认值 id bigint 主键 主键 addtime timestamp 创建时间 CURRENT_TIMESTAMP refid bigint 关联表id userid bigint 用户id avatarurl longtext 4294967295 头像 nickname varchar 200 用户名 content longtext 4294967295 评论内容 reply longtext 4294967295 回复内容
表4-14:用户表 字段名称 类型 长度 字段说明 主键 默认值 id bigint 主键 主键 username varchar 100 用户名 password varchar 100 密码 image varchar 200 头像 role varchar 100 角色 管理员 addtime timestamp 新增时间 CURRENT_TIMESTAMP
4.3本章小结 通过本章针对微信小程序的实验室考勤管理系统功能的总体结构、E-R属性图和数据表的大概介绍,对在开发系统时所要涉及到的数据库进行简单设计,为下一章系统的实现做好铺垫。
系统实现章节的主要内容主要是将系统分析和系统设计方案进行实现,按照各个系统角色进行功能介绍,系统实现就是一个真正开始编写的阶段,将前面的分析结果以及设计方案进行实现,最终做出一个符合用户需求的软件系统。 5.1小程序端实现 5.1.1注册登录界面的实现 第一次使用本小程序的使用者,首先是要进行注册,点击“注册”,然后就会进入到注册的页面里面,将用户信息录入注册表,确认信息正确后,系统才会进入登录界面,用户登录成功后可使用本小程序所提供的所有功能。注册界面如图5-1所示。
图5-1 注册界面
首先双击打开小程序客户端,连上网络之后会显示出本系统的登录界面,这是进入小程序的初始页面“登录”,能成功进入到该登录界面则代表小程序的开启是成功的,接下来就可以操作本系统所带有的其他所有的功能。登录界面如图5-2所示。
图5-2 登录界面 5.1.2小程序首页功能的实现 小程序首页是用户注册登录后进入的第一个界面,在这里,人们能够看到小程序的导航条,内容包括首页、实验室、实验课程、我的等。小程序首页界面如图5-3所示。
图5-3 小程序首页界面图
实验室:在实验室页面输入栏里输入实验室编号进行搜索,可以查看实验室详细信息;并根据需要进行预约操作;实验室如图5-4所示。
图5-4实验室界面图 5.1.3学生功能 学生登录成功后,点击“我的”进入我的页面,在我的页面可以对课程签到、学生请假、我的收藏、修改密码等进行详细操作。学生功能界面如图5-5所示。
图5-5学生功能界面图 5.1.4教师功能 教师登录成功后,点击“我的”进入我的页面,在我的页面可以对实验室预约、实验课程、课程签到、学生请假、我的收藏、修改密码等进行详细操作。教师功能界面如图5-6所示。
图5-6教师功能界面图
5.2后台管理员功能的实现 在登录流程中,用户首先在UNI前端界面输入用户名和密码。这些信息通过HTTP请求发送到Java后端。后端接收请求,通过与MySQL数据库交互验证用户凭证。如果认证成功,后端返回给前端,允许用户访问系统。这个过程涵盖了从用户输入到系统验证和响应的全过程。如图5-7所示。
图5-7管理员登录界面图
管理员登录进入小程序可以查看到系统主页、学生、教师、实验室、实验室预约、实验课程、课程签到、学生请假、系统管理、用户信息等功能进行详细操作,如图5-8所示。
图5-8管理员功能界面图
学生功能在视图层(view层)进行交互,比如点击“搜索、新增或删除”学生信息表单。这些学生信息动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如更多、改动或删除学生信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便学生功能可以看到最新的信息或相应的操作反馈。如图5-9所示: