校园招聘系统 - 详细项目说明
📋 项目概述
校园招聘系统是一个基于Spring Boot + Vue的前后端分离项目,为高校学生、企业招聘方和系统管理员提供完整的在线招聘解决方案。
🎯 项目目标
- 为大学生提供便捷的求职平台
- 为企业提供高效的人才招聘渠道
- 为管理员提供完善的系统管理工具
界面:


🏗️ 系统架构
技术架构图
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 用户端前端 │ │ 管理端前端 │ │ 企业端前端 │
│ Vue 2.6 │ │ Vue 2.6 │ │ (管理端集成) │
│ Element UI │ │ Element UI │ │ │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
└───────────────────────┼───────────────────────┘
│
┌─────────────────┐
│ 后端服务 │
│ Spring Boot │
│ MyBatis Plus │
│ Spring Security│
└─────────────────┘
│
┌─────────────────┐ ┌─────────────────┐
│ MySQL 8.0 │ │ Redis │
│ 数据存储 │ │ 缓存/Session │
└─────────────────┘ └─────────────────┘
🔧 技术栈详情
后端技术栈
|-----------------|-------|------------|
| 技术 | 版本 | 用途 |
| Spring Boot | 2.5.3 | 核心框架 |
| MyBatis Plus | 3.4.3 | ORM框架 |
| MySQL | 8.0 | 数据库 |
| Redis | - | 缓存/Session |
| Spring Security | - | 安全认证 |
| JWT | 0.9.1 | Token认证 |
| WebSocket | - | 实时通信 |
| Swagger | - | API文档 |
前端技术栈
|------------|--------|---------|
| 技术 | 版本 | 用途 |
| Vue | 2.6.14 | 前端框架 |
| Element UI | 2.15.6 | UI组件库 |
| Vue Router | 3.5.1 | 路由管理 |
| Vuex | 3.6.2 | 状态管理 |
| Axios | 0.24.0 | HTTP客户端 |
| Sass | - | CSS预处理器 |
📁 项目结构
campus-recruitment-system/
├── campus_recruitment_-backend/ # 后端项目
│ ├── src/main/java/com/caohao/
│ │ ├── controller/ # 控制器层
│ │ │ ├── AuthController.java # 认证控制器
│ │ │ ├── UserController.java # 用户管理
│ │ │ ├── CompanyController.java # 公司管理
│ │ │ ├── EmploymentController.java # 职位管理
│ │ │ ├── EmploymentUserController.java # 求职申请
│ │ │ ├── ArticleController.java # 文章管理
│ │ │ ├── EmailController.java # 邮件服务
│ │ │ └── EnumController.java # 枚举接口
│ │ ├── service/ # 业务逻辑层
│ │ ├── dao/ # 数据访问层
│ │ ├── pojo/ # 实体类
│ │ │ ├── entity/ # 数据库实体
│ │ │ ├── model/ # 视图模型
│ │ │ └── param/ # 请求参数
│ │ ├── security/ # 安全配置
│ │ └── common/ # 公共组件
│ ├── src/main/resources/
│ │ ├── mapper/ # MyBatis映射文件
│ │ ├── application.yml # 配置文件
│ │ └── logback-spring.xml # 日志配置
│ └── pom.xml # Maven配置
├── scholl-recruit-manage/ # 管理端前端
│ ├── src/
│ │ ├── views/ # 页面组件
│ │ │ ├── user/ # 用户管理
│ │ │ ├── company/ # 公司管理
│ │ │ ├── employment/ # 职位管理
│ │ │ └── employmentUser/ # 简历管理
│ │ ├── api/ # API接口
│ │ ├── store/ # 状态管理
│ │ └── router/ # 路由配置
│ └── package.json
├── campus-user-frontend/ # 用户端前端
│ ├── src/
│ │ ├── views/ # 页面组件
│ │ │ ├── Home.vue # 招聘首页
│ │ │ ├── Jobs.vue # 职位列表
│ │ │ ├── JobDetail.vue # 职位详情
│ │ │ ├── Companies.vue # 公司列表
│ │ │ ├── Articles.vue # 文章列表
│ │ │ ├── Login.vue # 登录页面
│ │ │ ├── Register.vue # 注册页面
│ │ │ └── Profile.vue # 个人中心
│ │ ├── api/ # API封装
│ │ ├── store/ # 状态管理
│ │ └── router/ # 路由配置
│ └── package.json
├── database/ # 数据库文件
│ └── campus_recruitment.sql # 数据库脚本
├── API.md # API接口文档
├── 接口实现检查.md # 接口检查报告
└── README.md # 项目说明
🗄️ 数据库设计
核心数据表
|-----------------|-------|--------------------------------------------|
| 表名 | 说明 | 主要字段 |
| user | 用户表 | id, userName, password, role, email, phone |
| company | 公司表 | id, name, description, userId, status |
| employment | 职位表 | id, title, description, companyId, salary |
| employment_user | 求职申请表 | id, employmentId, userId, status |
| article | 文章表 | id, title, content, userId, type |
| comments | 评论表 | id, articleId, content, operatorId |
| user_resume | 简历表 | id, userId, resumeUrl, resumeName |
| feedback | 反馈表 | id, title, content, userId, status |
用户角色设计
- 普通用户(1): 求职者,可浏览职位、投递简历、发布文章
- 管理员(2): 系统管理员,可管理所有数据
- 企业用户(3): 招聘方,可发布职位、查看简历
🎨 功能模块详解
1. 用户端功能 (campus-user-frontend)
🏠 首页模块
- 功能: 展示热门职位、热门公司、搜索入口
- 页面 :
/src/views/Home.vue - 特色: 渐变背景、卡片式布局、响应式设计
💼 职位模块
- 职位列表: 支持关键词、城市、薪资筛选
- 职位详情: 完整职位信息、公司介绍、一键申请
- 页面 :
/src/views/Jobs.vue,/src/views/JobDetail.vue
🏢 公司模块
- 公司列表: 展示公司基本信息、在招职位数
- 公司详情: 公司介绍、企业文化、招聘职位
- 页面 :
/src/views/Companies.vue
📝 文章模块
- 文章列表: 按类型分类(经验分享、求职心得、面试技巧)
- 文章详情: 支持评论、点赞、收藏
- 页面 :
/src/views/Articles.vue
👤 个人中心
- 个人信息: 基本信息编辑、头像上传
- 简历管理: 简历上传、预览、删除
- 投递记录: 查看申请状态、面试安排
- 我的文章: 文章发布、编辑、管理
- 页面 :
/src/views/Profile.vue
2. 管理端功能 (scholl-recruit-manage)
👥 用户管理
- 用户列表查询、用户信息编辑
- 用户状态管理、权限分配
🏢 公司管理
- 企业注册审核、公司信息管理
- 企业认证状态控制
💼 职位管理
- 职位审核、职位状态管理
- 违规职位处理
📊 数据统计
- 用户注册统计、职位发布统计
- 求职成功率分析
3. 企业端功能 (集成在管理端)
🏢 企业信息管理
- 公司资料完善、营业执照上传
- 企业认证申请
💼 职位发布管理
- 职位发布、编辑、下线
- 职位数据统计
📄 简历管理
- 收到的简历查看、筛选
- 面试邀请发送、状态跟踪
🔐 安全机制
JWT认证流程
1. 用户登录 → 验证用户名密码
2. 生成JWT Token → 包含用户信息和权限
3. 前端存储Token → localStorage保存
4. 请求携带Token → Authorization Header
5. 后端验证Token → 解析用户信息
权限控制
- 路由权限: 基于用户角色的页面访问控制
- 接口权限: Controller层权限验证
- 数据权限: 用户只能操作自己的数据
🚀 部署架构
开发环境
# 后端启动 (端口3030)
cd campus_recruitment_-backend
mvn spring-boot:run
# 管理端启动 (端口8080)
cd scholl-recruit-manage
npm run serve
# 用户端启动 (端口8081)
cd campus-user-frontend
npm run serve
生产环境
# 使用Docker部署
docker-compose up -d
# 或使用Nginx反向代理
nginx.conf配置前端静态资源
后端使用jar包部署
📊 核心业务流程
1. 用户注册流程
用户填写注册信息 → 发送邮箱验证码 → 验证码校验 → 创建用户账号 → 注册成功
2. 企业认证流程
企业用户注册 → 完善公司信息 → 上传营业执照 → 管理员审核 → 认证通过 → 可发布职位
3. 求职申请流程
浏览职位 → 查看详情 → 投递简历 → 企业筛选 → 面试邀请 → 面试结果 → 入职确认
4. 职位发布流程
企业认证通过 → 发布职位信息 → 管理员审核 → 职位上线 → 接收简历 → 招聘完成
🔌 接口设计规范
RESTful API设计
- GET: 查询数据
- POST: 创建数据
- PUT: 更新数据
- DELETE: 删除数据
- PATCH: 部分更新
统一响应格式
{
"flag": true, // 操作是否成功
"code": 200, // 状态码
"msg": "操作成功", // 提示信息
"data": {} // 返回数据
}
分页查询格式
{
"pageNum": 1, // 当前页码
"pageSize": 10, // 每页数量
"total": 100, // 总记录数
"list": [] // 数据列表
}
🎨 前端设计规范
组件化开发
- 页面组件: 完整的业务页面
- 业务组件: 可复用的业务逻辑组件
- 基础组件: 通用UI组件
状态管理
- 用户状态: 登录信息、权限数据
- 业务状态: 职位列表、公司信息等
- UI状态: 加载状态、弹窗显示等
路由设计
- 公开路由: 首页、职位列表、登录注册
- 认证路由: 个人中心、简历管理
- 权限路由: 管理后台、企业管理
📱 用户体验设计
响应式布局
- 桌面端: 1200px宽度,多列布局
- 平板端: 768px宽度,两列布局
- 移动端: 375px宽度,单列布局
交互设计
- 加载状态: 数据加载时显示Loading
- 错误处理: 友好的错误提示信息
- 操作反馈: 成功/失败消息提示
🔍 核心功能实现
1. 搜索功能
- 关键词搜索: 职位标题、公司名称模糊匹配
- 条件筛选: 城市、薪资、经验、学历多维度筛选
- 搜索历史: 记录用户搜索记录
2. 简历系统
- 在线简历: 表单填写个人信息
- 附件简历: 支持PDF、Word格式上传
- 简历预览: 在线预览简历内容
3. 消息通知
- WebSocket: 实时消息推送
- 邮件通知: 重要操作邮件提醒
- 站内消息: 系统消息、面试通知
4. 数据统计
- 用户统计: 注册用户数、活跃用户数
- 职位统计: 发布职位数、申请人数
- 成功率统计: 面试成功率、入职成功率
🛡️ 安全措施
数据安全
- 密码加密: BCrypt加密存储
- SQL注入防护: MyBatis参数化查询
- XSS防护: 前端输入过滤
接口安全
- JWT认证: 无状态Token认证
- CORS配置: 跨域请求控制
- 接口限流: 防止恶意请求
数据权限
- 用户隔离: 用户只能访问自己的数据
- 角色权限: 基于角色的功能权限控制
- 敏感信息: 手机号、身份证号脱敏显示
📈 性能优化
后端优化
- 数据库索引: 关键字段建立索引
- Redis缓存: 热点数据缓存
- 分页查询: 大数据量分页处理
前端优化
- 路由懒加载: 按需加载页面组件
- 图片懒加载: 优化页面加载速度
- 组件缓存: keep-alive缓存页面状态
🧪 测试策略
单元测试
- Service层测试: 业务逻辑测试
- Controller层测试: 接口功能测试
- 前端组件测试: Vue组件单元测试
集成测试
- API接口测试: Postman/Swagger测试
- 端到端测试: 完整业务流程测试
- 性能测试: 并发访问压力测试
🚀 部署指南
环境要求
- Java: JDK 1.8+
- Node.js: 14.0+
- MySQL: 8.0+
- Redis: 5.0+
部署步骤
- 数据库初始化: 执行SQL脚本
- 后端部署: 修改配置文件,启动Spring Boot应用
- 前端构建: npm run build生成静态文件
- Nginx配置: 配置反向代理和静态资源
Docker部署
# 后端Dockerfile
FROM openjdk:8-jre-alpine
COPY target/*.jar app.jar
EXPOSE 3030
ENTRYPOINT ["java","-jar","/app.jar"]
# 前端Dockerfile
FROM nginx:alpine
COPY dist/ /usr/share/nginx/html/
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
📋 开发规范
代码规范
- Java: 遵循阿里巴巴Java开发手册
- JavaScript: 使用ESLint代码检查
- Git: 使用Git Flow工作流
命名规范
- 数据库: 下划线命名 (user_name)
- Java: 驼峰命名 (userName)
- 前端: 驼峰命名 (userName)
注释规范
- 类注释: 说明类的作用和功能
- 方法注释: 说明参数、返回值、异常
- 复杂逻辑: 添加行内注释说明
🔮 扩展功能
已规划功能
- 视频面试: 集成视频通话功能
- AI简历分析: 智能简历匹配推荐
- 移动端APP: React Native开发
- 数据分析: 招聘数据可视化分析
技术升级
- Spring Boot 3.0: 升级到最新版本
- Vue 3.0: 升级到Composition API
- 微服务架构: 拆分为多个微服务
- 云原生部署: Kubernetes容器化部署
📞 技术支持
开发团队
- 后端开发: Spring Boot + MyBatis技术栈
- 前端开发: Vue + Element UI技术栈
- 数据库设计: MySQL数据库设计优化
- 系统运维: Docker + Nginx部署运维
联系方式
博客:mushuo.site
本项目为校园招聘系统完整解决方案,包含前后端分离架构、完整的业务功能和规范的开发流程。
