基于人脸识别的课堂考勤管理系统(前后端分离)
·
博主主页:猫头鹰源码
博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作
主要内容:毕业设计(Javaweb项目|小程序|Python|HTML|数据可视化|SSM|SpringBoot|Vue|Jsp|PHP等)、简历模板、学习资料、面试题库、技术咨询
文末联系获取
感兴趣可以先收藏起来,以防走丢,有任何选题、文档编写、代码问题也可以咨询我们
项目介绍:
本系统采用前后端分离,适合选题:人脸识别、课堂、考勤、课堂考勤、考勤管理、前后端分离类其他考勤话题等。系统采用springboot+vue整合开发,前端主要使用了vue、项目后端主要使用了springboot,数据层采用mybatis。
部分功能:
管理员:
学生管理:维护学生信息,设计学号,姓名,学院,手机号等
学生人脸注册:将学生的人脸图像上传,后续登录拍照上传进行识别登录
课程管理:课程相关信息,比如课程编号、名称,老师等课程信息
选课管理:查看选课情况
补录考勤:允许管理员手动补录考勤信息,针对特殊情况或系统无法识别的情况。
请假申请:查看请假申请,进行审批
学生:
学生管理:维护学生信息,设计学号,姓名,学院,手机号等
学生人脸注册:将学生的人脸图像与其学号进行关联,用于后续考勤识别
课程管理:查看课程
选课管理:学生可以进行选课,将学生、课程进行关联
考勤管理:系统内点击选择时间签到
请假申请:学生可以提交请假申请,包括请假原因、请假时间等信息,等待审批
系统包含技术:
后端:springboot,mybatis
前端:vue3、js、css等
开发工具:idea/vscode
数据库:mysql 5.7
JDK版本:jdk1.8
部分截图说明:
首页

登录

拍照登录

注册

课程列表

详情

请假

选课

学生管理

选课管理

部分代码:
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,KechengleixingEntity kechengleixing,
HttpServletRequest request){
EntityWrapper<KechengleixingEntity> ew = new EntityWrapper<KechengleixingEntity>();
PageUtils page = kechengleixingService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, kechengleixing), params), params));
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,KechengleixingEntity kechengleixing,
HttpServletRequest request){
EntityWrapper<KechengleixingEntity> ew = new EntityWrapper<KechengleixingEntity>();
PageUtils page = kechengleixingService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, kechengleixing), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( KechengleixingEntity kechengleixing){
EntityWrapper<KechengleixingEntity> ew = new EntityWrapper<KechengleixingEntity>();
ew.allEq(MPUtil.allEQMapPre( kechengleixing, "kechengleixing"));
return R.ok().put("data", kechengleixingService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(KechengleixingEntity kechengleixing){
EntityWrapper< KechengleixingEntity> ew = new EntityWrapper< KechengleixingEntity>();
ew.allEq(MPUtil.allEQMapPre( kechengleixing, "kechengleixing"));
KechengleixingView kechengleixingView = kechengleixingService.selectView(ew);
return R.ok("查询课程类型成功").put("data", kechengleixingView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
KechengleixingEntity kechengleixing = kechengleixingService.selectById(id);
kechengleixing = kechengleixingService.selectView(new EntityWrapper<KechengleixingEntity>().eq("id", id));
return R.ok().put("data", kechengleixing);
}
/**
* 前端详情
*/
@IgnoreAuth
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
KechengleixingEntity kechengleixing = kechengleixingService.selectById(id);
kechengleixing = kechengleixingService.selectView(new EntityWrapper<KechengleixingEntity>().eq("id", id));
return R.ok().put("data", kechengleixing);
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody KechengleixingEntity kechengleixing, HttpServletRequest request){
kechengleixing.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(kechengleixing);
kechengleixingService.insert(kechengleixing);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody KechengleixingEntity kechengleixing, HttpServletRequest request){
kechengleixing.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(kechengleixing);
kechengleixingService.insert(kechengleixing);
return R.ok();
}
以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。
好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)