当前社会竞争激烈,求职市场信息众多,但信息不对称、筛选困难的问题依然存在。因此,设计开发一款求职推荐系统是顺应时代发展的必然选择。该求职推荐系统利用Java编程语言,使用springboot技术框架,采取MySQL数据库实现系统的各项功能,具有便捷高效、安全友好的特点,促进求职招聘工作智能化、数据化、信息化发展,能够为求职用户提供个性化、精准的职位推荐,并实现在线投递简历和咨询企业,帮助求职者高效找到合适的工作机会,同时也能为企业用户提供发布招聘信息的平台,寻找符合需求的人才,提升招聘效率。管理员能够对系统进行管理和监督,保障系统正常运行。
关键词:求职推荐系统;springboot技术框架;Java编程语言;MySQL数据库
Abstract
In the current fiercely competitive society, there is a wealth of information in the job market, but problems such as information asymmetry and difficulty in screening still exist. Therefore, designing and developing a job recommendation system is an inevitable choice to keep up with the development of the times. This job recommendation system utilizes Java programming language, Spring Boot technology framework, and MySQL database to implement various functions of the system. It has the characteristics of convenience, efficiency, security, and friendliness, promoting the intelligent, data-driven, and information-based development of job recruitment work. It can provide personalized and accurate job recommendations for job seekers, and achieve online resume delivery and consulting with enterprises, helping job seekers find suitable job opportunities efficiently. At the same time, it can also provide a platform for enterprise users to publish recruitment information, find talents that meet their needs, and improve recruitment efficiency. Administrators can manage and supervise the system to ensure its normal operation.
Key words: job recommendation system; Springboot technology framework; Java programming language; MySQL database
目 录
1 绪 论
1.1 研究背景与意义
当前社会竞争激烈,求职市场信息众多,但信息不对称、筛选困难的问题依然存在。在快节奏的社会环境下,求职市场信息量庞大,但信息的获取与筛选仍存在困难。由于信息不对称导致求职者难以准确把握职位信息,也使企业难以找到符合需求的人才。因此,设计开发一款求职推荐系统是顺应时代发展的必然选择。
该求职推荐系统利用Java编程语言,使用springboot技术框架,采取MySQL数据库储存和处理数据来进行开发,实现系统的各项功能,具有便捷高效、安全友好的特点,促进求职招聘工作智能化、数据化、信息化发展。
因此,研究与开发一款求职推荐系统成为解决这一问题的有效途径,具有重要现实意义。通过构建求职推荐系统,可以解决求职者与企业之间信息不对称的问题,提高信息获取效率,节约双方时间成本;可以为求职者提供获得更精准的职位推荐,并实现在线投递简历和咨询企业,帮助求职者高效找到合适的工作机会,提高成功求职的概率,同时也能为企业提供发布招聘信息的平台,寻找符合需求的人才,提升招聘效率,并降低招聘成本。管理员可以监控系统运行情况,及时发现问题并做出调整,确保系统稳定运行并持续优化用户体验。
目前,国内外对求职推荐系统的研究与实践取得了显著进展。在国内,一些互联网巨头和创业公司积极探索和应用人才推荐技术。他们通过大数据和机器学习算法,构建了庞大的职位和用户数据集,利用推荐算法为求职者提供个性化的职位推荐。这些推荐系统能够根据用户的个人信息、就业经历、兴趣和技能等因素,匹配最合适的职位,并为求职者提供准确的职业发展及职位相关信息。
在国外,许多知名科技公司也在求职推荐系统领域进行了深入研究。比如,美国的LinkedIn公司通过积累用户数据并应用推荐算法,为求职者提供与其个人背景和兴趣相匹配的职位推荐。Facebook也在其社交平台上推出了求职功能,利用用户的社交关系和兴趣,为求职者提供更精准的职位推荐。
此外,研究者们还探索了更多创新的方法和技术来提升求职推荐系统的效果。例如,一些学者通过挖掘社交媒体数据、开发语义分析和情感分析等技术,来更好地理解求职者的需求和兴趣。还有一些研究者结合了推荐系统和在线学习的方法,将推荐过程作为一个动态的过程进行建模和优化,以适应用户需求的变化。
总体来说,国内外的研究者们正在积极探索和应用各种技术手段,推动求职推荐系统的发展。通过利用大数据和智能算法,这些系统能够提供个性化、精准的职位推荐,为求职者和企业提供更高效的匹配服务,进一步促进就业市场的发展和优化。
1.3 论文结构与章节安排
论文将分层次经行编排,除去论文摘要致谢文献参考部分,正文部分还会对网站需求做出分析,以及阐述大体的设计和实现的功能,最后罗列部分调测记录,论文主要架构如下:
第一章:引言。第一章主要介绍了课题研究的背景,系统开发的意义和本文的研究内容与主要工作。
第二章:系统需求分析。第二章主要从系统的用户、功能等方面进行需求分析。
第三章:系统设计。第三章主要对系统框架、系统功能模块、数据库进行功能设计。
第四章:系统实现。第四章主要介绍了系统框架搭建、系统界面的实现。
第五章:系统测试。第五章主要对系统的部分界面进行测试并对主要功能进行测试
2 求职推荐系统系统分析
系统分析是开发一个项目的先决条件,通过系统分析可以很好的了解系统的主体用户的基本需求情况,同时这也是项目的开发的原因。进而对系统开发进行可行性分析,通常包括技术可行性、经济可行性等,可行性分析同时也是从项目整体角度进行的分析。然后就是对项目的具体需求进行分析,分析的手段一般都是通过用户的用例图来实现。下面是详细的介绍。
2.1 可行性分析
(1)技术可行性:
所谓的技术可行性就是在限定时间,前期拟定的功能能否被满足。在开发设计上是否会遇上解决不了的问题。做完的项目能否被很好地应用,如果存在缺点在后期的维护上是否存在很大的难度。在对这个系统评估后,认定已存在的技术能达成目标。用Java技术来实现动态的页面,嵌入低依赖性的设计模式,灵活的数据库,配合稳定的服务器,整个系统的运行效率大大提升。由此可见,在技术层面达成目标不是非非之想。
(2)经济可行性:
在项目上使用的工具大部分都是当下流行开源免费的,所以在开发前期,开发时用于项目的经费将会大大降低,不会让开发该软件在项目启动期受到经费的影响,所以经济上还是可行的。尽量用最少的花费去满足用户的需求。省下经费用于人工费,以及设备费用。将在无纸化,高效率的道路上越走越远。。
(3)操作可行性:
本系统实现功能的操作很简单,普通电脑的常见配置就可以运行本软件,并且只要粗通电脑使用的基本常识就可以流畅的使用本软件。电脑具备连接互联网的能力,并且可以正常访问系统,并不需要操作者有什么高超的能力,只需了解业务流程,并且按照专业知识进行正确操作即可,所以求职推荐系统具备操作可行性。
业务流程是用一些特定的符合和线条来进行演示用户在使用系统时的过程,在进行系统分析的时候,业务流程可以帮助开发人员更好的理解业务,发现错误,完善系统。
用户成功登入系统后就能够实现增加数据的操作,增加数据的编号是特定的,系统生成,用户不能随意填写,除了编号以外,其他增加信息用户自己填写,填写后的信息经过系统验证,验证合法通过就显示增加数据成功了,相反的话,就没有增加成功,图2-1显示的就是在增加数据时的流程。
图2-1 数据增加流程图
数据修改时的流程和上面介绍的数据增加时的流程差不多,如图2-2所示。
图2-2 数据修改流程图
如果系统里面存在一些没有用的数据的话,相关的管理人员还可以对这些数据进行删除,图2-3就是数据删除时的流程图。
图2-3 数据删除流程图
2.3.1 功能需求分析
本系统用户权限分为3类,包括求职用户、企业用户和管理员,通过调查分析,系统主要的功能需求如下:
(1)求职信息管理:实现求职简历信息的添加、修改和删除及查询。
(2)招聘信息管理:实现招聘发布信息的添加、修改和删除及查询。
(3)用户信息管理:实现用户信息的添加、修改和删除及查询。
(4)信息交流管理:实现求职方和企业方双方信息的通道。
(5)信息查询统计:实现求职招聘双发信息的统计。
(6)登录注册管理:实现户信息的登录和注册。
按照求职推荐系统的角色划分为求职用户模块,企业用户模块和管理员模块这三大部分。
1、前台用户模块的总体设计
前台用户模块主要为求职用户模块,实现了用户注册、登录、首页、通知公告、新闻资讯、招聘信息、个人简历、我的账户、个人中心(个人首页、投递记录、咨询记录、个人简历、收藏)等功能。
求职用户管理模块:
- 注册登录:求职用户必须要注册成为系统用户,才可以在查看招聘信息的同时进行简历投递,和向企业用户进行咨询。
- 首页:用户登录后进入系统首页,首页信息主要包括系统导航栏、轮播图、通知公告资讯等信息。
- 通知公告:用户可以查看系统所有公告信息,可以查看某一公告的详情,可以对通知公告进行点赞、收藏、发表评论等操作。
- 新闻资讯:用户可以查看系统所有新闻资讯信息,并查看某一资讯的详情,和对资讯信息进行点赞、收藏、发表评论操作。
- 招聘信息:用户可以查看企业发布的招聘信息,可以查看某一求职招聘信息的详情,并可以进行投递简历和咨询企业操作。
- 个人简历:该模块方便求职用户管理和添加自己的个人简历信息。
- 我的账户:用户可以对个人账户信息进行管理,如修改个人基本信息、登录密码等,
- 个人中心:用户可以对个人首页、投递记录、咨询记录、个人简历、收藏等信息进行管控。
2、后台管理模块的总体设计
后台管理模块可以划分管理员和企业用户两大模块,其中管理员拥有后台首页(咨询信息统计)、系统用户、招聘信息管理、岗位类型管理、投递记录管理、咨询记录管理、个人简历管理、系统管理、通知公告管理、资源管理等功能;而企业用户需要进行注册,才可以拥有系统账号进行登录,登录后可以具有后台首页(咨询信息统计)、招聘信息管理、投递记录管理、咨询记录管理等功能。具体如下:
企业用户模块:
- 注册登录:企业用户必须要注册成为系统用户,才可以发布招聘信息,并查看简历投递信息和回复咨询信息给求职用户,并可以对个人信息和账号密码进行管理。
- 招聘信息管理:企业用户可以查看自己的招聘信息,进行增改删查操作。
- 投递记录管理:企业用户可以查看求职用户的简历投递记录,可以对简历进行下载、审核、回复操作,可以像用户发出面试邀请。
- 投递记录管理:企业用户可以查看和管理求职用户投递简历的信息,并对简历进行回复。
- 咨询记录管理:企业用户可以查看和管理求职用户提交的咨询企业信息,并对咨询进行回复。
管理员管理模块:
- 后台首页:管理员可以查看咨询信息统计数据分析图表。
- 系统用户:管理员可以对求职用户、企业用户、管理员等系统用户信息进行增删改查操作。
- 招聘信息管理:管理员可以查看所有招聘的详情信息,进行增删改查操作。
- 岗位类型管理:管理员可以对岗位类型信息进行管理,进行增改删查操作。
- 投递记录管理:管理员可以查看理求职用户投递简历的详情信息,进行查询和删除操作。
- 咨询记录管理:管理员可以查看求职用户发起的咨询企业的详情信息,进行查询和删除操作,并可以进行回复。
- 投递记录管理:管理员可以查看投递记录信息类别内容,进行查询和删除操作。
- 个人简历管理:管理员可以查看所有个人简历信息,进行查询和删除操作。
- 系统管理:管理员可以查看系统前台轮播图的详情信息,进行增删查操作。
- 通知公告管理:管理员可以查看通知公告的详情信息,进行增删查操作。
- 资源管理:管理员可以查看新闻资讯、新闻分类的详情信息,进行增删查操作。
求职推荐系统的非功能性需求比如求职推荐系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下2-1表格中:
表2-1求职推荐系统非功能需求表
安全性 | 主要指求职推荐系统数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 | 可靠性是指求职推荐系统能够安装用户的指示进行操作,经过测试,可靠性90%以上。 |
性能 | 性能是影响求职推荐系统占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 | 用户只要跟着求职推荐系统的页面展示内容进行操作,就可以了。 |
可维护性 | 求职推荐系统开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
2.4 系统用例分析
通过2.3功能的分析,得出了本求职推荐系统的用例图:
图2-1 求职用户角色的用例展示。
图2-1 求职推荐系统求职用户角色用例图
图2-2 企业用户角色的用例展示。
图2-3就是管理员角色的用例展示。
图2-3求职推荐系统管理员角色用例图
2.5 本章小结
本章主要通过对求职推荐系统的可行性分析、流程分析、功能需求分析、系统用例分析,确定整个求职推荐系统要实现的功能。同时也为求职推荐系统的代码实现和测试提供了标准。
本章主要讨论的内容包括求职推荐系统的功能模块设计、数据库系统设计。
3.1 系统架构设计
本求职推荐系统从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。
图3-1求职推荐系统系统架构设计图
表现层(UI):又称UI层,主要完成本求职推荐系统的UI交互功能,一个良好的UI可以打打提高用户的用户体验,增强用户使用本求职推荐系统时的舒适度。UI的界面设计也要适应不同版本的求职推荐系统以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用户进行交互操作时必须要得到与之相符的交互结果,这就要求表现层要与业务逻辑层进行良好的对接。
业务逻辑层(BLL):主要完成本求职推荐系统的数据处理功能。用户从表现层传输过来的数据经过业务逻辑层进行处理交付给数据层,系统从数据层读取的数据经过业务逻辑层进行处理交付给表现层。
数据层(DL):由于本求职推荐系统的数据是放在服务端的mysql数据库中,因此本属于服务层的部分可以直接整合在业务逻辑层中,所以数据层中只有数据库,其主要完成本求职推荐系统的数据存储和管理功能。
3.2 系统功能模块设计
在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本求职推荐系统中的用例。那么接下来就要开始对本求职推荐系统的架构、主要功能和数据库开始进行设计。求职推荐系统根据前面章节的需求分析得出,其总体设计模块图如图3-2所示。
图3-2 求职推荐系统功能模块图
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
3.3.1 数据库概念结构设计
下面是整个求职推荐系统中主要的数据库表总E-R实体关系图。
图3-3 求职推荐系统总E-R关系图
通过上一小节中求职推荐系统中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | token_id | int | 10 | 0 | N | Y | 临时访问牌ID | |
2 | token | varchar | 64 | 0 | Y | N | 临时访问牌 | |
3 | info | text | 65535 | 0 | Y | N | ||
4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | article_id | mediumint | 8 | 0 | N | Y | 文章id:[0,8388607] | |
2 | title | varchar | 125 | 0 | N | Y | 标题:[0,125]用于文章和html的title标签中 | |
3 | type | varchar | 64 | 0 | N | N | 0 | 文章分类:[0,1000]用来搜索指定类型的文章 |
4 | hits | int | 10 | 0 | N | N | 0 | 点击数:[0,1000000000]访问这篇文章的人次 |
5 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
6 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
8 | source | varchar | 255 | 0 | Y | N | 来源:[0,255]文章的出处 | |
9 | url | varchar | 255 | 0 | Y | N | 来源地址:[0,255]用于跳转到发布该文章的网站 | |
10 | tag | varchar | 255 | 0 | Y | N | 标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 | |
11 | content | longtext | 2147483647 | 0 | Y | N | 正文:文章的主体内容 | |
12 | img | varchar | 255 | 0 | Y | N | 封面图 | |
13 | description | text | 65535 | 0 | Y | N | 文章描述 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000]决定分类显示的先后顺序 |
3 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
4 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
5 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
6 | icon | text | 65535 | 0 | Y | N | 分类图标: | |
7 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
7 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | collect_id | int | 10 | 0 | N | Y | 收藏ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
3 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
4 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
6 | title | varchar | 255 | 0 | Y | N | 标题: | |
7 | img | varchar | 255 | 0 | Y | N | 封面: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | consultation_records_id | int | 10 | 0 | N | Y | 咨询记录ID | |
2 | enterprise_name | varchar | 64 | 0 | Y | N | 企业名称 | |
3 | enterprise_users | int | 10 | 0 | Y | N | 0 | 企业用户 |
4 | recruitment_positions | varchar | 64 | 0 | Y | N | 招聘岗位 | |
5 | job_seeking_users | int | 10 | 0 | Y | N | 0 | 求职用户 |
6 | consultation_frequency | varchar | 64 | 0 | Y | N | 咨询次数 | |
7 | job_seeking_consultation | text | 65535 | 0 | Y | N | 求职咨询 | |
8 | enterprise_response | text | 65535 | 0 | Y | N | 企业回复 | |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | delivery_records_id | int | 10 | 0 | N | Y | 投递记录ID | |
2 | enterprise_name | varchar | 64 | 0 | Y | N | 企业名称 | |
3 | enterprise_users | int | 10 | 0 | Y | N | 0 | 企业用户 |
4 | recruitment_positions | varchar | 64 | 0 | Y | N | 招聘岗位 | |
5 | job_type | varchar | 64 | 0 | Y | N | 岗位类型 | |
6 | job_seeking_users | int | 10 | 0 | Y | N | 0 | 求职用户 |
7 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
8 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
9 | contact_phone_number | varchar | 64 | 0 | Y | N | 联系电话 | |
10 | the_highest_educational_level | varchar | 64 | 0 | Y | N | 最高学历 | |
11 | resume_file | varchar | 255 | 0 | Y | N | 简历文件 | |
12 | delivery_notes | text | 65535 | 0 | Y | N | 投递备注 | |
13 | resume_status | varchar | 64 | 0 | Y | N | 简历状态 | |
14 | resume_reply | text | 65535 | 0 | Y | N | 简历回复 | |
15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | enterprise_users_id | int | 10 | 0 | N | Y | 企业用户ID | |
2 | enterprise_name | varchar | 64 | 0 | Y | N | 企业名称 | |
3 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
4 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
5 | contact_phone_number | varchar | 16 | 0 | Y | N | 联系电话 | |
6 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | job_seeking_users_id | int | 10 | 0 | N | Y | 求职用户ID | |
2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
3 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
4 | contact_phone_number | varchar | 16 | 0 | Y | N | 联系电话 | |
5 | the_highest_educational_level | varchar | 64 | 0 | Y | N | 最高学历 | |
6 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | job_type_id | int | 10 | 0 | N | Y | 岗位类型ID | |
2 | job_type | varchar | 64 | 0 | Y | N | 岗位类型 | |
3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
2 | title | varchar | 125 | 0 | N | N | 标题: | |
3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | personal_resume_id | int | 10 | 0 | N | Y | 个人简历ID | |
2 | resume_name | varchar | 64 | 0 | Y | N | 简历名称 | |
3 | job_seeking_users | int | 10 | 0 | Y | N | 0 | 求职用户 |
4 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
5 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
6 | contact_phone_number | varchar | 64 | 0 | Y | N | 联系电话 | |
7 | the_highest_educational_level | varchar | 64 | 0 | Y | N | 最高学历 | |
8 | resume_attachment | varchar | 255 | 0 | Y | N | 简历附件 | |
9 | resume_notes | text | 65535 | 0 | Y | N | 简历备注 | |
10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | praise_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
表recruitment_information (招聘信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | recruitment_information_id | int | 10 | 0 | N | Y | 招聘信息ID | |
2 | enterprise_name | varchar | 64 | 0 | Y | N | 企业名称 | |
3 | enterprise_users | int | 10 | 0 | Y | N | 0 | 企业用户 |
4 | recruitment_positions | varchar | 64 | 0 | Y | N | 招聘岗位 | |
5 | job_type | varchar | 64 | 0 | Y | N | 岗位类型 | |
6 | job_requirements | varchar | 64 | 0 | Y | N | 岗位要求 | |
7 | salary_and_benefits | varchar | 64 | 0 | Y | N | 薪资待遇 | |
8 | enterprise_address | varchar | 64 | 0 | Y | N | 企业地址 | |
9 | cover_photo | varchar | 255 | 0 | Y | N | 封面图片 | |
10 | content_details | longtext | 2147483647 | 0 | Y | N | 内容详情 | |
11 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
12 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
13 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
14 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | slides_id | int | 10 | 0 | N | Y | 轮播图ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | content | varchar | 255 | 0 | Y | N | 内容: | |
4 | url | varchar | 255 | 0 | Y | N | 链接: | |
5 | img | varchar | 255 | 0 | Y | N | 轮播图: | |
6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | upload_id | int | 10 | 0 | N | Y | 上传ID | |
2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
3 | path | varchar | 255 | 0 | Y | N | 访问路径 | |
4 | file | varchar | 255 | 0 | Y | N | 文件路径 | |
5 | display | varchar | 255 | 0 | Y | N | 显示顺序 | |
6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
7 | dir | varchar | 255 | 0 | Y | N | 文件夹 | |
8 | type | varchar | 32 | 0 | Y | N | 文件类型 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
13 | open_id | varchar | 255 | 0 | Y | N | 针对获取用户信息字段 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | vip_level | varchar | 255 | 0 | Y | N | 会员等级 | |
16 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 会员折扣 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | group_id | mediumint | 8 | 0 | N | Y | 用户组ID:[0,8388607] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000] |
3 | name | varchar | 16 | 0 | N | N | 名称:[0,16] | |
4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该用户组的特点或权限范围 | |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | register | smallint | 5 | 0 | Y | N | 0 | 注册位置: |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
整个求职推荐系统的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。
4 求职推荐系统详细设计与实现
求职推荐系统的详细设计与实现主要是根据前面的求职推荐系统的需求分析和求职推荐系统的总体设计来设计页面并实现业务逻辑。主要从求职推荐系统界面实现、业务逻辑实现这两部分进行介绍。
4.1 求职用户功能模块
4.1.1 前台首页界面
当进入求职推荐系统的时候,系统以上中下的布局进行展示,首先映入眼帘的是系统的导航栏,下面是轮播图,再往下是新闻资讯等系统信息,其主界面展示如下图4-1所示。
图4-1 前台首页界面图
4.1.2 用户注册界面
用户右上角“注册”按钮进入注册页面填写账号、密码、确认密码、昵称、邮箱、身份、用户姓名、性别等信息后点击“注册”按钮,系统将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可用户注册成功。其用户注册界面展示如下图4-2所示。
图4-2 用户注册界面图
用户注册的关键代码如下:
/**
* 注册
* @param user
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(@RequestBody User user) {
// 查询用户
Map<String, String> query = new HashMap<>();
Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));
query.put("username",user.getUsername());
List list = service.selectBaseList(service.select(query, new HashMap<>()));
if (list.size()>0){
return error(30000, "用户已存在");
}
map.put("password",service.encryption(String.valueOf(map.get("password"))));
service.insert(map);
return success(1);
}
4.1.3 用户登录界面
用户注册后可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在验证信息一致才能成功登录系统;否则将会提示相应错误信息,用户登录界面如下图4-3所示。
图4-3用户登录界面图
用户登录关键代码如下:
/**
* 登录
* @param data
* @param httpServletRequest
* @return
*/
@PostMapping("login")
public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
log.info("[执行登录接口]");
String username = data.get("username");
String email = data.get("email");
String phone = data.get("phone");
String password = data.get("password");
List resultList = null;
Map<String, String> map = new HashMap<>();
if(username != null && "".equals(username) == false){
map.put("username", username);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}else{
return error(30000, "账号或密码不能为空");
}
if (resultList == null || password == null) {
return error(30000, "账号或密码不能为空");
}
//判断是否有这个用户
if (resultList.size()<=0){
return error(30000,"用户不存在");
}
User byUsername = (User) resultList.get(0);
Map<String, String> groupMap = new HashMap<>();
groupMap.put("name",byUsername.getUserGroup());
List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());
if (res==null){
return error(30000,"用户不存在");
}
if (!res.equals("已通过")){
return error(30000,"该用户审核未通过");
}
}
//查询用户状态
if (byUsername.getState()!=1){
return error(30000,"用户非可用状态,不能登录");
}
String md5password = service.encryption(password);
if (byUsername.getPassword().equals(md5password)) {
// 存储Token到数据库
AccessToken accessToken = new AccessToken();
accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
accessToken.setUser_id(byUsername.getUserId());
Duration duration = Duration.ofSeconds(7200L);
redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);
// 返回用户信息
JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
user.put("token", accessToken.getToken());
JSONObject ret = new JSONObject();
ret.put("obj",user);
return success(ret);
} else {
return error(30000, "账号或密码不正确");
}
}
4.1.4 招聘信息界面
求职用户点击“招聘信息”后就可以看到所有的招聘信息列表,支持通过输入关键字进行搜索,选择你想要了解的招聘信息后将会进入该招聘信息的详情界面,同时,可以进行投递简历和咨询企业操作。界面如下图所示。
图4-7 招聘信息界面图
4.1.5 个人简历界面
该模块方便求职用户管理和添加自己的个人简历信息。界面如下图所示。
图4-6个人简历界面图
4.1.6 个人中心界面
求职用户可以对个人首页、投递记录、咨询记录、个人简历、收藏等信息进行管控。其界面如下图所示。
图4-7 个人中心界面图
4.2 企业用户功能模块
4.2.1 招聘信息管理界面
企业用户可以查看自己的招聘信息,进行增改删查操作。其界面如下图所示。
图4-8招聘信息管理添加界面图
4.2.2 投递记录管理界面
企业用户可以查看和管理求职用户投递简历的信息,并对简历进行回复。其界面如下图所示。
图4-9简历投递界管理详情面图
企业用户可以查看和管理求职用户提交的咨询企业信息,并对咨询进行回复。其界面如下图所示。
图4-10咨询记录管理详情界面图
4.3 管理员功能模块
管理员可以查看咨询信息统计数据分析图表。界面如下图所示。
图4-11后台首页界面图
4.3.2 系统用户管理界面
管理员可以对求职用户、企业用户、管理员等系统用户信息进行增删改查操作。界面如下图所示。
图4-12系统用户管理界面图
管理员可以查看所有招聘的详情信息,进行增删改查操作。界面如下图所示。
图4-13招聘信息管理界面图
管理员可以查看求职用户发起的咨询企业的详情信息,进行查询和删除操作,并可以进行回复。界面如下图所示。
图4-14咨询记录管理界面图
管理员可以查看求职用户发起的咨询企业的详情信息,进行查询和删除操作,并可以进行回复。界面如下图所示。
图4-15个人简历管理界面图
管理员可以查看系统前台轮播图的详情信息,进行增删查操。界面如下图所示。
图4-16系统管理界面图
轮播图上传的关键代码如下:
@PostMapping("/upload")
public Map<String, Object> upload(@RequestParam("file") MultipartFile file) {
log.info("进入方法");
if (file.isEmpty()) {
return error(30000, "没有选择文件");
}
try {
//判断有没路径,没有则创建
String filePath = System.getProperty("user.dir") + "/src/main/resources/static/";
File targetDir = new File(filePath);
if (!targetDir.exists() && !targetDir.isDirectory()) {
if (targetDir.mkdirs()) {
log.info("创建目录成功");
} else {
log.error("创建目录失败");
}
}
String fileName = file.getOriginalFilename();
File dest = new File(filePath + fileName);
log.info("文件路径:{}", dest.getPath());
log.info("文件名:{}", dest.getName());
file.transferTo(dest);
JSONObject jsonObject = new JSONObject();
jsonObject.put("url", "/api/upload/" + fileName);
return success(jsonObject);
} catch (IOException e) {
log.info("上传失败:{}", e.getMessage());
}
return error(30000, "上传失败");
}
4.3.7资源管理界面
管理员可以查看新闻资讯、新闻分类的详情信息,进行增删查操作。界面如下图所示。
图4-17资源管理界面图
添加的代码如下:
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
@RequestMapping(value = "/del")
@Transactional
public Map<String, Object> del(HttpServletRequest request) {
service.delete(service.readQuery(request), service.readConfig(request));
return success(1);
}
public void delete(Map<String,String> query,Map<String,String> config){
QueryWrapper wrapper = new QueryWrapper<E>();
toWhereWrapper(query, "0".equals(config.get(FindConfig.GROUP_BY)),wrapper);
baseMapper.delete(wrapper);
log.info("[{}] - 删除操作:{}",wrapper.getSqlSelect());
}
5系统测试
5.1 系统测试目的
对任何系统而言,测试都是必不可少的环节,测试可以发现系统存在的很多问题,所有的软件上线之前,都应该进行充足的测试之后才能保证上线后不会Bug频发,或者是功能不满足需求等问题的发生。下面分别从单元测试,功能测试和用例测试来对系统进行测试以保证系统的稳定性和可靠性。
部分系统测试用例具体如下:
下表是系统登录功能测试用例,检测了用户名和密码的不同的输入情况,观察系统的响应情况。得出该功能达到了设计目标。
表6-1 系统登录功能测试用例
功能描述 | 用于系统登录 | |
测试目的 | 检测登录时的合法性检查 | |
测试数据以及操作 | 预期结果 | 实际结果 |
输入的用户名和密码带有非法字符 | 提示用户名或者密码错误 | 与预期结果一致 |
输入的用户名或者密码为空 | 提示用户名或者密码错误 | 与预期结果一致 |
输入的用户名和密码不存在 | 提示用户名或者密码错误 | 与预期结果一致 |
输入正确的用户名和密码 | 登录成功 | 与预期结果一致 |
下表是注册功能测试用例,检测了各种数据的输入情况,观察系统的响应情况。得出该功能达到了设计目标。
表6-2 注册功能测试用例
功能描述 | 用于用户注册 | |
测试目的 | 检测用户注册时的合法性检查 | |
测试数据以及操作 | 预期结果 | 实际结果 |
输入的手机号不合法 | 提示请输入正确的手机号码 | 与预期结果一致 |
输入的字段为空 | 提示必填项不能为空 | 与预期结果一致 |
输入的密码少于6位 | 提示密码必须为6-12位 | 与预期结果一致 |
输入的密码大于12位 | 提示密码必须为6-12位 | 与预期结果一致 |
下表是招聘信息功能的测试用例,检测了招聘信息的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。
前置条件;用户登录系统。
表6-3 招聘信息的测试用例
功能描述 | 用于招聘信息 | |
测试目的 | 检测招聘信息时的各种操作的运行情况 | |
测试数据以及操作 | 预期结果 | 实际结果 |
点击添加招聘信息,必填项合法输入,点击保存 | 提示添加成功 | 与预期结果一致 |
点击添加招聘信息,必填项输入不合法,点击保存 | 提示必填项不能为空 | 与预期结果一致 |
点击修改招聘信息,必填项修改为空,点击保存 | 提示必填项不能为空 | 与预期结果一致 |
点击修改招聘信息,必填项输入不合法,点击保存 | 提示必填项不能为空 | 与预期结果一致 |
点击删除招聘信息,选择招聘信息删除 | 提示删除成功 | 与预期结果一致 |
点击搜索招聘信息,输入存在的简历名 | 查找出招聘信息 | 与预期结果一致 |
点击搜索招聘信息,输入不存在的简历名 | 不显示招聘信息 | 与预期结果一致 |
使用阿里云PTS(Performance Testing Service)性能测试服务对线上系统进行压力测试。线上服务器环境为:1核心CPU,1G内存,1Mbps公网带宽,Centos7.0操作系统。
压测过程中使用了2台并发机器,每台机器20个用户并发,对系统主页,登录,数据查询和数据维护等模块进行并发访问,测试结果是有40个用户并发时,数据管理相关页面的响应时间甚至达到了7s,通过查看服务器出网流量发现已经达到1381kb/s,可以看出服务器的带宽已经达到峰值,如果系统使用5Mbps的带宽,系统的响应时间和TPS将会大大增加。在整个测试的过程中,CPU的使用率占用仅8%,也提现出带宽瓶颈对系统的影响非常严重。。
随着计算机互联网技术的迅猛发展,各行各业都已经实现采用计算机相关技术对日益放大的数据进行管理。求职推荐系统的开发是使用Java开发语言,以Springboot作为框架,基于大数据,使用MySQL数据库系统进行储存和处理数据。
本文总结了求职推荐系统实现背景、意义与现状,介绍系统所使用的开发工具和相关技术,接着阐述了系统的具体业务需求,在分析系统功能需求时,对整个系统的总体架构以及功能模块等进行了分析,并选择合适的系统开发技术完成了对各个模块的开发工作。同时,根据系统需求对系统结构以及功能模块等进行了详细地设计,将整个系统划分为多个不同的功能模块,实现了求职推荐系统所需的一些基本功能。并且通过系统测试证明了系统在功能以及性能等方面都达到了预期的要求,具有较高的稳定性与可靠性,并对发现的漏洞和错误进行了完善,进而提高了系统整体的实用性。在系统投入运行时,各功能均运行正常。系统的每个界面的操作符合常规逻辑,对使用者来说操作简单,界面友好,数据安全。整个系统的各个功能设计合理,体现了人性化、数据化、信息化。
但是由于自己在系统开发过程中对一些用到的相关知识和技术掌握不够牢固,再加上自身开发经验欠缺,因此系统在有些方面的功能还不够完善,考虑的不够全面,因此整个系统还有待日后逐步完善。
[1]雷欣,马宏琳,郑霖,等.基于SpringBoot的域名信息系统设计与实现[J].电脑知识与技术,2024,20(05):44-47.DOI:10.14004/j.cnki.ckt.2024.0188.
[2]吴伶琳.基于SpringBoot的客户关系管理系统设计与实现[J].无线互联科技,2023,20(24):60-62.
[3]曲锦旭.基于SpringBoot的农作物受灾分析系统的设计与实现[J].农业工程技术,2023,43(35):18-19.DOI:10.16815/j.cnki.11-5436/s.2023.35.006.
[4]吴昊,张丹.基于SpringBoot框架的大学生网上兼职系统设计与实现[J].电脑知识与技术,2023,19(35):68-72.DOI:10.14004/j.cnki.ckt.2023.1860.
[5]吴锦娜.基于协同过滤的就业推荐系统设计与实现[D].西安石油大学,2023.DOI:10.27400/d.cnki.gxasc.2023.001218.
[6]行万里.基于文本匹配的就业推荐系统研究[D].太原师范学院,2023.DOI:10.27844/d.cnki.gtysf.2023.000097.
[7]黄志超.校企合作背景下的企业兼职教师管理平台的设计与实现[J].电脑知识与技术,2023,19(15):27-29+43.DOI:10.14004/j.cnki.ckt.2023.0813.
[8]Yang Y .Design and Implementation of Student Information Management System Based on Springboot[J].Advances in Computer, Signals and Systems,2022,6(6):
[9]张峻杰.基于SpringBoot的残疾人就业智能推荐系统的设计与实现[D].首都经济贸易大学,2022.DOI:10.27338/d.cnki.gsjmu.2022.000282.
[10]温晓宇.基于Hadoop平台的岗位推荐系统的设计与实现[J].科技资讯,2022,20(13):4-6.DOI:10.16661/j.cnki.1672-3791.2201-5042-2632.
[11]张怀秀.企事业单位网上招聘推荐系统开发实现[J].电脑编程技巧与维护,2022,(06):49-51.DOI:10.16184/j.cnki.comprg.2022.06.035.
[12]赵家贝.基于数据挖掘的职位信息可视化分析与个性化推荐[D].华东师范大学,2022.DOI:10.27149/d.cnki.ghdsu.2022.001181.
[13]Hejing W .Commerce Middle Office Management System Based on Springboot[J].International Journal of Advanced Network, Monitoring and Controls,2022,7(2):32-45.
[14]赵清.基于“互联网+”平台的学校就业推荐系统设计[J].信息技术,2021,(10):117-121+126.DOI:10.13274/j.cnki.hdzj.2021.10.020.
[15]唐韵清,王一诺,马瑞,等.基于Web的网上求职招聘系统[J].网络安全技术与应用,2021,(06):29-31.
[16]Cheng F .Talent Recruitment Management System for Small and Micro Enterprises Based on Springboot Framework[J].Advances in Educational Technology and Psychology,2021,5(2):
[17]李孟津,杨丹.基于SpringBoot的在线招聘网站的设计与实现[J].科学技术创新,2020,(26):98-99.
[18]陈梓腾,宋梓源,张伟.基于JAVA的大学生网上招聘系统的设计与实现[J].电脑知识与技术,2020,16(15):128-129+133.DOI:10.14004/j.cnki.ckt.2020.1769.
[19]赵永生.面向高校毕业生的求职推荐系统研究[D].江苏科技大学,2020.DOI:10.27171/d.cnki.ghdcc.2020.000256.
[20]孙炯宁.高校求职招聘网站系统的设计与实现[J].数字技术与应用,2019,37(11):157+159.DOI:10.19695/j.cnki.cn12-1369.2019.11.84.
回忆过去,许许多多的事情浮现在脑海,刚上大学时欢乐心情和兴奋的场景还历历在目。一切都是那么新鲜,那么富有吸引力。有快乐也有艰辛,有收获也有失落。衷心感谢信息学院所有支持帮助过我的老师,谢谢你们多年来的关心和爱护。同窗的友情同样难忘,你们与我共同走过了人生中不平凡的道路,给我留下了值得珍藏的美好记忆。
在大学生活即将划上一个句号时候,在此我要特别感谢指导论文设计的老师。本论文是在他的悉心指导和热情帮助下完成的,老师认真负责的工作态度,严谨的治学精神和精深的理论水平都使我受益匪浅。老师无论在理论上还是在实践中,都给予我很大的帮助,使我专业技能的应用水平得到很大提高,这对于我以后的工作和学习都有益处。值此论文完成之际,特别向老师表示衷心的感谢和崇高的敬意,谢谢他细心而又耐心地辅导,使得我得以顺利的完成毕业设计开发工作,同时也要感谢其他帮助过我的老师和同学,他们在我成长过程中给予了我很大的帮助,在此一并表示感谢。最后,我还要感谢我的父母,你们的养育之恩我永远不会忘记,将来我也要用我的成绩回报你们。
由于本人水平有限,加上时间紧促,本文一定有不少缺点和不足,恳请各位老师给予帮助和指正。
免费领取项目源码,请关注❤点赞收藏并私信博主,谢谢-