二十一世纪我们的社会进入了信息时代,信息管理系统的建立,大大提高了人们信息化水平。传统的管理方式对时间、地点的限制太多,而在线管理系统刚好能满足这些需求,在线管理系统突破了传统管理方式的局限性。于是本文针对这一需求设计并实现了一个基于java web的大学生兼职平台,为了简捷并有效的解决大学生兼职各方面的问题。
本文讲述了大学生兼职平台。结合电子管理系统的特点,分析了大学生兼职平台的背景,给出了大学生兼职平台实现的设计方案。
本论文主要完成不同用户的权限划分,不同用户具有不同权限的操作功能,系统主要分为两大模块:即管理员模块和用户模块。主要功能包括;招聘资讯、兼职信息等进行相应的操作。
关键词:大学生兼职平台;springboot框架 ;
Abstract
In the 21st century, our society has entered the information age. The establishment of information management system has greatly improved people's information level. The traditional management mode has too many restrictions on time and place, and the online management system can just meet these needs, and the online management system breaks through the limitations of the traditional management mode. Therefore, this paper designs and implements a college students' part-time job platform based on java web, in order to solve the problems of college students' part-time job simply and effectively.
This paper describes the part-time platform of college students. Combined with the characteristics of electronic management system, this paper analyzes the background of college students' part-time platform, and gives the design scheme of college students' part-time platform.
This paper mainly completes the division of permissions of different users, different users have different permissions of the operation function, the system is mainly divided into two modules: administrator module and user module. The main functions include; Recruitment information, part-time information and other relevant operations.
Key words: college students part-time platform; springboot framework;
目 录
1绪 论
1.1 课题背景
随着科学技术的不断发展,计算机现在已经成为了社会的必需品,人们通过因特网可以获得海量的信息,这些信息可以和各行各业进行关联,大学生兼职平台也不例外[1]。
传统线下方式管理的起源可以追溯到20世纪60年代末期。当时的计算机技术已经步入了实用技术阶段,由于各行业的工作大部分为高重复度的手工查找,这些工作耗费了大量人力资源又很容易出现细小的差错。这些问题恰恰可以通过计算机来解决,只是碍于技术条件限制,所以信息管理系统的发展比较迟缓。
直到20世纪90年代末信息管理系统迎来了革命性变革,由于计算机技术的高速发展和数据库技术、客户\服务器技术和因特网也都趋于成熟稳定。这为实现大学生兼职平台提供了强有力的基础。这次变革使大学生兼职平台的重心转移到计算机技术的角度上,用关系型数据库处理几乎所有与大学生兼职平台有关的数据。设计界面化、报表工具生成和信息分析工具的信息共享使得管理者脱离了日常许多繁琐与重复的工作,有更多精力长远规划大学生兼职平台发展和系统维护[2]。
1.2 选题的目的与意义
本论文拟采用计算机技术设计并开发的大学生心理健康互助平台,主要是为用户提供服务。使得用户可以在系统上查看招聘资讯、兼职信息,管理员对信息进行统一管理,与此同时可以筛选出符合的信息,给笔者提供更符合实际的合理化建议,本课题的意义在于,管理者能通过使用大学生心理健康互助平台,提高工作效率和服务质量,进而提高用户的体验感[2]。
1.3 初步设计方法与实施方案
软件体系结构方案:由于本系统需要在不同设备上都能运行,而且电脑配置要求也要越低越好,为了实现这一要求,经过考虑B/S架构成为最佳之选。使用B/S架构的系统可以几乎在任何电脑上运行,只要浏览器可以正常工作就可以正常运行该系统,而且后期维护及二次修改较为容易,符合要求。
操作系统方案:Windows10操作系统,该系统是目前微软公司推出的最新系统,目前大多数市面上的电脑都使用该系统,并且该系统功能完善,兼容性好。开发工具:选用 Eclipse,Java开发语言springboot框架,MySQL数据库。
1.4 本文研究内容
该系统以 B/S架构为基础,通过 Mysql技术,实现了对数据的查询与存储,保证了工作的正常、高效,提高了工作效率。主要的工作包括:
(1)本系统界面简洁明了,便于使用者进行操作。Eclipse提供了可视化的程序设计,大多数的功能都可以由控制程序来实现,并且用户可以很容易地进行各种操作。
(2)本系统分为两部分,能够满足管理人员与使用者的不同需要。该系统的使用者有:管理员及用户[3]。
2 关键技术介绍
2.1 Java语言简介
Java,目前Internet中最流行的编程语言之一。它吸取了C++编程语言的长处的同时还摒弃了许多复杂抽象,不易掌握的问题,使得Java编程语言不但功能强大而且使用方便。
Java技术在使用过程中有优势也有劣势。其优势在于,因为Java本身相对严格的语法,所以可以强化程序员在编程时的规范性问题,不容易出现明显结构错乱的问题。因此,规范将是Java的巨大优势。但是它也有劣势,就是不太适应互联网模式下的不断修改,总是修改容易破坏架构。
面向对象的三种特征:封装,继承和多态。
密封:主要是指对数据信息的隐藏,通过把数据信息类别与通过数据信息的功能密封在一块,让数据信息被保存在数据信息类别的里面,只留下一部分可以对外的接口,以便于尽可能的地隐蔽里面的数据信息。因此好处也就十分的明显就是实现了专业的分工,同时也隐藏了信息,保证了安全。
继承:这就像是实际人生中的父子关系一样,孩子要承袭父母的特点。类似的,一个种类同时也继承了另一个种类的某些特性,其父属之间有一种特别的一般性的联系,是is-a的关系,从根本上来说都属于同一个实体。
多态:多态系统是以封装和继承为基础的。由于所传输的父类对象能够引入各种各样的子类对象,因而能够显示出各种各样的现象,给多态的编程带来了良好的扩展。
2.2 MySQL数据库
MySQL是一种关系型的数据库管理系统,属于Oracle旗下的产品。
MySQL的语言是非结构化的,使用的用户可以在数据上进行工作。这个数据库管理系统一经问世就受到了社会的广泛关注。在各个方面,与同等的数据库相比,MySQL的优点极为突出,它的运行速度快,适用的范围广泛,而且数据库的安全性这一方面独树一帜。在语言结构方面,MySQL的语言简单,其他数据库需要一大段代码来实现的操作,MySQL仅需要一小部分代码甚至几行。综上所述,MySQL这种关系型数据库管理系统,已经成为了开发者进行项目的数据开发、存储的不二之选。MySQL的功能也多种多样,如数据操纵和数据库的建立维护等。而且该数据库的数据共享性高、冗余度低而且容易扩充。MySQL在安全性这一方面也具有自身的特点,它应用了用户的标识和鉴别技术,对试图和数据进行加密,确保资料信息的可靠性。介于数据库系统的功能与强大等性质之间,本数据库系统的设计中主要使用了MySQL实现对数据的处理。大学生兼职平台运用MySQL数据库,在Web应用这一块,MySQL是最好的选择。对于该系统整个的开发、搭建、运行和维护具有极其重要的作用。
2.3 B/S架构
B/S结构就是指系统客户端与服务器分离,客户端通过浏览器访问服务端进行操作。
B/S结构目前广泛应用于绝大部分系统搭建中,这种结构摒弃C/S结构客户端服务端不分离的缺点,具有更多的优势:
(1)跨平台性:B/S的标准由标准化组织确立,适用于绝大多数的系统搭建,通用于应用之间。
(2)低维护成本:客户端和服务器端分离,减轻了两端的压力,尤其是客户端,对客户端设备,硬件、软件要求都比较低,并且系统需要升级或维护时,只需要在服务器端升级或维护就可以,使相应的费用减少。
2.4 springboot框架
Spring Boot是近几年最为流行的后台开发框架,它的诞生一改过去Spring框架开发中繁琐的配置,极大地简化了Spring应用的搭建和开发。Spring Boot框架不仅保有了Spring框架中的所有优秀特性,还通过使用特定的配置方式,在底层帮助开发人员在工程创建是就预先做了很多配置,这样在开发时就不再需要开发人员过多进行繁琐的配置了。另外在Spring Boot中集成了大量框架,这就使得开发人员不再需要到处寻找在导入开发中需要依赖的jar包,同时也解决了依赖包版本冲突问题,从而提高了依赖包引用的稳定性,从而实现了对Spring应用搭建和开发过程的简化。
3 系统分析
3.1可行性分析
在开发一个新的软件之前,必须要进行一个系统的可行性研究,以最大限度地利用这个问题。以下我们将从系统,技术,操作、运营、法律等方面来决定该体系的发展[4]。
3.1.1系统可行性分析
利用计算机支持高效率完成大学生兼职平台的日常事务,是适应现代化制度要求、推动信息管理系统走向科学化、规范化的必要条件;同时计算机有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高大学生兼职管理的效率,也是本系统信息化的重要条件[5]。
3.1.2 技术可行性分析
大学生兼职平台在使用电脑和信息分析系统这些设计没有硬性要求,电脑只要是可以正常使用的话,那么代码和页面设计就是可行的。要求高的主要是服务器,平台上传服务器一定要选择性价比高和安全性高的,打开网站一定要顺滑不卡顿,所以硬件也是可行的[6]。
3.1.3 操作可行性分析
将根据管理系统中的用户体验和管理员的效率来分析该措施的可行性。管理员和用户都可以通过简单的操作登录进对应的系统页面,方便用户搜索信息和管理人员管理数据,不需要特别懂电脑的人也可以轻松访问系统模块。该系统已完全投入使用[7]。
3.1.4运营可行性
可操作性是指将系统开发所涉及到的所有功能全都实现,代码收尾工作完成后对用户消费水平,系统的业务能力是否与用户消费水平所对等,是否可以满足大部分消费者的需求,页面是否美观,能否让用户满意,代码显示是否为轻量级,操作和功能是否简单便捷,是否同时适用于小孩,成人和老人。系统能否同时应用于windows、linux等操作系统,这取决于系统的可移植性。JAVA 编程语言的适应性非常强,基本上能够较好的适应目前市场环境中所流行的各个平台。也就是说Java的可移植性很强,那么系统的价值越高,可行性也就越强。
3.1.5法律可行性
该大学生兼职平台是面向大众开源化和不收取任何费用的。它的主要目的是帮助用户解决大学生兼职管理的问题。完全符合法律可行性要求,系统内部权限划分不会导致内部用户泄露系统机密。对于用户信息,系统有保护措施,用户密码在数据库中加密,并有严格的自我控制和商品价格解释。
3.2 需求分析
需求分析的首要是要分析用户的需求,知道用户存在的一些情况,并且要明确用户的使用状况,然后设计规划解决的问题。其中在使用定性的分析以及定量的分析,从这两个方面获取用户的需求。一方面定性的分析获得的应该是用户的基本需求,能够发现现在人们的习惯要求。所以定性的需要主要是为了多与用户交流,从而更为深刻的了解一些存在的需求问题;定量的分析则是发现一些潜在的用户,并且获得不一样的反馈内容。所以定量的需求要让用户来阐述一些情况,一定让使用者清晰的进行客观的描述,这样才能够比较全面的获得用户的需求所在。
其中获得用户需求以后,就要可以将用户需求设计为大学生兼职平台的功能模块。在能及时的分析和发现有关需求的情况下,需要系统同时的跟进需求设计。在大学生兼职管理过程中还需要创建需求工作的数据分析,以便于后面的分析做总结。写入一个需求的报告内容,其中需要包含完整的描述需求、以及功能需求、模型等后续开发过程中还需要用到的部分资料。
需求的分析中用户需求就是比较的重要,而且可以通过各种的路径,以及各用户对于系统的功能需求,你需要对这些内容做出整理以及分类,然后分析这些需求的现实情况下的可能原因,还需要有认真的分析过程,结合现实的情况下最终做出一系列的需求资料。在有关用户的期望分析中能够明确一些可能实现的情况,大学生兼职管理功能是许多个可以测试的功能相结合的,正是由于这些功可以使得用户能够更加积极的提供出需求,让系统功能可以变得更加的完善。这样就可以保证所有设计的功能模块都是可以用到的,而且也是可测试的,对于后续系统的开发能够有比较关键的作用,也能快速完成用户所提供的需求。
这个阶段所要求做的就是将上述的分析具体化,设计出能满足预定目标系统的过程。从粗到细,根据程序结构化设计的要求,把整个项目分为两个用户角色,分别是管理员与用户。在具体的功能模块设计上,两个角色的功能又不尽相同[8]。作为系统实施的基础,系统设计的作用尤为重要。
3.3系统用例图
大学生兼职平台可以将功能划分为用户的使用功能和管理员功能。
(1)用户关键功能包含用户注册登录,首页、招聘资讯、兼职信息、个人中心等有关信息,并进行详细操作。用户用例如下:
图3-1 用户用例图
(2)管理员的权限是最高的,可以对系统所在功能进行查看,修改和删除,包括用户功能。管理员用例如下:
图3-2管理员用例图
3.4系统流程的分析
3.4.1 用户管理的流程
用户管理包括:添加用户信息,查看用户信息,修改用户信息,删除/激活用户信息。添加用户信息后设置用户信息的参数,如果参数合法,保存用户信息,否则需要重新设置参数;查询用户信息需要输入查询关键字,然后返回查询信息;查看用户信息就可以查看详细的信息;修改用户信息需要修改参数,如果修改后的参数合法,保存用户信息,否则需要重新修改参数;删除/激活用户信息后删除/激活用户信息成功[9]。用户管理的流程如图3-3所示。
3.4.2 个人中心管理流程
进入主页面后点击个人中心查看,点击修改密码进入修改密码页面,输入原密码和新密码,判断是否符合要求,如果符合要求即可保存,否则需要重新输入。个人中心管理流程如图3-4所示[10]。
图3-4个人中心管理流程
3.4.3 登录流程
进入登录界面后,输入用户名和密码,选择角色后验证,如果正确进入主界面,否则需要重新输入。登录流程如图3-5所示[11]。
图3-5 登录流程
4系统设计
4.1 软件功能模块设计
大学生兼职平台分为两个模块,分别是管理员功能模块和用户功能模块。主要功能模块包括:首页、系统用户、兼职信息管理、简历投递管理、面试信息管理、招聘信息管理、系统管理、资源管理等,系统总体功能如下图所示[12]。
图4-1大学生兼职平台总体功能模块图
4.2 数据库设计
4.2.1 概念模型设计
概念模型是对现实中的问题出现的事物的进行描述,ER图是由实体及其关系构成的图,通过E-R图可以清楚地描述系统涉及到的实体之间的相互关系。
用户信息包括:昵称、密码、邮箱、身份、用户名、用户姓名、用户电话。
用户信息E-R图如图4-2所示。
图4-2用户信息E-R图
面试信息包括:用户账号、用户姓名、用户电话、企业名称、兼职名称、面试时间、面试地点。
面试信息E-R图如图4-3所示。
图4-3面试信息E-R图
招聘信息包括:用户账号、用户姓名、用户电话、企业名称、兼职名称、面试结果、入职时间、招聘详情。
招聘信息E-R图如图4-4所示。
图4-4招聘信息E-R图
兼职信息包括:企业名称、企业图片、企业电话、企业地址、兼职名称、兼职时间、兼职周期、薪资待遇、兼职详情。
兼职信息E-R图如图4-5所示。
图4-5兼职信息E-R图
大学生兼职平台总体E-R图如图4-6所示。
图4-6大学生兼职平台总体E-R图
4.2.2 数据表
学习程序设计,如果要了解数据库管理系统或者是根据需求而制定的系统接口,就必须创建一种数据库管理系统的模式,用来保存数据资料,这样当在应用编程过程中时候,就不需要再向操作系统页面上加载信息,进而增加了整个系统的工作效率。信息库管理系统中保存着许多数据,应该说是一个管理信息系统建设的中心和基础,而信息库管理系统也为管理信息系统建设提出了新增、删除、更改和搜索的操作功能,使管理信息系统建设能够迅速地查询所需要的数据,而不会直接从程序代码中查找。信息库管理系统通过将信息表的各个组成部分按照特定的方法准确地合并,排序和组成信息库管理系统。
本系统采用的是MySQL数据库存储数据,系统中使用到的主要数据表的具体展示部分如下所示。
表4-1:access_token (登陆访问时长)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 用户编号: |
表4-2:article (文章:用于内容管理系统的文章)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 文章描述 |
表4-3:article_type (文章分类)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
表4-4:auth (用户权限管理)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
表4-5:collect (收藏)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
表4-6:comment (评论)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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: |
表4-7:hits (用户点击)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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: |
表4-8:interview_information (面试信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | interview_information_id | int | 10 | 0 | N | Y | 面试信息ID | |
2 | user_account | int | 10 | 0 | Y | N | 0 | 用户账号 |
3 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
4 | user_phone_number | varchar | 64 | 0 | Y | N | 用户电话 | |
5 | enterprise_name | varchar | 64 | 0 | Y | N | 企业名称 | |
6 | part_time_name | varchar | 64 | 0 | Y | N | 兼职名称 | |
7 | interview_time | datetime | 19 | 0 | Y | N | 面试时间 | |
8 | interview_location | 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 | 更新时间 |
表4-9:part_time_information (兼职信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | part_time_information_id | int | 10 | 0 | N | Y | 兼职信息ID | |
2 | enterprise_name | varchar | 64 | 0 | Y | N | 企业名称 | |
3 | enterprise_image | varchar | 255 | 0 | Y | N | 企业图片 | |
4 | enterprise_phone_number | varchar | 64 | 0 | Y | N | 企业电话 | |
5 | enterprise_address | varchar | 64 | 0 | Y | N | 企业地址 | |
6 | part_time_name | varchar | 64 | 0 | Y | N | 兼职名称 | |
7 | part_time | date | 10 | 0 | Y | N | 兼职时间 | |
8 | part_time_cycle | varchar | 64 | 0 | Y | N | 兼职周期 | |
9 | salary_and_benefits | varchar | 64 | 0 | Y | N | 薪资待遇 | |
10 | part_time_details | text | 65535 | 0 | Y | N | 兼职详情 | |
11 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
12 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表4-10:praise (点赞)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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已取消 |
表4-11:recruitment_information (招聘信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | recruitment_information_id | int | 10 | 0 | N | Y | 招聘信息ID | |
2 | user_account | int | 10 | 0 | Y | N | 0 | 用户账号 |
3 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
4 | user_phone_number | varchar | 64 | 0 | Y | N | 用户电话 | |
5 | enterprise_name | varchar | 64 | 0 | Y | N | 企业名称 | |
6 | part_time_name | varchar | 64 | 0 | Y | N | 兼职名称 | |
7 | interview_results | varchar | 64 | 0 | Y | N | 面试结果 | |
8 | date_of_employment | varchar | 64 | 0 | Y | N | 入职时间 | |
9 | recruitment_details | 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 | 更新时间 |
表4-12:regular_users (普通用户)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | regular_users_id | int | 10 | 0 | N | Y | 普通用户ID | |
2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
3 | user_phone_number | varchar | 16 | 0 | Y | N | 用户电话 | |
4 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
5 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表4-13:resume_submission (简历投递)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | resume_submission_id | int | 10 | 0 | N | Y | 简历投递ID | |
2 | user_account | int | 10 | 0 | Y | N | 0 | 用户账号 |
3 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
4 | user_phone_number | varchar | 64 | 0 | Y | N | 用户电话 | |
5 | enterprise_name | varchar | 64 | 0 | Y | N | 企业名称 | |
6 | part_time_name | varchar | 64 | 0 | Y | N | 兼职名称 | |
7 | part_time | date | 10 | 0 | Y | N | 兼职时间 | |
8 | part_time_cycle | varchar | 64 | 0 | Y | N | 兼职周期 | |
9 | delivery_time | datetime | 19 | 0 | Y | N | 投递时间 | |
10 | delivery_quantity | int | 10 | 0 | Y | N | 0 | 投递数量 |
11 | resume_file | varchar | 255 | 0 | Y | N | 简历文件 | |
12 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
13 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
14 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表4-14:slides (轮播图)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
表4-15:upload (文件上传)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 文件类型 |
表4-16:user (用户账户:用于保存用户登录信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 会员折扣 |
表4-17:user_group (用户组:用于用户前端身份和鉴权)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
5 系统功能实现
5.1前台用户功能模块
当游客打开系统的网址后,首先看到的就是首页界面。在这里,游客能够看到大学生兼职平台的导航条显示首页、歌手、音乐、音乐资讯、个人中心。系统首页界面如图5-1所示:
图5-1 系统首页界面
在注册流程中,用户在Vue前端填写必要信息(如用户名、密码等)并提交。前端将这些信息通过HTTP请求发送到Java后端。后端处理这些信息,检查用户名是否唯一,并将新用户数据存入MySQL数据库。完成后,后端向前端发送注册成功的确认,前端随后通知用户完成注册。这个过程实现了新用户的数据收集、验证和存储。如图5-2所示:
图5-2用户注册界面图
在登录流程中,用户首先在Vue前端界面输入用户名和密码。这些信息通过HTTP请求发送到Java后端。后端接收请求,通过与MySQL数据库交互验证用户凭证。如果认证成功,后端会返回给前端,允许用户访问系统。这个过程涵盖了从用户输入到系统验证和响应的全过程。如图5-3所示:
图5-3 用户登录界面
用户点击招聘资讯,在招聘资讯页面可以查看标题、发布时间等内容。并可以点赞和收藏等操作;如图5-4所示:
图5-4招聘资讯页面
用户点击兼职信息,在兼职信息页面的搜索栏输入企业名称、兼职名称、兼职时间等信息,进行查询,然后还可以企业名称、企业图片、企业电话、企业地址、兼职名称、兼职时间、兼职周期、薪资待遇、兼职详情等信息;如有需要可以进行投递、点赞、收藏或者评论等操作,如图5-5所示:
图5-5兼职信息页面
在个人中心页面可以输入个人详细信息,进行信息更新,还可以对个人首页、简历投递、面试信息、招聘信息、收藏等进行详情操作;如图5-6所示:
图5-6个人中心界面
5.2后台管理员模块
管理员登录,在登录页面正确输入用户名和密码后,点击登录操作;如图5-7所示。
图5-7管理员登录界面
管理员进入主页面,主要功能包括对首页、系统用户、兼职信息管理、简历投递管理、面试信息管理、招聘信息管理、系统管理、资源管理等进行操作。管理员主页面如图5-8所示:
图5-8 管理员主界面
用户信息功能在视图层(view层)进行交互,比如点击“新增”按钮或填写用户信息表单。这些用户信息动作被视图层捕获并作为请求发送给相应的控制器层(control1er层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如搜索、新增或删除用户信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便用户信息功能可以看到最新的信息或相应的操作反馈。在用户信息页面可以对用户姓名进行查询,可以查看到用户信息详细信息,并根据需要进行添加、修改或者删除等操作。如图5-9所示:
图5-9用户管理界面
兼职信息功能在视图层(view层)进行交互,比如点击“新增”按钮或填写兼职信息表单。这些歌手信息动作被视图层捕获并作为请求发送给相应的控制器层(control1er层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如搜索、新增或删除兼职信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便兼职信息功能可以看到最新的信息或相应的操作反馈。在兼职信息页面可以对企业名称、企业图片、企业电话、企业地址、兼职名称、兼职时间、兼职周期、薪资待遇、兼职详情等信息进行查询、添加、重置或者删除等操作。如图5-10所示:
图5-10 兼职信息界面
管理员点击简历投递管理,在简历投递页面对用户账号、用户姓名、用户电话、企业名称、兼职名称、兼职时间、兼职周期、投递时间、投递数量、简历文件、审核状态、审核回复等信息,可以查询、重置或删除简历投递等操作。如图5-11所示:
图5-11简历投递管理界面
管理员点击面试信息管理,在面试信息页面对用户账号、用户姓名、用户电话、企业名称、兼职名称、面试时间、面试地点等信息,可以查询、重置或删除面试信息等操作。如图5-12所示:
图5-12面试信息管理界面
管理员点击系统管理,在轮播图管理页面对轮播图、标题等信息,可以查询、重置、添加或删除等操作。如图5-13所示:
图5-13系统管理界面
管理员点击资源管理,在资讯列表页面对标题、封面图、文章分类、标签等信息,可以搜索或删除等操作,如图5-14所示:
图5-14 资源管理界面
6系统测试
在经过长期的测试与修改下,系统能正常运行,已经达到基本的要求,但难免有时会出现一些报错和Bug,如果忽略一些不起眼的小问题有可能会产生连锁反应:数据的报错,数据的无缘被修改以及泄露,甚至会成为不法分子的可乘之机,给开发者和使用者造成惨重的代价。综合以上几点,必修要对这个完成的系统进行测试,只有通过一定的测试来解决这些出现的问题。通过不断地进行测试,一步一步的发现系统中的问题,然后对问题进行一次又一次的修改,使该大学生兼职平台更加完善,最后争取没有漏洞和Bug,成为一个接近完美无暇的大学生兼职平台的网站。还要在测试修改的过程中吸取经验:自己为什么会犯这种错误、代码的编写哪个逻辑环节出了错误、又有哪些地方是因为自己的粗心大意造成的等等。使系统本身接近完美以及以后的维护更加快捷方便[13]。
本课题根据实际需求情况,选择以功能为主要的黑盒测试方法。具体测试过程如下:
当用户输入用户名和密码后未勾选用户时,系统提示“请选择用户登录类型”;当输入错误的用户名或密码时,系统提示“账号或密码不正确”;当输入正确的用户名和密码时,系统提示“登陆成功”后进入首页;当输入用户名和密码后点击重置,用户名和密码清空,则可以重新输入用户名和密码。如表6-1所示[14]。
表6-1登录功能测试表
测试内容 | 测试数据 | 期望结果 | 实际结果 |
登录功能 | 用户名:430 密码:430 | 提示请选择用户登录类型 | 提示请选择用户登录类型 |
登录功能 | 用户名:430 密码:123 | 提示账号或密码不正确 | 提示账号或密码不正确 |
登录功能 | 用户名:430 密码:430 | 提示登陆成功 | 提示登陆成功 |
重置功能 | 用户名:430 密码:430 | 用户名和密码重置 | 用户名和密码重置 |
当只输入账号后点击注册时,系统提示“必填项不能为空”;当只输入账号、密码和注册密码时,系统提示“姓名不能为空”;当输入账号、密码、注册密码和姓名后,系统提示“注册成功”并且进入登录界面;当输入账号后点击重置,账号清空,则可以重新输入[15]。如表6-2所示。
表6-2注册功能测试表
测试内容 | 测试数据 | 期望结果 | 实际结果 |
注册功能 | 账号:507 | 提示必填项不能为空 | 提示必填项不能为空 |
注册功能 | 账号:507 密码:507 确认密码:507 | 提示姓名不能为空 | 提示姓名不能为空 |
注册功能 | 账号:507 密码:507 确认密码:507 姓名:王一 | 提示注册成功,进入登录界面 | 提示注册成功,进入登录界面 |
重置功能 | 账号:507 | 账号重置 | 账号重置 |
6.1 系统测试结论
本系统主要使用黑盒测试,通过模拟用户使用系统实现各个功能编写测试用例,并进行测试。以确保系统流程的正确性。系统测试必不可少,可以使系统更加完善,该系统的可使用性也会更高。
测试该系统主要为了验证系统的功能模块是否满足我们最初的设计理念,验证各个功能模块逻辑是否正确,此系统不需要过于复杂的逻辑处理,以便于使用者操作。测试的最终目的也是围绕着用户使用展开。测试过程中所有场景都应符合用户需求,不可偏离需求目标,遇到问题时要站在用户的角度进行思考。经过一系列的测试过程后得到最终的测试结果,从测
试结果可以看出,实现的系统在功能和性能方面满足设计要求。
结 论
毕业设计创作已经接近尾声了,大学生活也即将结束,对于软件工程这门学科,真可谓是博大精深,值得我们学习和思考的东西还有好多,只有不断地拜读前人的著作,了解最新技术,才是学习这门可最好的方法。
在此次设计中,渐渐对数据库设计、软件工程和java这几门课程的知识有了更加深刻的理解,并能够灵活运用其中的知识来分析实际的问题,加强了我的分析和考虑问题的能力。
更重要的是从指导老师xxx身上学到了很多东西。她待学生细心热枕,耐心回答学生的问题,主动询问学生的难处,使我见过难得的平易近人的老师。她工作态度认真负责,讲课生动透彻,让我不管是在专业还是做人上感触颇深,让我得到不少的提高,这对于我以后的工作和学习都有一种巨大的帮助,感谢她细心而又耐心的辅导。
致 谢
论文可以停留在第六章,但是人生还需要继续。
行文至此,落笔为终。我的大用户涯到此处画上了句号。始于xxx年金秋,终于xxxx盛夏。逐梦计算机学院,终究还需离别。目之所及,皆是回忆。感谢母校的培育与关怀,让我的大学生活充满色彩。
生逢盛世,与有荣焉。感谢党和国家为我提供了和平安逸的学习环境和生活环境,让我可以接受更好的教育,成为一名有理想、有知识的大学生。
桃李不言,下自成蹊。大学生活中我首先要感谢我的导员xxx老师,专业知识渊博,为学严谨认真,待人和蔼可亲,关心学生,让我感受到大学中的温暖。特别是在大学的最后阶段,每天帮我们筛选公司,帮助我就业;写论文时对我谆谆教诲,松懈时的督促。这四年张老师倾注的心血难以估计。感谢我的指导老师xxx老师,在我有困惑时总是不厌其烦的帮我解答问题,不管多晚给老师发消息,她总是第一时间向我伸出援手。为了我可以更好的完成毕业设计,经常会发一些小技巧帮助我。良师难得,定将一生铭记,一生感恩。
父母之恩,无以为报。他们含辛茹苦的将我养大成人,让我站在他们的肩膀上见识到了他们没见到的繁华。即将踏入社会,我只想不断努力,成为他们的骄傲。
平生感知己,寸岂悠悠。恰同学少年,风华正茂。我想感谢自己的室友们,朋友们。在我迷茫的时候有你们陪我,在我开心的时候你们也会在我身边。愿你们前程似锦,以梦为马,不负韶华。
本次毕业设计的完成预示着大学时代的句号,在这个设计过程中,我收获到的绝不仅仅是做项目过程中要到的知识,更多的是同窗情谊和师生情谊,最重要的是做任何事情都要具备的认真态度,以及真正职业的思考方式方法。我会带着大学收获的知识走向社会,我们更高处见!
参考文献
[1] 陈湘瑾, 孙瑜鸿, 祖子帅,等. 基于java开发技术的信息化房屋租赁系统[J]. 科学技术创新, 2021.
[2] 刘洋瑀. 某企业管理系统[D]. 华中科技大学, 2019.
[3] 魏婷. 保险业呼叫中心运营平台的开发与实现[D]. 北京化工大学.
[4] 罗云飞, 张德伟, 窦鑫鑫,等. B/S 架构信息化管理软件在粮油流程化检验中的应用[J]. 粮食科技与经济, 2022, 47(1):3.
[5] 张文, 方巍, 贾雪磊. 基于springboot框架的大学生兼职系统设计与实现[J]. 计算机技术与发展, 2021, 31(11):6.
[6] 王一竹. 基于MySQL的图书馆信息管理系统设计[J]. 电脑编程技巧与维护, 2022(1):4.
[7] 石怡. 基于MySQL数据库的查询性能优化研究[J]. 四川职业技术学院学报, 2021, 31(1):5.
[8] 倪灵枝. 计算机软件Java编程特点及其技术研究[J]. 科技资讯, 2022, 20(1):3.
[9] 王宏, 王清勇. 计算机软件开发中Java编程语言的应用[J]. 数字技术与应用, 2020, v.38;No.355(01):42-43.
[10] 柯采. 计算机软件开发中Java编程语言的应用[J]. 电脑编程技巧与维护, 2019(10):3.
[11] 吕萱. 计算机软件开发中Java编程语言的应用[J]. 信息与电脑, 2020(8):3.
[12] 张烈超, 胡迎九. 典型Java Web开发框架模型的研究[J]. 武汉交通职业学院学报, 2021, 23(4):6.
[13]陈孝威, 陈凌云. 三层体系结构的客户机/服务器 [J]. 计算机应用, 2020(01): 23-26.
[14]杨秀斌, 李岩琦, 景慎艳. 社区服务管理系统 [J]. 电子世界, 2019(09): 179+182.
[15]苏蒙蒙. 基于移动互联网的家政服务系统的设计与实现 [D]. 北京邮电大学, 2020: 10-45.
[16]万佳. 南昌市停放车辆管理系统分析与设计 [D]. 云南大学, 2021: 34-78.
[17]王子元.课程信息管理系统的培养与发展 [J]. 知识经济, 2020(20): 58-59.
[18] Hu X , Yan C . Development and application of JAVA language development test evaluation system software[J]. Journal of Computational Methods in Sciences and Engineering, 2020:1-12.
[19] Huang C Y . Learning Database through Developing Database Web Applications[J]. International Journal of Information and Education Technology, 2019, 9(4):241-249.
[20]Qiuying Han,Xiuye Yin. Application of Java Programming Language in Computer Software Development[J]. International Journal of Computational and Engineering,2020,5(4).