(附源码)springboot校园兼职系统 毕业设计 463450

您所在的位置:网站首页 大学生不能兼职的原因有哪些 (附源码)springboot校园兼职系统 毕业设计 463450

(附源码)springboot校园兼职系统 毕业设计 463450

2024-07-13 20:10| 来源: 网络整理| 查看: 265

springboot校园兼职系统

摘 要

信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对校园兼职系统等问题,对校园兼职系统进行研究分析,然后开发设计出校园兼职系统以解决问题。

校园兼职系统主要功能模块包括系统管理员:首页、站点管理(轮播图、公告栏)用户管理(管理员、求职者、兼职发布者)内容管理(热门资讯、资讯分类列表)更多管理(职位信息、职位类型、报名兼职、线上沟通、简历管理、个人兼职记录),采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采取MySQL作为后台数据的主要存储单元,采用springboot框架、java技术、Ajax技术进行业务系统的编码及其开发,实现了本系统的全部功能。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。针对校园兼职系统的各项需求以及技术问题进行分析,证明了系统的必要性和技术可行性,然后对设计系统需要使用的技术软件以及设计思想做了基本的介绍,最后来实现校园兼职系统和部署运行使用它。

关键词:校园兼职系统;springboot框架;MySQL数据库

Springboot campus part-time system

Abstract

In the information society, there is a need for targeted information access, but the expansion of access is basically the direction of people's efforts. Due to the deviation of the perspective, people can often obtain different types of information, which is also the most difficult subject for technology to overcome. Aiming at the problems of campus part-time system, this paper studies and analyzes the campus part-time system, and then develops and designs the campus part-time system to solve the problems.

The main functional modules of the campus part-time system include system administrator: home page, site management (rotation chart, bulletin board), user management (administrator, job seeker, part-time publisher), content management (popular information, information classification list) and more management (position information, position type, part-time registration, online communication, resume management, personal part-time records), Adopting the object-oriented development mode for software development and hardware erection can well meet the needs of practical use, improve the corresponding software erection and program coding, take MySQL as the main storage unit of background data, and use springboot framework, Java technology and Ajax technology for business system coding and development, so as to realize all the functions of the system. This report first analyzes the background, function and significance of the research, which lays a foundation for the rationality of the research work. This paper analyzes the requirements and technical problems of the campus part-time system, proves the necessity and technical feasibility of the system, then makes a basic introduction to the technical software and design ideas needed to design the system, and finally realizes the campus part-time system and deploys it.

Key words: campus part-time system; Springboot framework; Mysql database

目   录

第1章 绪论

1.1 研究背景

1.2 开发现状

第2章 相关技术介绍

2.1 开发技术

2.2 语言介绍

(1) 面向对象

(2) 跨平台性

(3) 多线程

2.3 HTML网页技术

2.4 MVVM模式

2.5 MySQL描述

第3章 系统分析

3.1 可行性分析

3.2 功能需求分析

3.3 非功能需求分析

3.4 安全性需求分析

3.4.1 系统的安全性

3.4.2 数据的安全性

3.5 数据流程分析

第4章 系统设计

4.1 系统架构设计

4.2 系统总体设计

4.3 数据库设计

4.3.1 数据库概念设计

4.3.2 数据库表设计

第5章 系统实现

5.1 数据库访问层的实现

5.2 注册模块的实现

5.3 登录模块的实现

5.4管理员功能模块

5.5求职者前台功能模块

5.6兼职发布者功能模块

第6章 系统测试

6.1 软件测试的重要性

6.2 测试实例的研究与选择

6.3 测试环境与测试条件

6.4系统运行情况

6.5系统评价

6.5.1系统功能评价

6.5.2系统技术评价

6.5.3系统经济评价

第7章 总结与展望

参考文献

致谢

绪论 研究背景

 随着市场经济的不断活跃,求职务工人员流动量的不断增加,越来越多的应聘者和招聘者需要沟通,尤其是大学生就业更是一个严峻的问题。现在社会上出现的状况是好的工作岗位缺少好的人才,好的人才又没有找到合适的岗位,原因为何?是因为用人双方都没有足够的信息与方式来把握到这样的机会,因此错失了许多好的工作或是人才。

从调查中可以看出,现在在校园兼职的许多大学生,他们兼职的主要目的是在得到报酬的同时使自己加深对社会的了解,提高自身的品质,锻炼自己的意志,为今后的工作奠定基础,减少以后求职道路上的绊脚石。

同时大学生从事的兼职类别是有限的,很少能找到与自己专业相关的职位,多数还是付出廉价的劳动力。原因有多方面的,主要原因有二方面:一方面,时间有限,一般都是利用课余时间,所以同学们只能选择工作时间相对较短的工作;另一方面,社会经验较少,所学的专业知识不能满足用人单位的需求,诸多用人单位不予考虑。况且在校园里的学生了解兼职的途径还是很狭窄。很多都是同学之间互相介绍才走上兼职的岗位,那是否可以通过平台来了解呢?答案是肯定的。

开发现状

随着网络信息化时代的到来,大学生兼职作为一种新的招聘形式迅速崛起,并很快得到了多数招聘会者和用人单位的支持和应用。大学生兼职的优势,首先体现在为招聘会者和用人单位之间提供一个相互交流沟通的平台。大学生兼职的兴起也是的招聘会和招聘的观念和方式较之以往发生了很大的变化。伴随着互联网的快速发展,中国网民数量的迅速增长,大学生兼职的用户数量也随之增加。

前程无忧、中华英才和智联招聘被称为中国网络招聘三巨头。数据显示,这三大招聘网站的市场营收份额达61.6%。其他行业型、搜索型、社交型等网站数量及营收规模虽有所增加,但是短期内很难撼动这三巨头的网络招聘地位。

招聘企业的信息发布、品牌宣传、简历筛选、人员初试安排等需求,决定了细分招聘网站将是未来的发展趋势。

相比国外校园兼职系统,其专业化营销和电话销售、个性简历的模板化处理、行业细分、地址簿的充分利用,本土化服务等等差距很大,国外通过这种专业化、本土化服务能够提供客户满意的增值服务,像Monster,其个人会员的收入甚至占到了总收入的三分之一,而国内的大学生兼职公司完全可以从现有规模中挖掘潜力。

未来可以预见的是,大学生兼职将会进一步细分,超越同质化竞争的一个有力武器就是找到细分市场做专业化服务。地方和行业这样细分的大学生兼职公司将会有更大的机会,它们能够更加贴近用户,提供本土化服务。

相关技术介绍 开发技术

本系统前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router和Vuex实现动态路由和全局状态管理,Ajax实现前后端通信,Element UI组件库使页面快速成型。后端部分:采用springboot作为开发框架,同时集成MyBatis、Redis等相关技术。

语言介绍

Java计算机编程语言本身不同于传统的C++计算机编程语言, 本身非常简单, 能够实现快速学习。作为一门面向对象的语言,其主要特点为:

面向对象

其基本单位是对象,对象又含有属性和方法。属性用来说明对象,方法用来操作对象。

跨平台性

编写的软件程序可以在任意计算机上运行使用,不会因为软、硬件条件的不同而有限制。

多线程

在一个应用程序中能够同时存在两个以上包括两个的线程,这多个线程可以并发运行,节省时间的同时提高了软件性能。

HTML网页技术

HTML是一种制作网页的常用语言,它一般是用于制作静态页面。它的命令是可以体现文字信息、链接信息、图形信息和表格信息等等。现在它被大众普遍接受广泛应用在网络上[5]。

MVVM模式

MVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。当然这些事 ViewModel 已经帮我们做了,它可以取出 Model 的数据同时帮忙处理 View 中由于需要展示内容而涉及的业务逻辑。微软的WPF带来了新的技术体验,如Silverlight、音频、视频、3D、动画……,这导致了软件UI层更加细节化、可定制化。同时,在技术层面,WPF也带来了 诸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由来便是MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演变过来的一种新型架构框架。它立足于原有MVP框架并且把WPF的新特性糅合进去,以应对客户日益复杂的需求变化。

MySQL描述

现在MySQL数据库在网络上它可以支撑许多个用户,而且也可以适应客服机和服务器的部署或者配置等,我们这里的服务器和客户机其实就是一种软件上的概念,并且我们使用的计算机硬件也与他们不存在一一对应的关系[3]。

MySQL是一款非常流行的关系型数据库管理系统,它的出现一直都是佼佼者,它不仅功能非常强大,而且使用起来非常方便,并且MySQL的跨平台能力也很好,软件开发人员非常喜欢它的这些强大的优点。不同于其他关系型数据库,对于数据库的管理它有着自己的一套方案,通过对用户设定相应的权限和角色来达到对数据库的管理。由此可见,MySQL是一个能够适用于吞吐量高,可靠性高,效率高的一款数据库管理软件[4]。

优点一:MySQL中对于不同身份的用户都设定其不同的权限来完成不同的业务逻辑,这使得MySQL在安全和完整性远远超出了其他关系型数据库。

优点二:对于那些动画、图形和声音的数据类型MySQL也可以支持,这说明多数据类型MySQL也是可以支持的。

优点三:MySQL还可以做到多个平台的开发,软件开发的多种编程语言都可以实现对MySQL数据库的操作[5] [6]。

系统分析 可行性分析

技术性方面,采用当前主流的springboot框架进行系统主体框架的搭建,前台使用jquery,ajax,实现前台页面的设计与美观调整,以上技术,均由本人经过系统学习,并且都是在课程设计中实践过的,可以使得开发更加便捷和系统。从技术角度看,这个系统是完全可以实现的。

实用性方面,本次设计的主要任务是在校园兼职系统内首页、站点管理(轮播图、公告栏)用户管理(管理员、求职者、兼职发布者)内容管理(热门资讯、资讯分类列表)更多管理(职位信息、职位类型、报名兼职、线上沟通、简历管理、个人兼职记录)等,符合当前潮流的发展。从用户角度出发,同时也考虑系统运营成本和人力资源,采用网络上的便捷方式,实现线上业务,使得业务流程更系统,也更方便用户的体验,比较实用。

经济性方面,由于本课题中设计的校园兼职系统的主要目的是为了能够更加方便及快捷的进行信息的查询管理及检索服务,也就是能够可以直接投入使用的信息化软件。系统的主要成本主要是集中在对使用数据后期继续维护及其管理更新这个操作上。但是一旦系统投入到实际的运行及使用之后就能够很好的提高信息查询检索的效率,同时也需要有效的保证查询者的信息方面的安全性,同时这个校园兼职系统所带来的实际应用方面的价值是远远的超过了实际系统进行开发与维护方面的成本,因此,从经济上来说开发这个软件是可行的。

功能需求分析

校园兼职系统的功能主要分为前台用户根据自己的需求进行注册登录,浏览职位信息并对选中的职位进行申请操作。后台系统管理员因职责的不同,分为普通管理员和超级管理员,普通管理员主要对申请单进行处理,而超级管理员主要对注册用户,就业资讯、资讯分类列表、就业信息进行处理。

系统用例图如下所示。

 

图3-1 系统用例图

非功能需求分析

首先主要考虑的是系统功能软件,在具体设计的环节上,是不是能够较好的满足各类用户的基本功能需求,如果不能较好的满足用户需求,那么这个系统的存在是没有价值的。软件系统的非功能性求分析,从7个方面展开,一个是性能分析,针对系统;一个是安全分析,针对系统,一个是完整度分析,针对系统,一个是可维护分析,针对系统,一个是可扩展性分析,针对系统,一个是适应业务的性能分析。面对校园兼职系统存在的性能、安全、扩展、完整度等7个方面性能综合比对分析后发现,需要相应的非功能性需求分析。

安全性需求分析 系统的安全性

安全性对每一个系统来说都是非常重要的。安全性很好的系统可以保护企业的信息和用户的信息不被窃取。提高系统的安全性不仅是对用户的负责,更是对企业的负责。尤其针对于校园兼职系统来说,必须要有很好的安全性来保障整个系统。

系统具有对使用者有权限控制,针对角色的不通限制使用者的权限,以此来确保系统的安全性。

数据的安全性

数据库中的数据是从外界输入的,当数据的输入时,由于种种原因,输入的数据会无效,或者是脏数据。因此,怎样保证输入的数据符合规定,成为了数据库系统,尤其是多用户的关系数据库系统首要关注的问题。

因此,在写入数据库时,要保证数据完整性、正确性和一致性。

数据流程分析

对系统的数据流进行分析,系统的使用者分为二类,一般用户,管理员。系统主要对界面信息传送,登录信息的验证,注册信息的接收,用户各种操作的响应做处理。

系统顶层数据流图如下图所示。

 

图3-2 顶层数据流图

系统设计 系统架构设计

本校园兼职系统的架构设计主要分为可以3层,主要有Web层,业务层,Model层。其中web层还包括View层和Controller层,Model层包括元数据扩展层和数据访问层。

系统架构如下图所示。

 

图4-1 系统架构

系统总体设计

校园兼职系统总体分为前求职者模块、发布者模块和管理员模块。

四个模块表现上是分别独立存在,但是访问的数据库是一样的。每一个模块的功能都是根据先前完成的需求分析,并查阅相关资料后整理制作的。

综上所述,系统功能结构图如下图所示。

 

图4-2 系统功能结构图

数据库设计 数据库概念设计

根据前面的数据流程图,结合系统的功能模块设计,设计出符合系统的各信息实体。

系统ER图如下图所示。

 

图4-3 系统ER图

数据库表设计

校园兼职系统所拥有的数据表有以下:用户信息表,职位信息表,报名兼职表,热门资讯表。

由于数据表较多,只展示系统主要数据表,如下表所示。

job_seekers

字段名称

类型

长度

不是null

主键

字段说明

job_seekers_id

int

11

主键

求职者ID

full_name

varchar

64

姓名

gender

varchar

64

性别

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

user_id

int

11

用户ID

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

online_communication

字段名称

类型

长度

不是null

主键

字段说明

online_communication_id

int

11

主键

线上沟通ID

job_seekers

int

11

求职者

publisher

int

11

发布人

job_title

varchar

64

职位名称

position_type

varchar

64

职位类型

enterprise_name

varchar

64

企业名称

duty_station

varchar

64

工作地点

job_seeker_questions

text

0

求职者问题

publisher_reply

text

0

发布人回复

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

part_time_publisher

字段名称

类型

长度

不是null

主键

字段说明

part_time_publisher_id

int

11

主键

兼职发布者ID

full_name

varchar

64

姓名

gender

varchar

64

性别

enterprise_name

varchar

64

企业名称

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

user_id

int

11

用户ID

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

personal_part_time_record

字段名称

类型

长度

不是null

主键

字段说明

personal_part_time_record_id

int

11

主键

个人兼职记录ID

job_seekers

int

11

求职者

full_name

varchar

64

姓名

remarks

varchar

64

备注

personal_part_time_record

text

0

个人兼职记录

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

position_information

字段名称

类型

长度

不是null

主键

字段说明

position_information_id

int

11

主键

职位信息ID

publisher

int

11

发布人

job_title

varchar

64

职位名称

position_type

varchar

64

职位类型

enterprise_name

varchar

64

企业名称

duty_station

varchar

64

工作地点

position_cover

varchar

255

职位封面

job_introduction

text

0

职位介绍

job_requirements

text

0

职位要求

position_salary

text

0

职位薪资

hits

int

11

点击数

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

position_type

字段名称

类型

长度

不是null

主键

字段说明

position_type_id

int

11

主键

职位类型ID

position_type

varchar

64

职位类型

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

resume_management

字段名称

类型

长度

不是null

主键

字段说明

resume_management_id

int

11

主键

简历管理ID

job_seekers

int

11

求职者

full_name

varchar

64

姓名

gender

varchar

64

性别

age

varchar

64

年龄

resume_attachment

varchar

255

简历附件

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

sign_up_for_a_part_time_job

字段名称

类型

长度

不是null

主键

字段说明

sign_up_for_a_part_time_job_id

int

11

主键

报名兼职ID

job_seekers

int

11

求职者

publisher

int

11

发布人

job_title

varchar

64

职位名称

position_type

varchar

64

职位类型

enterprise_name

varchar

64

企业名称

duty_station

varchar

64

工作地点

upload_resume

varchar

255

上传简历

examine_state

varchar

16

审核状态

examine_reply

varchar

16

审核回复

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

系统实现 数据库访问层的实现

该系统是通过jdbc和MySQL达成连接的,新建一个jdbc.properties文件来填写与数据库连接所需要的驱动和参数。

jdbc.driverClass=com.MySQL.jdbc.Driver

jdbc.url=jdbc:MySQL://localhost:3306/tsi

jdbc.username=root

jdbc.password=123

第一个参数代表MySQL数据库的驱动,第二个参数代表要连接的数据库,第三个和第四个参数代表数据库连接名和密码。

后台与数据库访问主要是通过HQL语句来进行查询的,查询语句中的表名是表格的实体类名,在这种查询语句中*是不允许使用的,除非适合聚合函数一起使用才可以。

注册模块的实现

用户在填写数据的时候必须与注册页面上的验证相匹配否则会注册失败,注册页面的表单验证是通过JavaScript进行验证的,用户名的长度必须在6到18之间,邮箱必须带有@符号,密码和密码确认必须相同,你输入的密码,系统会根据你输入密码的强度给出指定的值,电话号码和身份证号码必须要求输入格式与生活相符合,当你前台验证通过的时候你点击注册,表单会将你输入的值通过name值传递给后台并保存到数据库中。

用户注册流程图如下图所示。

 

图5-1用户注册流程图

用户注册界面如下图所示。

 

图5-2用户注册界面图

注册代码如下:

/**

     * 注册

     * @param user

     * @return

     */

    @PostMapping("register")

    public Map signUp(@RequestBody User user) {

        // 查询用户

        Map query = new HashMap();

        query.put("username",user.getUsername());

        List list = service.select(query, new HashMap()).getResultList();

        if (list.size()>0){

            return error(30000, "用户已存在");

        }

        user.setUserId(null);

        user.setPassword(service.encryption(user.getPassword()));

        service.save(user);

        return success(1);

}

/**

     * 用户ID:[0,8388607]用户获取其他与用户相关的数据

     */

    @Id

    @GeneratedValue(strategy = GenerationType.IDENTITY)

    @Column(name = "user_id")

    private Integer userId;

    /**

     * 账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

     */

    @Basic

    @Column(name = "state")

    private Integer state;

    /**

     * 所在用户组:[0,32767]决定用户身份和权限

     */

    @Basic

    @Column(name = "user_group")

    private String userGroup;

    /**

     * 上次登录时间:

     */

    @Basic

    @Column(name = "login_time")

    private Timestamp loginTime;

    /**

     * 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

     */

    @Basic

    @Column(name = "phone")

    private String phone;

    /**

     * 手机认证:[0,1](0未认证|1审核中|2已认证)

     */

    @Basic

    @Column(name = "phone_state")

    private Integer phoneState;

    /**

     * 用户名:[0,16]用户登录时所用的账户名称

     */

    @Basic

    @Column(name = "username")

    private String username;

    /**

     * 昵称:[0,16]

     */

    @Basic

    @Column(name = "nickname")

    private String nickname;

    /**

     * 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

     */

    @Basic

    @Column(name = "password")

    private String password;

    /**

     * 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

     */

    @Basic

    @Column(name = "email")

    private String email;

    /**

     * 邮箱认证:[0,1](0未认证|1审核中|2已认证)

     */

    @Basic

    @Column(name = "email_state")

    private Integer emailState;

    /**

     * 头像地址:[0,255]

     */

    @Basic

    @Column(name = "avatar")

    private String avatar;

    /**

     * 创建时间:

     */

    @Basic

    @Column(name = "create_time")

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")

    private Timestamp createTime;

    @Basic

    @Transient

    private String code;

}

登录模块的实现

主要由两部分组成,登录前的登录界面以及登录后的用户功能界面。登录界面,要求用户输入用户名和密码,当用户名和密码其中一个输入为空时,给出提示“用户名,密码不能为空”。获取用户名和密码后到数据库中查找,如果用户名存在,以及对应的密码正确,则登录成功,否则登录失败。登录失败后给出提示,并把焦点停在文本框中。登录成功后将该次会话的全局变量username设置为用户名。登录成功后进入会员的功能模块,主要有会员基本信息修改,已经发布职位信息管理,发布信息,和退出功能。退出功能是清除全局变量username的值,并跳回到首页。

登录流程图如下图所示。

 

图5-3登录流程图

用户登录界面如下图所示。

 

图5-4用户登录界面

登录页面代码如下:

/**

     * 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostMapping("login")

    public Map login(@RequestBody Map 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 map = new HashMap();

        if(username != null && "".equals(username) == false){

            map.put("username", username);

            resultList = service.select(map, new HashMap()).getResultList();

        }

        else if(email != null && "".equals(email) == false){

            map.put("email", email);

            resultList = service.select(map, new HashMap()).getResultList();

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("phone", phone);

            resultList = service.select(map, new HashMap()).getResultList();

        }else{

            return error(30000, "账号或密码不能为空");

        }

        if (resultList == null || password == null) {

            return error(30000, "账号或密码不能为空");

        }

        //判断是否有这个用户

        if (resultList.size()



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3