大学生就业信息管理系统
Vue3 + Express + MySQL 大学生就业信息管理系统,学生端求职投递、企业端招聘发布、管理员端数据统计三端分离,覆盖简历、面试、合同签署全流程。
项目封面

项目概览
大学生就业信息管理系统毕业设计面向高校就业服务场景,学生可浏览职位、投递简历、查看面试与合同;企业可发布职位与管理应聘;管理员端集成 ECharts 统计与富文本新闻公告。JWT 认证保障三端安全访问,是典型教务信息化毕业设计选题。
项目说明
大学生就业信息管理系统
项目简介
这是一个面向高校大学生的就业信息管理系统,采用前后端分离架构,实现了学生求职、企业招聘、管理员后台管理三端功能。系统涵盖职位发布、简历管理、面试安排、合同签署、就业指南等完整的就业服务流程,适合作为计算机设计或学习项目参考。
技术栈
| 技术 | 版本/说明 |
|---|---|
| 前端框架 | Vue 3.5.10 |
| 构建工具 | Vite 5.4.19 |
| UI组件库 | Element Plus 2.9.10 |
| 状态管理 | Pinia 2.3.1 |
| 路由管理 | Vue Router 4.5.0 |
| HTTP请求 | Axios 1.9.0 |
| 图表库 | ECharts 5.6.0 |
| 富文本编辑器 | Quill 2.0.3 |
| 后端框架 | Express 4.16.1 |
| 数据库 | MySQL 5.7+ |
| 数据库驱动 | mysql2 3.14.1 |
| 身份认证 | JWT (jsonwebtoken 9.0.2) |
| 密码加密 | bcryptjs 2.4.3 |
| 文件上传 | Multer |
项目特点
- 三端分离:学生端、企业端、管理员端独立设计,功能清晰
- 完整业务流程:涵盖从职位发布到合同签署的完整就业流程
- 数据可视化:管理员首页集成ECharts图表展示统计数据
- 富文本支持:新闻、公告等内容支持富文本编辑
- JWT认证:基于Token的身份认证机制,安全可靠
- 响应式设计:基于Element Plus的现代化UI界面
功能模块
1. 学生端功能
1.1 首页模块 (views/student/Home.vue)
- 轮播图展示
- 最新公告通知
- 热门职位推荐
- 就业新闻资讯
1.2 职位浏览模块 (views/student/Jobs.vue)
- 职位列表展示
- 职位搜索筛选
- 职位详情查看
- 简历投递功能
1.3 公告通知模块 (views/student/Notice.vue)
- 系统公告列表
- 公告详情查看
1.4 新闻资讯模块 (views/student/News.vue)
- 就业新闻列表
- 新闻分类浏览
- 新闻详情阅读
1.5 就业指南模块 (views/student/Guide.vue)
- 求职技巧文章
- 面试指导内容
- 职业规划建议
1.6 个人中心模块 (views/student/My.vue)
- 个人信息管理
- 简历编辑维护
- 面试记录查看
- 合同签署管理
2. 企业端功能
2.1 企业首页 (views/company/Home.vue)
- 数据统计概览
- 待处理事项提醒
2.2 企业信息管理 (views/company/Info.vue)
- 企业资料编辑
- 营业执照上传
- 企业认证申请
2.3 职位管理 (views/company/Jobs.vue)
- 职位发布
- 职位编辑/删除
- 职位状态管理
- 收到的简历查看
2.4 面试管理 (views/company/Interview.vue)
- 面试安排
- 面试时间/地点设置
- 面试结果反馈
- 面试状态更新
2.5 合同管理 (views/company/Contract.vue)
- 合同生成
- 合同发送
- 合同状态跟踪
3. 管理员端功能
3.1 数据统计首页 (views/admin/Home.vue)
- 用户统计图表
- 职位统计图表
- 面试/合同统计
- 系统运营数据
3.2 用户管理 (views/admin/User.vue)
- 学生账号管理
- 企业账号管理
- 账号状态控制
3.3 企业审核 (views/admin/Company.vue)
- 企业认证审核
- 审核意见填写
- 审核状态管理
3.4 职位管理 (views/admin/Jobs.vue)
- 全部职位查看
- 职位审核管理
- 职位状态控制
3.5 简历管理 (views/admin/Resume.vue)
- 学生简历查看
- 简历状态管理
3.6 面试管理 (views/admin/Interview.vue)
- 面试记录查看
- 面试数据统计
3.7 合同管理 (views/admin/Contract.vue)
- 合同记录查看
- 合同数据统计
3.8 内容管理
- 轮播图管理 (
views/admin/Carousel.vue) - 公告管理 (
views/admin/Notice.vue) - 新闻管理 (
views/admin/News.vue) - 就业指南管理 (
views/admin/Guide.vue)
3.9 个人设置 (views/admin/Profile.vue)
- 管理员信息修改
- 密码修改
项目结构
student-work-web-pc/
├── express/ # 后端服务
│ ├── bin/ # 启动脚本
│ │ └── www # 服务入口
│ ├── config/ # 配置文件
│ │ └── db.js # 数据库配置
│ ├── controllers/ # 控制器层
│ ├── routes/ # 路由层
│ │ ├── admin/ # 管理员端路由
│ │ │ ├── alldata.js # 统计数据接口
│ │ │ ├── carousel.js # 轮播图管理
│ │ │ ├── company.js # 企业管理
│ │ │ ├── contract.js # 合同管理
│ │ │ ├── guide.js # 就业指南管理
│ │ │ ├── interview.js # 面试管理
│ │ │ ├── job.js # 职位管理
│ │ │ ├── news.js # 新闻管理
│ │ │ ├── notice.js # 公告管理
│ │ │ └── resume.js # 简历管理
│ │ ├── company/ # 企业端路由
│ │ │ ├── alldata.js # 统计数据
│ │ │ ├── company.js # 企业信息
│ │ │ ├── contract.js # 合同管理
│ │ │ ├── interview.js # 面试管理
│ │ │ ├── job.js # 职位管理
│ │ │ ├── profile.js # 个人设置
│ │ │ └── resume.js # 简历查看
│ │ ├── student/ # 学生端路由
│ │ │ ├── carousel.js # 轮播图
│ │ │ ├── contract.js # 合同
│ │ │ ├── guide.js # 就业指南
│ │ │ ├── interview.js # 面试
│ │ │ ├── job.js # 职位
│ │ │ ├── news.js # 新闻
│ │ │ ├── notice.js # 公告
│ │ │ └── resume.js # 简历
│ │ ├── user.js # 用户认证
│ │ └── upload.js # 文件上传
│ ├── services/ # 服务层
│ ├── util/ # 工具函数
│ ├── public/ # 静态资源
│ │ └── images/ # 上传图片存储
│ ├── app.js # Express应用入口
│ └── package.json # 后端依赖配置
│
├── web/ # 前端项目
│ ├── src/
│ │ ├── api/ # API接口封装
│ │ ├── assets/ # 静态资源
│ │ ├── components/ # 公共组件
│ │ ├── router/ # 路由配置
│ │ │ └── index.js # 路由定义
│ │ ├── stores/ # Pinia状态管理
│ │ ├── styles/ # 全局样式
│ │ ├── views/ # 页面视图
│ │ │ ├── admin/ # 管理员端页面
│ │ │ │ ├── AdminLayout.vue
│ │ │ │ ├── Home.vue
│ │ │ │ ├── User.vue
│ │ │ │ ├── Company.vue
│ │ │ │ ├── Jobs.vue
│ │ │ │ ├── Resume.vue
│ │ │ │ ├── Interview.vue
│ │ │ │ ├── Contract.vue
│ │ │ │ ├── Carousel.vue
│ │ │ │ ├── Notice.vue
│ │ │ │ ├── News.vue
│ │ │ │ ├── Guide.vue
│ │ │ │ └── Profile.vue
│ │ │ ├── company/ # 企业端页面
│ │ │ │ ├── CompanyLayout.vue
│ │ │ │ ├── Home.vue
│ │ │ │ ├── Info.vue
│ │ │ │ ├── Jobs.vue
│ │ │ │ ├── Interview.vue
│ │ │ │ └── Contract.vue
│ │ │ ├── student/ # 学生端页面
│ │ │ │ ├── Layout.vue
│ │ │ │ ├── Home.vue
│ │ │ │ ├── Jobs.vue
│ │ │ │ ├── Notice.vue
│ │ │ │ ├── News.vue
│ │ │ │ ├── Guide.vue
│ │ │ │ └── My.vue
│ │ │ ├── Login.vue # 登录页
│ │ │ └── Register.vue # 注册页
│ │ ├── App.vue # 根组件
│ │ └── main.js # 入口文件
│ ├── public/ # 公共资源
│ ├── index.html # HTML模板
│ ├── vite.config.js # Vite配置
│ └── package.json # 前端依赖配置
│
├── student_work_db.sql # 数据库初始化脚本
├── 数据库创建方法.md # 数据库创建说明
├── mysql操作手册.md # MySQL操作指南
└── 新 - 运行必读.docx # 运行说明文档
数据模型
用户表 (user)
{
id: bigint, // 用户ID
username: varchar(50), // 用户名
password: varchar(100), // 密码(加密存储)
name: varchar(50), // 姓名
phone: varchar(20), // 手机号
email: varchar(100), // 邮箱
role: varchar(20), // 角色:admin/student/company
avatar: varchar(1000), // 头像
status: varchar(20), // 状态:正常/禁用
last_login: datetime, // 最后登录时间
create_time: datetime, // 创建时间
update_time: datetime // 更新时间
}
企业表 (company)
{
id: bigint, // 企业ID
user_id: bigint, // 关联用户ID
name: varchar(100), // 企业名称
license: varchar(200), // 营业执照
licenseNo: varchar(200), // 统一社会信用代码
industry: varchar(50), // 所属行业
scale: varchar(50), // 企业规模
address: varchar(200), // 企业地址
description: text, // 企业简介
website: varchar(200), // 企业网站
status: varchar(20), // 状态:待审核/已通过/已拒绝
remark: varchar(1000), // 审核意见
create_time: datetime, // 创建时间
update_time: datetime // 更新时间
}
职位表 (job)
{
id: bigint, // 职位ID
company_id: bigint, // 企业ID
company_name: varchar, // 公司名称
title: varchar(100), // 职位名称
category: varchar(50), // 职位类别
salary_min: int, // 最低薪资
salary_max: int, // 最高薪资
education: varchar(20), // 学历要求
experience: varchar(20), // 经验要求
description: text, // 职位描述
requirement: text, // 任职要求
address: text, // 工作地点
status: varchar(20), // 状态:招聘中/已结束
create_time: datetime, // 创建时间
update_time: datetime // 更新时间
}
简历表 (resume)
{
id: bigint, // 简历ID
user_id: bigint, // 用户ID
name: varchar(50), // 姓名
gender: varchar(10), // 性别
birth: date, // 出生日期
phone: varchar(20), // 手机号
email: varchar(100), // 邮箱
education: varchar(20), // 学历
school: varchar(100), // 学校
major: varchar(100), // 专业
graduation_time: date, // 毕业时间
skills: text, // 技能特长
experience: text, // 实习经历
project: text, // 项目经历
status: varchar(20), // 状态:草稿/已发布
create_time: datetime, // 创建时间
update_time: datetime // 更新时间
}
面试表 (interview)
{
id: bigint, // 面试ID
job_id: bigint, // 职位ID
resume_id: bigint, // 简历ID
company_id: bigint, // 企业ID
user_id: bigint, // 学生ID
student_name: varchar, // 学生姓名
time: datetime, // 面试时间
address: varchar(200), // 面试地点
type: varchar(20), // 面试类型:现场面试/视频面试
status: varchar(20), // 状态:待面试/审核通过/已通过/未通过
feedback: text, // 面试反馈
create_time: datetime, // 创建时间
update_time: datetime // 更新时间
}
合同表 (contract)
{
id: bigint, // 合同ID
job_id: bigint, // 职位ID
company_id: bigint, // 企业ID
user_id: bigint, // 学生ID
company_name: varchar, // 公司名称
student_name: varchar, // 学生姓名
title: varchar(100), // 合同标题
content: text, // 合同内容
salary: int, // 薪资
start_date: date, // 开始日期
end_date: date, // 结束日期
status: varchar(20), // 状态:待签署/已签署/已拒绝
sign_time: datetime, // 签订时间
create_time: datetime, // 创建时间
update_time: datetime // 更新时间
}
其他数据表
- 轮播图表 (carousel):首页轮播图管理
- 公告表 (notice):系统公告通知
- 新闻表 (news):就业新闻资讯
- 就业指南表 (guide):求职技巧、面试指导等内容
- 登录日志表 (login_log):用户登录记录
运行环境要求
- Node.js:16.0.0 及以上版本
- MySQL:5.7 及以上版本
- npm/pnpm:包管理工具
快速开始
1. 数据库配置
- 创建数据库
CREATE DATABASE student_work_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
- 导入数据库脚本
mysql -u root -p student_work_db < student_work_db.sql
- 修改数据库配置
编辑
express/config/db.js,配置数据库连接信息:
{
host: 'localhost',
user: 'root',
password: '你的密码',
database: 'student_work_db'
}
2. 启动后端服务
# 进入后端目录
cd express
# 安装依赖
npm install
# 或使用 pnpm
pnpm install
# 启动开发服务器
npm run dev
后端服务默认运行在 http://localhost:5002
3. 启动前端项目
# 进入前端目录
cd web
# 安装依赖
npm install
# 或使用 pnpm
pnpm install
# 启动开发服务器
npm run dev
前端项目默认运行在 http://localhost:5173
4. 访问系统
- 学生端首页:
http://localhost:5173/ - 企业端首页:
http://localhost:5173/company - 管理员后台:
http://localhost:5173/admin
预置测试账号
| 角色 | 用户名 | 密码 | 说明 |
|---|---|---|---|
| 管理员 | admin | 123456 | 系统管理员账号 |
| 学生 | zhangsan | 123456 | 测试学生账号 |
| 企业 | 家里蹲科技 | 123456 | 测试企业账号 |
API接口说明
用户认证接口
| 接口 | 方法 | 说明 |
|---|---|---|
| /api/user/login | POST | 用户登录 |
| /api/user/register | POST | 用户注册 |
| /api/user/info | GET | 获取用户信息 |
学生端接口 (/api/student/*)
| 接口 | 方法 | 说明 |
|---|---|---|
| /api/student/carousel | GET | 获取轮播图 |
| /api/student/notice | GET | 获取公告列表 |
| /api/student/news | GET | 获取新闻列表 |
| /api/student/job | GET | 获取职位列表 |
| /api/student/guide | GET | 获取就业指南 |
| /api/student/resume | POST/PUT | 简历管理 |
| /api/student/interview | GET | 获取面试记录 |
| /api/student/contract | GET/PUT | 合同管理 |
企业端接口 (/api/company/*)
| 接口 | 方法 | 说明 |
|---|---|---|
| /api/company/info | GET/PUT | 企业信息管理 |
| /api/company/job | CRUD | 职位管理 |
| /api/company/resume | GET | 查看收到的简历 |
| /api/company/interview | CRUD | 面试管理 |
| /api/company/contract | CRUD | 合同管理 |
管理员接口 (/api/admin/*)
| 接口 | 方法 | 说明 |
|---|---|---|
| /api/admin/alldata | GET | 统计数据 |
| /api/admin/user | CRUD | 用户管理 |
| /api/admin/company | CRUD | 企业管理 |
| /api/admin/job | CRUD | 职位管理 |
| /api/admin/carousel | CRUD | 轮播图管理 |
| /api/admin/notice | CRUD | 公告管理 |
| /api/admin/news | CRUD | 新闻管理 |
| /api/admin/guide | CRUD | 就业指南管理 |
扩展建议
如需进一步完善项目,可考虑以下扩展:
- 消息通知系统:添加站内消息、邮件通知功能
- 简历模板:提供多种简历模板供学生选择
- 智能推荐:基于学生简历智能推荐匹配职位
- 在线沟通:企业与学生的即时通讯功能
- 数据导出:支持简历、合同等数据导出为PDF
- 移动端适配:开发小程序或移动端H5版本
- 第三方登录:接入微信、QQ等第三方登录
- 数据统计报表:更丰富的数据分析和报表功能
- 权限管理:更细粒度的角色权限控制
- 日志审计:完善的操作日志记录
注意事项
- 本项目为学习演示项目,部分功能可能需要根据实际需求完善
- 生产环境部署时请修改JWT密钥和数据库密码
- 上传文件存储路径需要根据服务器环境配置
- 建议使用HTTPS协议保障数据传输安全
许可证
本项目仅供学习交流使用,请勿用于商业用途。
获取完整源码
技术分类
包含内容
适合方向
适合 Vue3 全栈、高校信息化类毕业设计;也适合人力资源/就业服务系统课程设计。熟悉 Element Plus、Pinia 与 Express RESTful API 的同学可直接参考。
关于 AI源码
AI源码 整理计算机毕业设计、课程设计向的可运行项目参考,含说明文档与演示材料。完整源码请通过联系方式沟通获取。
相关推荐
查看全部 →
学生考勤管理系统
Spring Boot+Vue2 学生考勤管理系统,实现请假申请审批、考勤记录管理与 ECharts 统计可视化,采用 Shiro+JWT 权限认证,支持 Excel 批量导入导出,适合 Java 高校管理类毕业设计。

学生成绩管理系统
基于 Spring Boot + Vue 2 的学生成绩管理系统毕业设计,支持学业、德育、体育与智育多维度成绩录入、Excel 导入导出与 ECharts 可视化统计,含管理员、教师、学生三角色权限。

学生信息管理系统
轻量级 Spring Boot + Vue 学生信息管理系统毕业设计,提供学生档案增删改查、Shiro 权限控制、Swagger 接口文档与定时任务,前后端分离架构清晰易二次开发。

高校查分系统
高校查分系统毕业设计,Vue 3 + Vite + Element Plus + Express + MySQL,管理员/教师/学生三角色,支持成绩录入发布、Excel 导入导出与 ECharts 可视化。

高校选课系统
Vue3 + Express + MySQL 高校选课管理系统,支持超级管理员、普通管理员、教师、学生四角色,涵盖院系、专业、班级、课程与选课全流程及动态菜单权限。

实验室设备借用系统
Vue3 + Express + MySQL 实验室设备借用管理平台,支持设备分类树、借用申请审批、实验室管理、个人借用记录与 ECharts 数据统计。