java项目 springboot+vue学生请假签到考勤管理系统 前后端分离

项目介绍

学生考勤管理系统主要用于对学生的课堂出勤、请事/公假模块,要求做到简单性、易操作性和准确性,目的在于提高教学质量、提升管理学生效率。

  1. 学生信息模块:
    对学生的个人信息能够进行添加、修改、删除。
    2.学生信息查询模块:
    主要完成对学生的请假次数、迟到次数的统计,通过学号进行查询。
    3.学生考勤信息模块:
    本模块对学生课堂考勤、请假条进行管理,对学生日常考勤的所有出勤记录进行管理。
    4.教师管理模块:
    教师主要完成对学生假条进行审批以及对出勤率的统计。
  2. 后台管理模块:
    对用户信息进行密码修改、用户注册、用户修改、退出系统等操作。

技术说明

环境需要
1.运行环境:最好是java jdk 1.8,这是目前最稳定的JDK也是被使用最多的JDK版本。
2.IDE环境:IDEA,Eclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat7/Tomcat8/Tomcat9版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.数据库:MySql 5.7版本;
6.是否Maven项目:是;
技术栈
后端:Spring+SpringMVC+Mybatis+Springboot
前端:vue+CSS+JavaScript+jQuery+elementui

界面展示

                学生考勤管理系统是为高校为方便教师管理学生事务的一款产品,每个学校都有一套基于学生的考核体制,如课前点名、申请假条、课程选修及成绩查询等一系列对方便学生毕业提供助力的体系,人力管理会造成不必要的人力消耗甚至人力浪费, 而且无法做到高质量、高效率的完成,给学校管理学生带来许多的不便,通过系统管理,对学生的出勤进行整合,让老师更方便管理学生,让学校领导能够一目了然的看到学生的出勤记录,判断学生的学习的进度,判断教学风气优劣,方便更好的组织教学活动和安排教学任务。

任何系统都要遵循系统设计的基本流程,本系统也不例外,同样需要经过市场进行调研,论文需求进行分析,概要设计,系统详细设计,测试和编码等步骤,设计并实现了学生考勤管理系统。系统选用B/S模式,应用java技术,MySQL为后台数据库。系统主要包括首页,个人中心,学生管理,教师管理,班级信息管理,课程信息管理,签到信息管理,考勤信息管理,请假信息管理,考勤统计管理等功能模块。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;

	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UserEntity user){
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }

    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }

    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
        userService.updateById(user);//全部更新
        return R.ok();
    }

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

目录

1系统概述 1
1.1 研究背景 1
1.2研究目的 1
1.3系统设计思想 1
2相关技术 3
2.1 MYSQL数据库 3
2.2 B/S结构 3
2.3 Spring Boot框架简介 4
2.4 VUE框架 4
3系统分析 5
3.1可行性分析 5
3.1.1技术可行性 5
3.1.2经济可行性 5
3.1.3操作可行性 5
3.2系统性能分析 6
3.2.1 系统安全性 6
3.2.2 数据完整性 6
3.3系统界面分析 6
3.4系统流程和逻辑 8
4系统概要设计 9
4.1概述 9
4.2系统结构 10
4.3.数据库设计 11
4.3.1数据库实体 11
4.3.2数据库设计表 13
5系统详细实现 17
5.1 管理员模块的实现 17
5.2用户模块的实现 19
6系统测试 21
6.1概念和意义 21
6.2特性 22
6.3重要性 22
6.4测试方法 23
6.5 功能测试 23
6.6可用性测试 24
6.7性能测试 24
6.8测试分析 24
6.9测试结果分析 25
结论 25
致谢语 26
参考文献 26

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学生在线请假和考勤系统是一种基于Java的应用程序,使用了Spring BootVue.js这两个框架。 首先,我们使用Spring Boot作为后端框架来建立系统的服务器端。Spring Boot是一个快速开发框架,可以简化Java应用程序的搭建和配置过程。它提供了很多常见的功能和组件,如数据库访问、安全认证和RESTful API支持等。我们可以利用Spring Boot的优势,快速构建一个稳定可靠的后端服务。 其次,使用Vue.js作为前端框架来实现系统的用户界面。Vue.js是一个流行的JavaScript框架,专注于构建用户界面。Vue.js具有简洁易懂的语法和灵活的组件化开发方式,使得我们可以快速构建可交互和美观的前端页面。通过Vue.js,我们可以实现学生的在线请假和考勤功能,并提供用户友好的界面和交互体验。 学生在线请假和考勤系统的核心功能包括,请假申请、请假审批、考勤记录和报表统计等。学生可以通过系统提交请假申请,并在后台得到教师或管理员的审批结果。同时,系统还会记录学生的考勤情况,包括迟到、早退、缺勤等。管理员可以通过系统生成的报表对学生请假和考勤情况进行统计和分析。 在实现这个系统的过程中,我们可以利用Spring Boot提供的数据库访问功能,使用关系型数据库如MySQL或PostgreSQL来存储学生、教师、请假申请和考勤记录等数据。同时,借助Vue.js的组件化开发方式,我们可以构建出包括登录页面、请假申请页面、审批页面和报表页面在内的多个页面组件。 总之,基于Spring BootVue.js,我们可以快速高效地构建一个学生在线请假和考勤系统,实现学生请假和考勤记录的自动化管理,提高学校工作效率,提供更好的学生服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值