项目主要功能:
权限管理模块
- 支持三种角色:管理员、企业、毕业生
- 基于JWT Token的身份认证
- 动态路由权限控制,根据角色动态加载菜单
- 路由守卫和权限白名单机制
个人中心模块
- 三种角色用户展示和修改个人信息
- 头像/Logo上传功能(支持multer文件上传)
- 联系方式管理和密码修改
毕业生信息管理
- 管理员可添加、删除、编辑所有毕业生基本信息
- 毕业生可查询修改自己的信息
- 支持个人照片上传和展示
- 分页列表展示、模糊搜索功能
企业信息管理
- 管理员可管理所有企业信息
- 企业可管理自己的信息和企业Logo
- 包含企业名称、行业、法人、简介等字段
- 支持逻辑删除
企业招聘信息管理
- 企业可发布、修改、删除自己的招聘信息
- 管理员可管理所有企业招聘信息
- 支持发布状态控制(is_published字段)
- 招聘信息包含:职位名称、工作地点、薪资、职责、要求、福利等
毕业生求职信息管理
- 毕业生可创建多个求职信息,设置公开/私密状态
- 管理员可管理所有毕业生求职信息
- 求职信息包含:实习经历、技能、项目经验、自我介绍、求职意向
- 支持简历附件上传
招聘信息浏览模块
- 公开浏览所有已发布的招聘信息
- 分页展示,包含企业Logo和公司名称
- 支持关键字搜索和筛选
技术栈说明:
前端技术栈:
- Vue 2.6.10
- ElementUI 2.15.0
- Vue Router 3.0.6(路由管理)
- Vuex 3.1.0(状态管理)
- Axios 0.18.1(HTTP请求)
- NProgress(进度条)
- js-cookie(Cookie管理)
- WangEditor(富文本编辑器)
- Echarts 5.1.2(数据可视化)
后端技术栈:
- Node.js 16.0+
- Express 4.16.1(Web框架)
- JWT 9.0.2(身份认证)
- Redis 3.1.2(缓存)
- MySQL2 3.6.5(数据库驱动)
- Multer 1.4.5(文件上传)
- CORS(跨域处理)
- Morgan(日志记录)
数据库设计:
- administrators(管理员表)
- graduates(毕业生表)
- companies(企业表)
- job_applications(求职信息表)
- job_postings(招聘信息表)
- 使用逻辑删除
- 采用InnoDB引擎,支持事务
环境要求:
- Node.js 16.0或更高版本
- MySQL 5.7+
- Redis 4.0+(可选,用于缓存)
- 现代浏览器(Chrome、Firefox、Safari最新两个版本,IE10+)
安装部署步骤:
- 克隆项目代码到本地
- 配置后端:进入graduate-employment-server目录修改config.js中的MySQL和Redis连接配置运行npm install安装依赖在MySQL中执行grad_emp_db.sql文件创建数据库和表结构运行npm run start启动服务端(默认端口3000)
- 配置前端:进入graduate-employment-client目录运行npm install安装依赖运行npm run dev启动开发服务器(默认端口9528)
- 生产部署:前端构建:npm run build:prod使用Nginx部署前端静态资源使用PM2管理后端进程
使用说明:
系统提供三种角色的测试账号:
- 管理员账号:账号:root / 密码:root123456权限:可管理所有毕业生、企业、招聘信息、求职信息
- 毕业生账号:账号:zhangsan / 密码:123456权限:可管理自己的个人信息和求职信息,浏览招聘信息
- 企业账号:账号:newcompany123 / 密码:newpassword123权限:可管理自己的企业信息和招聘信息,浏览毕业生求职信息
各角色登录后,系统会根据JWT Token中的角色信息动态加载对应的菜单和权限,实现数据隔离和访问控制。
