大学生就业招聘系统

程序设计文档


项目名称:大学生就业招聘系统
开发语言:Java + JavaScript
开发框架:Spring Boot + Vue 3
数据库:MySQL
文档版本:v1.0
编写日期:2025年


目录

  1. 项目概述
  2. 需求分析
  3. 系统总体设计
  4. 数据库设计
  5. 系统详细设计
  6. 接口设计
  7. 测试说明
  8. 总结与展望
  9. 参考文献
  10. 附录

1. 项目概述

在这里插入图片描述

1.1 项目背景

随着互联网技术的快速发展,线上招聘已成为大学生求职的重要渠道。传统的招聘方式存在信息不对称、效率低下等问题。本项目旨在开发一个面向大学生的在线就业招聘系统,为求职者和企业提供便捷、高效的招聘服务。

1.2 项目目标

  1. 提高招聘效率:通过在线平台实现求职者与企业的快速匹配
  2. 优化用户体验:提供友好的界面和便捷的操作流程
  3. 数据统计分析:为企业和管理员提供数据统计和可视化功能
  4. 系统化管理:实现招聘流程的标准化和规范化管理

1.3 技术选型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.3.1 后端技术栈
  • 框架:Spring Boot 2.7.12
  • ORM框架:MyBatis
  • 数据库:MySQL 8.0
  • 构建工具:Maven
  • 开发语言:Java 8+
1.3.2 前端技术栈
  • 框架:Vue 3.2.0
  • UI组件库:Element Plus 2.4.0
  • 构建工具:Vite 4.0.0
  • 路由管理:Vue Router 4.0.0
  • HTTP客户端:Axios 1.2.0
1.3.3 开发工具
  • IDE:IntelliJ IDEA / VS Code
  • 版本控制:Git
  • 接口测试:Postman

1.4 系统架构

本系统采用前后端分离的B/S架构:

  • 前端:Vue 3单页面应用,通过RESTful API与后端通信
  • 后端:Spring Boot提供RESTful API服务
  • 数据库:MySQL存储业务数据
  • 架构模式:MVC(Model-View-Controller)

2. 需求分析

2.1 功能性需求

2.1.1 用户角色

系统包含三种用户角色:

  1. 求职者(USER)

    • 浏览岗位信息
    • 搜索和筛选岗位
    • 申请心仪岗位
    • 查看申请记录
    • 查看和管理面试邀请
    • 提交平台留言反馈
  2. 企业用户(COMPANY)

    • 发布招聘岗位
    • 查看岗位申请信息
    • 发送面试邀请
    • 管理申请状态(查看、录用、拒绝)
    • 查看数据统计(岗位申请数据分析)
  3. 管理员(ADMIN)

    • 用户管理(增删改查)
    • 企业管理(增删改查)
    • 岗位分类管理
    • 留言管理
    • 面试邀请管理
    • 数据统计查看
2.1.2 核心功能模块
2.1.2.1 用户认证模块
  • 注册功能

    • 用户名、密码、邮箱注册
    • 角色选择(求职者/企业)
    • 密码确认验证
    • 用户名唯一性检查
  • 登录功能

    • 用户名密码登录
    • 角色验证
    • 登录状态保持
    • 快速登录(演示账号)
2.1.2.2 岗位管理模块
  • 岗位浏览

    • 岗位列表展示
    • 岗位搜索(关键词搜索)
    • 分类筛选
    • 岗位详情查看
  • 岗位申请

    • 在线提交简历
    • 申请状态跟踪
    • 申请记录查询
2.1.2.3 企业管理模块
  • 企业信息展示

    • 企业列表
    • 企业详情
    • 企业岗位关联
  • 岗位发布

    • 岗位信息录入
    • 企业和分类选择
    • 岗位状态管理
2.1.2.4 企业中心模块
  • 岗位管理

    • 查看已发布岗位
    • 岗位申请统计
  • 申请管理

    • 查看岗位申请列表
    • 查看申请人详细信息
    • 申请状态管理
    • 面试邀请发送
  • 数据统计

    • 岗位申请数据分析(柱状图)
    • 申请人数、面试人数、通过人数、拒绝人数统计
2.1.2.5 个人中心模块
  • 个人信息

    • 用户信息展示
    • 申请记录查询
    • 面试邀请管理
  • 面试管理

    • 查看面试邀请
    • 接受/拒绝面试
    • 面试状态跟踪
2.1.2.6 后台管理模块
  • 数据统计

    • 用户总数
    • 企业数量
    • 岗位数量
    • 申请记录数
    • 面试邀请数
    • 用户留言数
  • 用户管理

    • 用户列表查看
    • 用户信息编辑
    • 用户删除
    • 企业账号分配
  • 企业管理

    • 企业列表管理
    • 企业信息编辑
    • 企业删除
    • 企业账号分配
  • 分类管理

    • 岗位分类添加
    • 岗位分类删除
  • 留言管理

    • 留言列表查看
    • 留言状态管理(已读/未读)
    • 留言删除
2.1.2.7 留言反馈模块
  • 学生留言

    • 提交平台留言
    • 查看留言记录
  • 管理员查看

    • 留言列表管理
    • 标记已读/未读

2.2 非功能性需求

2.2.1 性能需求
  • 系统响应时间:页面加载时间 < 3秒
  • 并发用户数:支持至少100个并发用户
  • 数据库查询优化:关键查询响应时间 < 500ms
2.2.2 可用性需求
  • 系统可用性:99%以上
  • 数据备份:定期数据备份
  • 错误处理:友好的错误提示信息
2.2.3 安全性需求
  • 用户认证:登录验证
  • 权限控制:角色权限管理
  • 数据验证:前后端数据校验
  • SQL注入防护:使用参数化查询
2.2.4 可维护性需求
  • 代码规范:遵循Java和JavaScript编码规范
  • 注释完整:关键代码添加注释
  • 模块化设计:功能模块解耦

3. 系统总体设计

3.1 系统架构设计

3.1.1 整体架构
┌─────────────────┐
│   前端 Vue 3    │
│   Element Plus  │
└────────┬────────┘
         │ HTTP/RESTful API
         │
┌────────▼────────┐
│  Spring Boot    │
│    Controller   │
└────────┬────────┘
         │
┌────────▼────────┐
│     MyBatis     │
│     Mapper      │
└────────┬────────┘
         │
┌────────▼────────┐
│     MySQL       │
│    Database     │
└─────────────────┘
3.1.2 前后端分离架构
  • 前端:单页面应用(SPA),通过Axios发送HTTP请求
  • 后端:RESTful API服务,返回JSON数据
  • 通信协议:HTTP/HTTPS
  • 数据格式:JSON

3.2 系统模块划分

大学生就业招聘系统
├── 用户认证模块
│   ├── 用户注册
│   ├── 用户登录
│   └── 权限验证
├── 岗位管理模块
│   ├── 岗位浏览
│   ├── 岗位搜索
│   ├── 岗位申请
│   └── 申请管理
├── 企业管理模块
│   ├── 企业信息
│   ├── 岗位发布
│   └── 企业中心
├── 个人中心模块
│   ├── 个人信息
│   ├── 申请记录
│   └── 面试管理
├── 后台管理模块
│   ├── 数据统计
│   ├── 用户管理
│   ├── 企业管理
│   ├── 分类管理
│   └── 留言管理
└── 留言反馈模块
    ├── 提交留言
    └── 留言管理

3.3 技术架构设计

3.3.1 后端架构
  • Controller层:处理HTTP请求,参数验证,返回响应
  • Service层:业务逻辑处理(本项目简化,直接使用Mapper)
  • Mapper层:数据访问层,MyBatis接口
  • Model层:实体类,对应数据库表
3.3.2 前端架构
  • Views层:页面组件
  • Components层:可复用组件(本项目简化)
  • Utils层:工具函数
  • Router层:路由配置
  • API层:API请求封装

4. 数据库设计

4.1 数据库概述

  • 数据库名称:job_recruitment
  • 字符集:utf8mb4
  • 排序规则:utf8mb4_general_ci

4.2 数据表设计

4.2.1 用户表(users)
字段名类型长度是否为空主键说明
idBIGINT-NOYES用户ID(自增)
usernameVARCHAR100NONO用户名
passwordVARCHAR255NONO密码
roleVARCHAR20YESNO角色(USER/COMPANY/ADMIN)
emailVARCHAR255YESNO邮箱
company_idBIGINT-YESNO关联企业ID
created_atTIMESTAMP-YESNO创建时间

索引:

  • PRIMARY KEY (id)
  • FOREIGN KEY (company_id) REFERENCES companies(id)
4.2.2 企业表(companies)
字段名类型长度是否为空主键说明
idBIGINT-NOYES企业ID(自增)
nameVARCHAR255NONO企业名称
addressVARCHAR255YESNO企业地址
descriptionTEXT-YESNO企业简介
created_atTIMESTAMP-YESNO创建时间

索引:

  • PRIMARY KEY (id)
4.2.3 分类表(categories)
字段名类型长度是否为空主键说明
idBIGINT-NOYES分类ID(自增)
nameVARCHAR100NONO分类名称

索引:

  • PRIMARY KEY (id)
4.2.4 岗位表(jobs)
字段名类型长度是否为空主键说明
idBIGINT-NOYES岗位ID(自增)
titleVARCHAR255NONO岗位标题
company_idBIGINT-YESNO企业ID
category_idBIGINT-YESNO分类ID
locationVARCHAR255YESNO工作地点
descriptionTEXT-YESNO岗位描述
statusINT-YESNO状态(1-招聘中,0-已关闭)
created_atTIMESTAMP-YESNO创建时间

索引:

  • PRIMARY KEY (id)
  • FOREIGN KEY (company_id) REFERENCES companies(id)
4.2.5 申请表(applications)
字段名类型长度是否为空主键说明
idBIGINT-NOYES申请ID(自增)
job_idBIGINT-YESNO岗位ID
user_idBIGINT-YESNO用户ID
resume_textTEXT-YESNO简历内容
statusVARCHAR50YESNO状态(APPLIED/VIEWED/REJECTED/HIRED)
created_atTIMESTAMP-YESNO申请时间

索引:

  • PRIMARY KEY (id)
  • FOREIGN KEY (job_id) REFERENCES jobs(id) ON DELETE CASCADE
  • FOREIGN KEY (user_id) REFERENCES users(id)
4.2.6 面试表(interviews)
字段名类型长度是否为空主键说明
idBIGINT-NOYES面试ID(自增)
application_idBIGINT-YESNO申请ID
scheduled_atVARCHAR100YESNO面试时间
locationVARCHAR255YESNO面试地点
contactVARCHAR255YESNO联系方式
statusVARCHAR50YESNO状态(待员工确认/待面试/面试完成/录用/拒绝)
resultVARCHAR50YESNO结果(PENDING/PASSED/FAILED)
created_atTIMESTAMP-YESNO创建时间

索引:

  • PRIMARY KEY (id)
  • FOREIGN KEY (application_id) REFERENCES applications(id) ON DELETE CASCADE
4.2.7 留言表(messages)
字段名类型长度是否为空主键说明
idBIGINT-NOYES留言ID(自增)
user_idBIGINT-YESNO用户ID
contentTEXT-NONO留言内容
created_atTIMESTAMP-YESNO创建时间

索引:

  • PRIMARY KEY (id)
  • FOREIGN KEY (user_id) REFERENCES users(id)
4.2.8 反馈表(feedbacks)
字段名类型长度是否为空主键说明
idBIGINT-NOYES反馈ID(自增)
user_idBIGINT-YESNO用户ID
contentTEXT-NONO反馈内容
statusVARCHAR20YESNO状态(UNREAD/READ)
created_atVARCHAR50YESNO创建时间

索引:

  • PRIMARY KEY (id)
  • FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE SET NULL

4.3 数据库关系图(ER图)

users ──┐
        ├──► applications ──► interviews
        │
        └──► feedbacks

companies ──► jobs ──► applications
              │
              └──► categories

users ──► companies (通过company_id)

4.4 数据字典

详细的数据字段说明见4.2节各表设计。


5. 系统详细设计

5.1 后端设计

5.1.1 Controller层设计
5.1.1.1 认证控制器(AuthController)

路径:/api/auth

功能:

  • POST /api/auth/login - 用户登录
  • POST /api/auth/register - 用户注册

关键方法:

@PostMapping("/login")
public Map<String, Object> login(@RequestBody Map<String, String> params)
// 验证用户名和密码,返回用户信息和token

@PostMapping("/register")
public Map<String, Object> register(@RequestBody User user)
// 注册新用户,检查用户名唯一性
5.1.1.2 岗位控制器(JobController)

路径:/api/jobs

功能:

  • GET /api/jobs - 获取岗位列表
  • GET /api/jobs/{id} - 获取岗位详情
  • POST /api/jobs - 创建岗位
  • PUT /api/jobs/{id} - 更新岗位
  • DELETE /api/jobs/{id} - 删除岗位
5.1.1.3 申请控制器(ApplicationController)

路径:/api/applications

功能:

  • GET /api/applications - 获取申请列表
  • GET /api/applications/job/{jobId} - 获取某岗位的所有申请
  • POST /api/applications - 创建申请
  • PUT /api/applications/{id}/status - 更新申请状态
5.1.1.4 企业控制器(CompanyController)

路径:/api/companies

功能:

  • GET /api/companies - 获取企业列表
  • GET /api/companies/{id} - 获取企业详情
  • POST /api/companies - 创建企业
  • PUT /api/companies/{id} - 更新企业
  • DELETE /api/companies/{id} - 删除企业
5.1.1.5 用户控制器(UserController)

路径:/api/users

功能:

  • GET /api/users - 获取用户列表
  • GET /api/users/{id} - 获取用户详情
  • PUT /api/users/{id} - 更新用户
  • DELETE /api/users/{id} - 删除用户
5.1.1.6 面试控制器(InterviewController)

路径:/api/interviews

功能:

  • GET /api/interviews - 获取面试列表
  • GET /api/interviews/user/{userId} - 获取用户的面试列表
  • POST /api/interviews - 创建面试邀请
  • PUT /api/interviews/{id}/accept - 接受面试
  • PUT /api/interviews/{id}/reject - 拒绝面试
  • PUT /api/interviews/{id}/complete - 完成面试
  • PUT /api/interviews/{id}/hire - 录用
  • PUT /api/interviews/{id}/not-hire - 不录用
5.1.1.7 反馈控制器(FeedbackController)

路径:/api/feedbacks

功能:

  • GET /api/feedbacks - 获取反馈列表
  • GET /api/feedbacks/user/{userId} - 获取用户的反馈
  • POST /api/feedbacks - 创建反馈
  • PUT /api/feedbacks/{id}/read - 标记已读
  • DELETE /api/feedbacks/{id} - 删除反馈
  • GET /api/feedbacks/unread-count - 获取未读反馈数
5.1.2 Mapper层设计

使用MyBatis注解方式,主要接口:

  • UserMapper - 用户数据访问
  • JobMapper - 岗位数据访问
  • ApplicationMapper - 申请数据访问
  • CompanyMapper - 企业数据访问
  • CategoryMapper - 分类数据访问
  • InterviewMapper - 面试数据访问
  • MessageMapper - 留言数据访问
  • FeedbackMapper - 反馈数据访问
5.1.3 Model层设计

实体类对应数据库表:

  • User - 用户实体
  • Job - 岗位实体
  • Application - 申请实体
  • Company - 企业实体
  • Category - 分类实体
  • Interview - 面试实体
  • Message - 留言实体
  • Feedback - 反馈实体

5.2 前端设计

5.2.1 页面组件设计
5.2.1.1 登录注册页面(Login.vue)

功能:

  • 用户登录表单
  • 用户注册表单
  • 角色选择
  • 表单验证
  • 快速登录按钮

关键状态:

  • loginForm - 登录表单数据
  • registerForm - 注册表单数据
  • activeTab - 当前激活的标签页
5.2.1.2 首页(Home.vue)

功能:

  • 系统统计数据展示
  • 热门岗位展示
  • 推荐企业展示
  • 快速操作入口

关键功能:

  • loadStatistics() - 加载统计数据
  • loadHotJobs() - 加载热门岗位
  • loadFeaturedCompanies() - 加载推荐企业
5.2.1.3 岗位浏览页面(Jobs.vue)

功能:

  • 岗位列表展示
  • 搜索功能
  • 分类筛选
  • 岗位详情查看
  • 在线申请

关键功能:

  • loadJobs() - 加载岗位列表
  • searchJobs() - 搜索岗位
  • filterByCategory() - 按分类筛选
  • applyForJob() - 申请岗位
5.2.1.4 企业浏览页面(Companies.vue)

功能:

  • 企业列表展示
  • 企业搜索
  • 企业详情查看
  • 查看企业岗位
5.2.1.5 岗位发布页面(PostJob.vue)

功能:

  • 岗位信息录入
  • 企业和分类选择
  • 表单验证
  • 提交岗位
5.2.1.6 企业中心页面(CompanyDashboard.vue)

功能:

  • 岗位管理(我的岗位)
  • 申请管理(岗位申请)
  • 数据统计(柱状图可视化)

关键功能:

  • loadMyJobs() - 加载我的岗位
  • viewApplications() - 查看申请
  • loadChartData() - 加载图表数据
  • showInviteInterviewDialog() - 显示面试邀请对话框
5.2.1.7 个人中心页面(Profile.vue)

功能:

  • 个人信息展示
  • 申请记录查看
  • 面试邀请管理
5.2.1.8 后台管理页面(Admin.vue)

功能:

  • 数据统计展示
  • 用户管理
  • 企业管理
  • 分类管理
  • 留言管理
  • 面试管理

关键功能:

  • loadStatistics() - 加载统计数据
  • loadUsers() - 加载用户列表
  • loadCompanies() - 加载企业列表
  • showUserForm() - 显示用户表单
  • showCompanyForm() - 显示企业表单
5.2.2 路由设计

路由配置(main.js):

const routes = [
  { path: '/', component: Home },
  { path: '/login', component: Login },
  { path: '/jobs', component: Jobs },
  { path: '/companies', component: Companies },
  { path: '/post', component: PostJob },
  { path: '/company', component: CompanyDashboard },
  { path: '/profile', component: Profile },
  { path: '/admin', component: Admin }
]
5.2.3 状态管理

使用Vue 3的响应式系统:

  • localStorage - 存储用户登录信息
  • ref / reactive - 组件状态管理
  • 事件总线 - 跨组件通信(window.dispatchEvent)

6. 接口设计

6.1 接口规范

  • 请求方式:RESTful API(GET/POST/PUT/DELETE)
  • 数据格式:JSON
  • 字符编码:UTF-8
  • 跨域支持:@CrossOrigin注解

6.2 主要接口列表

6.2.1 认证相关接口
接口方法说明参数
/api/auth/loginPOST用户登录username, password
/api/auth/registerPOST用户注册username, password, email, role
6.2.2 岗位相关接口
接口方法说明参数
/api/jobsGET获取岗位列表-
/api/jobs/{id}GET获取岗位详情id
/api/jobsPOST创建岗位title, companyId, categoryId, location, description
/api/jobs/{id}PUT更新岗位id, 岗位信息
/api/jobs/{id}DELETE删除岗位id
6.2.3 申请相关接口
接口方法说明参数
/api/applicationsGET获取申请列表-
/api/applications/job/{jobId}GET获取岗位申请jobId
/api/applicationsPOST创建申请jobId, userId, resumeText
/api/applications/{id}/statusPUT更新申请状态id, status
6.2.4 企业相关接口
接口方法说明参数
/api/companiesGET获取企业列表-
/api/companies/{id}GET获取企业详情id
/api/companiesPOST创建企业name, address, description
/api/companies/{id}PUT更新企业id, 企业信息
/api/companies/{id}DELETE删除企业id
6.2.5 用户相关接口
接口方法说明参数
/api/usersGET获取用户列表-
/api/users/{id}GET获取用户详情id
/api/users/{id}PUT更新用户id, 用户信息
/api/users/{id}DELETE删除用户id
6.2.6 面试相关接口
接口方法说明参数
/api/interviewsGET获取面试列表-
/api/interviews/user/{userId}GET获取用户面试userId
/api/interviewsPOST创建面试邀请applicationId, scheduledAt, location, contact
/api/interviews/{id}/acceptPUT接受面试id
/api/interviews/{id}/rejectPUT拒绝面试id
/api/interviews/{id}/completePUT完成面试id
/api/interviews/{id}/hirePUT录用id
/api/interviews/{id}/not-hirePUT不录用id
6.2.7 反馈相关接口
接口方法说明参数
/api/feedbacksGET获取反馈列表-
/api/feedbacksPOST创建反馈userId, content
/api/feedbacks/{id}/readPUT标记已读id
/api/feedbacks/{id}DELETE删除反馈id

6.3 接口响应格式

成功响应:

{
  "success": true,
  "data": {...}
}

错误响应:

{
  "success": false,
  "message": "错误信息"
}

7. 测试说明

7.1 测试环境

  • 操作系统:Windows 10/11
  • 数据库:MySQL 8.0
  • Java版本:JDK 8+
  • Node.js版本:16+
  • 浏览器:Chrome / Edge / Firefox

7.2 功能测试

7.2.1 用户注册测试
  1. 正常注册测试

    • 输入有效的用户名、密码、邮箱
    • 选择角色
    • 验证注册成功
  2. 异常测试

    • 用户名重复
    • 密码为空
    • 邮箱格式错误
7.2.2 用户登录测试
  1. 正常登录测试

    • 输入正确的用户名和密码
    • 验证登录成功
    • 验证角色权限
  2. 异常测试

    • 用户名或密码错误
    • 用户不存在
7.2.3 岗位申请测试
  1. 正常申请测试
    • 浏览岗位
    • 填写简历
    • 提交申请
    • 验证申请状态
7.2.4 企业中心测试
  1. 岗位管理测试

    • 查看已发布岗位
    • 查看申请数量
  2. 申请管理测试

    • 查看岗位申请列表
    • 查看申请人信息
    • 更新申请状态
    • 发送面试邀请
  3. 数据统计测试

    • 查看柱状图展示
    • 验证数据准确性
7.2.5 后台管理测试
  1. 用户管理测试

    • 用户列表查看
    • 用户信息编辑
    • 用户删除
    • 企业账号分配
  2. 企业管理测试

    • 企业列表管理
    • 企业信息编辑
    • 企业删除
  3. 数据统计测试

    • 验证统计数据准确性
    • 测试点击跳转功能

7.3 性能测试

  • 页面加载时间 < 3秒
  • API响应时间 < 1秒
  • 数据库查询优化

7.4 兼容性测试

  • Chrome浏览器
  • Edge浏览器
  • Firefox浏览器
  • 移动端响应式布局

8. 总结与展望

8.1 项目总结

本项目成功实现了一个功能完整的的大学生就业招聘系统,主要成果包括:

  1. 功能完整性

    • 实现了用户注册登录、岗位浏览申请、企业管理、后台管理等核心功能
    • 支持三种用户角色,权限管理清晰
    • 数据统计和可视化功能完善
  2. 技术实现

    • 采用前后端分离架构,代码结构清晰
    • 使用现代化的技术栈,易于维护和扩展
    • RESTful API设计规范
  3. 用户体验

    • 界面美观,操作便捷
    • 响应式设计,支持多端访问
    • 友好的错误提示和交互反馈

8.2 存在的问题

  1. 安全性
    • 密码未加密存储(应使用BCrypt)
    • 缺少JWT Token认证
    • 缺少SQ
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐