基于SpringBoot的简历管理系统

项目背景

随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,简历系统当然也不能排除在外。简历系统是以实际运用为开发背景,运用软件工程原理和开发方法,采用springboot框架构建的一个管理系统。整个开发过程首先对软件系统进行需求分析,得出系统的主要功能。接着对系统进行总体设计和详细设计。总体设计主要包括系统功能设计、系统总体结构设计、系统数据结构设计和系统安全设计等;详细设计主要包括系统数据库访问的实现,主要功能模块的具体实现,模块实现关键代码等。最后对系统进行功能测试,并对测试结果进行分析总结,得出系统中存在的不足及需要改进的地方,为以后的系统维护提供了方便,同时也为今后开发类似系统提供了借鉴和帮助。这种个性化的网上管理系统特别注重交互协调与管理的相互配合,激发了管理人员的创造性与主动性,对简历系统而言非常有利。
本简历系统采用的数据库是Mysql,使用springboot框架开发。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。

功能设计

功能模块图

登录系统结构图
在这里插入图片描述
简历系统结构图
在这里插入图片描述

功能截图

管理员模块

管理员登录,通过填写用户名、密码、角色进行登录
在这里插入图片描述
管理员登录进入简历系统可以查看首页、个人中心、用户管理、简历模板管理、模板类型管理、招聘会管理、报名招聘管理、简历上传管理、求职论坛、我的收藏管理、系统管理等信息。
用户管理,在用户管理页面中可以通过查看账号、姓名、性别、年龄、手机、邮箱、身份证、头像进行详情、修改,如图5-2所示。还可以根据需要对简历模板管理进行详情,修改或删除等详细操作
在这里插入图片描述
在这里插入图片描述
模板类型管理,在模板类型管理页面中可以查看类型等信息,并可根据需要对模板类型管理进行详情、修改或删除等操作
在这里插入图片描述
招聘会管理,在招聘会管理页面中可以查看公司、发布时间、截止时间、地点、照片等信息,并可根据需要对招聘会管理进行详情、修改或删除等详细操作
在这里插入图片描述
报名招聘管理,在报名招聘管理页面中可以查看公司、发布时间、截止时间、照片、账号、姓名、简历、审核回复、审核状态、审核等内容,并且根据需要对报名招聘管理进行详情、修改或删除等详细操作
在这里插入图片描述
轮播图;该页面为轮播图管理界面。管理员可以在此页面进行首页轮播图的管理,通过新建操作可在轮播图中加入新的图片,还可以对以上传的图片进行修改操作,以及图片的删除操作
在这里插入图片描述
简历上传管理,在简历上传管理页面中可以查看账号、姓名、简历、反馈、上传时间、审核回复、审核状态、审核等内容,并且根据需要对简历上传管理进行详情、修改或删除等详细操作
在这里插入图片描述
求职论坛,在求职论坛页面中可以查看帖子标题、用户名、状态等内容,并且根据需要对求职论坛进行详情、修改或删除等详细操作
在这里插入图片描述

用户模块

用户登录进入简历系统可以查看首页、个人中心、报名招聘管理、简历上传管理、我的收藏管理等内容。
报名招聘管理,在报名招聘管理页面中通过查看公司、发布时间、截止时间、照片、账号、姓名、简历、审核回复、审核状态等信息还可以根据需要对报名招聘管理进行详情
在这里插入图片描述
简历上传管理,在简历上传管理页面中可以查看账号、姓名、简历、反馈、上传时间、审核回复、审核状态等信息内容,并且根据需要对简历上传管理进行修改或删除等其他详细操作
在这里插入图片描述
个人信息,在个人信息页面中通过填写账号、姓名、性别、年龄、手机、邮箱、身份证、头像等内容进行详情、修改
在这里插入图片描述

前台首页功能模块

简历系统,在简历系统可以查看首页、简历模板、招聘会、简历上传、求职论坛、系统公告、个人中心、后台管理、在线客服等内容
在这里插入图片描述
用户登录、用户注册,通过注册获取账号、密码、姓名、性别、年龄、手机、邮箱、身份证等信息进行注册、登录
在这里插入图片描述
在这里插入图片描述
简历模板,在简历模板页面可以查看模板名称、模板类型、点击次数等信息进行点我收藏
在这里插入图片描述
在这里插入图片描述

相关代码

数据库配置

# Tomcat
server:tomcat:uri-encoding: UTF-8port: 8080servlet:context-path: /springbootr1tjfspring:datasource:driverClassName: com.mysql.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/springbootr1tjf?useUnicode=true&characterEncoding=utf-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8username: rootpassword: 123456#        driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
#        url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=springbootr1tjf
#        username: sa
#        password: 123456servlet:multipart:max-file-size: 10MBmax-request-size: 10MBresources:static-locations: classpath:static/,file:static/#mybatis
mybatis-plus:mapper-locations: classpath*:mapper/*.xml#实体扫描,多个package用逗号或者分号分隔typeAliasesPackage: com.entityglobal-config:#主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";id-type: 1#字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"field-strategy: 2#驼峰下划线转换db-column-underline: true#刷新mapper 调试神器refresh-mapper: true#逻辑删除配置logic-delete-value: -1logic-not-delete-value: 0#自定义SQL注入器sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjectorconfiguration:map-underscore-to-camel-case: truecache-enabled: falsecall-setters-on-nulls: true#springboot 项目mybatis plus 设置 jdbcTypeForNull (oracle数据库需配置JdbcType.NULL, 默认是Other)jdbc-type-for-null: 'null' 

控制层(controller)

package com.controller;import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;/*** 登录相关*/
@RequestMapping("users")
@RestController
public class UserController{@Autowiredprivate UserService userService;@Autowiredprivate TokenService tokenService;/*** 登录*/@IgnoreAuth@PostMapping(value = "/login")public R login(String username, String password, String captcha, HttpServletRequest request) {UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));if(user==null || !user.getPassword().equals(password)) {return R.error("账号或密码不正确");}String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());return R.ok().put("token", token);}/*** 注册*/@IgnoreAuth@PostMapping(value = "/register")public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {return R.error("用户已存在");}userService.insert(user);return R.ok();}/*** 退出*/@GetMapping(value = "logout")public R logout(HttpServletRequest request) {request.getSession().invalidate();return R.ok("退出成功");}/*** 密码重置*/@IgnoreAuth@RequestMapping(value = "/resetPass")public R resetPass(String username, HttpServletRequest request){UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));if(user==null) {return R.error("账号不存在");}user.setPassword("123456");userService.update(user,null);return R.ok("密码已重置为:123456");}/*** 列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,UserEntity user){EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/list")public R list( UserEntity user){EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();ew.allEq(MPUtil.allEQMapPre( user, "user")); return R.ok().put("data", userService.selectListView(ew));}/*** 信息*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") String id){UserEntity user = userService.selectById(id);return R.ok().put("data", user);}/*** 获取用户的session用户信息*/@RequestMapping("/session")public R getCurrUser(HttpServletRequest request){Long id = (Long)request.getSession().getAttribute("userId");UserEntity user = userService.selectById(id);return R.ok().put("data", user);}/*** 保存*/@PostMapping("/save")public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {return R.error("用户已存在");}userService.insert(user);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {return R.error("用户名已存在。");}userService.updateById(user);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){userService.deleteBatchIds(Arrays.asList(ids));return R.ok();}
}

业务层(Service)


package com.service;import java.util.List;
import java.util.Map;import org.apache.ibatis.annotations.Param;import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.service.IService;
import com.entity.UserEntity;
import com.utils.PageUtils;/*** 系统用户*/
public interface UserService extends IService<UserEntity> {PageUtils queryPage(Map<String, Object> params);List<UserEntity> selectListView(Wrapper<UserEntity> wrapper);PageUtils queryPage(Map<String, Object> params,Wrapper<UserEntity> wrapper);}

数据访问层(Dao)

package com.dao;import java.util.List;import org.apache.ibatis.annotations.Param;import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.pagination.Pagination;
import com.entity.UserEntity;/*** 用户*/
public interface UserDao extends BaseMapper<UserEntity> {List<UserEntity> selectListView(@Param("ew") Wrapper<UserEntity> wrapper);List<UserEntity> selectListView(Pagination page,@Param("ew") Wrapper<UserEntity> wrapper);}

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

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

相关文章

PHP 图片去除水印 去除logo

使用插件 ffmpeg 点这里 不使用插件 也可以 <?phpfunction CLEAR_ICO($filename,$savename,$Clear_W,$Clear_H,$Clear_X,$Clear_Y){// $filename ;//读取图片名// $savename ;//保存图片路径// $Clear_W ;//去除水印宽// $Clear_H 30;//去除水印高// $Clear_X 254…

如何去掉图片上的水印,四个步骤,方法超级容易又简单

很多时候我们要使用图片的时候&#xff0c;都是从网上下载的&#xff0c;但是网上下载的图片一般都是带有水印的&#xff0c;我们要使用的话就要去除上面的水印。那如何去除图片上的水印呢&#xff1f;今天我就教大家一个简单的方法 而且是不用下载任何去除水印软件的喔。直接在…

如何在图片上加水印防止盗图?

如何在图片上加水印防止盗图&#xff1f;大家都知道&#xff0c;互联网是一个开放的平台&#xff0c;在互联网上可以获取任何你想要的文件或者资料&#xff0c;不仅简单而且成本非常低&#xff0c;所以有很多人会在网上盗用别人的图片&#xff0c;然后为自己所用&#xff0c;这…

用 OpenCV 去除图片中的水印,骚操作!

点击上方“小白学视觉”&#xff0c;选择加"星标"或“置顶” 重磅干货&#xff0c;第一时间送达本文转自|AI算法与图像处理 这两天在 Stackoverflow 上面看到了一个有趣的案例&#xff0c;是关于OpenCV 的一个讨论&#xff0c;讨论的主题就是如何用 OpenCV 来去除下面…

什么软件可以去除照片水印?这3种方法可以帮你轻松搞定

大家有过这样的烦恼吗&#xff1f;在网上看到一张喜欢的图片&#xff0c;想要将它保存下来做壁纸&#xff0c;但是却发现图片里面有个大大的水印&#xff0c;十分影响效果。或者是在网上看到一张喜欢的头像&#xff0c;里面也有着一个大大的水印&#xff0c;我们该放弃这张图片…

学会这3个小技巧,轻松去图片水印

有些小伙伴在浏览个别平台时&#xff0c;会看到一些心水的图片&#xff0c;就想保存下来&#xff0c;拿来当头像壁纸&#xff0c;或是发朋友圈时用来配图。但是有些图片下载后会发现自带着平台水印&#xff0c;虽然理解它们是为了保护自身权益&#xff0c;但我们并不是进行商用…

脆弱水印 信息隐藏 QR分解

一、算法介绍 1、论文出处 F. Nejati, H. Sajedi and M. Mohammadi, “Fragile Watermarking for Image Authentication Using QR factorization and Fourier Transform,” 2019 5th International Conference on Web Research (ICWR), 2019, pp. 45-49, doi: 10.1109/ICWR.2…

watermark-removal: 一款超赞的开源图片去水印解决方案

公众号关注 「奇妙的 Linux 世界」 设为「星标」&#xff0c;每天带你玩转 Linux &#xff01; 今天给大家推荐一个开源项目&#xff0c;这个开源项目的图片去水印效果非常好。 这个开源项目就是&#xff1a;Watermark-Removal&#xff0c;是可基于机器学习的图像修复方法&…

德国商标注册程序

&#xff08;一&#xff09;进行商标查询。申请人应调查是否已注册相同或类似商标。可在德专利商标局慕尼黑总部、耶拿办事处和柏林技术信息中心的商标注册大厅以及该局网站免费查询。也可向位於该国24个大中城市的专利信息中心查询&#xff0c;四周可出结果&#xff0c;收费50…

商标注册查询入口官网在国家知识产权局商标局查询

最近程序员想要注册商标&#xff0c;注册之前要进行商标近似查询&#xff0c;提高通过成功率&#xff0c;前期不好好查询的话&#xff0c;要是被商标局驳回&#xff0c;规费可是不退的。所以&#xff0c;商标查询是很重要的环节&#xff0c;商标注册查询入口官网肯定是家知识产…

小度电视伴侣与小米电视音响对比评测

本文来自智能电视网 家里智能电视买了有小一年了&#xff0c;平时工作忙没怎么看&#xff0c;但是过年期间的使用率还挺高。本来对自家的电视还挺满意的&#xff0c;结果走亲戚的时候发现人家整的全套&#xff0c;投影、音响、K歌装备一应俱全&#xff0c;尤其是在亲戚家里看了…

刷爆朋友圈!前百度总裁陆奇最新AI重磅演讲:我的大模型世界观

文 / 高扬&#xff08;微信公众号&#xff1a;量子论&#xff09; 陆奇的演讲刷屏了&#xff0c;我认真看了他的演讲稿&#xff0c;收获颇丰。 陆奇提到&#xff0c;人类社会的发展&#xff0c;大致可分为&#xff1a;农业化、工业化和数字化三个阶段。 在三个递进的阶段中&…

陆奇博士最新演讲分享:我的大模型世界观(附PPT下载链接)

省时查报告-专业、及时、全面的行研报告库 省时查方案-专业、及时、全面的营销策划方案库 【免费下载】2023年3月份热门报告合集 【限时免费】ChatGPT4体验&#xff0c;无需翻墙直接用 ChatGPT调研报告&#xff08;仅供内部参考&#xff09; ChatGPT的发展历程、原理、技术架构…

2022.10.27每日刷题打卡

Phoenix and Beauty 题意&#xff1a;给出一个长度为n的序列a&#xff0c;在其中任意位置插入若干个[1,n]中的数&#xff0c;使得新序列b中的连续k项和都相等。 思路&#xff1a;其实很好想&#xff0c;我们可以把每个元素都处理成k个元素&#xff0c;然后保证这k个元素的和都…

Java面试题(每日总结晨读)

一、Java基础 1.ArrayList底层数据结构是什么&#xff1f;说一下你对它的理解 底层是一个长度可变的数组&#xff0c;当使用new ArrayList()的时候&#xff0c;底层是&#xff1a; public ArrayList() { this.elementData DEFAULTCAPACITY_EMPTY_ELEMENTDATA; //默认 容量&…

2022-05-07每日刷题打卡

2022-05-07每日刷题打卡 代码源——每日一题 题目描述 有一棵 n 个节点的以1为根的有根树。现在可以对这棵树进行若干次操作&#xff0c;每一次操作可以选择树上的一个点然后删掉这个点和它的儿子之间的所有边。 现在想要知道对于每一个 k∈[1,n]&#xff0c;最少需要多少次…

《花雕学AI》哪种技能5年10年后还会被市场需要? 该如何提高这些能力?

随着AI人工智能、ChatGPT等新的技术革新的发展&#xff0c;未来职业场景确实会发生变化&#xff0c;一些传统的职业可能会被取代&#xff0c;而一些新的职业可能会出现。根据世界经济论坛所发布的《未来就业报告》&#xff0c;一半的劳动力需要在2025年之前完成技能重塑。那么&…

想清楚这些的程序员,35岁绝不会被毕业

一、成长与能力 1、成长理解 成长是一个过程。在这个过程中&#xff0c;可能会发生各种事件&#xff0c;有些是正向的&#xff0c;有些是负向的。这些事件会影响成长的速度与方向&#xff0c;体现到个人能力上。我是这么看待这个过程的&#xff1a; 【正向事件】&#xff1a…

华为鸿蒙 OS 尝鲜,跑了个 “hello world”!跑通后,我特么开始怀疑人生...

最近华为鸿蒙OS 2.0正式开源&#xff01;关于鸿蒙的教程其实网上也已经有一些尝鲜的小伙伴分享的相关文章了&#xff0c;编者我按照步骤一步步跑下来&#xff0c;整个流程还是非常简单的&#xff0c;尤其是对Android开发的小伙伴来说&#xff0c;从IDE到项目的创建及项目的编译…

梅科尔工作室-鸿蒙笔记1

梅科尔工作室-于天姿-鸿蒙笔记1 一、主要目录配置文件作用 1、stage模型 其中常用模块为app.json模块&#xff0c;entry模块&#xff0c;module.json模块。 app.json5中&#xff0c;icon是应用图标&#xff0c;可在pages中添加图片&#xff0c;从而改变图标&#xff1b;labe…