基于Vue+Spring Boot校园求职学习平台的设计与实现
2020-12-28顾茗思懿王会鲜
顾茗思懿 王会鲜
摘要:应届毕业生与招聘单位之间一直存在着校园求职难与招聘难这一矛盾冲突。该文通过对毕业生校园求职与招工单位校园招聘的需求进行分析,采用前后端分离的web开发模式,设计了一个基于Vue和Spring Boot的校园求职学习平台,帮助毕业生做好求职准备、减少公司校园招聘成本。该平台实现公司概况介绍、笔试题目参考、论坛经验分享和内推岗申请等核心功能,具有易维护、易拓展、易于实现等优点。
关键词:校园求职;学习平台;Vue;Spring Boot
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2020)33-0094-03
开放科学(资源服务)标识码(OSID):
1 背景
每当提到校园招聘,“求职难、招聘难”便一直是应届毕业生与招聘单位(公司)之间遇到的矛盾冲突问题[1]。学生们普遍无笔试、面试及工作经验,对各公司的概况知之甚少,而各类招聘网站(国内倾向综合类招聘,如牛客网;国外注重社交类招聘,如Linkedln、Milkround)信息分散、资料老旧且无针对性[2J,这些原因导致了招聘单位每年校招都会收到大量无效、不匹配的简历,严重浪费求职学生及招聘单位的资源。为了有效解决这一问题,本文设计和实现了一个基于Vue+ Spring Boot的校园求职学习平台,通过学习、论坛、个人中心功能模块,为学生提供更全面的公司信息与笔试、面试经验分享与讨论的服务,既能多方位提升学生综合能力,也帮助招聘单位在校园招聘时更好、更快选定适合自己的员工,降低人力成本。
2 校园求职学习平台的总体设计
2.1 体系架构设计
本校园求职学习平台使用B/S体系架构,采用前后端主流的轻量级框架[3]进行开发实现,用户只需通过浏览器即可访问、使用本平台。前端负责控制页面跳转、调用接口,通过Yam安装与缓存Vue+ Element UI项目[4],用SASS编写页面样式,并采用axios进行异步请求同步化处理,帮助后端完成许多数据处理工作,减轻服务器压力。后端则负责业务逻辑,通过Maven创建了Spring Boot项目[5],帮助自动安装、管理了许多依赖配置,Spring Boot将Tomcat服务器集成于Web容器中提供核心层服务,包含了控制层、业务层以及数据访问层。这种前后端分离的开发模式不仅可以解耦提高性能和扩展性,还因为分工明确使得能够快速定位到bug,提高开发效率且降低维护成本。最底层则是负责提供数据存储服务的MySQL数据库。本平台体系架构如图1所示。
2.2 功能结构设计
本平台使用涉及三类用户:学生用户、公司用户与管理员。根据各类用户及校园求职学习平台的实际需求,按照模块化思想,将平台按照用户类型及其工作业务流程划分成七大功能模块。学生用户所能使用的功能将是本平台核心功能,包含:以公司信息、面试锦集、他人评价和内推岗模块为核心的学习模块,以帖子模块、评论模块为核心的论坛模块,以及全面管理学生用户个人相关信息及收藏信息的个人中心模块。管理员用户则能对整个平台数据进行维护与管理,主要功能有公司管理(包括公司信息、题库、岗位与简历)、用户管理以及论坛管理(包括帖子与评论)。公司用户则通过管理员用户的授权,对本平台中涉及该公司的所有信息进行相应操作,如更新公司简介、发布招聘岗位、求职简历下载等。
1)注册登录模块。用于验证和判断用户角色。用户需先进行注册,而后使用已注册的账号信息登录至本平台,进入主页面。平台会进行访问拦截,未登录者无法使用平台功能。
2)学习模块。主要以知识卡片形式,围绕公司简洁精炼地展示公司信息概要,并提供他人评价、试题、内推岗投递与邮件提醒等服务。
3)论坛模块。本模块主要包括帖子与评论两大部分。学生用户可进行发帖、搜贴、收藏帖子和发表评论等一系列操作,且为了打造绿色和谐的网络环境,发帖与评论时平台会对发布的内容进行审核。
4)个人中心模块。学生用户可至个人中心查看与完善个人信息、修改密码、上传并下载简历以及查看帖子收藏情况。
5)用户管理模块。管理员可对所有用户进行管理,包括用户的增删查改、角色权限的分配等。
6)公司管理模块。管理员可对公司信息进行管理。公司员工登录后只能查看与编辑本公司信息,包括发布内推岗位及浏览、下载收到的简历等。
7)论坛管理模块。管理员可对论坛帖子、评论等内容进行管理。
图2为本平台學生用户和管理员用户的核心功能及其子功能模块结构。
2.3 数据库的设计
校园求职学习平台的数据库采用MySQL数据库。由于平台数据量会比较大,考虑到数据库后期维护需要,以及数据库运行、搜索效率的稳定保障,数据库设计尽量采用分表设计。本平台涉及实体对象有用户、公司、内推岗、他人评价、试题、简历、帖子和评论,根据其彼此之间联系设计的数据库数据表共有14张,包括用户信息表、公司表、公司类型表、他人评价表、内推岗位表、岗位类型表、公司参考试题与答案表、简历信息表、投递情况表、帖子版块表、帖子基本信息表、帖子内容表、帖子收藏表以及帖子评论表。
3 校园求职学习平台的核心功能模块实现
3.1 注册登录模块
为保障平台的安全性,用户只有登录成功后才能使用平台功能。用户首先需要注册账号。前端可通过定义rules并结合正则表达式对表单字段进行校验,当未输入必填字段或输入有误时,都能及时反馈提示响应信息。注册成功后可使用已注册信息登录至平台首页,为防止用户恶意频繁注册或登录,前端封装了滑块验证组件,需验证通过才能进行下一步操作。若用户忘记密码,可点击“忘记密码”,输入用户名与注册邮箱,通过身份验证后即可成功进入主页。图3为本平台学生用户登录后的主页面,学生用户可在该页面使用导航栏中的所有功能。
3.2 学习模块
本模块的数据是利用Groovy爬虫[6]拉勾网所得,通过Json-Slurper方法对JSON数据进行解析,并转换成ArrayList对象逐条遍历插入数据库。由于公司信息数据量较大,搜索功能使用了Lucene分布式搜索引擎[7],先建立索引再进行分词搜索,能够高性能支持千万级数据搜索量。他人评价功能调用了awe-some-danmaku组件从而以视频弹幕形式播放,便于用户快速浏览。在面试锦集模块中,页面会跳转至该公司试题页面,通过前端v-show语句即可实现答案的隐藏与显示。在内推岗位模块中,点击工作列表即可按岗位所在城市以及岗位类型分类查看内推岗信息,页面效果如图4所示。该模块前端使用了El-ement UI提供的el-radio-group实现城市、类型标签的选择,并通过computed方法绑定计算属性,随着用户选择标签的变化而显示不同的内推岗位。点击“投递简历”后,平台会同时发送邮件提醒公司用户及时查收预览,公司用户可登录平台查看相应投递信息。
3.3 论坛模块
本模块的发帖功能调用了mavon_editor[8]提供的markdown编辑器组件,用户可在左边进行帖子内容的编辑,右边会同步展示编辑效果,使用十分方便。点击“发帖”后,前端会将mark-down的内容转换为html格式传递给后端,而后端接收到内容后,会先接入百度AI提供的内容审核API,对帖子内容包括图片进行过滤审核,内容合规才会将帖子存人数据库并提示发帖成功。
浏览时,用户可输入帖子标题进行关键词模糊搜索或按帖子板块分类找寻想要的帖子并查看详情。收藏帖子的动态效果引入了Font Awesome图标库并结合Animate.css动画库来实现,而评论时的表情包则通过循环列表生成选择框,并利用正则匹配转化将后端存人的表情字符串回显出来。为确保本平台前端打包部署后图片显示正常,需使用require(“路径”)的方式使得Webpack编译后能找到对应的模块组件。
3.4 個人中心模块
在该模块,学生用户可进行修改或完善个人信息(含密码更新)、简历上传、帖子收藏等操作,页面效果如图5所示。在信息修改页面中,地区选择功能使用Element UI的el-cascader来实现二级联动下拉菜单来选择所在城市,前端需先获取后端所提供的JSON格式的城市信息并解析,而后通过getChecked-Nodes方法获取菜单valueld对应的label城市名并显示出来。为防范物理文件感染且方便数据库备份与移植,本平台简历上传功能,会将用户上传的简历转换为二进制流文件,随后进行Base64编码并转换成字符串,再将字符串以BLOB类型存人数据库。
4 结束语
本校园求职学习平台以MySQL作为核心数据库,前端主要通过Vue搭建脚手架并结合Element UI做出响应式布局的平台,后端主要采用Spring Boot框架并结合Maven及MyBatis-Plus来构建项目,不仅简化了开发流程、使代码更模块化,也更便于后期的维护和优化。该平台可以为毕业生和招聘单位提供一个综合信息平台,学生可以了解公司、岗位与面试流程,分享与讨论求职经验,并不断成长进步,进而寻找到合适岗位;招聘单位则可优先进行人才的初步培养和识别,签约理想的人才,并减少不必要的人力、物力资源消耗。在今后的研究过程中,还需要对平台的性能、安全等方面做进一步优化与提升。
参考文献:
[1]刘溢,张洁,黄瀚贤,等.校园网络招聘存在的问题及对策探讨[J].价值工程,2020,39(7):240-242.
[2]刘桢.严峻就业形式下校园招聘困境及对策研究[J].智库时代,2019(42):25,28.
[3]王建,罗政,张希,等.Web项目前后端分离的设计与实现[J].软件工程,2020,23(4):22-24.
[4]吕英华.渐进式JavaScript框架Vue.js的全家桶应用[J].电子技术与软件工程,2019(22):39-40.
[5]王丹,孙晓宇,杨路斌,等,基于SpringBoot的软件统计分析系统设计与实现[J].软件工程,2019,22(3):40-42.
[6]杨哲.基于Groovy的分布式网络爬虫系统的设计与实现[D].成都:西南交通大学,2010.
[7]崔曜华.基于Lucene的分布式搜索引擎的研究与实现[D].南京:东南大学,2018.
[8]王辰,刘晓鑫,曹晓燕,等.基于Vue.js平台的Markdown标记语言插件的研究与实现[J].科技风,2018(35):82,85.
【通联编辑:谢媛媛】
作者简介:顾茗思懿(1998-),女,上海人,本科在读;王会鲜(1980-),女,河南鄢陵人,讲师,博士,主要研究方向为信息系统与数据处理。