基于JAVA+Vue+SpringBoot+MySQL的毕业生追踪系统,包含了毕业去向填报模块、校友论坛模块、学生荣誉模块、学生证书模块、学历深造模块,还包含系统自带的用户管理、班级管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,毕业生追踪系统基于角色的访问控制,给学生、教务管理员使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。
毕业生追踪系统针对毕业生管理信息化而设计的。系统可以统计毕业生信息,毕业方向,进行数据分析便于管理员对各毕业生进行管理,且设计了校园论坛,毕业生可在校园论坛内发布招聘信息,求职信息。系统通过JAVA技术平台进行研发和创新,采用的是MVC模式。其中使用Spring、SpringBoot等开源框架进行后端开发,使用Vue框架构建前端,使用MySQL数据库存储数据,使用Tomcat作为服务器。系统实现了学校采集毕业生就业信息、统计就业数据、跟踪分析就业动向等。
毕业生追踪系统的功能性需求主要包含登陆注册模块、学生基本配置模块、就业状况模块、学历深造模块、信息汇总分析模块、校友论坛六大模块,是基于浏览器运行的web管理后端,其中各个模块详细说明如下。
登陆注册模包含了系统登陆功能和注册功能。我们需要建立这个模块给老师和学生提供登陆注册服务,登陆需要提供账号、密码和验证码,注册则需要提供登陆账户、密码、手机号、手机验证码数据。
学生基本配置模块包含了学生的基础数据,如学生id、姓名、性别、手机号、身份证号、学院、班级等信息。
就业状况模块包含了学生毕业后的就业情况,如未就业、已就业、升学、入伍、创业等等,已经就业的同学需要填写所在岗位、薪资区间等信息,在这个模块进行维护。
部分学生在毕业之后选择了升学,所以对这一类学生需要额外分析管理,需要学生填写院校以及专业信息,分析出各个班级、各个专业的考研率、升学率等等,为高校决策出谋划策。
信息汇总分析模块放置了若干图表,用于对毕业生的去向进行图表分析,可以给管理员更加直管的数据展示。
校友论坛模块提供了留言板的功能,毕业生可以在这个模块进行留言互动,增加毕业生之间的联系。
通过需求功能分析以及各个模块的设计,最后将每个模块都进行数据库的设计,并且通过E-R图来进行展示。
学生基本配置模块是对学生的账号进行记录并管理,其中学生的信息包括了学生的学生ID、姓名、性别、身份证号、学院、班级、出生日期、手机号、邮箱、备注等,其中学生ID是系统用户的确定性因素。
就业状况模块是对学生的就业状况进行记录并管理,其中就业状况的信息包括了学生ID、学生姓名、学生性别、手机号、身份证、毕业班级、就业去向、是否就业、备注等,其中学生ID是学生的确定性因素。
校友论坛模块是对毕业生的留言进行管理,毕业生进行的每一条留言都是一条记录,该记录包括了学生ID、学生姓名、学生性别、手机号、毕业班级、发送内容、回复ID、是否发送、发送时间、备注等,其中学生ID是学生的确定性因素。
@RequestMapping(value = "/getMyOne", method = RequestMethod.GET)
@ApiOperation(value = "查询我的就业状况")
public Result<EmploymentStatus> getMyOne(){
User currUser = securityUtil.getCurrUser();
if(currUser.getType() == null ||currUser.getType() > 0) {
return ResultUtil.error("非学生用户,无法填写!");
}
QueryWrapper<EmploymentStatus> qw = new QueryWrapper<>();
qw.eq("user_id",currUser.getId());
EmploymentStatus status = iEmploymentStatusService.getOne(qw);
if(status == null) {
status = EmploymentUtils.getBlackEmploymentStatus(currUser.getId());
iEmploymentStatusService.saveOrUpdate(status);
}
if(ZwzNullUtils.isNull(status.getUserId())) {
status.setUserName("无");
status.setUserNumber("无");
status.setUserMobile("无");
} else {
User user = iUserService.getById(status.getUserId());
if(user != null) {
status.setUserName(user.getNickname());
status.setUserNumber(user.getUsername());
status.setUserMobile(user.getMobile());
} else {
status.setUserName("无");
status.setUserNumber("无");
status.setUserMobile("无");
}
}
return new ResultUtil<EmploymentStatus>().setData(status);
}
@ApiOperation(value = "初始化就业状况")
private void initWork() {
QueryWrapper<User> userQw = new QueryWrapper<>();
userQw.eq("type",0);
List<User> userList = iUserService.list(userQw);
for (User user : userList) {
QueryWrapper<EmploymentStatus> qw = new QueryWrapper<>();
qw.eq("user_id",user.getId());
Long count = iEmploymentStatusService.count(qw);
if(count < 1) {
iEmploymentStatusService.saveOrUpdate(EmploymentUtils.getBlackEmploymentStatus(user.getId()));
}
}
}
@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增荣誉")
public Result<Honor> insert(Honor honor){
honor.setDate(DateUtil.now());
iHonorService.saveOrUpdate(honor);
return new ResultUtil<Honor>().setData(honor);
}
@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增留言")
public Result<MessageBoard> insert(@RequestParam String content){
if(ZwzNullUtils.isNull(content)) {
return ResultUtil.error("留言不能为空");
}
User currUser = securityUtil.getCurrUser();
MessageBoard messageBoard = new MessageBoard();
messageBoard.setUserId(currUser.getId());
messageBoard.setUserName(currUser.getNickname());
messageBoard.setContent(content);
messageBoard.setDate(getZwzNowTime());
messageBoard.setReplyId("");
if(iMessageBoardService.saveOrUpdate(messageBoard)){
return new ResultUtil<MessageBoard>().setData(messageBoard);
}
return ResultUtil.error();
}
@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询证书")
public Result<IPage<Certificate>> getByPage(@ModelAttribute Certificate certificate ,@ModelAttribute PageVo page){
QueryWrapper<Certificate> qw = new QueryWrapper<>();
if(!ZwzNullUtils.isNull(certificate.getTitle())) {
qw.like("title",certificate.getTitle());
}
if(!ZwzNullUtils.isNull(certificate.getStudentId())) {
qw.like("student_id",certificate.getStudentId());
}
IPage<Certificate> data = iCertificateService.page(PageUtil.initMpPage(page),qw);
return new ResultUtil<IPage<Certificate>>().setData(data);
}
下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!