摘要

本毕业论文研究了一种基于人脸识别和 Spring Boot 技术的签到考勤 APP 的设计与实现。该 APP 旨在为学生和教师提供一种便捷、高效的考勤方式。通过使用人脸识别技术,系统能够准确识别用户身份,提高考勤效率,同时减少人工操作的繁琐性。APP 采用 Spring Boot 框架,使系统具有高度的可扩展性和可维护性。

 对于学生,他们可以通过该 APP 快速完成签到操作,系统会自动记录签到时间和地点,方便教师进行考勤管理。同时,APP 还提供了请假申请功能,学生可以方便地提交请假请求,并实时跟踪请假审批进度。

 对于教师,他们可以通过 APP 实时查看学生的签到情况,了解学生的出勤状况。系统还提供了统计功能,方便教师对学生的考勤情况进行统计分析。

 本签到考勤 APP 的实现,不仅提高了考勤管理的效率和准确性,还为学生和教师提供了更加便捷的服务。通过人脸识别技术的应用,增强了系统的安全性和用户体验。同时,Spring Boot 框架的使用确保了系统的稳定性和可扩展性,为后续功能的扩展提供了有力支持。

关键词:SpringBoot;签到考勤APP系统;APP;系统功能


Abstract

This graduation thesis focuses on the design and implementation of a check-in and attendance app based on facial recognition and Spring Boot technology. This app aims to provide students and teachers with a convenient and efficient way of attendance. By using facial recognition technology, the system can accurately identify user identities, improve attendance efficiency, and reduce the complexity of manual operations. The APP adopts the Spring Boot framework, making the system highly scalable and maintainable.

For students, they can quickly complete check-in operations through this app, and the system will automatically record the check-in time and location, making it convenient for teachers to manage attendance. At the same time, the app also provides a leave application function, allowing students to easily submit leave requests and track the progress of leave approval in real-time.

For teachers, they can view the attendance status of students in real-time through the app and understand their attendance status. The system also provides statistical functions to facilitate teachers in conducting statistical analysis of student attendance.

The implementation of this attendance management app not only improves the efficiency and accuracy of attendance management, but also provides more convenient services for students and teachers. The application of facial recognition technology has enhanced the security and user experience of the system. Meanwhile, the use of the Spring Boot framework ensures the stability and scalability of the system, providing strong support for the extension of subsequent functions.

Keywords: SpringBoot; Check in and attendance APP system; APP; system function

目录

1 绪论

1.1 研究背景

1.2 研究现状

1.3系统开发技术的特色

2 基于人脸识别签到考勤APP分析

2.1可行性分析

2.1.1技术可行性分析

2.1.2经济可行性分析

2.1.3操作可行性分析

2.2功能需求分析

2.3用例分析

3基于人脸识别签到考勤APP总体设计

3.1系统功能模块设计

3.3数据库设计

3.3.1 数据库E-R模型

3.3.2 数据库表设计

4 基于人脸识别签到考勤APP关键模块实现

4.1 前台APP端

4.1.1 用户注册界面

4.1.2 用户登录界面

4.1.3 学习资讯界面

4.1.4 请假信息界面

4.1.5 课程信息界面

4.1.6 考勤打卡界面

4.1.7我的界面

4.2后台管理员端

4.2.1 系统用户界面

4.2.2课程信息管理界面

4.2.3系统管理界面

4.2.4公告信息管理界面

4.2.5资源管理界面

5 基于人脸识别签到考勤APP测试

5.1系统测试

5.2测试结果

总结与展望

参考文献

致谢

1 绪论

1.1 研究背景

随着科技的不断进步和应用,传统的纸质签到考勤方式逐渐被数字化的签到考勤系统所取代。而基于人脸识别和Spring Boot的签到考勤APP作为一种新型的签到考勤解决方案,具有许多优势和潜力,因此成为了研究的热点。

传统的签到考勤方式需要学生或教师手动填写签到表格或使用刷卡机等设备进行签到,耗费时间且容易出现错误。而基于人脸识别的签到考勤APP可以实现自动签到,大大提高了签到考勤的效率,减少了人力成本。并且传统的签到方式存在着一定程度上的漏签、代签等问题,无法保证签到数据的真实性和准确性。而基于人脸识别的签到考勤APP通过对学生或教师的人脸进行特征提取和比对,能够有效防止漏签、代签等情况的发生,提高了签到考勤数据的准确性。

传统的签到方式还存在着签到卡被盗用、信息泄露等安全隐患。而基于人脸识别的签到考勤APP通过对活体检测和人脸特征比对,能够有效防止非法使用他人照片进行签到,提升了签到考勤的安全性。

 基于人脸识别的签到考勤APP可以自动记录学生或教师的签到记录,并将其存储在数据库中,方便后续的数据管理和分析。教务管理人员可以通过系统快速查询和统计签到情况,提供准确的数据支持。

因此,基于人脸识别和Spring Boot的签到考勤APP的设计与实现成为了一个重要的课题研究。通过该研究,可以提供一种高效、准确、安全的签到考勤解决方案,满足教育机构对签到考勤管理的需求,并推动数字化技术在教育领域的应用和发展。

1.2 研究现状

基于人脸识别和Spring Boot的签到考勤APP的设计与实现在教育领域已经引起了广泛的研究兴趣。以下是当前的研究现状:

(1)人脸识别技术的发展: 人脸识别技术在近年来得到了快速发展,特别是深度学习技术的应用,大幅提升了人脸识别的准确性和稳定性。研究人员关注如何将人脸识别技术应用于签到考勤场景,并不断改进算法和模型,以提高人脸识别的性能。

(2)移动应用开发框架的应用: Spring Boot作为一种轻量级、快速开发的Java框架,在移动应用开发中得到了广泛应用。研究人员利用Spring Boot框架搭建后端服务,通过提供RESTful API接口实现与前端的数据交互,并实现签到考勤APP的功能需求。

(3)签到考勤系统的设计与实现: 签到考勤系统的设计与实现已经成为研究的热点。研究人员关注如何设计用户友好的界面、有效地采集和管理学生或教师的信息、实现人脸识别功能等。他们通过前后端分离的架构方式,结合数据库技术和人脸识别算法,设计出具有一定规模和稳定性的签到考勤系统。

(4)数据安全与隐私保护: 在签到考勤APP的设计与实现过程中,研究人员关注数据安全和隐私保护的问题。他们采取了加密传输、权限控制等措施,确保学生和教师个人信息的安全性和隐私性。

(5)实际应用与评估: 部分研究人员已经将其设计与实现的基于人脸识别和Spring Boot的签到考勤APP应用于实际教育场景中,并进行了评估和改进。他们通过用户反馈和系统性能测试等方式,验证系统的实用性和有效性,并提出改进建议。

总体而言,基于人脸识别和Spring Boot的签到考勤APP的设计与实现已经取得了一定的研究进展,但仍有待进一步的研究和完善。未来的研究可以从系统的可扩展性、智能化分析等方面展开,以提升签到考勤APP的功能和性能,并适应不断变化的教育需求。

1.3系统开发技术的特色

(1)系统采用前后端分离的开发模式,使得前端和后端可以独立开发和维护,提高了开发效率和系统的可维护性。

(2)系统采用微服务架构,将系统拆分成多个独立的服务,每个服务可以独立部署和扩展,提高了系统的灵活性和可扩展性。

(3)系统采用 Docker 容器化部署技术,使得系统可以快速部署和迁移,提高了系统的可靠性和可移植性。

(4)系统采用自动化测试技术,包括单元测试、接口测试和性能测试等,提高了系统的稳定性和可靠性。

(5)系统采用安全保障技术,包括用户认证、授权、数据加密等,保障了系统的安全性和用户的隐私。

这些技术特色使得基于人脸识别的签到考勤APP具有高效、稳定、可靠、安全等优点,能够满足用户的需求和提高用户的体验。


2 基于人脸识别签到考勤APP分析

基于人脸识别签到考勤APP可在APP端实现首页、请假信息、网站公告、学校资讯、我的(基本信息、收藏、统计图、课程信息、考勤打卡、考勤分析、请假信息)等功能,相对于传统的签到考勤方式,基于人脸识别签到考勤APP提高了效率和便利性。在后台可对系统用户、课程信息、考勤打卡、考勤分析、请假信息、班次排班、系统轮播图、公告信息、学校资讯、权限进行管理,充分了解用户的需求,更有针对性的服务用户。

2.1可行性分析

2.1.1技术可行性分析

基于人脸识别签到考勤APP存储所使用的mysql数据库以及开发中所使用的IDEA、Tomcat、uni-app框架这些开发工具的使用,能够给我们的编写工作带来许多的便利。系统使用springboot框架进行开发,使系统的可扩展性和维护性更佳,减少java配置代码,简化编程代码,目前springboot框架也是很多企业选择的框架之一。

2.1.2经济可行性分析

在开发基于人脸识别签到考勤APP中所使用的开发软件像IDEA开发工具、Tomcat8.0服务器、MySQL5.7数据库、Photoshop图片处理软件等,这些都是开源免费的,并且基于人脸识别签到考勤APP是自己设计并编码实现的,数据库是使用流行mysql进行数据的存储,开源的mysql等技术的使用,减少系统开发费用。

2.1.3操作可行性分析

在日常生活中,随着APP的快速推广和使用,越来越多人掌握APP的使用方法,基于人脸识别签到考勤APP在这种条件背景下是很容易被人们所接受和熟悉的,所以在操作上没任何问题。

2.2功能需求分析

基于人脸识别签到考勤APP中的web后台管理端采用了IntelliJ IDEA 2019.3.4 开发工具,配合了java开发语言中springboot开发框架以及tomcat8.0服务器、jdk1.8,APP端采用了uni-app框架HBuilderX开发工具,页面使用wxss和wxml进行布局,APP端和web后台管理端采用json接口通信。

1.学生用户功能需求分析:

首页: 学生登录后进入个人首页,显示最新的网站公告、学校资讯等内容,并提供快速导航入口。

请假信息: 学生可以提交请假申请,并查看请假申请的审批状态和历史记录。

网站公告: 学生可以查看学校发布的公告信息,包括重要通知、活动安排等。

学校资讯: 学生可以浏览学校提供的资讯内容,了解学校动态和相关信息。

我的: 学生可以在我的页面进行以下操作:

基本信息:查看和编辑个人的基本信息。

收藏:收藏感兴趣的学校资讯和公告信息。

统计图:查看个人的考勤统计图表,包括迟到次数、早退次数等。

课程信息:查看自己的课程信息,包括上课时间、地点等。

考勤打卡:进行签到考勤操作。

考勤分析:查看个人的考勤情况和分析报告。

请假信息:提交请假申请和查看请假记录。

2.教师用户功能需求分析::

首页: 教师登录后进入个人首页,显示最新的网站公告、学校资讯等内容,并提供快速导航入口。

网站公告: 教师可以查看学校发布的公告信息,包括重要通知、活动安排等。

学校资讯: 教师可以浏览学校提供的资讯内容,了解学校动态和相关信息。

我的: 教师可以在我的页面进行以下操作:

基本信息:查看和编辑个人的基本信息。

收藏:收藏感兴趣的学校资讯和公告信息。

统计图:查看班级或个人的考勤统计图表,包括迟到次数、早退次数等。

课程信息:查看自己所教授的课程信息,包括上课时间、地点等。

考勤打卡:进行签到考勤操作。

考勤分析:查看班级或个人的考勤情况和分析报告。

请假信息:审批学生的请假申请和查看请假记录。

班次排班:管理班级的课程排班信息。

3.管理员功能需求分析::

后台首页: 管理员登录后进入后台首页,显示系统的数据统计和操作快捷入口。

系统用户: 管理员可以管理系统的用户,包括添加、修改、删除用户的权限和角色。

课程信息管理: 管理员可以管理学校的课程信息,包括添加、修改、删除课程等。

考勤打卡管理: 管理员可以管理学生和教师的考勤打卡情况,包括查看打卡记录、补卡处理等。

考勤分析管理: 管理员可以进行考勤数据的统计和分析,生成报表和图表,并提供相关的查询功能。

请假信息管理: 管理员可以审批学生的请假申请,管理请假记录和请假审批流程。

班次排班管理: 管理员可以进行班级的课程排班安排,调整上课时间和地点等。

系统管理: 管理员可以管理系统的配置信息,如轮播图管理,设置系统的轮播图内容和显示顺序。

公告信息管理: 管理员可以发布和管理系统的公告信息,包括编辑、删除公告内容。

资源管理: 管理员可以管理学校资讯和资讯分类,包括添加、编辑、删除资讯和分类。

权限管理: 管理员可以管理用户的权限,设置不同角色的功能访问权限。

以上是基于人脸识别和Spring Boot的签到考勤APP的功能需求分析。通过这些功能,系统可以满足学生、教师和管理员在签到考勤管理方面的需要。

2.3用例分析

基于人脸识别签到考勤APP的完整UML用例图分别是图2-1,图2-2,图2-3。在参与者上包括学生用户、教师用户、管理员。

学生用户角色的用例包括登陆注册、首页、请假信息、网站公告、学校资讯、我的(基本信息、收藏、统计图、课程信息、考勤打卡、考勤分析、请假信息)。

图2-1 基于人脸识别签到考勤APP学生用户角色用例图

教师用户角色的用例包括登陆注册、首页、网站公告、学校资讯、我的(基本信息、收藏、统计图、课程信息、考勤打卡、考勤分析、请假信息、班次排班)。

图2-2 基于人脸识别签到考勤APP教师用户角色用例图

管理员角色的用例包括后台首页、系统用户、课程信息管理、考勤打卡管理、考勤分析管理、请假信息管理、班次排班管理、系统管理、公告信息管理、资源管理、权限管理。

图2-3 基于人脸识别签到考勤APP管理员角色用例图


3基于人脸识别签到考勤APP总体设计

在上一章节中分析了基于人脸识别签到考勤APP的功能性需求,并且根据需求分析了基于人脸识别签到考勤APP中的用例。那么接下来就要开始对基于人脸识别签到考勤APP架构、主要功能和数据库开始进行设计。

3.1系统功能模块设计

通过对基于人脸识别签到考勤APP的功能需求分析以及用例分析,得出了基于人脸识别签到考勤APP的功能模块图如图3-1所示。

图3-1基于人脸识别签到考勤APP功能模块图

3.3数据库设计

3.3.1 数据库E-R模型

下面是整个基于人脸识别签到考勤APP的数据库表的E-R实体关系图,如图3-2所示:

图3-2 基于人脸识别签到考勤APPE-R实体关系图

3.3.2 数据库表设计

通过上一小节中基于django的凤冈县公安局证据管理系统中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。

表access_token (登陆访问时长)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

用户编号:

表article (文章:用于内容管理系统的文章)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

文章描述

表article_type (文章分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表attendance_analysis (考勤分析)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

attendance_analysis_id

int

10

0

N

Y

考勤分析ID

2

teacher

int

10

0

Y

N

0

任课教师

3

course_name

varchar

64

0

Y

N

课程名称

4

course_subject

varchar

64

0

Y

N

课程学科

5

course_type

varchar

64

0

Y

N

课程类型

6

opening_semester

varchar

64

0

Y

N

开课学期

7

course_students

int

10

0

Y

N

0

课程学生

8

student_name

varchar

64

0

Y

N

学生姓名

9

attendance_status

varchar

64

0

Y

N

考勤状态

10

abnormal_situation

text

65535

0

Y

N

异常情况

11

analysis_content

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

更新时间

表attendance_clock_in (考勤打卡)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

attendance_clock_in_id

int

10

0

N

Y

考勤打卡ID

2

teacher

int

10

0

Y

N

0

任课教师

3

course_name

varchar

64

0

Y

N

课程名称

4

course_subject

varchar

64

0

Y

N

课程学科

5

course_type

varchar

64

0

Y

N

课程类型

6

opening_semester

varchar

64

0

Y

N

开课学期

7

course_students

int

10

0

Y

N

0

课程学生

8

student_name

varchar

64

0

Y

N

学生姓名

9

check_in_picture

varchar

255

0

Y

N

打卡图片

10

class_time

datetime

19

0

Y

N

上课时间

11

end_of_class_time

datetime

19

0

Y

N

下课时间

12

attendance_status

varchar

64

0

Y

N

考勤状态

13

attendance_instructions

text

65535

0

Y

N

考勤说明

14

location_address

varchar

64

0

Y

N

当前位置

15

location_lng

varchar

64

0

Y

N

当前位置经度

16

location_lat

varchar

64

0

Y

N

当前位置纬度

17

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

18

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表auth (用户权限管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表collect (收藏)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表comment (评论)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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:

表course_information (课程信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

course_information_id

int

10

0

N

Y

课程信息ID

2

teacher

int

10

0

Y

N

0

任课教师

3

course_name

varchar

64

0

N

N

课程名称

4

course_subject

varchar

64

0

Y

N

课程学科

5

course_type

varchar

64

0

Y

N

课程类型

6

opening_semester

varchar

64

0

Y

N

开课学期

7

course_images

varchar

255

0

Y

N

课程图片

8

course_start_time

varchar

64

0

N

N

开课时间

9

class_location

varchar

64

0

Y

N

上课地点

10

course_overview

text

65535

0

Y

N

课程概述

11

course_content

text

65535

0

Y

N

课程内容

12

attendance_rules

text

65535

0

Y

N

考勤规则

13

course_students

int

10

0

Y

N

0

课程学生

14

student_name

varchar

64

0

Y

N

学生姓名

15

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

16

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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:

表leave_information (请假信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

leave_information_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

class_name

varchar

64

0

Y

N

班级名称

5

teacher

int

10

0

Y

N

0

任课教师

6

leave_type

varchar

64

0

Y

N

请假类型

7

start_time

datetime

19

0

Y

N

开始时间

8

end_time

datetime

19

0

Y

N

结束时间

9

reason_for_taking_leave

text

65535

0

Y

N

请假原因

10

examine_state

varchar

16

0

N

N

未审核

审核状态

11

examine_reply

varchar

16

0

Y

N

审核回复

12

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

13

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表notice (公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表praise (点赞)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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已取消

表sensitive_vocabulary (敏感词汇)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

sensitive_vocabulary_id

int

10

0

N

Y

敏感词汇ID

2

sensitive_vocabulary

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

更新时间

表shift_scheduling (班次排班)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

shift_scheduling_id

int

10

0

N

Y

班次排班ID

2

teacher_users

int

10

0

Y

N

0

教师用户

3

teachers_name

varchar

64

0

Y

N

教师姓名

4

scheduling_month

varchar

64

0

Y

N

排班月份

5

scheduling_shifts

text

65535

0

Y

N

排班班次

6

scheduling_situation

text

65535

0

Y

N

排班情况

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表slides (轮播图)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表student_users (学生用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

student_users_id

int

10

0

N

Y

学生用户ID

2

student_no

varchar

64

0

N

N

学生学号

3

student_name

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_users (教师用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

teacher_users_id

int

10

0

N

Y

教师用户ID

2

teacher_no

varchar

64

0

N

N

教师工号

3

teachers_name

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

更新时间

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

文件类型

表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

email

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

会员折扣

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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 基于人脸识别签到考勤APP关键模块实现

基于人脸识别签到考勤APP划分了APP用户端和web后台管理员端,APP端登陆注册、首页、请假信息、网站公告、学校资讯、我的(基本信息、收藏、统计图、课程信息、考勤打卡、考勤分析、请假信息)等功能,web端是为后台管理员提供后台首页、系统用户、课程信息管理、考勤打卡管理、考勤分析管理、请假信息管理、班次排班管理、系统管理(轮播图管理)、公告信息管理、资源管理(学校资讯、资讯分类)、权限管理的平台。

4.1 前台APP端

4.1.1 用户注册界面

不是基于人脸识别签到考勤APP的用户可以通过APP在线进行注册,填写上自己的账号、密码、重复密码、昵称、邮箱登信息后点击“提交”按钮后将会验证是否有非空数据,再验证密码和重复密码是否一样,最后验证是否账号重复,都验证没问题后即可注册成功。其用户注册界面展示如下图4-1所示。

图4-1用户注册界面图

4.1.2 用户登录界面

APP上注册后的用户可以通过自己的用户名和密码进行登录,在用户填写好自己的用户名和密码信息并点击“登录”按钮后,将会先验证是否有非空数据,再验证填写的用户信息和数据库中保存的是否一致,一致后将会登录成功,登录成功后将会在左上角上显示用户信息;否则将会提示相应错误信息,用户登录界面如下图4-2所示。

图4-2用户登录界面图

输入有效的用户名和密码信息,点击“登录”按钮,自动跳转到“首页”页面,首页界面如下图4-3所示。

图4-3首页界面图

4.1.3 学习资讯界面

用户点击学习资讯按钮,可以进入学习资讯列表,点击感兴趣的学习资讯,进入学习资讯详情页面,用户可以进行查看、点赞、收藏、评论等操作,界面如下图4-4所示。

图4-4学习资讯详情界面图

4.1.4 请假信息界面

学生用户点击请假信息可以进行请假申请,填写相关信息后点击提交即可,教师用户可在“我的”里的请假信息模块中查看和审核学生提交的请假申请信息,界面如下图4-5所示。

图4-5请假信息界面图

4.1.5 课程信息界面

教师用户在“我的”里点击“课程信息”,可以添加课程信息,课程信息添加界面如下图4-6所示。

图4-6课程信息添加界面图

4.1.6 考勤打卡界面

学生用户点击“考勤打卡”,可以输入相关信息后点击提交进行考勤打卡,考勤打卡界面如下图4-6所示。

图4-7考勤打卡界面图

4.1.7我的界面

点击基于人脸识别签到考勤APP端底部的“我的”菜单进入“我的”页面,学生用户可以管理自己的基本信息、收藏、统计图、课程信息、考勤打卡、考勤分析、请假信息,教师用户可以管理自己的基本信息、收藏、统计图、课程信息、考勤打卡、考勤分析、请假信息、班次排班,界面如下图4-8所示。

  

图4-8我的界面图

4.2后台管理员端

4.2.1 系统用户界面

管理员点击“系统用户”这一菜单会显示管理员、学生用户、教师用户这三个子菜单,管理员可以对这三个角色的信息进行增删改查操作。界面如下图4-9所示。

图4-9学生用户管理界面图

4.2.2课程信息管理界面

管理员点击后台左边的“课程信息管理”菜单后将可以对课程信息进行管理,包括添加、编辑和删除课程信息等,课程信息管理界面如下图4-10所示。

图4-10课程信息列表界面图

4.2.3系统管理界面

管理员点击“系统管理”这一菜单会显示轮播图这一个子菜单,管理员可以对前台展示的轮播图进行设置,界面如下图所示。

图4-11系统管理界面图

4.2.4公告信息管理界面

点击“公告信息管理”这个菜单,可以查看到系统中所有添加的通知公告,支持通过标题对通知公告进行查询,添加、删除等操作。公告信息管理界面如下图所示。

图4-12公告信息界面图

4.2.5资源管理界面

管理员点击“资源管理”这一菜单会显示学校资讯、资讯分类这两个子菜单,管理员可以对这两部分涉及到的功能进行更新维护,更好的服务于前台用户。界面如下图所示。

图4-13资源管理界面图


5 基于人脸识别签到考勤APP测试

基于人脸识别签到考勤APP测试是为了检验软件是否达到设计要求,是否存在错误,通过测试的方法来检查基于人脸识别签到考勤APP,以便发现基于人脸识别签到考勤APP中的错误。测试工作是保证基于人脸识别签到考勤APP质量的关键。

5.1系统测试

APP端上用户考勤打卡功能测试:

表5-1APP端上用户考勤打卡功能测试用例表

测试名称

测试功能

操作

操作过程

预期结果

测试结果

用户考勤打卡功能模块测试

用户考勤打卡功能成功

输入考勤打卡信息

点击“我的-”“考勤打卡”填写考勤打卡信息,点击“提交”按钮。

生成自己的考勤打卡信息。

正确

APP端上评论功能测试:

表5-2APP端上评论功能测试用例表

测试名称

测试功能

操作

操作过程

预期结果

测试结果

评论功能模块测试

评论信息正常的显示

浏览学校资讯详情信息

点击“评论”-“输入评论内容,点击“提交”按钮。

成功完成评论

正确

web后台端上管理员发布公告信息功能测试:

表5-3web后台端上管理员发布公告信息功能测试用例表

测试名称

测试功能

操作

操作过程

预期结果

测试结果

管理员发布公告信息功能测试

添加公告信息的情况

输入新公告信息的基本信息

后台选择“公告信息管理”菜单后,填写新公告信息后点击“提交”按钮

新公告信息发布成功

正确

5.2测试结果

通过编写了基于人脸识别签到考勤APP的测试用例,已经检测完毕了5.1章节中的3大模块,它为基于人脸识别签到考勤APP系统的后期推广运营提供了强力的技术支撑。


总结与展望

本次基于人脸识别签到考勤APP的设计与实现,功能方面,通过功能模块图区分该程序的用户端与管理端各自的功能权限;数据库方面,数据库使用口碑较好的mysql进行数据的存储,开源的mysql等技术的使用,相对来说体积较小,服务稳定,减少系统开发成本费用,通过数据库表的E-R实体关系图建立了表单与表单之间的连接,区分不同的表单之间的关系,更好的完善数据库的内容;测试方面,通过测试用例检查基于人脸识别签到考勤APP的设计缺陷和程序存在的错误,在系统测试阶段的过程中,出现了一些问题,例如,注册信息,没有规范用户在注册页面填写信息时输入两次密码,而导致后期登录错误,最后通过多次修改程序和测试解决了问题。最终经过不断的检测、修改,实现项目的稳定,达到了预期的设计效果。

系统整体的功能到达预期的效果,但页面的美化方面还是存在一些不足,例如:APP中的图标过于简洁;wxss页面的渲染布局方面不够完善,人们在使用软件过程中,对某些功能不易找寻,针对此次项目产生的问题,日后将不断改进,使该项目更加完善。


参考文献

[1]Surantha N ,Sugijakko B .Lightweight face recognition-based portable attendance system with liveness detection[J].Internet of Things,2024,25101089-.

[2]谭钊,齐杨,陈浩然等.智慧考勤系统设计与应用[J].信息技术与标准化,2024,(Z1):93-97.

[3]Elliott P B ,Glendening J ,Venkatesh S , et al.The House Cup: Using Longitudinal Gamification to Improve Didactic Attendance.[J].Journal of medical education and curricular development,2024,1123821205231225922-23821205231225922.

[4]Abaker M .Using Fingerprint, Two-Dimensional CODE and GPS Technology to Realize College Attendance Management System[J].Journal of Research in Vocational Education,2023,5(11):

[5]唐琳.基于人脸识别技术的学生课堂考勤管理系统的设计与实现[J].数字技术与应用,2023,41(09):208-210.DOI:10.19695/j.cnki.cn12-1369.2023.09.65.

[6]李国平,李小纳.基于人脸识别的智慧教室学生考勤系统设计[J].信息与电脑(理论版),2023,35(16):130-132.

[7]姜智轩,侯涵宇.基于嵌入式人脸识别的智能考勤系统的设计[J].黑龙江科学,2023,14(14):147-149.

[8]徐斌.人脸识别技术在智慧校园建设中的应用研究[J].现代信息科技,2023,7(13):71-74+79.DOI:10.19850/j.cnki.2096-4706.2023.13.014.

[9]董亚蕾,张师宁,武旭聪.基于小人脸识别的高校课堂考勤系统研究[J].现代信息科技,2023,7(12):62-65.DOI:10.19850/j.cnki.2096-4706.2023.12.016.

[10]汪涛.基于SpringBoot和人脸识别的企业考勤管理系统设计与实现[D].阜阳师范大学,2023.DOI:10.27846/d.cnki.gfysf.2023.000144.

[11]周怡宁.基于计算机视觉的考勤系统设计与实现[J].信息与电脑(理论版),2023,35(09):252-256.

[12]董春峰.基于人脸识别的考勤系统的设计与实现[D].河北科技大学,2023.DOI:10.27107/d.cnki.ghbku.2023.000122.

[13]肖蕊,王继鹏.基于人脸识别的矿井人员考勤管理系统[J].现代信息科技,2023,7(07):35-37+41.DOI:10.19850/j.cnki.2096-4706.2023.07.009.

[14]翁浩,邱炳城,梁国军.基于钉钉平台的高校课堂考勤系统研究[J].信息与电脑(理论版),2023,35(05):245-247.

[15]邢东.基于云服务的人脸识别考勤系统的设计与实现[D].北京邮电大学,2022.DOI:10.26969/d.cnki.gbydu.2022.000636.

[16]史丰畅.基于人脸识别的考勤打卡系统的应用研究[D].江苏科技大学,2021.DOI:10.27171/d.cnki.ghdcc.2021.000612.

[17]靳尹.基于人脸识别的企业移动考勤系统设计与实现[D].合肥工业大学,2021.DOI:10.27101/d.cnki.ghfgu.2021.001097.

[18]牛聪.基于Android平台的实验室打卡系统设计与开发[D].北京化工大学,2020.DOI:10.26939/d.cnki.gbhgu.2020.001793.

[19]程文静.基于IFML的公司考勤信息管理系统的开发[D].首都经济贸易大学,2020.DOI:10.27338/d.cnki.gsjmu.2020.001058.

[20]武煜婷.包钢员工考勤系统的设计与实现[D].内蒙古科技大学,2019.DOI:10.27724/d.cnki.gnmgk.2019.000125.


致谢

至此论文结束,感谢您的阅读。首先,我要感谢我的父母对我的支持与理解,在两年的本科学习生活中,倾其所能的爱护我,使我能够心无旁骛,全心全意的投入到学习中;不断鼓励我,让我能够拥有不断前进的动力。其次还要感谢我的导师,感谢在这段时间给予我有效的建议,以至于我的毕设有了整体的设计思路,尽管我在实习期间很忙,论文撰写总是停停改改,但是导师依然十分负责,时不时的询问我的任务进展情况,跟进我的论文进度。在老师的帮助下,我逐步完成了自己的论文和程序,从导师身上也学习到很多知识,和经验,这些知识和经验令我受益匪浅。

此外,还要感谢我的同学,热心的解答了我在程序上遇到的问题,是他们在我编写程序过程中给了我很多的启发和感想,也帮助了我对于程序的调试和检测,让我受益良多。在这两年的时间里,我学会了许多专业的知识,还有老师们的谆谆教诲和同学们的帮助使我不断进步,能够做得更好;我也会不断给自己充电,不断突破,成为更好的自己。

最后向所有关心我、帮助我的老师及同学们表示衷心的感谢!

关注+点赞+收藏+私信博主,免费领取项目源码

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐