【维普】软件工程-基于微信小程序的在线招聘系统的设计与实现_第1页
【维普】软件工程-基于微信小程序的在线招聘系统的设计与实现_第2页
【维普】软件工程-基于微信小程序的在线招聘系统的设计与实现_第3页
【维普】软件工程-基于微信小程序的在线招聘系统的设计与实现_第4页
【维普】软件工程-基于微信小程序的在线招聘系统的设计与实现_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于微信小程序的在线招聘系统的设计与实现目录绪论1.1研究背景随着计算机技术的发展和互联网的普及,网上招聘已经成为了许多求职者以及大学毕业生的主要求职途径。相较于传统的招聘方式,网络招聘突破了时间和地域的限制,使得地方招聘信息不在局限与小部分群体,招聘者能够寻找更多的人才,而求职者也能查阅更多的岗位信息。除此之外,网络招聘还降低了传统招聘成本[1],线上简历以及线上测验减少了纸质材料的浪费,同时网络招聘还提供了线上聊天功能,增强了求职者与招聘者之间的沟通与交流。在数字经济时代,大学生要面对新的就业形势、复杂的就业行情和激烈的竞争[2],而在新冠疫情的影响下,求职者线下投递求职以及企业招聘者线下面试录取都受到了一定的阻碍,在线招聘在求职者与招聘者的高效挂钩扮演着愈发重要的角色。本课题设计的就是这么一项在线招聘系统,目的在于充分发挥网络技术的发展在招聘求职方面所带来的高效便利,给予招聘者与求职者沟通平台,

用人单位借助互联网发布招聘信息,应聘者在线投递简历,通过交流,让双方能够更好地互相了解。通过网络扩大招聘信息的获取和传达,通过算法实现人才或岗位推送,让求职者能够拥有更多的选择,找到自己心仪的岗位,同时能让企业能够挖掘想要的人才,缓解并减少新冠疫情在求职招聘所带来的不利影响,降低成本。1.2国内外研究现状网络招聘源自于美国,凭借其方便快捷的招聘方式,已成为很多国家筛选人才的首要选择[3]。Breaugh学者(2008)以及Schuler学者(2006)认为企业招聘方式及途径等行为方式对应聘人员的影响颇深,企业招聘人员应充分认识业务部门与外部环境的密切联系,企业开放自己,拥抱社会,才是一个企业正确发展方式,而在线招聘就提供了一个良好的机会。国外研究表明,面对竞争力激烈的社会,网络招聘不仅能为能力弱的人提供机会,还可以为能力强的人提高更好的选择。对于国内来说,在线招聘方式虽然起步较晚,但非常重视,并且取得了优异的成绩。据艾瑞统计数据显示[4],2018年中国网络招聘市场收入达到91.2亿元,增速高达到31%。观察2010年~2020年中国网络招聘市场营收规模可知,2016年以后,中国网络招聘市场营收规模呈显著上升趋势[5]。2020年底全国有近28000个招聘网站,通过网络发布岗位招聘信息超过16亿条,发布求职信息超过8亿条[6]。,而传统招聘模式成本高、人才招聘难度大、人才缺口明显等,已成为制约人才资源有效流动的现实难题[7]。习近平同志在中央人才工作会议上强调,深入实施新时代人才强国战略,加快建设世界重要人才中心和创新高地。千秋基业,人才为本,当前我国正处于转型的关键期,才人的重要性不言而喻。在线招聘为优秀人才提供了展示自己的空间,也为优秀企业寻找人才提供了途径。但近年来,我国在线招聘方式面临着一些问题,其中最为突出的就是招聘诈骗,在线招聘也带来了新的诈骗方式,主要因为技术框架老旧,安全认证不严谨,逻辑处理欠缺等原因给不法分子钻了空挡[8],如何整治这种新型诈骗方式,提高在线招聘的可信性和真实姓是每个开发者都应该考虑的问题。在线招聘系统应该随着时代变化而不停更新,而在如今这个社会,我们更应该考虑在线招聘系统的安全性以及高效性。这也是目前每个在线招聘系统开发者正在做的事情。本课题就是利用自身学到的开发技术以及目前社会比较流行的框架技术设计一个在线招聘系统,希望能为用户带来更优越的体验,实现企业与人才高校挂钩。1.3研究目标与研究内容1.3.1研究目标与内容研究目的:互联网技术的发展和普及,传统招聘方式也逐渐被在线招聘所取代。特别是在如今新冠情况下,传统招聘是受到了阻碍,在线招聘成为如今求职者、招聘者最佳选择。在线招聘可以轻易获取更多的招聘信息,操作简单[9],效率高,且不受地域、时间限制,更能与企业HR零距离沟通了解。本课题打算设计并实现这么一个系统,建立起求职者与招聘者之间沟通桥梁,实现双方完美挂钩。研究内容:本课题实现了前端-后端分离的在线招聘系统的设计和搭建。该系统以用户主体,突出功能性,前端应为用户提供简洁的信息展示,多功能的筛选,数据可视化处理等功能,将招聘信息进行整合、优化,帮助人才与岗位更好的对接。系统设有交流模块,用户间能够进行良好的通信,实现双向奔赴。1.3.2关键技术和难点系统采取前后端分离思想,前端以微信小程序和Vue等相关技术进行设计,后端采用SpringBoot等框架技术进行搭建。系统分为三类用户,求职者、招聘者和系统管理员。求职者与招聘者通过小程序完成相应功能,系统管理者通过网页进行管理。前端主要涉及到的技术有微信小程序开发技术,IM即时通信技术,Vue开发技术,Echarts技术,Axois前后端交互技术等。后端主要涉及到的技术有Java开发技术,SpringBoot框架技术,MyBatis-Plus技术,MySQL技术,SMMP架构技术,Restful风格开发技术等。主要开发工具有IDEA,MySQL,VisualStudioCode,微信开发者工具等。主要难点有IM技术在沟通交流模块的使用,数据库字段的设计以及表之间的联系,多条件查询及多条件筛选的实现,分页功能实现,界面的布局及实现,前后端数据的交互以及处理。相关技术介绍:Vue是一款用于构建用户界面的JavaScript框架[10]。它基于标准HTML、CSS和JavaScript构建,并提供了一套声明式的、组件化的编程模型,可以高效地开发用户界面。Vue是一个框架,也是一个生态。其功能覆盖了大部分前端开发常见的需求。但Web世界是十分多样化的,不同的开发者在Web上构建的东西可能在形式和规模上会有很大的不同。考虑到这一点,Vue的设计非常注重灵活性和“可以被逐步集成”这个特点[11]。MyBatis-Plus(简称MP)是一个基于MyBatis的增强工具,它对MyBatis的基础功能进行了增强,但未做任何改变。使得我们可以可以在MyBatis开发的项目上直接进行升级为MyBatis-Plus,正如它对自己的定位,它能够帮助我们进一步简化开发过程,提高开发效率[12]。MyBatis-Plus其实可以看作是对MyBatis的再一次封装,升级之后,对于单表的CRUD操作,调用MyBatis-Plus所提供的API就能够轻松实现,此外还提供了各种查询方式、分页等行为。SpringBoot是基于Spring开发的一种轻量级的全新框架[13],不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程[14]。通过SpringBoot,可以轻松地创建独立的,基于生产级别的基于Spring的应用程序。SpringBoot也常被成为微框架。Echarts,一个纯JavaScript的图表库[15],可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的Canvas类库ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。即时通信IM(InstantMessaging)基于腾讯二十余年的IM技术积累,支持Android、iOS、Mac、Windows、Web、H5、小程序平台且跨终端互通,集成单聊、群聊、关系链、消息漫游、群组管理、资料管理、直播弹幕和内容审核等能力。适用于直播互动、电商带货、客服咨询、社交沟通、在线课程、企业办公、互动游戏、医疗健康等场景,以覆盖全球的加速站点和数据存储中心提供高可靠、低时延、高安全的通信云服务[16]。1.4章节安排全文将从以下几个方面进行论述:第一章绪论介绍了本系统的研究背景和意义,以及在实际设计、搭建过程中的思路和方法,并且阐述了本文整体的框架结构。第二章主要介绍系统的需求分析,业务需求分析、可行性分析。第三章主要介绍本系统的总体设计过程。主要包括系统的整体架构设计、前后台系统设计、数据库表设计和安全性设计等。第四章主要对本系统中各个功能模块进行了详细的设计说明。主要包含每个模块的功能介绍、流程图设计以及操作流程等。第五章主要介绍本系统中重要功能模块的具体实现方式以及实现效果。第六章主要介绍对系统进行了规范化测试,确保所开发的产品能够更好的符合产品需求。第七章主要进行了论文的总结工作,分析系统目前的不足之处和未来的优化方向。第2章系统分析2系统分析2.1业务需求本系统分为用户端和管理者端,用户端有两类用户,分别为求职者和招聘者,求职者也就是找工作的人,招聘者也就是找劳动力的人。用户端的功能与管理者端的功能模块不相同。图2.1为系统架构设计图。求职者用户包括四大板块,分别为招聘信息、论坛、消息、我的,招聘者用户也具有四大板块,分别为首页、求职信息、消息、我的,管理者涵盖三大板块,分别为信息模块、数据分析、个人信息。图2.1系统架构设计图2.2需求分析2.2.1功能需求分析用户端分为两类用户,分别为求职者和招聘者,是用小程序开发的。求职者在进入系统后首先会进行登录,登录使用的微信授权登录,登录前系统会查看是否有过授权登录记录,如果有直接登录无需再次授权,如果没有,则会向求职者申请授权登录请求,求职者同意则登录成功。进入系统后,求职者可以查看一些岗位需求信息并对信息进行筛选,查询和收藏,还可以浏览论坛,参与评论并点赞,还可以有感兴趣的岗位联系人进行聊天,求职者在我的模块完善个人信息,增强自身竞争力。图2.2所示为求职者具体功能示意图。招聘者与求职者类似,同样使用微信授权登录实现登录功能,同样可以在消息模块中查看信息列表,在求职信息模块查询求职者数据并与感兴趣的求职者聊天,在我的模块完善个人信息。除此之外,招聘者可以在首页对自己发布的岗位进行修改和删除,并且可以发布新岗位。图2.3所示为招聘者具体功能示意图。管理者使用Vue等web技术开发,与用户不同,平台是浏览器。管理者通过账号密码进行登录,登录成功进入系统后,管理者可以在信息模块查看所有求职者和所有招聘者的数据,数据以分页表格形式呈现,管理者可以对数据进行筛选、查询、详细查看和删除。数据分析模块主要以柱状图和饼图形式显示当前系统中招聘者发布的岗位与求职者需要的职位之间的关系。管理者可以修改自身的头像和昵称。图2.4所示为管理者具体功能示意图。图2.2求职者系统功能图图2.3招聘者系统功能图图2.4管理者系统功能图2.2.2非功能需求分析(1)开发环境需求本系统开发是在笔记本电脑上进行,本人笔记本配置如下:8核处理器、运行内存在8G、固态是512G,机械内存512G。具有MySQL数据库、Node.js、JDK、python等环境,以及VSCode、IDEA等前后台编译软件。用户端是通过手机微信小程序使用的,管理者端是通过浏览器使用的。管理者端尽量在win10版本上使用,谷歌浏览器为IE11以上版本。(2)性能需求对于用户的操作,系统应能够实现较快地响应。页面平均响应时间低于1s,可以支持多用户、高并发,CPU使用率小于60%(3)易用性需求系统支持多系统移植,系统具有良好的可拓展性,可以便于新功能的的添加和就功能的修改。2.3可行性分析2.3.1操作可行性分析本系统用户端为小程序,只需在微信上点击小程序图标就可使用,无需下载安装。管理者端为PC端的web项目,在浏览器端就可以实现访问,也无需额外安装本地客户端,对于用户来说,访问简单便捷。界面设计简洁明了,无需复杂的操作以及丰富计算机知识即可正常使用,具有用户使用可行性。2.3.2经济可行性分析本系统属于个人项目,全部有个人设计、开发并且实现,只在个人电脑上部署运行,由个人进行后续维护,不会产生维护费用;未雇用人员,没有人员费用;也无需其他软件以及技术费用。故经济是可行的2.3.3技术可行性分析本系统所使用的前后端开发技术都是目前社会广泛流行的技术,用户端的微信小程序开发技术,在软件企业使用广泛,产品颇多。微信小程序开发技术由腾讯公司专门人员进行维护和升级,在安全性和功能性上保证性很高。管理者端使用Vue技术进行浏览器页面开发,该技术在市场上已经广泛使用,该技术具有专门的官网并且提供从入门到高阶的全部教程,并且由专门的人员进行维护,在技术上不存在问题。系统的后台采用SpringBoot框架技术,采用SSMP架构,整合MyBatis-Plus,相比较单纯的Spring、SpringMVC,SpringBoot不仅整合封装Spirng、SpringMVC,而且简化了Spring、SpringMVC复杂的配置文件的编写,使得SpringBoot更容易上手的同时也便于兼备多框架的功能。以上技术本人都熟悉并且多次使用,所以技术上是可行的。2.4本章小结本章对本系统的功能需求,非功能需求,性能分析,开发环境分析和可行性分析都做了具体的介绍和深入的研究。保证了本系统的可开发性和可使用性。为接下来的开发做足了准备。第3章系统总体设计3系统总体设计3.1架构设计本系统前后端分离,主要分为服务器端和前端两部分,服务器端主要采用SpringBoot和Mybatis-Plus框架技术实现,前端分为用户(求职者和招聘者)和管理者,用户端主要采用微信小程序技术实现,并配合IM即时通信技术实现消息聊天功能,前后端采用http通讯协议,用户端使用小程序自带HTTPAPI通过http通讯协议与后端进行数据交互。管理者端使用Vue相关技术进行开发,配合ElementUI进行网页页面渲染,通过Axios技术进行前后端数据传递。数据库采用MySQL关系型数据库对数据进行分表存储,并图片资源存储后端服务器上,数据库只保存图片url,以减轻数据库的存储压力,该系统的整体设计架构图如图3.1所示。图3.1系统流程图3.2系统总体设计本课题设计的在线招聘系统的设计主要由三部分组成,分别为前端设计,服务器后端设计、数据库设计。后端以SpringBoot技术进行搭建部署,采用SSMP架构,该架构实在原本SSM基础上将MyBatis技术改为MyBatis-Plus,该架构既可以使用MyBatis框架技术在数据库持久层进行开发,还可以使用MyBatis-Plus封装的CRUD,进一步简化后端开发。该架构同样是在传统的Service、Dao、Controller三层架构的基础之上进行了相应的解耦和优化。其中,使用MyBatis框架来封装原有持久层,重点处理数据的持久化工作,又利用MyBatis-Plus技术进行条件查询和分页,提高数据持久层的功能;由于SpringBoot本质是对Spring、SpringMVC的封装,所以项目可以使用注解来自动装配对象。后端将前端上传的图片储存在本地并生成url,并将url存储于MySQL数据库中,进一步减小数据库的存储压力,改善查询效率。服务器端的实现原理如图3.2所示。图3.2后端流程图本系统的前端分为用户端界面和管理者界面,用户端界面主要采用是基于微信小程序HTML、CSS、JS等技术进行编写开发,采用组件化开发方式,减少代码重复率,实现组件多次利用,减少代码量。小程序开发使用的容器、组件多以rpx为单位,避免在不同手机设备中大小比例不一致问题。用户端界面在开发过程中,本人自定义并使用多个组件改善并简化使用原生组件带来的复杂,给用户带来更好的体验,并在选择器中使用自定义选择器,避免用户手打操作。管理者端界面使用了HTML、CSS、JS等web技术并使用Vue框架对数据进行响应式绑定和Vue组件化开发。管理者端界面使用了ElementUI图表、按钮、标签,菜单栏等组件;管理者界面开发过程中使用Node技术集成了Echarts图表库,并实现了以柱状图和饼状图的方式对数据进行分析和处理,增强了数据可视化。并继承了V-Distpicker组件,实现地点选择器功能,便于用户选择和操作。无论是用户端还是管理者端,跟服务器后端的交互都是通过http协议以访问url形式请求后端,后端控制器监听,收到前端请求后调用业务层进行业务处理,业务层在处理的过程中有调用持久层实现与数据库数据的交互,最终返回数据给控制层,控制层进行封装传给前端,实现前端与数据库数据的共享。一般来说前后端数据是要进行解析成json格式进行传递的。而前端向后端发送请求一般都是通过用户操作触发的事件(Event)或者页面生命周期中的特定方法来实现的,通过请求和响应完成数据更新。3.3数据库设计3.3.1数据库介绍本课题要实现的系统是在线招聘系统,涉及到用户,岗位、劳动力以及系统功能需要存储的论坛、收藏等数据,这些数据存在较强关联性,对数据间的一致性比较严格,要尽量避免数据上下不一问题。同时,本课题使用的是Java技术,Java是一种面向对象的语言,考虑的是对象间的联系。而关系型数据库典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织,以具有相互关联的表格进行统计和连接,跟面向对象方法思想比较契合,同时,关系型数据库操作方便、便于访问数据、低成本高性能、便于访问数据等优点[17],所以本系统数据库选取MySQL关系型数据库。MySQL是开源的,可以免费使用,具有高性能、高扩展性、高安全性等优势,而且MySQL不仅可以在Windows系列的操作系统上运行,还可以在UNIX、Linux和MacOS等操作系统上运行,具有较强的可移植性,便于后面后端服务器的部署。系统进行持久化的核心便是数据库存储,用户的信息、招聘信息(包括岗位和劳动力)、论坛信息、收藏信息等数据都在不停的变化,同时我们也在无时无刻地访问修改这些数据,这就要求我们需要在数据的存储结构,也就是各个数据表结构进行详细的设计与安排,妥善并且合理有效地关联各个数据表之间的关系,当数据发生变动或者查询修改某项数据时,能够及时正确地进行运作与更新,保证数据地正确性,能够将最新的数据实时展示出来。在使用MySQL数据库时,本系统使用了数据库管理工具Navicat,NavicatPremium是一个可多重连接的数据库管理工具,它可以让单一的程序同时连接到不同的数据库。Navicat是的图形用户界面良好,容易上手,可以让使用者安全并简单的方式创建、组织、访问并共用信息。它可以用来对本机或远程的MySQL、SQLServer、SQLite、Oracle及PostgreSQL数据库进行管理及开发。3.3.2系统E-R图E-R图(EntityRelationshipDiagram)也称实体-联系图,分为实体、属性、关系三个核心部分,抽象出了业务数据的核心特征。E-R图是一种语义模型,力图表达数据的意义[18]。在数据库设计阶段,需要考虑各个表的意义和表之间的关系,而E-R图中的实体代表着数据表,联系表示着表间关系,E-R图以一种可视化的图表形式表现数据库表间的结构与联系,帮助开发者考虑数据库中实体与实体间的关联,设计合理的数据库表结构,提高系统的高效性,可维护性,减少系统因不合理表结构而带来的问题。E-R图的设计中要考虑到实体、属性、实体联系间的关系,设计出正确合理的E-R图是设计出完美的数据库的第一步。本系统的E-R图如图3.3所示。图3.3系统E-R图3.3.3数据表设计本系统共涉及到5张数据表:用户表、岗位信息表、人才信息表、论坛聊天表、话题记录表等,具体表结构如下表3.1、表3.2、表3.3、表3.4、表3.5所示。用户表表3.1用户表编号字段名字段类型大小允许为空最大长度备注信息1uidvarchar255F255主键2nick_namevarchar255F255用户名3genderInt(2)5T10性别4avatar_urlvarchar255T255头像5identitychar2F2身份岗位信息表表3.2岗位信息表编号字段名字段类型大小允许为空最大长度备注信息1pidint(10)5F10主键,自增2uidvarchar255F255用户标识3namevarchar255F255用户昵称4positionvarchar255F255用户职位5avatarvarchar255F255用户头像6corporationvarchar255F255公司名称7iconvarchar255F255公司icon8postvarchar255F255岗位名称9descriptionvarchar255F255公司简介10placevarchar255F255工作地点11salaryvarchar255F255工作薪资12typevarchar40F255工作类型13backgroundvarchar40F255学历要求14statusvarchar40F255身份要求15polityvarchar40F255政治风貌要求16datedate20F255岗位发布时间求职信息表表3.3人才信息表编号字段名字段类型大小允许为空最大长度备注信息1sidint(10)5F10主键,自增2uidvarchar255F255用户标识3namevarchar255F255用户昵称4birthdate20F255出生日期5avatarvarchar255F255用户头像6sexint(2)2F10用户性别7placevarchar255F255居住地8phonevarchar255F255联系方式9backgroundvarchar40F255学历10statusvarchar40F255身份11polityvarchar40F255政治风貌12advantagevarchar255F255个人优势13ejobvarchar255F255期望岗位14esalaryvarchar255F255期望薪资15ecityvarchar255F255期望城市16etypevarchar255F255工作类型17startdate20F255到岗时间论坛聊天表表3.4论坛聊天表编号字段名字段类型大小允许为空最大长度备注信息1ridint(10)5F10主键,自增2tidint(10)5F10话题标识3uidvarchar255F255用户标识4namevarchar255F255用户昵称5datedate20F255时间6textvarchar255F255文本7avatarvarchar255F255用户头像话题记录表表3.5话题记录表编号字段名字段类型大小允许为空最大长度备注信息1tidint(10)5F10主键,自增2uidvarchar255F255用户标识3namevarchar255F255用户昵称4avatarvarchar255F255用户头像5topicvarchar255F255标题6answervarchar255F255内容7goodsint(10)10F10点赞数8datedate20F255发布时间3.4系统模块设计本系统涵盖有面向用户的前台系统以及面向管理员的后台系统,其主要的模块可以划分为:3.4.1前台系统模块分为两类用户,分别为求职者和招聘者。用例图见图3.4和图3.5。求职者登录模块:登录过的,后台寻找记录,直接登录。未登录过的,请求用户授权,使用微信授权登录。有用户身份选择。招聘信息模块:具有岗位信息展示,提供搜索框,多个字段选择器,帮助用户筛选信息,可以进行关键模糊查询,时间筛选、地点筛选、岗位筛选,还具有收藏功能。论坛模块:具有论坛话题展示,具有点赞,查看评论功能,可以显示点赞数。消息模块:具有消息列表,可以查看别用户发给你的消息,可以与感兴趣的岗位联系人进行消息交流,记录每条信息内容及时间,消息附带用户头像及昵称,帮助用户分辨。我的模块:具有完善求职信息,查看用户所收藏的岗位并提供岗位路由。招聘者登录模块:登录过的,后台寻找记录,直接登录。未登录过的,请求用户授权,使用微信授权登录。有用户身份选择。首页模块:具有查看所发布的岗位信息,发布新岗位、修改或者删除已发布的岗位的功能。求职信息模块:具有人才信息展示,提供搜索框,多个字段选择器,帮助用户筛选信息,可以进行关键模糊查询,薪资筛选、地点筛选、岗位筛选。人才信息展示应显示求职用户的头像、昵称等重要信息,如果招聘者感兴趣,还可以点击进入详细页面。消息模块:具有消息列表,可以查看别用户发给你的消息,可以与感兴趣的岗位联系人进行消息交流,记录每条信息内容及时间,消息附带用户头像及昵称,帮助用户分辨。我的页面:完善个人信息,帮助其他用户更好了解自己。图3.4求职者用例图图3.5招聘者用例图3.4.2后台系统模块登录模块:管理人员通过用户名和唯一标识完成登录进入系统。个人信息模块:对自身信息进行管理,包括:更改自身头像和昵称。信息模块:对前端以及数据库中的招聘数据以及求职数据进行管理,提供多种选择器,以及搜索框帮助管理者进行信息筛选,并可以进入详细页面查看该条记录的详细内容,也可以删除该条记录。数据分析模块:对系统中招聘数据和求职数据进行整合统计并以饼状图和柱状图的方式进行展示。用例图见图3.6图3.6管理员用例图3.5安全性设计在设计软件系统时,特别是软件数据处理时,必须要重视系统的安全控制和可靠性设计,保证数据的正确性,保证数据的封装,保证数据和系统的有效应用。系统设计开发时应考虑到用户的输入错误、非法数据访问、逻辑处理欠缺等问题,防止因系统的缺陷或者数据处理中的失误而出现的欺骗行为。所以本课题在软件设计开发中格外注意安全性,在页面的设计与开发中,保证了软件与用户之间界面的严格限制。开发系统是在本人计算机中开发,本人计算机不曾有过木马病毒入侵。在数据库安全方面,只有管理员才有权限写数据,并且为管理员提供提供备份服务,防止数据库数据丢失。在小程序端用户登录方面,采取了较为安全的授权登录,防止别用户在别设备冒名登录等问题,登录时需要得到用户授权,尊重用户的隐私。在网页端登录方面管理员的密码是管理员的唯一标识必须使用微信开发平台本人的APPSDK与本人的ID再进行MD5加密才能形成,所以不太出现密码盗用问题。3.6本章小结本小结,主要从架构、技术、数据库、模块、安全等方面对在线招聘系统作了介绍,在线招聘系统后端使用SpringBoot框架技术使用SSM架构,前端分为用户端和管理者端,用户端使用微信小程序技术开发,管理者端使用Vue相关的网页开发技术,主要利用组件化开发,将功能模块化然后组装起来。各类用户已经给出了大体功能,随项目的开发过程中可能有所改变。第4章详细设计4详细设计4.1模块设计本课题设计开发的在线招聘系统分为用户端和管理者端,用户端使用微信小程序技术开发,无需安装,随想随用,轻小方便。管理者端采用的是B/S架构,使用Vue及其相关技术开发。各个功能模块如图4.1所示,其中用户端分为求职者和招聘者两类用户。求职者用户的系统功能主要是:登录模块、招聘信息模块、论坛模块、消息模块、我的模块。招聘者用户的系统功能主要是:登录模块、首页模块、求职信息模块、消息模块、我的模块。后端主要面向管理员,对系统的数据包括数据库数据和前端数据进行管理,功能包括:登录模块、个人信息模块、信息展示模块、数据分析模块等。图4.1功能模块图4.2功能模块设计4.2.1求职者方面(1)登录模块用户再登录页面可以选择求职者,然后点击登录按钮进行登录。分为两种情况,这时候用户点击登录按钮,这时系统会调用数据库查询用户的uid是否存在,其中第一种情况为用户从未使用过该系统也就是uid不存在,这时界面后弹出微信授权提示框,用户同意则登录成功。其中的原理是前端在用户同意授权的时候获取该用户的微信code,然后发送给后端,后端使用MD5加密后得到密钥也就是uid,然后请求微信公共平台,得到用户的微信信息,包括昵称、性别、头像等,然后后端将uid还有获取到信息存入数据库,完成登录。其中第二种情况为用户使用过该系统,也就是在点击登录时系统调用数据库可以查询到该用户的uid,这是就会显示提示框检验到用户信息可以直接登录。如图4.2图4.2登录模块流程图(2)招聘信息模块用户进入招聘信息模块,用户可以看到系统所展示的岗位信息,在页面的顶部有搜索框,以及薪资选择器、地点选择器、职位选择器,帮助用户进行特定职位查询和筛选。用户在找到自己感兴趣的岗位时可以点击该岗位,则进入该岗位的详细页面,然后点击开始沟通则可以与该岗位联系人进行交流讨论。如图4.3图4.3招聘信息模块(3)论坛模块在登录成功进入论坛模块后,用户可以浏览系统发布的一些话题,话题会显示话题标题,话题内容、发布时间、点赞数等。用户可以对感兴趣的话题进行点赞,点赞数可以动态显示。用户还可以参与讨论。如图4.4图4.4论坛模块流程图(4)消息模块用户在登录成功后,可以进入消息模块,在消息模块,用户可以浏览到那些用户给你发送信息,用户可以点击聊天记录中的用户头像进入聊天页面进行回复。用户还可以通过招聘信息或者收藏栏的详情页面进入聊天页面进行交流。如下图图4.5消息模块流程图(5)我的模块用户在登录成功后可以进入我的模块,在我的模块中用户可以完善个人信息,完善个人信息可以帮助招聘者更好了解该用户,提高招聘者与用户的沟通率。此外,用户可以收藏栏中找到自己收藏过的岗位,实现该岗位详细页面的直接跳转。具体流程如图4.6图4.6我的模块流程图4.2.2招聘者方面(1)登录模块与求职者相同,见图4.2(2)首页模块用户登录成功进入首页模块,在首页模块用户可以浏览自己已发布的职位,可以对自己已发布的职位进行修改以及删除。用户还可以发布新岗位。具体流程如图4.7图4.7首页模块流程图(3)求职信息模块登录成功后进入求职信息模块,在该模块,用户可以浏览一些求职值的信息,模块设有搜索框可以进行模糊查询,还有地点选择器、薪资选择器、职位选择器,帮助用户进行信息筛选。再找到自己感兴趣的求职信息后可以进入详情页面,查看该求职者具体信息,你可以与其进行聊天交流。具体流程如图4.8图4.8求职信息模块流程图(4)消息模块用户可以在消息页面查看消息记录,可以进行消息回复,与求职者相同,见图4.5。(5)我的模块用户可以在我的模块进行信息完善,流程图见图4.9。图4.9我的模块流程图总结,在线招聘系统小程序端的总体流程图如下:图4.10用户流程图4.2.3管理者方面管理者通过用户名和uid进行登录,登录成功后则可以使用管理后台系统的功能,具体有,浏览招聘信息数据或者求职信息数据并对其进行查询或者筛选,查看基于招聘数据或者求职数据生成的柱状图、饼状图等可视化图表。修改自身的昵称和头像。具体流程如图4.11图4.11管理者模块流程图4.3本章小结本章节主要对本课题在线招聘系统各个模块以及总体流程进行了分析,避免在开发系统中缺少目标,对流程以及步骤模糊不清等情况发生。在本章节中对基于小程序的用户端以及对基于Vue开发的管理者端各个模块的功能进行分析,模块中功能的联系加以确认。用户端分为求职者和管理者两类用户。求职者有招聘信息模块、论坛模块、消息模块,我的模块。招聘者有首页模块、求职信息模块、消息模块、我的模块。管理者端主要对系统数据的管理和监测,主要功能模块有数据信息模块、数据分析模块、个人信息模块。第5章系统实现5系统实现5.1求职者用户端系统实现5.1.1登录模块实现(1)前端实现登录界面主要是由系统宣传图、身份选择和登录按钮组成。身份选择使用单选框radio实现。分两种情况,用户未登录过,用户选择身后然后点击登录,这时,系统会弹出请求获取信息的授权提示框(使用getUserProfile),当用户选择同意则新用户登录成功,系统会从授权信息中获取用户基本信息,无需用户填写,简单方便。第二种情况,用户登录过,用户点击登录,系统会弹出已检测你的身份信息,是否直接登录,用户点击登录则登录系统。(2)后端实现在登录模块,首先是用户登录时,后端UtilController收到前端请求获取用户的code,然后调用Service层getOpenid方法将code变为用户的唯一标识uid,然后查看数据库user表,判断user表是否存在该uid,将查询到的数据返回到前端。第二是,用户第一次登录在同意授权的时候,前端向后端发送请求,后端UtilController接收用户的code以及用户基本信息,调用方法将其变为用户唯一标识openid也就是uid,然后将uid作为IM系统的用户名将其与前端获取的基本系统分别传入IM系统和数据库。(3)实现效果首页具体如图5.1所示:图5.1登录展示图5.1.2招聘信息模块实现(1)前端实现招聘信息模块主要由三部分组成,分别为顶部搜索框,偏下的三个条件选择器和招聘信息展示模块。开发时使用小程序组件化开发,顶部搜索框为自定义组件,在搜索框中输入关键词回车即可进行模糊查询,薪资选择器和职位选择器为自定义选择器,选择器支持多个选择器叠加筛选,招聘信息由诸多岗位信息单元组成,每个岗位信息单元包括岗位发布时间、岗位名称、薪资、公司名称、发布时间和若干个工作要求组成。用户可以点击进入详情页面,在详情页面可以选择是否与该岗位联系人发起沟通。(2)服务器端实现首先,在搜索功能中,前端会向后端PostController发送请求,Controller会调用Service层getSearch方法,在getSearch方法中会使用MyBatis-Plus中的QueryWrapper构造器通过like、or运算语句实现单一关键词多字段模糊查询。条件选择器,则会调用PostController中getMore方法,同样使用QueryWrapper构造器通过like、and运算语句叠加并加上逻辑判断实现多条件选择器叠加筛选功能。招聘信息的获取则调用后端PostController调用Service层中查询post表中所有数据的方法,并将数据以json形式返回给前端,前端进行数据和页面渲染。(3)实现效果招聘信息模块具体如下图5.2~5.5所示:图5.2招聘信息界面图5.3条件筛选界面图5.4模糊查询界面图5.5岗位详情界面5.1.3论坛模块实现(1)前端实现顶部是个轮播图,使用swiperview实现,然后就是论坛话题展示页面,每一个话题单元由用户头像、用户昵称、发布时间、话题题目、话题内容、点赞图标、讨论图标组成。用户可以进行点赞、话题会显示点赞数量。点击讨论图标会进入讨论页面、用户可以在这发表言论,也可以看到其他用户的言论。话题内容使用scroll-view组件,只显示三行多余会以...省略,方便用户浏览,页面跳转使用wx.navigateTo并附带用户点击话题的主键,跳转到讨论页面会根据页面路由所带的参数获取特定话题的讨论记录。讨论中的输入框和发送按钮布局为固定,防止讨论数过多用户找不到输入框。(2)服务端实现在进入论坛模块,会在此页面的生命周期函数onload中向后端发送请求,后端TalkController会接收该请求,并调用Service中查询话题表中所有话题的dao持久层方法,并将获取到的数据以json形式返回给前端,论坛页面收到数据后开始数据和页面渲染。用户进入讨论页面后,同样会在讨论页面的生命周期onload函数中向后端发送请求并传入话题主键,后端TalkController层获取到tid主键,查询talk数据表中所有tid等于所获参数的行,将获取的数据以json数组形式发送给前端,前端收到后端传来的数据进行页面和数据渲染。如果获取失败,或者因为服务器原因而失败,则返回错误码给前端。(3)实现效果实现效果如图5.6、图5.7所示:图5.6话题展示界面图5.7话题讨论区界面5.1.4消息模块实现(1)前端实现消息模块可以浏览用户给自己发的消息记录,消息记录可以看到用户发送给自己最新一条消息以及用户的昵称和头像还有发送最新一条信息距离现在的时长。用户可以点击用户头像进入与该用户的聊天室,在聊天室中你可以通过上滑查看历史消息,你也可以发送消息给用户。聊天室中消息以用户头像和文本信息为主要形式,用户自己发的消息以及头像位于右侧,别的用户位于左侧。这边主要聊聊用户发送信息如何刷新聊天页面的问题,这边的主要解决方法是创立一个空数组记录用户自己以及别的用户的聊天,使用微信setData方法使得每有一个消息更新都会刷新data里中的聊天记录数组,在页面中使用for循环遍历数组,这样有新聊天记录时,setData就会更新聊天数组,然后页面就会重新for循环渲染。(2)服务端实现这边的聊天功能主要使用腾讯云产品IM即时通讯来完成的,首先需要进行登录,需要产品个人SDK和用户用户名的签名,这一部分主要是在后端实现的,前面说过用户登录时使用code获取openid作为uid,也作为IM即时通讯系统的用户名,所以只要在后端对该用户的uid进行算法加密形成签名,然后使用签名加上自己管理员身份的APPID请求指定地址即可完成登录。这边是在后端UtilController中实现的,收到前端请求时,Controller或调用对应的Service,将uid,进行Base64URL和TLSSigAPIv2算法解析形成签名,然后在后端向特定地址发送http请求,登录完成后用户就可以使用IM系统的聊天功能了。(3)实现效果实现效果如图5.8、图5.9所示:图5.8消息记录界面图5.9聊天室界面5.1.5我的模块实现(1)前端实现我的模块主要分为两部分,完善个人信息和我的收藏。个人信息模块主要用来完善用户信息,我的收藏可以查看收藏过的岗位。首先在我的页面会显示用户的头像和身份,这些数据是使用小程序全局变量和本地存储,在用户登录的时候就已经储存完毕,下半部分有我的简历和我的收藏。点击我的简历会进入我的信息详情页面,点击编辑则进入我的信息编辑页面。信息编辑页面会自动获取补充信息,用户已有的信息自动补充上去不用用户手动打字或者选择,用户只需改动自己想要改动的地方或者没有填写的地方,信息编辑页面使用的时表单form,需要为每个表单中的元素附上name属性,在表单中可以上传头像、修改个人信息、修改想要寻找的岗位信息,表单里的组件有input、radio、textarea、picker、image等。用户可以通过点击我的收藏中的岗位进入该岗位的详情页面,在详情页面中用户可以考虑是否与该岗位的联系人进行沟通交流,当然,用户可以将收藏栏中的岗位从我的收藏中删除。页面的跳转使用的是wx.navigateTo方法,向后端发送请求主要使用小程序自带的httpAPI。(2)服务端实现用户点击我的简历,小程序从本地存储中获取当前用户的uid,然后使用小程序http发送GET请求到后端,后端SeekController收到请求,调用getByOpenid方法,调用SeekServiceImpl中getByOpenid方法,又在SeekServiceImpl中的getByopenid方法中调用dao持久层中MyBatis-Plus已经封装完毕的getById方法,根据传入的uid获取该uid整行数据,然后以json形式传给前端,前端进行页面和数据渲染。在信息编辑页面,用户点击保存会发送PUT请求给SeekController层,最终调用MyBatis-Plus已封装的update方法完成对数据库seek数据表该uid行的数据改写。同样用户点击删除按钮,前端发送Delete请求,后端完成对数据库seek数据表的该条记录的删除。用户点击收藏中的岗位,会将该岗位的pid传给后端,后端根据pid获取数据库该pid的记录然后传给前端,前端根据数据渲染岗位详情页面。(3)实现效果实现效果如图5.10~图5.15所示:图5.10我的模块展示图5.11岗位详情页面图5.12完善信息表单页面1图5.13完善信息表单页面1图5.14饮食项目管理图5.15职位详情页面5.2招聘者用户端的实现5.2.1登录模块的实现与求职者用户端的登录模块实现相同,实现效果见图首页模块的实现(1)前端实现首页由两部分组成,顶部是由轮播图,有swiperview组件实现,然后就是招聘人员的岗位发布模块,在首页可以看到用户自己所发布的岗位,用户可以点击添加发布新的岗位,也还可以点击已发布的岗位对已发布的岗位进行修改和删除操作。发布新岗位需要填写一些信息,部分信息有信息自行获取无需用户填写,用户只需填写系统给出的信息,填写完毕后,点击保存,则发布新岗位完成。用户点击已发布的岗位,进入岗位编辑页面,岗位编辑页面无需用户从头填写,只需在原本该岗位信息基础上进行修改或补充,系统将自行将你点击的岗位信息补充到岗位编辑页面,发布时间无需用户填写,有系统自行获取,编辑完成后,点击保存,岗位保存成功,点击删除则该岗位删除。该过程主要是通过一系列按钮或组件的点击事件来触发,并向后端或前端寻找数据。(2)服务器端实现在页面的初始化过程中,小程序会根据页面初始化情况调用对应的生命周期函数,首先在页面onload生命周期函数中小程序像后端发送GET请求,后端PostController收到请求后调用Service层查询所有的方法,该方法是调用dao层MyBatis-Plus封装selectList方法,查询数据库post表中所有数据,以json数组形式返回给前端。用户在添加岗位中保存按钮,会向后端请求Post请求,会将用户填写的岗位信息以表单形式发送给后端,后端PostController接收数据,同样由Controller到Service到Dao,最终调用MyBatis-Plus封装的insert方法,实现将数据添加到数据库的seek表中。同样。删除是由前端发送Delete请求发送给后端,PostController接收后以相同的形式,调用Dao层MyBatis-Plus封装的delete方法,完成对数据库该条记录的删除。而更改则是发送PUT请求,后端调用MyBatis-Plus封装的update方法。(3)实现效果 实现效果见图5.16首页界面和5.17发布管理页面图5.16首页界面图5.17发布管理界面5.2.3求职信息模块实现(1)前端实现跟求职者中的招聘信息模块实现方式差不多,同样有三个部分组成,顶部搜索框、然后是三个条件选择器,分别为地点选择器,职位选择器和薪资选择器,再然后就是一些求职者信息的展示,用户也就是招聘者可以在搜索框中打字对求职者进行模糊查询,回车触发事件获取搜索框内容并像后端发送请求,用户在输入框输入的关键字可以对数据库中seek表中place、polity、background、status、advantage、ejob字段进行比较。然后条件选择器可以叠加筛选,比如说可以先使用地点选择器选择地点进行筛选后,可以在筛选后的数据中再进行职位筛选或者薪资筛选。招聘者浏览求职信息,对感兴趣的求职者可以通过点击进入该用户信息的详情页面,这跳转是通过页面路由实现。在详情页面招聘者可以考虑是否与该求职者进行沟通交流。(2)服务端实现首先,用户在搜索库输入关键字进行回车触发事件函数,在函数中会发送GET请求,SeekController收到请求并获取用户输入的关键字,SeekController在调用SeekService层对应的方法进行实现并将获取到的数据返回给前端。SeekServce层对这个功能是这样实现的:使用QueryWrapper构造器,对六个字段进行like比较并用or运算连接,这样六个只要有一个带用户输入的关键字都会被查询出来。条件筛选也是使用QueryWrapper构造器,三个构造器,分别传三个参数给后端,后端判断是否为空,为空的话就说明用户没有使用该构造器,则该条件的筛选不需要使用and连接起来,使用eq进行该条件的查询,使用and连接所使用的条件选择器,这样就实现了多种条件选择器的叠加效果。点击进入详情页面,会向后端发送选择的求职者的sid,后端根据sid从seek数据表中查询数据传给前端,前端进行页面和数据渲染和初始化。(3)实现效果实现效果如图5.18求职信息页面、5.19求职信息详情页面。图5.18求职信息页面图5.19求职信息详情页面5.2.4消息模块实现与求职者消息模块实现相同,效果见图5.8消息记录界面和图5.9聊天室界面。5.2.5我的模块实现(1)前端实现跟求职者模块差不多,但只由完善信息功能。我的页面在顶部会显示用户的头像、昵称、身份。用户可以点击我的简历进入我的信息编辑页面,这个跳转主要是使用页面路由实现的使用的是wx.reLaunch方法,该方法可以跳转任意页面,这里用来跳转到个人信息详情页面,在个人信息详情页面中,可以点击编辑进入信息编辑页面,这边系统会调用前后端用户数据将信息自行补充,用户只需修改数据或者补充空白地方就可以了,完成后用户可以点击保存,则用户数据修改成功,用户在该模块主要以单选框、选择器、输入框形式输入信息。职位选择器中的选项是由自己定义的,主要从utils文件中的job.js中获取。用户可以通过上传头像和上传公司icon修改用户自己头像和公司icon。(2)服务端实现后端实现与求职者我的模块后台实现差不多,主要是控制器不同,招聘者的我的模块后端的请求是由PostController接收的,由PostController到PostService到PostDao到MyBatis-Plus提供的update方法修改数据库post表和user表中的信息,这里着重说明一下上传头像,这边是小程序调用chooseImageAPI方法,可以使用户从本地上传图片,然后小程序发送POST请求,将上传的图片发送给后端,后端获取到,将其下载到当地一个文件夹内,然后服务器在本地使用nginx反向代理,将这个文件夹映射成url地址,然后就可以通过url访问图片,然后后端只需将生成的url更新到数据库的user和post表就完成了。(3)实现效果实现效果参考图5.13。5.3管理员端的实现5.3.1数据信息模块(1)前端实现左侧的菜单栏,可以选择查看求职者数据还是招聘者数据。求职者数据和招聘者数据都是以表格形式呈现出来的,这边以求职者数据解释。该模块可以分为两个部分,顶部是条件选择器,分别为日期选择器、职业选择器、地点选择器,搜索框可以进行多个字段模糊查询。然后是表格,表格中数据来自数据库。管理者端使用Vue相关技术实现的web系统,界面主要通过HTML、和ElementUI实现的,在开发过程中使用组件化开发。第一部分是Psearch.vue,主要实现条件选择器和搜索框。条件选择器使用的是el-date-picker、el-cascader和v-distpicker,由于ElementUI没有地点选择这边使用node.js集成了v-distpicker,进行地点筛选。选择器可以使用双向绑定获取选择器中用户的选项,也可以使用组件事件进行获取。搜索框使用el-put实现,使用v-model双向绑定获取用户输入的文字。第二部分是Ptable.vue,表格使用的是el-table,在表格的每条记录的末尾有查看和删除两个选项,这两个和表格第一个字段也就是表的主键固定,不会随着横向滚动条的滚动而变化,方便用户辨识和操作。表格的数据是分页显示的,用户可以选择每页显示数据的数量,解决了进行条件筛选后或者搜索后的数据分页问题和在不同页码上进行搜索和条件筛选的问题。在不是第一页再进行查询或筛选会获取筛选或查询的数据并将页码调到第一页并显示,在筛选或搜索后,会重新获取数量并重新分配页码。前端向后端发送请求是使用axios,菜单栏的页面导航使用的是Vue的Router,查看按钮的跳转使用的是Router的push方法,并使用query传递pid,Psearch.vue与Psearch.vue之间的数据传递使用的是props和emit方法,Psearch.vue和Psearch.vue具有相同的父组件,只要数据使用emit传到父组件就可以实现两个组件数据共享。(2)服务端实现与小程序端的招聘信息模块和求职信息模块类似,不过在管理者端的数据是使用分页的形式,主要是后端每次返回一页的数据然后前端收到数据进行渲染不是返回所有数据然后使用js函数进行分割,这样做的目的是避免前端对数据的处理导致反应速度下降以及提高对数据的保护。分页的实现使用了MyBatis-plus提供的IPage插件,后端返回给前端的也是IPage类型的数据,因为使用了RestController,会将IPage数据以json类型返回,方便前端的使用。IPage需要两个参数,分别为当前的页码和每页显示的条数,前端在进行条件筛选或查询时显示的数据也都是分页形式,所以后端只需要在条件筛选处理和查询处理的业务层基础上获得前端传来的current(当前页码)和size(每个条数)两个参数,使用Mybatis-Plus封装的selectPage函数就可以实现。而日期条件筛选获取的是中国标准时间,而数据库中当字段是yyyy-mm-dd的形式,所以用户使用日期条件筛选,后端获取到参数是需要将中国标准时间转化为该字段对应的形式,后端需要注意的是没被使用过的条件选择器给出的参数应该是空的,后端需要进行以下逻辑判断,条件选择器条件的叠加使用QueryWrapper的and连接,使用eq进行相等判断。(3)实现效果数据信息界面和详情界面如图5.20、5.21、5.22所示。图5.20求职数据信息页面图5.21招聘数据信息页面图5.22详情页面5.3.2个人信息模块(1)前端实现管理员点击网页顶端的头像小人即可修改个人信息和头像,用户点击时,页面会弹出一个对话框,在对话框中管理者可以修改自己的昵称和上传头像。(2)服务器端效果主要和小程序端上传头像实现类似,用户上传头像,后端Controller曾接收请求,后端创建文件用户保存用户上传的图片,并使用nginx将文件路径生成url并保存对对应的数据库表中。(3)实现效果个人信息修改页面如图5.23所示。图5.23信息修改页面5.3.3数据分析模块(1)前端实现用户点击左侧菜单栏中的数据分析,即可展开数据分析模块,主要有求职者数据和招聘者数据两个方面。菜单栏使用el-menu组件,跳转使用VueRouter实现的,在求职者的数据分析模块可以看到柱状图和饼状图对应求职者期望岗位与数量的关系。在招聘者的数据分析模块可以看到柱状图和饼状图对应招聘者发布的职位类型与数量的关系。图标是使用Echarts实现的,需要使用npm进行集成,这部分的实现难点主要是对后端数据进行的处理,后端返回的数据与Echarts图标需要数据的格式不适应,需要对后端返回的数据运用js函数进行分割处理。(2)服务器端实现以求职者为例,在页面的created生命周期函数中使用axios发送请求,Controller层收到请求后调用相应的Service业务层,业务层的实现主要是使用QueryWrapper构造器,这边使用了select拼接count()SQL函数,使用groupBy进行分组,然后使用MyBatis-Plus封装的selectMaps函数,得到职位和数量关系,得到的数据Map数组,这边以职位名称为键,数量为值,将Map数组变为单一Map,然后使用fastjson对Map数据进行格式化最后返回前端。(3)实现效果求职者数据分析页面和招聘者数据分析页面分别如图5.24和图5.25所示。图5.24求职者数据分析页面图5.25招聘者数据分析页面5.4本章小结本章节对在线招聘系统的各项功能的实现做了解释。前端主要分为用户端和管理者端,分别使用小程序开发技术和Vue相关技术实现。用户端分为两类用户:求职者和招聘者。求职者的功能主要有登录模块、招聘信息模块、论坛模块、消息模块和我的模块。招聘者的功能主要有登录模块、首页模块、求职信息模块、消息模块、我的模块。管理者端的功能主要有个人信息模块、数据信息模块、数据分析模块。对各个模块从前端实现、后端实现和实现效果做了解释和展示。第6章系统测试和结果6系统测试和结果6.1测试计划为了验证系统的功能完整性和健全性,进行测试是非常必要的。自己开发的系统使用的体验不能与大众的体验划上等号,自己在进行测试过程中不一定能够发现系统的所有Bug,所以在测试方面主要想要邀请用户使用本系统并请求得到反馈,自己根据反馈进行更新和维护,提高系统进一步的良好体验。在测试过程中,需要比较目前系统呈现的功能是否满足设计该系统的初衷,系统呈现的效果是否满足自己的预想,系统是否实现了设计阶段需要完成的所有功能。测试能够帮助开发者快速找到问题所在,方便系统的改善。软件系统的测试需要科学的方法和合理的安排。本人针对本系统测试分为两部分:用户和管理员。用户测试模块有授权登录、首页、招聘信息、求职信息、论坛、消息、我的。管理员测试模块有:密码登录,个人信息、数据信息,数据分析。系统的主要测试方法是黑河测试,测试用例如下表所示表6.1.1用户测试用例表用例编号测试描述预期结果优先级01授权登录测试系统根据用户是否登录而给出不同登录流程高02首页测试招聘者可以发布新岗位、修改或删除已发布岗位高03招聘信息测试可以模糊查询,多条件筛选、收藏、可以进入详情页面并由此进入聊天页面高04求职信息测试可以模糊查询,多条件筛选、可以进入详情页面并由此进入聊天页面高05论坛模块测试可以点赞,进入讨论区,可以显示论坛话题列表中06消息模块测试可以显示消息列表,可以根据消息列表而发起聊天高07我的模块测试可以进入完善信息模块,并编辑自己信息,可以查看收藏的岗位信息中表6.1.2管理员测试用例表用例编号测试描述预期结果优先级01密码登录测试系统可以对用户名和密码进行核对高02个人信息模块测试用户可以修改自己的昵称和头像高03数据信息模块测试可以分页显示数据,可以模糊查询,多条件筛选、查看详情和删除,可以进行页码跳转高04数据分析模块测试可以动态显示职位与数量的关系高6.2测试与结果分析6.2.1功能测试功能测试是为了确保软件系统按照其给定的规格运行,测试主要通过提供输入和验证基于需求的输出来测试应用软件的功能方面,主要考虑API、安全、前后端通信、数据库、用户界面以及其他功能间的联动效果。当系统出现错误时,是否提供有价值的错误信息,系统是否能够正常运行,系统是否能够无缝连接。(1)用户方面测试1.授权登录测试:该测试是为了确认系统是否能够从数据库中获取相应的信息,针对不同情况的用户能否采取正确的登录流程。该测试如表6.2.1所示。表6.2.1授权登录模块测试表功能描述授权登录时各种情况的处理测试目的检测系统授权登录的健全性测试条件不同情况的用户进行系统登录测试编号用户操作预期结果实际结果测试状态01用户未选择身份,点击登录系统弹出身份未选择提示框系统弹出身份未选择提示框与预期结果一致02登录过系统的用户再登录系统系统弹出提示框已检测到你的信息,是否直接登录系统弹出检测信息提示框与预期结果一致03未曾登录过系统的用户点击登录弹出授权提示框弹出授权提示框与预期结果一致04用户同意授权进入系统成功进入系统与预期结果一致2.首页模块测试:进入首页后,在首页模块,招聘者可以浏览自己已发布的岗位信息,点击添加按钮,出现信息表单,招聘者完成表单,点击保存,新增岗位发布完成。用户点击已发布岗位列表中的岗位,进入岗位详情页面,点击编辑,用户可以增删岗位信息,点击保存完成对选择的岗位的修改操作,点击删除,完成对该岗位的删除操作,该测试如表6.2.2所示。表6.2.2首页模块测试表功能描述首页模块的各类操作测试目的判断对于首页模块的岗位增删能否成功测试条件用户登录后进行岗位增删改的测试测试编号用户操作预期结果实际结果测试状态01招聘者进入首页显示招聘者自己所发布的岗位信息显示自己所发布的岗位信息与预期结果一致02用户点击添加出现信息表单出现信息表单与预期结果一致03添加操作的用户填写表单点击保存已发布岗位多出当才填写的岗位信息已发布岗位多出当才填写的岗位信息与预期结果一致04用户点击已发布的岗位进入该岗位的详细页面进入该岗位的详细页面与预期结果一致05用户再详情页面点击编辑显示自动补充的岗位信息表单显示自动补充的岗位信息表单与预期结果一致06用户在表单增改信息后点击保存该项岗位信息被修改该项岗位信息被修改与预期结果一致07用户在表单增改后点击删除已发布岗位栏中该岗位消失已发布岗位栏中该岗位消失与预期结果一致3.招聘信息模块测试:进入招聘信息模块,求职者可以浏览所有招聘者发布的岗位,用户可以进行模糊查询、条件筛选对岗位信息进行查找,用户点击某项岗位会进入岗位的详情页面,用户可以在详情页面考虑是否与该岗位联系人进行沟通。该测试如表6.2.3所示。表6.2.3招聘信息模块测试表功能描述招聘信息查看以及发起沟通测试目的判断招聘信息模块的各项功能能否正确执行测试条件用户登录后的招聘信息模块的测试测试编号用户操作预期结果实际结果测试状态01求职者进入招聘信息模块用户可以浏览招聘信息用户可以浏览招聘信息与预期结果一致02在搜索框中输入关键字后进行回车系统根据用户给出的关键字查找对应的招聘信息并显示系统根据用户给出的关键字查找对应的招聘信息并显示与预期结果一致03求职者使用条件选择器对招聘信息进行筛选系统显示筛选后的招聘信息系统显示筛选后的招聘信息与预期结果一致04求职者对某项岗位点击收藏按钮我的收藏栏中出现该条岗位信息我的收藏栏中出现该条岗位信息与预期结果一致05用户点击招聘信息列表中某项岗位进入该岗位详情页面,且页面显示正常进入该岗位详情页面,且页面显示正常与预期结果一致06岗位详情页面点击开始沟通按钮进入与该岗位联系人的聊天室进入与该岗位联系人的聊天室与预期结果一致4.求职信息模块测试:招聘者进入求职信息模块,招聘者在该模块可以浏览所有求职信息,招聘者可以在搜索框中进行模糊查询,招聘者可以使用条件选择器对求职信息进行筛选,招聘者点击某项求职信息进入该求职信息的详情页面,在详情页面中,招聘可以考虑是否与该求职者沟通交流。该测试如表6.2.4所示。表6.2.4求职信息模块测试表功能描述求职信息查看以及发起沟通测试目的判断求职信息模块的各项功能能否正确执行测试条件用户登录后的求职信息模块的测试测试编号用户操作预期结果实际结果测试状态01求职者进入求职信息模块用户可以浏览求职信息用户可以浏览求职信息与预期结果一致02在搜索框中输入关键字后进行回车系统根据用户给出的关键字查找对应的求职信息并显示系统根据用户给出的关键字查找对应的求职信息并显示与预期结果一致03求职者使用条件选择器对求职信息进行筛选系统显示筛选后的求职信息系统显示筛选后的求职信息与预期结果一致04用户点击求职信息列表中某项求职信息进入该求职者详情页面,且页面显示正常进入该求职者详情页面,且页面显示正常与预期结果一致05求职者详情页面点击开始沟通按钮进入与求职者的聊天室进入与求职者的聊天室与预期结果一致5.论坛模块测试:求职者可以浏览话题,可以对话题进行点赞,话题会显示用户的点赞数,求职者可以进入某项话题的讨论区,在讨论区求职者可以发送文本消息参与讨论。该测试如表6.2.5所示。表6.2.5论坛模块测试表功能描述求职者对论坛模块的各种操作测试目的测试论坛模块能否正确执行测试条件用户登录成功进入论坛模块测试编号用户操作预期结果实际结果测试状态01求职者进入论坛模块页面显示话题列表,且数据正常显示页面显示话题表,且数据正常显示与预期结果一致02求职者进入某项话题的讨论区进入讨论页面,且显示该话题其他用户的讨论情况进入讨论页面,且显示该话题其他用户的讨论情况与预期结果一致03对话题点赞点赞图案变红且数量加一点赞图案变红且数量加一与预期结果一致04在讨论区,求职者发送消息讨论区显示该求职者的言论讨论区显示该求职者的言论与预期结果一致6.消息模块测试:在该模块,用户可以看到其他用户发送给自己的消息。用户可以点击用户,进入与该用户的聊天室,在聊天室中可以看到于该用户的历史聊天记录。该测试如表6.2.6所示。表6.2.6消息模块测试表功能描述消息模块测试测试目的测试消息模块能否正确执行测试条件用户登录成功进入消息模块测试编号用户操作预期结果实际结果测试状态01用户进入消息模块页面实现历史消息记录页面实现历史消息记录与预期结果一致02用户点击某用户进入与该用户的聊天室且显示与该用户的历史聊天进入与该用户的聊天室且显示与该用户的历史聊天与预期结果一致03在聊天室中发送消息在页面右侧显示自己的消息在页面右侧显示自己的消息与预期结果一致04在聊天室中用户给我发消息在页面左侧显示用户的消息在页面左侧显示用户的消息与预期结果一致7.我的模块测试:在该模块,用户可以进入完善信息页面,用户在完善信息页面完善信息点击保存用户的信息修改完毕,用户点击我的收藏进入收藏栏页面,收藏栏页面实现该用户收藏的全部职位。该测试如表6.2.7所示。表6.2.7我的模块测试表功能描述我的模块测试测试目的测试我的模块各项功能能否正确执行测试条件用户登录成功进入我的模块测试编号用户操作预期结果实际结果测试状态01用户点击我的简历进入个人信息页面,显示用户目前的个人信息进入个人信息页面,显示用户目前的个人信息与预期结果一致02用户在个人信息页面点击编辑用户可以对个人信息进行编辑用户可以对个人信息进行编辑与预期结果一致03用户编辑完个人信息点击保存用户个人信息修改成功用户个人信息修改成功与预期结果一致04用户点击我的收藏按钮用户进入收藏栏页面,可以已收藏的岗位信息用户进入收藏栏页面,可以已收藏的岗位信息与预期结果一致05对收藏栏中的岗位进行删除该岗位从用户的收藏栏中消失该岗位从用户的收藏栏中消失与预期结果一致(2)管理者方面测试1.密码登录模块测试:该测试是为了确认系统是否能够从数据库中获取相应的信息,对用户输入的信息能否正确核对并采取正确的登录流程。该测试如表6.2.8所示。表6.2.8密码登录模块测试表功能描述密码登录时对用户名和密码的判断测试目的测试密码登录模块能否正确执行测试条件管理员完成登录测试编号用户操作预期结果实际结果测试状态01用户登录时输入错误的密码系统弹出密码错误提示框系统弹出密码错误提示框与预期结果一致02用户以正确的用户名和密码登录登录成功进入系统登录成功进入系统与预期结果一致2.个人信息模块测试:管理员点击头像,系统会弹出小窗口,在小窗口填写昵称和上传头像,管理员点击确认管理员的个人信息将会被改写。该测试如表6.2.9所示。表6.2.9个人信息模块测试表功能描述管理员个人信息的修改测试目的测试个人信息模块的各项功能的执行情况测试条件管理员完成登录测试编号用户操作预期结果实际结果测试状态01管理员点击头像系统弹出表单窗口系统弹出表单窗口与预期结果一致02管理员在表单窗口填写完整信息点击保存管理员的昵称和头像改变管理员的昵称和头像改变与预期结果一致03表单窗口未填信息点击保存出现红字提示,保存失败出现红字提示,保存失败与预期结果一致3.数据信息模块测试:进入数据信息模块以表格分页的形式显示招聘数据,表格的上部有条件选择器和搜索框,表格中的每条记录的尾部有查看和删除按钮,不会随着横向滚动条的滚动而变化,用户点击查看会进入该条记录的详情页面,用户点击删除会删除该条记录,并且分页表格会重新刷新。表格底部有页码,可以选择页码进行分页跳转。该测试如表6.2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论