✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌
文末获取项目下载方式
一、项目背景介绍:
这个系统的研发背景是为了满足现代社会中不断增长的求职和招聘需求。随着经济的发展和人才市场的竞争加剧,传统的求职和招聘方式已经无法满足快速、高效、准确的需求。因此,我们决定开发基于SpringBoot和Vue的前后端分离的求职招聘系统。
在过去,求职者需要通过报纸、招聘会或口碑传播等方式了解和投递简历给潜在的雇主,而企业则需花费大量时间和精力进行筛选和面试。这种方式效率低下、信息不对称的问题导致了大量的资源浪费和错失机会。
为了解决这些问题,我们设计和开发了该求职招聘系统。它可以有效地连接求职者和企业,提供一个便捷和高效的求职招聘平台。通过该系统,求职者可以在一个地方浏览和搜索大量的招聘岗位,并且可以根据自己的条件和偏好来筛选和申请职位。同时,企业可以方便地发布招聘信息,并且可以根据招聘要求来筛选合适的候选人。这样,系统可以帮助双方节省时间和资源,同时提高招聘和求职的效率。
我们选择使用SpringBoot和Vue作为开发框架,因为它们具有良好的生态系统和强大的功能。SpringBoot提供了快速开发和易于维护的特性,而Vue则提供了灵活的前端开发和交互性。前后端分离的架构使得系统更加模块化和可扩展,并且可以支持大量并发用户。
通过研发这个基于SpringBoot和Vue的求职招聘系统,我们的目标是为求职者和企业提供一个高效、便捷和精准的招聘平台,推动人才市场的发展和经济的进步。
二、项目技术简介:
三、系统功能模块介绍:
四、数据库设计:
1:tb_admin(tb_admin)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | 编号 |
username | varchar | NULL | 账号 |
password | varchar | NULL | 密码 |
2:tb_enterprise(tb_enterprise)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | 企业编号 |
username | varchar | NULL | 用户名 |
password | varchar | NULL | 密码 |
name | varchar | NULL | 企业名称 |
varchar | NULL | 电子邮箱 | |
phone | varchar | NULL | 联系电话 |
manage | varchar | NULL | 从事行业 |
address | varchar | NULL | 企业地址 |
introduce | varchar | NULL | 公司简介 |
3:tb_recruitment(tb_recruitment)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | 企业编号 |
username | varchar | NULL | 用户名 |
name | varchar | NULL | 企业名称 |
industry | varchar | NULL | 所属行业 |
job | varchar | NULL | 招聘职位 |
salary | varchar | NULL | 招聘薪水 |
address | varchar | NULL | 工作地点 |
release_time | datetime | NULL | 发布时间 |
valid_time | varchar | NULL | 有效时间 |
web | varchar | NULL | 发布网站 |
education | varchar | NULL | 学历 |
experience | varchar | NULL | 经验 |
number | varchar | NULL | 招聘人数 |
description | longtext | NULL | 职位描述 |
company_profile | longtext | NULL | 公司简介 |
4:tb_resume(tb_resume)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | 编号 |
username | varchar | NULL | 求职者姓名 |
industry | varchar | NULL | 求职行业 |
work_experience | varchar | NULL | 工作经验 |
address | varchar | NULL | 工作地点 |
salary | varchar | NULL | 期望薪资 |
intention_job | varchar | NULL | 意向职位 |
job_status | varchar | NULL | 求职状态 |
personal_introduction | varchar | NULL | 个人介绍 |
create_time | datetime | NULL | 发布时间 |
valid_time | varchar | NULL | 有效时间 |
5:tb_user(tb_user)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | 用户编号 |
username | varchar | NULL | 用户名 |
password | varchar | NULL | 密码 |
name | varchar | NULL | 真实姓名 |
age | varchar | NULL | 年龄 |
gender | char | NULL | 性别 |
birthday | varchar | NULL | 出生日期 |
school | varchar | NULL | 毕业学校 |
phone | varchar | NULL | 联系电话 |
varchar | NULL | 电子邮箱 | |
specialty | varchar | NULL | 所学专业 |
education | varchar | NULL | 最高学历 |
五、功能模块:
系统登录:在登录界面用户可以根据不同的角色账号进入不通的界面
管理员信息管理:管理员可以进行管理员账户的添加、删除、修改等操作,确保系统安全
企业信息管理:管理员可以管理企业的注册信息,包括审核企业信息、修改企业信息等。
用户信息管理:管理员可以管理用户的注册信息,包括审核用户信息、修改用户权限等。
简历信息管理:管理员可以查看和管理用户提交的简历信息,包括审核简历、删除简历等操作。
招聘简历信息管理:管理员可以对企业发布的招聘信息进行匹配和推荐合适的简历。
企业信息管理:企业可以管理自己的企业信息,包括修改联系方式、上传企业介绍等。
职位招聘信息管理:企业可以发布新的职位招聘信息,包括填写职位描述、要求等。
简历查看:企业可以查看投递给自己的简历信息,包括评估简历的匹配度、筛选合适的候选人等。
个人信息管理:用户可以管理自己的个人信息,包括修改联系方式、完善个人简介等。
简历信息管理:用户可以填写和修改自己的简历信息,包括教育经历、工作经验等。
招聘信息查看:用户可以查看发布的各种招聘信息,包括浏览职位详情、投递简历等操作。
六、代码示例:
/**
允许任何域名使用
允许任何头
允许任何方法(post、get等)
*/
private CorsConfiguration buildConfig() {
CorsConfiguration corsConfiguration = new CorsConfiguration();
// // addAllowedOrigin 不能设置为* 因为与 allowCredential 冲突,需要设置为具体前端开发地址
corsConfiguration.addAllowedOrigin("http://localhost:8080");
corsConfiguration.addAllowedHeader("*");
corsConfiguration.addAllowedMethod("*");
// allowCredential 需设置为true
corsConfiguration.setAllowCredentials(true);
return corsConfiguration;
}
@Bean
public DefaultKaptcha defaultKaptcha() {
//验证码生成器
DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
//配置
Properties properties = new Properties();
//是否有边框
properties.setProperty("kaptcha.border", "yes");
//设置边框颜色
properties.setProperty("kaptcha.border.color", "105,179,90");
//边框粗细度,默认为1
// properties.setProperty("kaptcha.border.thickness","1");
//验证码
properties.setProperty("kaptcha.session.key", "code");
//验证码文本字符颜色 默认为黑色
properties.setProperty("kaptcha.textproducer.font.color", "blue");
//设置字体样式
properties.setProperty("kaptcha.textproducer.font.names", "宋体,楷体,微软雅黑");
//字体大小,默认40
properties.setProperty("kaptcha.textproducer.font.size", "30");
//验证码文本字符内容范围 默认为abced2345678gfynmnpwx
// properties.setProperty("kaptcha.textproducer.char.string", "");
//字符长度,默认为5
properties.setProperty("kaptcha.textproducer.char.length", "4");
//字符间距 默认为2
properties.setProperty("kaptcha.textproducer.char.space", "4");
//验证码图片宽度 默认为200
properties.setProperty("kaptcha.image.width", "100");
//验证码图片高度 默认为40
properties.setProperty("kaptcha.image.height", "40");
Config config = new Config(properties);
defaultKaptcha.setConfig(config);
return defaultKaptcha;
}
//管理员登录
@PostMapping(value = "/admin")
public RestResult adminLogin( HttpServletRequest request) {
String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println(username);
System.out.println(password);
Map<String, String> map = new HashMap<>();
map.put("username",username);
map.put("password",password);
QueryWrapper<TbAdmin> wrapper = new QueryWrapper<>();
wrapper.allEq(map,false);
if(tbAdminService.getMap(wrapper).size()!=3) return generator.getFailResult("登录失败~~");
System.out.println(tbAdminService.getMap(wrapper).size());
String token = JwtUtil.getToken(map);
return generator.getTokenResult(token);
}
// //用户登录
@PostMapping(value = "/user")
public RestResult userLogin( HttpServletRequest request) {
String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println(username);
System.out.println(password);
Map<String, String> map = new HashMap<>();
map.put("username",username);
map.put("password",password);
QueryWrapper<TbUser> wrapper = new QueryWrapper<>();
wrapper.allEq(map,false);
Map<String, Object> userMap = tbUserService.getMap(wrapper);
Object backname = userMap.get("username");
if(userMap.size()!=12) return generator.getFailResult("登录失败~~");
System.out.println(tbUserService.getMap(wrapper).size());
String token = JwtUtil.getToken(map);
return generator.getSuccessResult(backname,token);
}
// //企业登录
@PostMapping(value = "/entr")
public RestResult entrLogin( HttpServletRequest request) {
String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println(username);
System.out.println(password);
Map<String, String> map = new HashMap<>();
map.put("username",username);
map.put("password",password);
QueryWrapper<TbEnterprise> wrapper = new QueryWrapper<>();
wrapper.allEq(map,false);
Map<String, Object> entrMap = tbEnterpriseService.getMap(wrapper);
Object backname = entrMap.get("username");
if(entrMap.size()!=9) return generator.getFailResult("登录失败~~");
System.out.println(tbEnterpriseService.getMap(wrapper).size());
String token = JwtUtil.getToken(map);
return generator.getSuccessResult(backname,token);
}
七、项目总结:
开发基于SpringBoot和Vue的前后端分离的求职招聘系统是作为毕设作品进行设计的,这个毕设作品是我在校进行知识学习的一个毕业考核项目,也是检验我通过网络工具,图书工具等学习工具进行自学的能力水平,让我在根据程序开发的需求分析初步完成程序功能之外,还接触了程序的测试过程,了解程序测试的具体的过程,以及遇到问题怎么去寻找相应的解决办法等等,毕业作品的制作以及设计才是学校对我真正的考验。
在程序软件没能进行开发之前,我去了学校的图书馆借了有关数据库操作的书籍,在查看了sqlserver和mysql两种数据库的相关知识之后,我最后选择了我比较熟悉的mysql数据库。在编程语言的抉择上,由于自己之前接触过Java程序的开发,所以为了让我尽快在短时间内完成程序制作,我确定用Java编程语言进行程序编程。另外我从百度上下载了很多的有关信息增加,信息删除等操作的源代码,并通过不断调试以及完成配套的数据库的设计,开始完成程序的各个部分的功能。每当我粗心大意,致使我深陷程序开发困扰不能自拔之时,值得庆幸的是,我就会得到老师,还有我的寝室同学的耐心指导。
历经长达几个月的毕业作品制作,我凭借自己的知识技能,还有大家的指导帮助,能够在学校规定的时间段之内提交毕业作品。虽然已经算是完成了毕业作品,但是付出了这么多心血,还是想把这个作品做得更加完美一点。针对我的毕业作品学生信息管理系统,我觉得还有很多方面需要完善,第一就是界面上需要细微调整,比如色彩搭配有点违背广众的审美,需要细微调整,还有系统里面的字体大小也需要调大一点,太小的字体看起来有些费眼。然后在程序的功能上因为自己的入门开发水平的影响,所以目前只能做到这个境界,这个系统相比其他类似系统来说功能很简单,逻辑结构设计得也比较合理。
自己一个人完成程序的开发,我不仅亲自体验了程序的开发流程,体验到了程序开发的各种不易。这种体验也还加深了我对知识的尊重。学海无涯,知识不是大学短短四年就能学完的,在大学学到的知识在最终经历检验时,才会深深地明白自己的知识积累原来还很浅薄。所以今后不管身在何处,自己的学习心态一定要时刻体现出来,要深刻明白知识学到手里就是自己的。同时,自己也不必过多抱怨学到的知识没有用处,相信学到的知识总会有派上用处的那天。不要等到需要用时再去学习知识,那样就会导致自己错失很多本该属于自己的机遇。
八、源码获取:
大家点赞、收藏、关注、评论啦 、查看获取项目下载链接,博主联系方式
链接点击直达:下载链接