Java实现毕业生追踪系统 JAVA+Vue+SpringBoot+MySQL

在这里插入图片描述


目录

  • 一、摘要
    • 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/699631.shtml

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

相关文章

[算法沉淀记录] 排序算法 —— 希尔排序

排序算法 —— 希尔排序 算法介绍 希尔排序&#xff08;Shell Sort&#xff09;是一种基于插入排序的算法&#xff0c;由Donald Shell于1959年提出。希尔排序的基本思想是将待排序的序列划分成若干个子序列&#xff0c;分别进行插入排序&#xff0c;待整个序列中的记录基本有…

php对接抖音小程序授权登录

后端代码 /** * 抖音授权 获取openid * param Request $request * return Json*/ public function code2Session(Request $request): Json {$param $request->param();$config config(douyinconfig.douyin);$arr [appid > $config[appid], //抖音appidsecret > $co…

蜂窝物联网咖WiFi认证解决方案

项目背景 随着目前网咖模式越来越流行&#xff0c;给网吧部署一套无缝漫游的WIFI网络势在必行。同时&#xff0c;网吧无线准入的验证码在客户机上面进行更新&#xff0c;以防周边的人员进行蹭网&#xff0c;损失网吧的外网带宽。 01 需求分析 1. 网吧服务区域全部覆盖无盲区…

mysql8.0使用MHA实现高可用

1.环境配置 本实验环境共有四个节点&#xff0c; 其角色分配如下&#xff08;实验机器均为centos 7.x&#xff09; 机器名称IP配置服务角色manager172.16.90.211manager控制器master172.16.90.212数据库主服务器slave1172.16.90.213数据库从服务器slave2172.16.90.214数据库从…

如何写新闻软文宣传考核稿,媒体发布后效果作用是什么

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 新闻稿是一种正式的文档&#xff0c;用于向媒体和公众传达新闻性的信息。撰写新闻稿时&#xff0c;应遵循一定的结构和原则&#xff0c;以确保信息清晰、准确、有吸引力。以下是撰写新闻…

FastJson中AutoType反序列化漏洞

文章目录 1、频繁出现的反序列化漏洞2、parse()及parseObject()3、AutoType及安全校验3.1 AutoType安全校验3.2 AutoType黑名单机制3.3 SafeMode安全机制3.4 攻击思路4、反序列化攻击模拟4.1 TemplatesImpl攻击调用链路4.2 攻击类Translet生成4.3 构造攻击JSON串4.4 攻击模拟5、…

Linux之用户跟用户组

目录 一、简介 1.1、用户 1.2用户组 1.3UID和GID 1.4用户账户分类 二、用户 2.1、创建用户&#xff1a;useradd 2.2、删除用户&#xff1a;userdel 2.3 、修改用户 usermod 2.4、用户口令的管理:passwd 2.5、切换用户 三、用户组 3.1、增加一个用户组:groupadd 3.…

基于yolov5的水果成熟度检测,可进行图像目标检测,也可进行视屏和摄像检测(pytorch框架)【python源码+UI界面+功能源码详解】

功能演示&#xff1a; 基于yolov5的水果成熟度检测系统&#xff0c;支持图像检测&#xff0c;视频检测和实时摄像检测功能_哔哩哔哩_bilibili &#xff08;一&#xff09;简介 基于yolov5的水果成熟度检测系统是在pytorch框架下实现的&#xff0c;这是一个完整的项目&#x…

React18源码: reconcliler启动过程

Reconcliler启动过程 Reconcliler启动过程实际就是React的启动过程位于react-dom包&#xff0c;衔接reconciler运作流程中的输入步骤.在调用入口函数之前&#xff0c;reactElement(<App/>) 和 DOM对象 div#root 之间没有关联&#xff0c;用图片表示如下&#xff1a; 在启…

杂题——1106: 奖学金

题目描述 某小学最近得到了一笔赞助&#xff0c;打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末&#xff0c;每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序&#xff0c;如果两个同学总分相同&#xff0c;再按语文成绩从高到低排序&#xff0c;…

电商+支付双系统项目------电商系统中订单模块的开发

这篇文章是关于项目的订单模块的设计。这个模块其实相对来讲比之前的模块复杂了点&#xff0c;我这里说的复杂并不是说难以理解&#xff0c;而是说文件比较多&#xff0c;理解起来还是蛮轻松的。 我们还是老方法&#xff0c;一步一步的去设计&#xff0c;按照Dao->service-&…

C语言获取时间与日期的函数大全

一、最简单获取秒数的&#xff0c;windows和linux都支持用time()函数,获取从1970年到现在过了多少秒&#xff0c;time_t其实是long int 类型 time_t starttime(NULL); for(long i0;i<10000000000;) i1; time_t endtime(NULL) printf("经过了%d秒",end-start); 二…

建立不同类型网站分别大概需要多少钱??

如今&#xff0c;越来越多的企业会考虑建立一个企业官方网站来展示企业形象&#xff0c;或者建立一个电子商务网站平台来拓展业务渠道&#xff0c;或者建立一个企业内部网来协助企业进行网上工作。 网站建设的类型有很多种&#xff0c;不同类型的网站成本差异很大。 因此&#…

FairyGUI × Cocos Creator 3.x 场景切换

前言 前文提要&#xff1a; FariyGUI Cocos Creator 入门 FairyGUI Cocos Creator 3.x 使用方式 个人demo&#xff1a;https://gitcode.net/qq_36286039/fgui_cocos_demo_dust 个人demo可能会更新其他代码&#xff0c;还请读者阅读本文内容&#xff0c;自行理解并实现。 官…

C++的文件操作详解

目录 1.文本文件 1.写文件 2.读文件 2.二进制文件 1.写文件 2.读文件 1.文本文件 1.写文件 #include<bits/stdc.h> #include<fstream> using namespace std;int main() {ofstream ofs;ofs.open("text.txt",ios::out);ofs << "abc&qu…

2024最新版Python 3.12.2安装使用指南

2024最新版Python 3.12.2安装使用指南 Installation and Usage Guide to the Latest Version - Python 3.12.2 for Windows in 2024 By JacksonML 0. Python的受欢迎程度 据TechRepublic报道&#xff0c;截至2024年2月16日&#xff0c;全球最流行的编程语言之中&#xff0c…

剩余银饰的重量(C语言)

题目描述 有 N 块二手市场收集的银饰&#xff0c;每块银饰的重量都是正整数&#xff0c;收集到的银饰会被熔化用于打造新的饰品。 每一回合&#xff0c;从中选出三块 最重的 银饰&#xff0c;然后一起熔掉。假设银饰的重量分别为 x 、y 和 z&#xff0c;且 x < y < z。那…

FFmpeg——avio_reading实例(学习)

目录 前言一、源码二、分析1、av_file_map函数2、avformat_alloc_context函数3、avio_alloc_context函数4、avformat_open_input函数5、avformat_find_stream_info函数 前言 avio_reading是关于对音视频流内存读取操作的应用实例&#xff0c;将文件中获取的数据流映射到内存再…

go使用trpc案例

1.go下载trpc go install trpc.group/trpc-go/trpc-cmdline/trpclatest 有报错的话尝试配置一些代理&#xff08;选一个&#xff09; go env -w GOPROXYhttps://goproxy.cn,direct go env -w GOPROXYhttps://goproxy.io,direct go env -w GOPROXYhttps://goproxy.baidu.com/…

普中51单片机学习(红外通信)

红外通信 红外线系统的组成 外线遥控器已被广泛使用在各种类型的家电产品上&#xff0c;它的出现给使用电器提供了很多的便利。红外线系统一般由红外发射装置和红外接收设备两大部分组成。红外发射装置又可由键盘电路、红外编码芯片、电源和红外发射电路组成。红外接收设备可由…