基于javaweb的SpringBoot学生考勤管理系统(java+springboot+maven+mybaits+elementui+vue+mysql)

运行环境

Java≥8、MySQL≥5.7、Node.js≥14

开发工具

后端:eclipse/idea/myeclipse/sts等均可配置运行
前端:WebStorm/VSCode/HBuilderX等均可

❗没学过node.js的不要搞前后端分离项目

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

391324590701

401324590701

411324590701

421324590701

431324590701

441324590701

基于javaweb的SpringBoot学生考勤管理系统(java+springboot+maven+mybaits+elementui+vue+mysql)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
管理员
admin 123456

教师
教师工号1 123456
教师工号2 123456
教师工号3 123456
教师工号4 123456
教师工号5 123456
教师工号6 123456


学生
学号1 123456
学号2 123456
学号3 123456
学号4 123456
学号5 123456
学号6 123456

项目介绍

基于SpringBoot Vue的学生考勤管理系统

角色:管理员、教师、学生

管理员:管理员登录进入系统可以查看首页,个人中心,学生管理,教师管理,班级信息管理,课程信息管理,签到信息管理,考勤信息管理,请假信息管理,考勤统计管理等功能

教师:教师登录进入系统可以查看首页,个人中心,学生管理,班级信息管理,课程信息管理,签到信息管理,考勤信息管理,请假信息管理,考勤统计管理等功能

学生: 学生登录进入系统可以查看首页,个人中心,班级信息管理,课程信息管理,签到信息管理,考勤信息管理,请假信息管理,考勤统计管理等功能

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;  4.数据库:MySql 5.7/8.0版本均可;

5.是否Maven项目:是;

技术栈

后端: SpringBoot+Mybaits

前端:Vue +ElementUI

使用说明

项目运行: 1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.yml配置文件中的数据库配置改为自己的配置; 4. 运行项目,控制台提示运行成功后再去运行前端项目; 5. 管理员用户名密码:admin/admin 普通用户名密码:user/123456

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
       return R.ok().put("data", page);
}

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

/**
* 查询
*/
@RequestMapping("/query")
public R query(KechengxinxiEntity kechengxinxi){
EntityWrapper< KechengxinxiEntity> ew = new EntityWrapper< KechengxinxiEntity>();
ew.allEq(MPUtil.allEQMapPre( kechengxinxi, "kechengxinxi"));
KechengxinxiView kechengxinxiView = kechengxinxiService.selectView(ew);
return R.ok("查询课程信息成功").put("data", kechengxinxiView);
}

/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
KechengxinxiEntity kechengxinxi = kechengxinxiService.selectById(id);
return R.ok().put("data", kechengxinxi);
}

/**
* 前端详情
*/
@IgnoreAuth
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
KechengxinxiEntity kechengxinxi = kechengxinxiService.selectById(id);
return R.ok().put("data", kechengxinxi);
}




/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody KechengxinxiEntity kechengxinxi, HttpServletRequest request){
kechengxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(kechengxinxi);
1
2
3
4
5
6
7
8
9
10
11
12




/**
* 班级信息
* 后端接口
* @email
*/
@RestController
@RequestMapping("/banjixinxi")
public class BanjixinxiController {
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
   public R page(@RequestParam Map<String, Object> params,QiandaoxinxiEntity qiandaoxinxi,
HttpServletRequest request){
EntityWrapper<QiandaoxinxiEntity> ew = new EntityWrapper<QiandaoxinxiEntity>();
PageUtils page = qiandaoxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, qiandaoxinxi), params), params));

return R.ok().put("data", page);
}

/**
* 前端列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,QiandaoxinxiEntity qiandaoxinxi,
HttpServletRequest request){
EntityWrapper<QiandaoxinxiEntity> ew = new EntityWrapper<QiandaoxinxiEntity>();
PageUtils page = qiandaoxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, qiandaoxinxi), params), params));
return R.ok().put("data", page);
}

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

/**
* 查询
*/
@RequestMapping("/query")
public R query(QiandaoxinxiEntity qiandaoxinxi){
EntityWrapper< QiandaoxinxiEntity> ew = new EntityWrapper< QiandaoxinxiEntity>();
ew.allEq(MPUtil.allEQMapPre( qiandaoxinxi, "qiandaoxinxi"));
QiandaoxinxiView qiandaoxinxiView = qiandaoxinxiService.selectView(ew);
return R.ok("查询签到信息成功").put("data", qiandaoxinxiView);
}

/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
QiandaoxinxiEntity qiandaoxinxi = qiandaoxinxiService.selectById(id);
return R.ok().put("data", qiandaoxinxi);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33



/**
* 教师
* 后端接口
* @email
*/
@RestController
@RequestMapping("/jiaoshi")
public class JiaoshiController {
@Autowired
private JiaoshiService jiaoshiService;



@Autowired
private TokenService tokenService;

/**
* 登录
*/
@IgnoreAuth
@RequestMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
JiaoshiEntity user = jiaoshiService.selectOne(new EntityWrapper<JiaoshiEntity>().eq("jiaoshigonghao", username));
if(user==null || !user.getMima().equals(password)) {
return R.error("账号或密码不正确");
}

String token = tokenService.generateToken(user.getId(), username,"jiaoshi", "教师" );
return R.ok().put("token", token);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16




/**
* 考勤统计
* 后端接口
* @email
*/
@RestController
@RequestMapping("/kaoqintongji")
public class KaoqintongjiController {
@Autowired
private KaoqintongjiService kaoqintongjiService;



项目链接:
https://javayms.github.io?id=081524180701201hr
https://javayms.pages.dev?id=081524180701201hr