【开源】SpringBoot框架开发毕业生追踪系统

在这里插入图片描述


目录

  • 一、摘要
    • 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.mzph.cn/news/753752.shtml

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

相关文章

单链表OJ题

单链表OJ题&#xff08;文字解读 图解&#xff09; 1. 移除链表元素2. 反转链表3. 链表的中间结点4. 返回倒数第 k 个节点5. 合并两个有序链表 1. 移除链表元素 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff…

第六节:使用SMB开发WebService

一、概述 webservice在日常开发中是常用的接口形式&#xff0c;SMB在设计之初就将webservice作为重要的代理协议。在组件库中提供了webservice input和webservice output两个组件&#xff0c;分别用于发布接口和调用接口。 二、发布webservice 在csdnProject工程中创建名为c…

【设计模式】-工厂模式

工厂模式是一种创建型设计模式&#xff0c;它提供了一种在不指定具体类的情况下创建对象的方法。工厂模式的核心思想是将对象的创建与使用分离&#xff0c;降低系统的耦合度&#xff0c;使系统更加灵活、可扩展。 工厂模式主要分为三种类型&#xff1a;简单工厂模式、工厂方法…

#Ubuntu(修改root信息)

&#xff08;一&#xff09;发行版&#xff1a;Ubuntu16.04.7 &#xff08;二&#xff09;记录&#xff1a; &#xff08;1&#xff09;命令行终端&#xff1a; a.右键&#xff0c;open terminal b.快捷键 ctrlaltt &#xff08;2&#xff09;进行root修改 sudo passwd &a…

【推荐系统】NCF神经协同过滤

NCF框架 NCF框架是本文要实现的3个模型的主体结构。 首先是输入层&#xff0c;分别包含两个特征向量 v u v_u vu​和 v i v_i vi​&#xff0c;描述了用户u和物品i。输入仅由一个用户向量和一个物品向量构成&#xff0c;它们分别是以one-hot编码的二值化稀疏向量。 接着是Em…

[HNCTF 2022 WEEK2]e@sy_flower

获取基本信息 获取关键字符串 进来“开门红” 上一篇博客才发现这个 按u转换为二进制 有个无效db&#xff0c;最简单的花指令 nop掉 重新u一下p一下 就正常了 然后编译完main函数 int __cdecl __noreturn main(int argc, const char **argv, const char **envp) {signed in…

Python深度学习技术教程

原文链接&#xff1a;Python深度学习技术教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247597949&idx4&sn65c0d353d02b060fec98ec799f217ae1&chksmfa823e9acdf5b78cd71cfcb060e3b60125b17afbe3e19ef423d4709d2df7fc93d90ce3097253&token14787…

Unity InputField实现框自适应内容简便方法

要实现InputField框自适应输入内容&#xff0c;除了通过代码进行处理&#xff0c;还可以是使用以下简便的方法。 1、创建InputField组件&#xff1a;右键->UI->Input Field -TextMeshPro。 2、把Input Field Settings中的Line Type设置为Multi Line Newline模式&#x…

Jenkins + Docker + ASP.NET Core自动化部署

本来没想着要写这篇博客&#xff0c;但是在实操过程中&#xff0c;一个是被网络问题搞炸了心态&#xff08;真心感觉网络能把人搞疯&#xff0c;别人下个包、下个镜像几秒钟搞定&#xff0c;我看着我的几KB小水管真是有苦说不出&#xff09;&#xff0c;另一个就是这里面坑还是…

【Java】高级篇1:异常处理

异常&#xff1a;程序在执行过程中出现的非正常情况&#xff0c;如果不处理最终会导致JVM的非正常停止。 Java的异常抛出机制 Java异常体系 1、Throwable 2、Error和Exception 异常处理方式 1、try-catch-finally&#xff08;捕获异常&#xff09; 基本结构&#xff1a; 使用…

Day68:WEB攻防-Java安全原生反序列化SpringBoot攻防heapdump提取CVE

目录 Java安全-反序列化-原生序列化类函数 原生序列化类函数 SnakeYaml XMLDecoder ObjectInputStream.readObject 工具利用 ysoserial Yakit SerializedPayloadGenerator Java安全-SpringBoot框架-泄漏&CVE SpringBoot Actuator-黑白盒发现 人工识别 BurpSui…

数据库事务中“锁”的分类

数据库事务中的锁可以按照不同的维度进行分类。以下是一些常见的分类方式&#xff1a; 1、按锁的粒度分类&#xff1a; 行锁&#xff08;Row-level lock&#xff09;&#xff1a;锁定单个或少量的数据行。这种锁粒度小&#xff0c;允许高度的并发&#xff0c;但管理开销大。页…

LeetCode 2312.卖木头块:动态规划(DP)

【LetMeFly】2312.卖木头块&#xff1a;动态规划(DP) 力扣题目链接&#xff1a;https://leetcode.cn/problems/selling-pieces-of-wood/ 给你两个整数 m 和 n &#xff0c;分别表示一块矩形木块的高和宽。同时给你一个二维整数数组 prices &#xff0c;其中 prices[i] [hi, …

LeetCode118 杨辉三角形

题目 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 示例 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例 2: 输入: numRows 1 输出: [[1]] 解…

汽车电子拓扑架构的演进过程

汽车电子拓扑架构的演进过程 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师 (Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自己。江湖一碗茶,喝完再挣扎,出门靠…

Python 常用的开源爬虫库介绍

Python 是一种广泛使用的编程语言&#xff0c;特别是在 Web 爬虫领域。有许多优秀的开源爬虫库可以帮助开发者高效地抓取网页内容。以下是几个常用的 Python 爬虫库及其特点和优势&#xff1a; BeautifulSoup 特点 - **HTML/XML 解析**&#xff1a;BeautifulSoup 是一个…

linux(Ubuntu22) 一篇带你学会Linux,详细篇

Linux 简介 精通Linux&#xff0c;自带python&#xff0c;系统开源 电脑可安装双系统 c盘安装win D盘安装linux 在一套硬件上只能同时运行一个操作系统 虚拟机 模拟真实环境 在虚拟机内运行操作系统 需要硬件支持虚拟化 开启VT-X VM…

opengl程序错误,无法定位程序输入点 glewGetErrorString@4 于动态链接库

使用mingw编译器编译运行opengl程序&#xff0c;编译通过运行时崩溃 怀疑是之前的mingw版本编译的glew库版本不对&#xff0c;又重新编译一遍&#xff0c;还是这个错误 之后检查环境变量配置&#xff0c;发现有两个glew的路径&#xff0c;一个是msvc版的&#xff0c;另一个是m…

Unity WebGL服务器标头的问题

目录 现象&#xff1a; 报错文本: 原因: 解决方案: 现象&#xff1a; 打包前&#xff0c;ProjectSetting 压缩选项设置为Brotli, 将打包的WebGL部署到阿里云OSS环境后&#xff0c;运行弹框提示错误. 报错文本: Unable to parse Build/WebGL.framework.js.br! This canha…

三级等保技术建议书

1信息系统详细设计方案 1.1安全建设需求分析 1.1.1网络结构安全 1.1.2边界安全风险与需求分析 1.1.3运维风险需求分析 1.1.4关键服务器管理风险分析 1.1.5关键服务器用户操作管理风险分析 1.1.6数据库敏感数据运维风险分析 1.1.7“人机”运维操作行为风险综合分析 1.2…