【开源】基于JAVA的毕业生追踪系统

在这里插入图片描述


目录

  • 一、摘要
    • 1.1 项目介绍
    • 1.2 项目录屏
  • 二、功能模块
    • 2.1 登陆注册模块
    • 2.2 学生基本配置模块
    • 2.3 就业状况模块
    • 2.4 学历深造模块
    • 2.5 信息汇总分析模块
    • 2.6 校友论坛模块
  • 三、系统设计
    • 3.1 用例设计
    • 3.2 实体设计
  • 四、系统展示
  • 五、核心代码
    • 5.1 查询我的就业状况
    • 5.2 初始化就业状况
    • 5.3 新增荣誉
    • 5.4 新增留言
    • 5.5 查询证书
  • 六、免责说明


一、摘要

1.1 项目介绍

基于JAVA+Vue+SpringBoot+MySQL的毕业生追踪系统,包含了毕业去向填报模块、校友论坛模块、学生荣誉模块、学生证书模块、学历深造模块,还包含系统自带的用户管理、班级管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,毕业生追踪系统基于角色的访问控制,给学生、教务管理员使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

1.2 项目录屏


二、功能模块

毕业生追踪系统针对毕业生管理信息化而设计的。系统可以统计毕业生信息,毕业方向,进行数据分析便于管理员对各毕业生进行管理,且设计了校园论坛,毕业生可在校园论坛内发布招聘信息,求职信息。系统通过JAVA技术平台进行研发和创新,采用的是MVC模式。其中使用Spring、SpringBoot等开源框架进行后端开发,使用Vue框架构建前端,使用MySQL数据库存储数据,使用Tomcat作为服务器。系统实现了学校采集毕业生就业信息、统计就业数据、跟踪分析就业动向等。

在这里插入图片描述

毕业生追踪系统的功能性需求主要包含登陆注册模块、学生基本配置模块、就业状况模块、学历深造模块、信息汇总分析模块、校友论坛六大模块,是基于浏览器运行的web管理后端,其中各个模块详细说明如下。

2.1 登陆注册模块

登陆注册模包含了系统登陆功能和注册功能。我们需要建立这个模块给老师和学生提供登陆注册服务,登陆需要提供账号、密码和验证码,注册则需要提供登陆账户、密码、手机号、手机验证码数据。

在这里插入图片描述

2.2 学生基本配置模块

学生基本配置模块包含了学生的基础数据,如学生id、姓名、性别、手机号、身份证号、学院、班级等信息。

在这里插入图片描述

2.3 就业状况模块

就业状况模块包含了学生毕业后的就业情况,如未就业、已就业、升学、入伍、创业等等,已经就业的同学需要填写所在岗位、薪资区间等信息,在这个模块进行维护。

在这里插入图片描述

2.4 学历深造模块

部分学生在毕业之后选择了升学,所以对这一类学生需要额外分析管理,需要学生填写院校以及专业信息,分析出各个班级、各个专业的考研率、升学率等等,为高校决策出谋划策。

在这里插入图片描述

2.5 信息汇总分析模块

信息汇总分析模块放置了若干图表,用于对毕业生的去向进行图表分析,可以给管理员更加直管的数据展示。

在这里插入图片描述

2.6 校友论坛模块

校友论坛模块提供了留言板的功能,毕业生可以在这个模块进行留言互动,增加毕业生之间的联系。

在这里插入图片描述


三、系统设计

3.1 用例设计

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.2 实体设计

通过需求功能分析以及各个模块的设计,最后将每个模块都进行数据库的设计,并且通过E-R图来进行展示。

在这里插入图片描述

在这里插入图片描述

学生基本配置模块是对学生的账号进行记录并管理,其中学生的信息包括了学生的学生ID、姓名、性别、身份证号、学院、班级、出生日期、手机号、邮箱、备注等,其中学生ID是系统用户的确定性因素。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
就业状况模块是对学生的就业状况进行记录并管理,其中就业状况的信息包括了学生ID、学生姓名、学生性别、手机号、身份证、毕业班级、就业去向、是否就业、备注等,其中学生ID是学生的确定性因素。

在这里插入图片描述

在这里插入图片描述

校友论坛模块是对毕业生的留言进行管理,毕业生进行的每一条留言都是一条记录,该记录包括了学生ID、学生姓名、学生性别、手机号、毕业班级、发送内容、回复ID、是否发送、发送时间、备注等,其中学生ID是学生的确定性因素。

在这里插入图片描述


四、系统展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


五、核心代码

5.1 查询我的就业状况

@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);
}

5.2 初始化就业状况

@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()));}}
}

5.3 新增荣誉

@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);
}

5.4 新增留言

@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();
}

5.5 查询证书

@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);
}

六、免责说明

  • 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
  • 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
  • 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。

下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!

  1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
  2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
  3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
  4. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/434055.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1949-2022年交通运输设备行业数据

1949-2022年交通运输设备行业数据 1、时间1949-2021年 2、指标&#xff1a;民用驳船保有量(艘)_AmoCivBar、民用机动船保有量(艘)_AmoCivMotBoat、民用运输机保有量(架)_AmoPlaTra、民用其他汽车保有量(万辆)_AmoOthAutCiv、私人其他汽车保有量(万辆)_AmoOthAutPri、新注册民…

C++中map和set的使用

&#xff08;图片来源于网络&#xff09; &#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;强烈推荐优质专栏: &#x1f354;&#x1f35f;&#x1f32f;C的世界(持续更新中) &#x1f43b;推荐专栏1: &#x1f354;&#x1f35f;&#x1f32f;C语言初阶…

ASP.NET 7 Core Web 读取appsetting.json

把一些配置信息保存在json文件可以避免更改时要重新发布程序的烦恼。 我这里使用的是写一个类文件&#xff0c;然后通过program.cs启动的方式&#xff08;.net 6 开始没有startup了&#xff09;。 项目类型&#xff1a;ASP.NET Core Web MVC / .NET 7.0 / VS2022 第一步…

深度强化学习(王树森)笔记02

深度强化学习&#xff08;DRL&#xff09; 本文是学习笔记&#xff0c;如有侵权&#xff0c;请联系删除。本文在ChatGPT辅助下完成。 参考链接 Deep Reinforcement Learning官方链接&#xff1a;https://github.com/wangshusen/DRL 源代码链接&#xff1a;https://github.c…

移动端应用(APP)如何设计测试用例?

为 APP 设计测试用例需要考虑移动设备的特殊性&#xff0c;如不同的操作系统、设备尺寸、硬件特性以及应用程序自身的特定功能。 以下是为APP设计测试用例时要考虑的内容&#xff1a; 1. 理解需求 熟悉APP的功能需求、用户故事和设计文档。 确定APP的目标用户群体、使用场景…

教你打造专业的网络主播,主播与直播的培训教程合集

一、教程描述 本套教程可以让你快速上手&#xff0c;将你打造成一名有格调的网络主播&#xff0c;若是自己去摸索尝试&#xff0c;不仅浪费时间&#xff0c;而且进度还慢&#xff0c;最后效果也不一定很好。本套主播教程&#xff0c;大小8.43G&#xff0c;共有494个文件。 二…

JVM锁的膨胀升级过程详解

在Java虚拟机&#xff08;JVM&#xff09;中&#xff0c;锁是多线程编程的关键部分&#xff0c;用于保护共享资源&#xff0c;防止并发访问导致的数据不一致性。锁的性能和效率在高并发场景下至关重要。当多个线程竞争同一资源时&#xff0c;锁的状态可能会经历多次升级&#x…

Docker深入解析:从基础到实践

Docker基础知识 Docker是什么&#xff1a;定义和核心概念解释 Docker是一个开源项目&#xff0c;它诞生于2013年&#xff0c;旨在自动化应用程序的部署过程&#xff0c; 让应用程序能够在轻量级的、可移植的、自给自足的容器中运行。这些容器可以在几乎任何机器上运行&#xf…

Docker容器部署OpenCV,打造高效可移植的计算机视觉开发环境

推荐 海鲸AI-ChatGPT4.0国内站点&#xff1a;https://www.atalk-ai.com 前言 在计算机视觉领域&#xff0c;快速部署和测试算法是研究和开发的关键。OpenCV作为一个强大的开源计算机视觉库&#xff0c;广泛应用于各种图像处理和视频分析任务。然而&#xff0c;配置OpenCV环境可…

优思学院|如何将AI人工智能融入精益六西格玛?

在当前的制造和服务运营中&#xff0c;许多流程都在一定程度上重复进行&#xff0c;这为实验、学习和持续改进其底层流程提供了机会。直到最近&#xff0c;这些流程的改进大多由人类专家执行。然而&#xff0c;随着包括生成型AI在内的人工智能工具的出现&#xff0c;这一切都在…

Linux的 .bashrc 有什么作用?

一、.bashrc 是什么? 有什么用&#xff1f; .bashrc是一个存储在你的home目录下的隐藏文件&#xff0c;它用来配置和自定义你的终端环境和行为。 每次你启动一个新的终端时&#xff0c;.bashrc文件就会被执行&#xff0c;加载你设置的环境变量&#xff0c;别名&#xff0c;函数…

【JAVA面试精选篇-初生牛犊不怕虎】

文章目录 🌽 简介🧺 线程池🌄 Redis⏰ JVM🚛 数据结构🍎 Mysql🍡 结语🌽 简介 海阔凭鱼跃,天高任鸟飞! 学习不要盲目,让大脑舒服的方式吸收知识!!! 本人马上离开济南,回泰安发展,为了积极准备面试,目前在梳理一些知识点,同时希望能够帮助到需要的人… …