毕业设计救星!实习就业管理系统完整开发流程|知码帮出品
2026年1月17日156 阅读约 25 分钟阅读
毕业生实习与就业管理系统
一个基于 Spring Boot + Vue.js 的毕业生实习与就业信息管理系统
📋 项目简介
本系统是一个面向高校毕业生的实习与就业信息综合管理平台,旨在为学校、学生、企业和教师提供一个高效的信息交流和管理工具。系统支持学生实习信息登记、就业信息追踪、企业信息管理以及多角色公告发布等功能。
系统特色
- 🎓 多角色管理:支持管理员、学生、老师、企业四种角色
- 📊 数据可视化:使用 ECharts 实现数据统计图表展示
- 📝 富文本编辑:集成 Quill 富文本编辑器,支持内容排版
- 📤 批量导入:支持 Excel 批量导入实习、就业信息
- 🔐 权限控制:基于角色的访问控制,保障数据安全
- 💾 文件管理:支持文件上传下载,便于存档管理
🏗️ 技术架构
后端技术栈
| 技术 | 版本 | 说明 |
|---|---|---|
| Spring Boot | 2.2.2 | 核心框架 |
| MyBatis-Plus | 2.3 | ORM 框架 |
| MySQL | 5.7+ | 数据库 |
| Apache Shiro | 1.3.2 | 权限控制框架 |
| FastJSON | 1.2.8 | JSON 处理 |
| Apache POI | 3.9 | Excel 文件处理 |
| Hutool | 4.0.12 | Java 工具类库 |
| Baidu AI SDK | 4.4.1 | 百度人工智能接口 |
| Maven | - | 项目构建工具 |
前端技术栈
| 技术 | 版本 | 说明 |
|---|---|---|
| Vue.js | 2.6.10 | 前端框架 |
| Element UI | 2.13.0 | UI 组件库 |
| Axios | 0.19.2 | HTTP 请求库 |
| Vue Router | 3.1.5 | 路由管理 |
| ECharts | 4.6.0 | 数据可视化 |
| Quill Editor | 3.0.6 | 富文本编辑器 |
| Vue QR | 3.2.2 | 二维码生成 |
| Vue JSON Excel | 0.3.0 | Excel 导出 |
系统架构
前端(Vue.js + Element UI)
↓
RESTful API
↓
后端(Spring Boot)
├── Controller 层(接口层)
├── Service 层(业务逻辑层)
├── Dao 层(数据访问层)
└── Entity 层(实体层)
↓
MyBatis-Plus
↓
MySQL 数据库
📁 项目结构
springboot297毕业生实习与就业管理系统的设计与实现/
├── internship/ # 主项目目录
│ ├── src/main/
│ │ ├── java/com/
│ │ │ ├── ServletContextListener/ # 监听器
│ │ │ ├── annotation/ # 自定义注解
│ │ │ ├── config/ # 配置类
│ │ │ │ ├── InterceptorConfig.java # 拦截器配置
│ │ │ │ ├── MyMetaObjectHandler.java # MyBatis-Plus 字段自动填充
│ │ │ │ └── MybatisPlusConfig.java # MyBatis-Plus 配置
│ │ │ ├── controller/ # 控制器层
│ │ │ │ ├── CommonController.java # 通用接口
│ │ │ │ ├── XueshengController.java # 学生管理
│ │ │ │ ├── LaoshiController.java # 老师管理
│ │ │ │ ├── QiyeController.java # 企业管理
│ │ │ │ ├── ShixiController.java # 实习信息管理
│ │ │ │ ├── JiuyeController.java # 就业信息管理
│ │ │ │ ├── GonggaoLaoshiController.java # 老师公告管理
│ │ │ │ └── GonggaoQiyeController.java # 企业公告管理
│ │ │ ├── dao/ # 数据访问层
│ │ │ ├── entity/ # 实体类
│ │ │ │ ├── model/ # 数据模型
│ │ │ │ ├── view/ # 视图实体
│ │ │ │ └── vo/ # 值对象
│ │ │ ├── interceptor/ # 拦截器
│ │ │ ├── service/ # 业务逻辑层
│ │ │ │ └── impl/ # 业务实现
│ │ │ ├── utils/ # 工具类
│ │ │ │ ├── BaiduUtil.java # 百度 AI 工具
│ │ │ │ ├── FileUtil.java # 文件处理工具
│ │ │ │ ├── PoiUtil.java # Excel 处理工具
│ │ │ │ └── R.java # 统一返回结果
│ │ │ └── InternShipApplication.java # 启动类
│ │ └── resources/
│ │ ├── admin/admin/ # 前端项目
│ │ │ ├── src/ # Vue 源码
│ │ │ ├── dist/ # 编译后文件
│ │ │ ├── package.json # 前端依赖配置
│ │ │ └── vue.config.js # Vue 配置文件
│ │ ├── mapper/ # MyBatis XML 映射文件
│ │ └── application.yml # 应用配置文件
│ ├── pom.xml # Maven 配置文件
│ └── target/ # 编译输出目录
├── db.sql # 数据库脚本
├── 说明文档.txt # 系统说明
└── README.md # 项目说明文档
🎯 核心功能
1. 用户管理模块
1.1 学生管理
- 学生信息注册与维护
- 个人信息管理(姓名、学号、院系、班级、联系方式等)
- 身份证号、邮箱等关键信息录入
- 头像上传功能
1.2 教师管理
- 教师信息注册与维护
- 个人资料管理
- 联系方式维护
- 教师账号权限管理
1.3 企业管理
- 企业信息注册与审核
- 企业资料维护(企业名称、地址、行业类型)
- 企业联系方式管理
- 企业详情介绍
2. 实习信息管理模块
- 实习信息录入:学生或管理员录入实习相关信息
- 实习企业关联:实习信息与企业信息关联
- 实习时间管理:记录实习开始、结束时间
- 实习岗位信息:记录实习岗位名称
- 实习评价:实习结果评定(好/一般/差劲)
- 实习详情:支持富文本格式的实习详情描述
- 批量导入:支持 Excel 批量导入实习信息
- 数据查询:多条件组合查询实习记录
3. 就业信息管理模块
- 就业信息录入:学生就业信息登记
- 就业企业关联:就业信息与企业信息绑定
- 入职时间记录:记录学生入职时间
- 就业岗位信息:记录就业岗位名称
- 相关文件上传:支持上传就业协议、合同等文件
- 就业备注:支持富文本格式的就业备注信息
- 批量导入:支持 Excel 批量导入就业信息
- 统计分析:就业率统计、行业分布分析
4. 公告管理模块
4.1 教师公告
- 教师发布公告通知
- 公告类型分类管理
- 公告详情富文本编辑
- 公告发布时间记录
- 学生查看教师公告
4.2 企业公告
- 企业发布招聘信息
- 企业通知公告
- 公告类型分类
- 公告详情展示
- 学生浏览企业公告
5. 系统管理模块
- 数据字典管理:管理系统中的各类字典数据(性别、院系、班级、行业等)
- 配置管理:系统参数配置
- 文件管理:统一文件上传下载管理
- 日志管理:操作日志记录与查询
6. 权限控制
- 角色权限:
- 管理员:全部功能权限
- 学生:查看公告、维护个人信息、录入实习就业信息
- 教师:发布公告、查看学生实习就业信息
- 企业:发布公告、查看相关学生实习就业信息
- 数据权限:各角色只能查看和操作自己权限范围内的数据
- 接口权限:基于 Token 的接口访问控制
💾 数据库设计
核心数据表
| 表名 | 说明 | 主要字段 |
|---|---|---|
xuesheng | 学生信息表 | id, 账号, 密码, 姓名, 手机号, 身份证号, 院系, 班级, 邮箱 |
laoshi | 教师信息表 | id, 账号, 密码, 姓名, 手机号, 身份证号, 性别, 邮箱 |
qiye | 企业信息表 | id, 账号, 密码, 企业名称, 地址, 联系方式, 行业类型, 详情 |
shixi | 实习信息表 | id, 学生id, 企业id, 实习名称, 类型, 开始/结束时间, 结果, 岗位, 详情 |
jiuye | 就业信息表 | id, 学生id, 企业id, 入职时间, 岗位, 相关文件, 备注 |
gonggao_laoshi | 教师公告表 | id, 教师id, 公告名称, 类型, 发布时间, 内容 |
gonggao_qiye | 企业公告表 | id, 企业id, 公告名称, 类型, 发布时间, 内容 |
dictionary | 数据字典表 | id, 字段编码, 字段名, 编码索引, 编码名称, 父级id, 备注 |
config | 系统配置表 | id, 参数名称, 参数值 |
token | 令牌表 | id, 用户id, 用户名, 表名, 角色, token, 过期时间 |
users | 管理员表 | id, 用户名, 密码, 角色 |
🚀 快速开始
环境要求
- JDK 1.8+
- Maven 3.6+
- MySQL 5.7+
- Node.js 12+ (前端开发)
- IDE:IntelliJ IDEA / Eclipse
后端部署
1. 数据库初始化
-- 创建数据库
CREATE DATABASE biyeshengshixiyujiuye DEFAULT CHARACTER SET utf8;
-- 导入数据
-- 执行项目根目录下的 db.sql 文件
2. 修改配置文件
编辑 src/main/resources/application.yml:
spring:
datasource:
url: jdbc:mysql://localhost:3306/biyeshengshixiyujiuye?useUnicode=true&characterEncoding=utf-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8
username: root # 修改为你的数据库用户名
password: 123456 # 修改为你的数据库密码
3. 启动后端服务
# 进入项目目录
cd internship
# Maven 打包
mvn clean package
# 运行项目
mvn spring-boot:run
或者在 IDE 中直接运行 InternShipApplication.java 主类。
后端服务启动成功后,访问地址:http://localhost:8080/biyeshengshixiyujiuye
前端部署
开发模式
# 进入前端目录
cd internship/src/main/resources/admin/admin
# 安装依赖
npm install
# 或使用提供的批处理文件
1-install.bat
# 启动开发服务器
npm run serve
# 或使用提供的批处理文件
2-run.bat
生产构建
# 构建生产环境代码
npm run build
# 或使用提供的批处理文件
3-build.bat
构建完成后,访问:http://localhost:8080/biyeshengshixiyujiuye/admin/dist/index.html
👥 默认账号
| 角色 | 账号 | 密码 |
|---|---|---|
| 管理员 | admin | admin |
| 老师 | a1 | 123456 |
| 老师 | a2 | 123456 |
| 老师 | a3 | 123456 |
| 企业 | a1 | 123456 |
| 企业 | a2 | 123456 |
| 企业 | a3 | 123456 |
| 学生 | a1 | 123456 |
| 学生 | a2 | 123456 |
| 学生 | a3 | 123456 |
📸 系统截图
建议使用 Google Chrome 浏览器访问系统
登录页面
访问地址:http://localhost:8080/biyeshengshixiyujiuye/admin/dist/index.html
功能页面
- 学生信息管理页面
- 实习信息管理页面
- 就业信息管理页面
- 公告管理页面
- 企业信息管理页面
- 数据统计页面
🔧 开发说明
API 接口规范
所有接口返回统一的数据格式:
{
"code": 0, // 0: 成功, 其他: 失败
"msg": "操作成功", // 提示信息
"data": {} // 返回数据
}
主要接口列表
| 模块 | 接口路径 | 说明 |
|---|---|---|
| 学生 | /xuesheng/page | 分页查询学生列表 |
| 学生 | /xuesheng/save | 新增学生 |
| 学生 | /xuesheng/update | 更新学生信息 |
| 实习 | /shixi/page | 分页查询实习信息 |
| 实习 | /shixi/save | 新增实习信息 |
| 实习 | /shixi/update | 更新实习信息 |
| 就业 | /jiuye/page | 分页查询就业信息 |
| 就业 | /jiuye/save | 新增就业信息 |
| 就业 | /jiuye/update | 更新就业信息 |
| 公告 | /gonggao_xxx/page | 分页查询公告列表 |
文件上传说明
- 上传路径:
src/main/webapp/upload/ - 文件命名:请避免使用中文命名文件
- 支持格式:图片(jpg, png)、文档(doc, pdf)、压缩包(rar, zip)
批量导入说明
- 导入格式:仅支持
.xls格式的 Excel 文件 - 导入接口:
/xxx/batchInsert - 模板要求:第一行为表头,从第二行开始为数据
📝 注意事项
- 数据库配置:部署前请确保数据库连接信息正确
- 端口占用:默认使用 8080 端口,如有冲突请修改配置文件
- 文件路径:上传的文件名避免使用中文,防止乱码
- 浏览器兼容:推荐使用 Chrome 浏览器,IE 浏览器可能存在兼容性问题
- 数据安全:生产环境请修改默认密码并做好数据备份
- 权限管理:不同角色登录后只能访问对应权限的功能
🛠️ 常见问题
1. 数据库连接失败
- 检查 MySQL 服务是否启动
- 确认数据库连接配置是否正确
- 检查数据库用户权限
2. 前端页面无法访问
- 确认后端服务已启动
- 检查前端构建是否成功
- 查看浏览器控制台错误信息
3. 文件上传失败
- 检查 upload 目录是否存在且有写权限
- 确认文件大小是否超过限制(默认 1000MB)
- 检查文件格式是否支持
4. 登录后页面空白
- 清除浏览器缓存
- 检查 Token 是否正常生成
- 查看后端日志排查错误
📮 联系方式
如有问题或建议,欢迎联系:
📧 公众号: [程序员阿金]
最后更新于 2026/2/22