当前位置: 首页 > article >正文

django校园兼职系统-计算机毕业设计源码95561

目录

摘要

Abstract

1绪论

1.1研究背景

1.2研究意义

1.3论文结构与章节安排

2校园兼职系统分析

2.1可行性分析

2.1.1技术可行性分析

2.1.2经济可行性分析

2.1.3法律可行性分析

2.2系统功能分析

2.2.1功能性分析

2.3系统用例分析

2.4系统流程分析

2.4.1 数据增加流程

2.4.2 数据修改流程

2.4.3 数据删除流程

2.5本章小结

3 校园兼职系统总体设计

3.1系统功能模块设计

3.1.1整体功能模块设计

3.1.2用户模块设计

3.1.3评论管理模块设计

3.1.4兼职信息管理模块设计

3.2数据库设计

3.2.1数据库概念结构设计

3.3.2数据库逻辑结构设计

表access_token (登陆访问时长)

表article (文章:用于内容管理系统的文章)

表article_type (文章分类)

表auth (用户权限管理)

表collect (收藏)

表comment (评论)

表hits (用户点击)

表job_classification (职位分类)

表notice (公告)

表part_time_application (兼职申请)

表part_time_evaluation (兼职评价)

表part_time_information (兼职信息)

表praise (点赞)

表registered_users (注册用户)

表sensitive_vocabulary (敏感词汇)

表slides (轮播图)

表upload (文件上传)

表user (用户账户:用于保存用户登录信息)

表user_group (用户组:用于用户前端身份和鉴权)

3.4本章小结

4校园兼职系统详细设计与实现

4.1注册用户功能模块

4.1.1首页界面

4.1.2注册界面

4.1.3用户登录界面

4.1.4网站公告界面

4.1.5兼职资讯界面

4.1.6兼职信息界面

4.1.7我的账户界面

4.1.8个人中心界面

4.2管理员功能模块

4.2.1公共管理界面

4.2.2用户管理界面

4.2.3资讯管理界面

4.2.4职位分类界面

4.2.5兼职信息界面

4.2.6兼职申请界面

4.2.7兼职评价界面

5系统测试

5.1系统测试用例

5.2系统测试结果

6结论

参考文献

致谢

摘要

在当代大学生活中,兼职工作已经成为了许多学生的重要组成部分。校园兼职现象的普遍性及其对大学生生活的影响不容忽视。然而,现有的校园兼职系统往往存在信息不对称、管理不规范等问题。因此,我们需要深入理解校园兼职现象,分析其对大学生生活的影响,并探讨如何优化和改进现有的校园兼职系统。

校园兼职系统是一种利用信息技术进行校园兼职管理的系统。随着信息技术的快速展和普及,校园兼职系统逐渐受到重视和推广。本系统采用了Django框架、Python语言和MySQL数据库进行开发。本系统主要分为注册用户模块和管理员模块两大功能,注册用户模块主要包括注册登录,查看首页、网站公告、兼职资讯、兼职信息等功能,可以在线完成兼职申请操作;管理员模块主要包括公共管理、用户管理、资讯管理、职位分类、兼职信息、兼职申请、兼职评价这七大板块功能。通过系统可以提高校园兼职管理的透明度和工作效率,促进校园兼职的便捷化、信息化、规范化管理。

关键词:校园兼职;MySQL数据库;Django框架

Abstract

In contemporary university life, part-time work has become an important component of many students. The universality of campus part-time jobs and their impact on the lives of college students cannot be ignored. However, existing campus part-time systems often suffer from issues such as information asymmetry and non-standard management. Therefore, we need to deeply understand the phenomenon of campus part-time jobs, analyze its impact on the lives of college students, and explore how to optimize and improve the existing campus part-time job system.

Campus part-time job system is a system that utilizes information technology for campus part-time job management. With the rapid development and popularization of information technology, campus part-time work systems are gradually receiving attention and promotion. This system is developed using the Django framework, Python language, and MySQL database. This system is mainly divided into two major functions: registration user module and administrator module. The registration user module mainly includes registration and login, viewing homepage, website announcements, part-time information, part-time information, and other functions. It can complete part-time application operations online; The administrator module mainly includes seven major functions: public management, user management, information management, job classification, part-time information, part-time application, and part-time evaluation. The system can improve the transparency and efficiency of campus part-time management, promote the convenience, informatization, and standardization of campus part-time management.

Keywords: Campus part-time job; MySQL database; Django Framework

1绪论

1.1研究背景

随着我国经济的持续发展和教育事业的不断壮大,越来越多的大学生面临着就业压力。为了提高大学生的综合素质,锻炼其社会实践能力,同时缓解家庭经济压力,兼职已成为众多大学生的选择。随着互联网技术的迅速发展,大数据、云计算等新兴技术逐渐应用于各个领域。校园兼职系统利用互联网技术,将兼职信息、招聘需求、学生简历等数据进行整合和分析,为学生提供个性化的兼职推荐服务,从而提高兼职服务的质量和效率。因此,本人决定开发一款基于Django框架的校园兼职系统,通过系统让校园兼职管理工作变的更加便捷化、信息化、规范化。

1.2研究意义

大学校园中,越来越多的学生开始利用课余时间进行兼职工作,以赚取生活费用、积累社会经验、提高自己的能力等,研究一款校园兼职系统,具有重要的意义,其意义主要体现在以下几个方面:

首先,提高大学生的实践能力和社会适应能力:随着就业竞争的日益激烈,大学生需要在学业之余积累丰富的工作经验和社会资源,以提高自己的竞争力。校园兼职系统为大学生提供了一个接触社会、锻炼自己的平台,有助于提高大学生的实践能力和社会适应能力。

其次,促进大学生创业和就业:校园兼职系统可以帮助大学生了解各种行业和职位的特点,为自己的职业规划提供参考。同时,通过在兼职过程中积累的人脉和经验,大学生可以更好地找到适合自己的工作,提高就业成功率。对于有创业意向的大学生,校园兼职系统还可以为他们提供创业资源和合作伙伴。

最后,规范校园兼职市场,保障大学生权益:在传统的兼职市场中,大学生往往面临着信息不对称、权益保障不足等问题。校园兼职系统通过实名制认证等手段,可以有效地规范兼职市场,保障大学生的合法权益。

1.3论文结构与章节安排

本文共分为六章,章节内容安排如下:

第一章为绪论,主要介绍系统的研究背景和意义,同时进行了论文整体框架的结构的简要介绍。

第二章为系统需求分析,章节所做的主要的工作是对系统进行了技术、经济和法律方面可行性的分析;对系统实行了总体功能的需求、用例分析。

第三章为系统的设计,主要是对系统的功能结构进行设计,并对系统数据库的概念结构以及物理结构的设计进行了分析。

第四章就是对系统的实现,根据系统功能的划分,分别的对系统所需要实现的用户功能和管理员功能进行了分析和说明。

第五章:系统测试。主要对系统的部分界面进行展示并对主要功能进行测试。

第六章:总结。

2校园兼职系统分析

系统需求分析是系统开发的一个关键环节,它在系统的设计和实现上起到了一个承上启下的位置。系统需求分析是对所需要做的系统进行一个需求的挖掘,如果分析的准确可以精准的解决现实中碰到的问题。如果分析不到位会影响后期系统的实现。一个系统的优秀程度需求分析也是占据了非常大的比例,如果需求分析不到位,后面的系统设计要实现就是一个偏离导航的设计。

2.1可行性分析

系统可行行分析是对系统对系统可行性进行一个探讨。在探讨系统的可行性上我们主要从技术上的可行性和经济上的可行性以及法律可行性进行分析,如果三个层面度通过,则认为系统是比较可行的。

2.1.1技术可行性分析

本校园兼职系统采用Django技术、Python编程语言和MySQL数据库进行开发设计,作为计算机专业学生,在学校期间就接触到许多关于编程方面的知识,当然也包括各种编程软件,所以从技术上是可行的。

2.1.2经济可行性分析

从经济可行性上看项目在开发阶段需要一定的投资成本,在生产阶段需要web服务器和数据库服务器及后期的维护需要一定的成本,但是相对于其带来的经济效益和社会效益而言,其投资成本低值得的。通过系统可以提高校园兼职管理效率和管理水平,降低管理成本。在经济层面上是可行的。

2.1.3法律可行性分析

系统从法律层面上来没有对第三方法律层面的问题,系统数据库采用的MySQL开源社区数据库、框架采用的是开源的Django。系统资讯和相关内容也是符合法律层面的。在源码的管理上采用git开源进行管理,所以在法律可行性上是成立的。

2.2系统功能分析

2.2.1功能性分析

校园兼职系统我划分为了注册用户模块和管理员模块这两部分,具体内容如下。

1.注册用户模块:

(1)注册登录:用户注册后可以通过账户名和密码进行登录。

(2)首页:用户可以查看系统的导航栏,轮播图,兼职资讯等信息。

(3)网站公告:用户可以查看网站公告信息,可以查看某一公告讯的详情。

(4)兼职资讯:用户可以查看兼职资讯列表信息,可以查看某一资讯的详情并进行点赞、收藏和发布评论操作。

(5)兼职信息:用户可以查看某一兼职信息详情并进行点赞、收藏和发表评论操作,点击“兼职申请”进入页面填写相关信息后点提交即可完成申请。

(6)我的:在我的下拉“我的账户”菜单可以修改个人资料和登录密码,在“个人中心”菜单可以查看个人兼职申请、兼职评价和收藏信息。

2.管理员模块:

(1)公共管理:管理员可以对系统轮播图和网站公告可以进行查询、重置、添加、删除操作。

(2)用户管理:管理员可以查看某一用户详情,可以对用户信息进行,查询、新增、重置、删除操作

(3)资讯管理:管理员可以添加资讯分类信息,可以查看资讯列表信息中的某一资讯的详情和评论,可以对资讯信息进行查询、重置、新增、删除操作。

(4)职位分类:管理员可以对职位分类信息可以进行查询、重置、新增和删除操作。

(5)兼职信息:管理员可以对兼职信息进行查询、重置、新增和删除操作。

(6)兼职申请:管理员可以查看某一兼职申请信息详情并进行审核,对兼职申请信息可以进行添加、查询、重置、删除操作。

(7)兼职评价:管理员可以查看兼职评价列表中的某一兼职评价的详情并进行回复,可以对兼职评价信息进行查询、重置、新增和删除操作。

2.2.2非功能性分析

校园兼职系统的非功能性需求比如校园兼职系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下3-1表格中:

3-1校园兼职系统非功能需求表

安全性

主要指校园兼职系统数据库的安装,数据库的使用和密码的设定必须合乎规范。

可靠性

可靠性是指校园兼职系统能够按照用户提交的指示进行操作,经过测试,可靠性90%以上。

性能

性能是影响校园兼职系统占据市场的必要条件,所以性能最好要佳才好。

可扩展性

比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。

易用性

用户只要跟着校园兼职系统的页面展示内容进行操作,就可以了。

可维护性

校园兼职系统开发的可维护性是非常重要的,经过测试,可维护性没有问题

2.3系统用例分析

校园兼职系统的完整UML用例图分别是图2-1和图2-2。

注册用户角色的用例图如下图2-1所示 。

图2-1校园兼职系统注册用户角色用例图

管理员角色的用例图如下图2-2所示。

图2-2校园兼职系统管理员角色用例图

2.4系统流程分析

2.4.1 数据增加流程

用户成功登入系统后能够实现增加数据的操作,增加数据的编号是特定的,系统生成,用户不能随意填写,除了编号以外,其他增加信息用户自己填写,填写后的信息经过系统验证,验证合法通过就显示增加数据成功了,相反,就没有增加成功,增加数据流程如下图2-3所示

图2-3  数据增加流程图

2.4.2 数据修改流程

数据修改时的流程和上面介绍的数据增加时的流程差不多,数据修改的流程如下图2-4所示。

图2-4  数据修改流程图

2.4.3 数据删除流程

如果系统里面存在一些没有用的数据,管理人员还可以对这些数据进行删除,图2数据删除流程图如下图2-5所示

图2-5 数据删除流程图

2.5本章小结

本章主要通过对校园兼职系统的可行性分析、功能需求分析、系统用例分析、系统流程分析,确定整个校园兼职系统要实现的功能。同时也为校园兼职系统的代码实现和测试提供了标准。

3 校园兼职系统总体设计

本章主要讨论的内容包括校园兼职系统的功能模块设计、数据库系统设计。

3.1系统功能模块设计

3.1.1整体功能模块设计

在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本校园兼职系统中的用例。那么接下来就要开始对本校园兼职系统的架构、主要功能和数据库开始进行设计。校园兼职系统根据前面章节的需求分析得出,其总体设计模块图如图3-1所示。

图3-1校园兼职系统功能模块图

3.1.2用户模块设计

本系统的用户包括管理员和用户两种用户模块的功能基本是相同的,用户模块结构图如下图:

图3-2用户模块结构图

3.1.3评论管理模块设计

校园兼职系统是一个交流性质的公开平台,用户可以对兼职资讯进行评论,增加用户之间的互动性。但是同时也为了更好的规范评论的内容,管理员可以删除不合适的评论,具体的结构图如下:

图3-3评论管理模块结构图

3.1.4兼职信息管理模块设计

校园兼职系统是中需要存储不少兼职信息,其模块功能结构,具体的结构图如下:

图3-4兼职信息模块结构图

3.2数据库设计

数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。

3.2.1数据库概念结构设计

下面是整个校园兼职系统中主要的数据库表总E-R实体关系图。

图3-5校园兼职系统总E-R关系图

3.3.2数据库逻辑结构设计

通过上一小节中校园兼职系统中总E-R关系图上得出一共需要创建很多个数据表。在此主要罗列几个主要的数据库表结构设计。

表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

用户编号:

表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

文章描述

表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

更新时间:

表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

更新时间:

表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

更新时间:

表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:

表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:

表job_classification (职位分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

job_classification_id

int

10

0

N

Y

职位分类ID

2

position_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

更新时间

表notice (公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表part_time_application (兼职申请)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

part_time_application_id

int

10

0

N

Y

兼职申请ID

2

recruiting_employers

varchar

64

0

Y

N

招聘雇主

3

job_title

varchar

64

0

Y

N

岗位名称

4

part_time_type

varchar

64

0

Y

N

兼职类型

5

applicants

int

10

0

Y

N

0

应聘用户

6

name

varchar

64

0

Y

N

姓名

7

user_gender

varchar

64

0

Y

N

性别

8

graduation_institution

varchar

64

0

Y

N

毕业院校

9

educational_background

varchar

64

0

Y

N

学历

10

contact_number

varchar

64

0

Y

N

联系电话

11

resume

varchar

255

0

Y

N

个人简历

12

self_introduction

text

65535

0

Y

N

自我介绍

13

examine_state

varchar

16

0

N

N

未审核

审核状态

14

examine_reply

varchar

16

0

Y

N

审核回复

15

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

16

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表part_time_evaluation (兼职评价)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

part_time_evaluation_id

int

10

0

N

Y

兼职评价ID

2

job_title

varchar

64

0

Y

N

岗位名称

3

recruiting_employers

varchar

64

0

Y

N

招聘雇主

4

part_time_type

varchar

64

0

Y

N

兼职类型

5

applicants

int

10

0

Y

N

0

应聘用户

6

name

varchar

64

0

Y

N

姓名

7

score

varchar

64

0

Y

N

评分

8

evaluation_content

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

更新时间

表part_time_information (兼职信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

part_time_information_id

int

10

0

N

Y

兼职信息ID

2

job_title

varchar

64

0

Y

N

岗位名称

3

recruiting_employers

varchar

64

0

Y

N

招聘雇主

4

type_of_part_time_job

varchar

64

0

Y

N

兼职类型

5

cover

varchar

255

0

Y

N

封面

6

number_of_recruiters

int

10

0

Y

N

0

招聘人数

7

working_hours

varchar

64

0

Y

N

工作时间

8

job_description

text

65535

0

Y

N

工作内容

9

salary_and_benefits

text

65535

0

Y

N

薪资待遇

10

details

longtext

2147483647

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

更新时间

表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已取消

表registered_users (注册用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

registered_users_id

int

10

0

N

Y

注册用户ID

2

name

varchar

64

0

Y

N

姓名

3

gender

varchar

64

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

更新时间

表sensitive_vocabulary (敏感词汇)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

sensitive_vocabulary_id

int

10

0

N

Y

敏感词汇ID

2

sensitive_vocabulary

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

更新时间

表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

更新时间:

表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

文件类型

表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

email

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

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

表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

更新时间:

3.4本章小结

整个校园兼职系统的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。

4校园兼职系统详细设计与实现

校园兼职系统的详细设计与实现主要是根据前面的校园兼职系统的需求分析和校园兼职系统的总体设计来设计页面并实现业务逻辑。主要从校园兼职系统界面实现、业务逻辑实现这两部分进行介绍。

4.1注册用户功能模块

4.1.1首页界面

系统首页以上中下的布局进行展示,正上方是系统的导航栏,下面是轮播图,再往下是兼职资讯等信息,其界面如下图4-1所示。

图4-1首页界面图

4.1.2注册界面

用户点击右上角“注册”按钮的时候,当填写上自己的账号、设置密码、确认密码、昵称、身份等信息后再点击“注册”按钮,系统将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,通过验证后即可用户注册成功。其界面展示如下图4-2所示。

图4-2注册界面图

用户注册的关键代码如下:

  def Register(self, ctx):

        print("===================注册=====================")

        userService = service_select("user")

        body = ctx.body

        if "username" not in body and body["username"] == '':

            return ctx.response(json.dumps({

                "error": {

                    "code": 70000,

                    "message": "用户名不能为空",

                }

            }, ensure_ascii=False))

        if "user_group" not in body and body["user_group"] == '':

            return ctx.response(json.dumps({

                "error": {

                    "code": 70000,

                    "message": "用户组不能为空",

                }

            }, ensure_ascii=False))

        if "password" not in body and body["password"] == '':

            return ctx.response(json.dumps({

                "error": {

                    "code": 70000,

                    "message": "密码不能为空",

                }

            }, ensure_ascii=False))

        post_param = body

        post_param['nickname'] = body["nickname"] or ""

        post_param['password'] = md5hash(body["password"])

        obj = userService.Get_obj({"username": post_param['username']}, {"like": False})

        if obj:

            return ctx.response(json.dumps({

                "error": {

                    "code": 70000,

                    "message": "用户名已存在",

                }

            }, ensure_ascii=False))

        ret = {

            "error": {

                "code": 70000,

                "message": "注册失败",

            }

        }

        bl = userService.Add(post_param)

        if bl:

            ret = {

                "result": {

                    "bl": True,

                    "message": "注册成功"

                }

            }

        return ctx.response(json.dumps(ret, ensure_ascii=False))

4.1.3用户登录界面

用户注册后可通过账号密码进行登录,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到校园兼职系统的首页中;否则将会提示相应错误信息,其界面如下图4-3所示。

图4-3登录界面图

用户登录关键代码如下:

 def Login(self, ctx):

        print("===================登录=====================")

        ret = {

            "error": {

                "code": 70000,

                "message": "账户不存在",

            }

        }

        body = ctx.body

        password = md5hash(body["password"]) or ""

        obj = service_select("user").Get_obj(

            {"username": body["username"]}, {"like": False}

        )

        if obj:

            user_group = service_select("user_group").Get_obj({'name': obj['user_group']}, {"like": False})

            if user_group and user_group['source_table'] != '':

                user_obj = service_select(user_group['source_table']).Get_obj({"user_id": obj['user_id']},                                                                       {"like": False})

                if user_obj['examine_state'] == '未通过':

                    ret = {

                        "error": {

                            "code": 70000,

                            "message": "账户未通过审核",

                        }

                    }

                    return ret

                if user_obj['examine_state'] == '未审核':

                    ret = {

                        "error": {

                            "code": 70000,

                            "message": "账户未审核",

                        }

                    }

                    return ret

            if obj["state"] == 1:

                if obj["password"] == password:

                    timeout = timezone.now()

                    timestamp = int(time.mktime(timeout.timetuple())) * 1000

                    token = md5hash(str(obj["user_id"]) + "_" + str(timestamp))

                    ctx.request.session[token] = obj["user_id"]

                    service_select("access_token").Add(

                        {"token": token, "user_id": obj["user_id"]}

                    )

                    obj["token"] = token

                    ret = {

                        "result": {"obj": obj}

                    }

                else:

                    ret = {

                        "error": {

                            "code": 70000,

                            "message": "密码错误",

                        }

                    }

            else:

                ret = {

                    "error": {

                        "code": 70000,

                        "message": "用户账户不可用,请联系管理员",

                    }

                }

        return ctx.response(json.dumps(ret, ensure_ascii=False))

4.1.4网站公告界面

用户可以查看网站公告信息,可以查看某一公告讯的详情,其界面如下图4-4所示。

图4-4网站公告界面图

4.1.5兼职资讯界面

用户可以查看兼职资讯列表信息,可以查看某一资讯的详情并进行点赞、收藏和发布评论操作,其页面如下图4-5所示。

图4-5兼职资讯界面图

4.1.6兼职信息界面

用户可以查看兼职信息列表信息,同时支持通过输入关键字进行兼职信息查询;用户可以查看某一兼职信息详情并进行点赞、收藏和发表评论操作,点击“兼职申请”进入页面填写相关信息后点提交即可完成申请,其界面如下图4-6所示。

图4-6兼职信息界面图

4.1.7我的账户界面

当用户点击“我的”下方的“我的账户”按钮可以修改个人资料信息如头像、昵称、登录密码,其界面如下图4-7所示:

图4-7我的账户界面图

4.1.8个人中心界面

当用户点击“我的”下方的“个人中心”按钮可以查看个人首页、兼职申请、兼职评价、收藏列表信息,其界面如下图4-8所示:

图4-8个人中心界面图

4.2管理员功能模块

4.2.1公共管理界面

管理员可以对系统轮播图和网站公告可以进行查询、重置、新增、删除操作。其界面如下图4-9所示。

图4-9公共管理界面图

新增的关键代码如下:

def Add(self, ctx):

body = ctx.body

unique = self.config.get("unique")

obj = None

if unique:

qy = {}

for i in range(len(unique)):

key = unique[i]

qy[key] = body.get(key)

obj = self.service.Get_obj(qy)

if not obj:

error = self.Add_before(ctx)

if error["code"]:

return {"error": error}

error = self.Events("add_before", ctx, None)

if error["code"]:

return {"error": error}

result = self.service.Add(body, self.config)

if self.service.error:

return {"error": self.service.error}

res = self.Add_after(ctx, result)

if res:

result = res

res = self.Events("add_after", ctx, result)

if res:

result = res

return {"result": result}

else:

return {"error": {"code": 10000, "message": "已存在"}}

查询的关键代码如下:

def Get_obj(self, ctx):

query = dict(ctx.query)

config_plus = {}

if "field" in query:

field = query.pop("field")

config_plus["field"] = field

obj = self.service.Get_obj(query, obj_update(self.config, config_plus))

if self.service.error:

return {"error": self.service.error}

if obj:

self.interact_obj(ctx, obj)

return {"result": {"obj": obj}}

删除的关键代码如下:

def Del(self, ctx):

if len(ctx.query) == 0:

errorMsg = {"code": 30000, "message": "删除条件不能为空!"}

return errorMsg

result = self.service.Del(ctx.query, self.config)

if self.service.error:

return {"error": self.service.error}

return {"result": result}

4.2.2用户管理界面

管理员可以查看某一用户详情,可以对用户信息进行,查询、新增、重置、删除操作。其界面如下图4-10所示。

图4-10用户管理界面图

4.2.3资讯管理界面

管理员可以添加资讯分类信息,可以查看资讯列表信息中的某一资讯的详情和评论,可以对资讯信息进行查询、重置、新增、删除操作。其界面如下图4-11所示。

图4-11资讯管理界面图

4.2.4职位分类界面

管理员可以对职位分类信息可以进行查询、重置、新增和删除操作。其界面如下图4-12所示。

图4-12职位分类界面图

4.2.5兼职信息界面

管理员可以对兼职信息进行查询、重置、新增和删除操作。其界面如下图4-13所示。

图4-13兼职信息界面图

4.2.6兼职申请界面

管理员可以查看某一兼职申请信息详情并进行审核,对兼职申请信息可以进行添加、查询、重置、删除操作。其界面如下图4-14所示。

图4-14兼职申请界面图

4.2.7兼职评价界面

管理员可以查看兼职评价列表中的某一兼职评价的详情并进行回复,可以对兼职评价信息进行查询、重置、新增和删除操作。其界面如下图4-15所示。

图4-15兼职评价界面图

5系统测试

5.1系统测试用例

系统测试包括:用户登录功能、兼职查看功能、兼职申请功能、密码修改功能测试,如表5-1、5-2、5-3、5-4所示:

用户登录功能测试:

表5-1用户登录功能测试表

用例名称

用户登录系统

目的

测试用户通过正确的用户名和密码可否登录功能

前提

未登录的情况下

测试流程

1)进入登录页面

2)输入正确的用户名和密码

预期结果

用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入

实际结果

实际结果与预期结果一致

兼职信息查看功能测试:

表5-2兼职信息查看功能测试表

用例名称

兼职信息查看

目的

测试兼职信息查看功能

前提

用户正常登录

测试流程

点击导航栏兼职信息

预期结果

可以查看到所有兼职信息

实际结果

实际结果与预期结果一致

兼职申请测试:

表5-3兼职申请功能测试表

用例名称

兼职申请测试

目的

兼职申请功能

前提

用户正常登录

测试流程

1)在兼职信息下方点击“兼职申请”进入页面填写信息。

2)信息填写完后点提交。

预期结果

完成兼职申请信息提交

实际结果

实际结果与预期结果一致

密码修改搜索功能测试:

表5-4密码修改功能测试表

用例名称

密码修改测试用例

目的

测试注册用户密码修改功能

前提

 注册用户正常登录情况下

测试流程

1)注册用户密码修改并完成填写。

2)点击进行提交。

预期结果

使用新的密码可以登录

实际结果

实际结果与预期结果一致

5.2系统测试结果

通过编写校园兼职系统的测试用例,已经检测完毕用户登录功能、兼职查看功能、兼职申请功能、密码修改功能测试,通过这4大模块为校园兼职系统的后期推广运营提供了强力的技术支撑。

6结论

本文描述了校园兼职系统设计与实现的原理和开发过程,该系统是通过采用现下比较流程的Python语言,采用Django框架进行开发,数据的存储方面采用的是开源的MYSQL数据库。在文中主要通过对校园兼职系统进行可行性、性能、功能、用例四个方面进行分析,确定了本校园兼职系统的具体功能,功能确定后就是对系统的设计以及功能的实现,最终完成系统的开发,对系统进行测试,确保系统运行的可靠性和稳定性。

在开发本校园兼职系统的过程中我成长了很多,学习到了很多书本上没有的知识,目前系统虽然已经完成。由于自己专业知识有限,系统做的并不是十分完美,还有许多地方需要改进,比如界面布局方面,代码的编写方面,都可以进一步完善。以后我将继续进行努力学习,对系统进行完善,同时希望此系统以后有机会能够投入到学校的使用当中,给同学们提供便利。

参考文献

[1]祝洪珍,吕旋,乔守明.校园兼职软件一掌通平台的设计与实现[J].软件,2023,44(07):26-28.

[2]Guo W ,An W,Zhou X.Exploration on Building a Part-Time Job Platform for College Students: Taking Xi’an Medical College as An Example[J].Scientific and Social Research,2023,5(6):

[3]于雨,张卓雅,田力.智能媒体背景下播音专业大学生的兼职现状与职业发展研究[J].西部广播电视,2023,44(12):82-85.

[4]陈蓉蓉,秦野.学术创业视野下高校兼职兼薪管理的实证研究[J].创新与创业教育,2023,14(02):100-107.

[5]仇怡婷,张星宇,李华龙等.大学生兼职满意度影响因素分析[J].合作经济与科技,2023,(03):99-101.

[6]张雨爽,荣阳阳,杜璇等.大学生兼职问题与对策[J].合作经济与科技,2023,(04):93-95.

[7]董佳琳,刘聪慧,陆庆虹.基于江苏省在校大学生兼职的现状分析和权益保护调研[J].新经济,2022,(07):73-77.

[8]周爱华,李艳涛,魏雨祺.北京高校大学生兼职对学业和就业影响实证研究[J].合作经济与科技,2022,(14):103-105.

[9]张晓玉,李雨淇,宁婷等.大学生社会兼职状况调查与影响因素分析研究[J].甘肃科技,2022,38(09):73-75+85.

[10]张千雅,张婧仪,鲍泽芸等.基于区块链应用技术的大学生兼职平台构建的优化研究[J].网络安全技术与应用,2022,(04):62-64.

[11]贺莹.区域链技术在高校兼职服务平台中的应用[J].黑龙江科学,2022,13(03):40-41.

[12]胡琦萌.大学生兼职现状调查研究——以烟台高校为例[J].中国市场,2022,(01):141-143.

[13]周渠岸.校园兼职平台的设计与实现[J].电子技术,2021,50(10):70-71.

[14]段雪莹.大学生兼职现状调查研究[J].营销界,2021,(39):193-194.

[15]周可,芦明.移动端校园兼职平台的设计与实现[J].福建电脑,2020,36(09):96-98.

[16]Christopher M ,Paul A .The Surprising Labor Market Success of Part-Time Community College Students[J].Community College Journal of Research and Practice,2020,44(7):528-543.

[17]Effect of University Student's Part-time Work Experience on University Life[J].International Journal of Advanced Culture Technology,2020,8(1):141-151.

[18]周群.“智慧校园”兼职APP可行性研究——以安徽省淮南市为例[J].山西农经,2020,(05):125-126.

[19]陈嘉乐.“互联网+”校园家教兼职平台的设计[J].现代信息科技,2020,4(04):119-121.

[20]李方良,郝雨萱,温雅欣等.双创背景下校园兼职平台模式的优化研究[J].农家参谋,2020,(04):290.

致谢

我首先要向我的论文指导老师表示深深的感谢。在整个论文的创作过程中,导师的悉心指导和无微不至的关怀,对我起到了巨大的推动作用。导师的耐心教诲和建设性的意见,都对我有着莫大的帮助。他们的严谨的学术态度、敬业的精神和高超的教学技艺,都为我树立了追求卓越的典范。这些无价的品质,不仅影响了我现在的生活,也激励着我持续向前。

同时,我要向我的一同求学的同学们表示感激,他们既是我的学习伙伴,也是我生活中的良师。在大学的生涯中,他们给予了我无微不至的关怀和支持。有了他们的帮助,我才能顺利完成学业。在这里,我要向所有给予我援手的老师和同学们表示感谢,是你们陪我度过了这段珍贵的大学时光。

我也要向我敬爱的父母表达感谢,是他们用辛勤的付出和深深的爱,将我抚养成人。我永远不会忘记他们为我付出的辛勤努力和深深的爱。在成长的道路上,他们始终是我前进的动力和信念。为了回报他们的养育之恩,我一定会努力学习,用我未来的成就让他们感到更加骄傲。

在这里,我要向所有关心我、支持我、帮助过我的人表示深深的感谢,是你们陪我走过了人生的曲折与坎坷。我会将大家的支持和关爱转化为前进的动力,努力成为更好的我。

免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~


http://www.kler.cn/a/374874.html

相关文章:

  • 【云原生】云原生后端:网络架构详解
  • 深入理解Docker,从入门到精通-Part1(基础使用)
  • Python | Leetcode Python题解之第522题最长特殊序列II
  • Golang | Leetcode Golang题解之第515题在每个树行中找最大值
  • nginx配置https及url重写
  • 如何配置,npm install 是从本地安装依赖
  • 启明创投与七牛云坚定看好云计算发展前景
  • Java爬虫:如何优雅地从1688获取商品详情
  • 供应商图纸外发:如何做到既安全又高效?
  • 每日算法一练:剑指offer——数组篇(6)
  • 不适合的学习方法
  • SpringBoot应用部署到Docker中MySQL8时间戳相差8小时问题及处理方式
  • 开源AI智能名片2+1链动模式S2B2C商城小程序领域的未来探索
  • Rust 力扣 - 238. 除自身以外数组的乘积
  • 支持向量机背后的数学奥秘
  • 开源数据库 - mysql - MYSQL8.4版本删除功能
  • 【React】react-app-env.d.ts 文件
  • Android 音量调节流程分析
  • 【牛客算法】某司面试算法题:找出最长山脉的长度
  • 微服务设计模式 - 大使模式(Ambassador Pattern)
  • 怎么在哔哩哔哩保存完整视频
  • git入门教程3:安装配置
  • 西瓜书《机器学习》符号表KaTex表示
  • 012:ArcGIS Server 10.2安装与站点创建教程
  • 奇瑞汽车:降阶模型在新能源汽车热管理仿真上的应用
  • (二十四)、在 k8s 中部署自己的 jar 镜像(以 springcloud web 项目为例)