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框架
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绪论
大学校园中,越来越多的学生开始利用课余时间进行兼职工作,以赚取生活费用、积累社会经验、提高自己的能力等,研究一款校园兼职系统,具有重要的意义,其意义主要体现在以下几个方面:
首先,提高大学生的实践能力和社会适应能力:随着就业竞争的日益激烈,大学生需要在学业之余积累丰富的工作经验和社会资源,以提高自己的竞争力。校园兼职系统为大学生提供了一个接触社会、锻炼自己的平台,有助于提高大学生的实践能力和社会适应能力。
其次,促进大学生创业和就业:校园兼职系统可以帮助大学生了解各种行业和职位的特点,为自己的职业规划提供参考。同时,通过在兼职过程中积累的人脉和经验,大学生可以更好地找到适合自己的工作,提高就业成功率。对于有创业意向的大学生,校园兼职系统还可以为他们提供创业资源和合作伙伴。
最后,规范校园兼职市场,保障大学生权益:在传统的兼职市场中,大学生往往面临着信息不对称、权益保障不足等问题。校园兼职系统通过实名制认证等手段,可以有效地规范兼职市场,保障大学生的合法权益。
本文共分为六章,章节内容安排如下:
第一章为绪论,主要介绍系统的研究背景和意义,同时进行了论文整体框架的结构的简要介绍。
第二章为系统需求分析,章节所做的主要的工作是对系统进行了技术、经济和法律方面可行性的分析;对系统实行了总体功能的需求、用例分析。
第三章为系统的设计,主要是对系统的功能结构进行设计,并对系统数据库的概念结构以及物理结构的设计进行了分析。
第四章就是对系统的实现,根据系统功能的划分,分别的对系统所需要实现的用户功能和管理员功能进行了分析和说明。
第五章:系统测试。主要对系统的部分界面进行展示并对主要功能进行测试。
2校园兼职系统分析
系统可行行分析是对系统对系统可行性进行一个探讨。在探讨系统的可行性上我们主要从技术上的可行性和经济上的可行性以及法律可行性进行分析,如果三个层面度通过,则认为系统是比较可行的。
本校园兼职系统采用Django技术、Python编程语言和MySQL数据库进行开发设计,作为计算机专业学生,在学校期间就接触到许多关于编程方面的知识,当然也包括各种编程软件,所以从技术上是可行的。
从经济可行性上看项目在开发阶段需要一定的投资成本,在生产阶段需要web服务器和数据库服务器及后期的维护需要一定的成本,但是相对于其带来的经济效益和社会效益而言,其投资成本低值得的。通过系统可以提高校园兼职管理效率和管理水平,降低管理成本。在经济层面上是可行的。
校园兼职系统我划分为了注册用户模块和管理员模块这两部分,具体内容如下。
1.注册用户模块:
(1)注册登录:用户注册后可以通过账户名和密码进行登录。
(2)首页:用户可以查看系统的导航栏,轮播图,兼职资讯等信息。
(3)网站公告:用户可以查看网站公告信息,可以查看某一公告讯的详情。
(4)兼职资讯:用户可以查看兼职资讯列表信息,可以查看某一资讯的详情并进行点赞、收藏和发布评论操作。
(5)兼职信息:用户可以查看某一兼职信息详情并进行点赞、收藏和发表评论操作,点击“兼职申请”进入页面填写相关信息后点提交即可完成申请。
(6)我的:在我的下拉“我的账户”菜单可以修改个人资料和登录密码,在“个人中心”菜单可以查看个人兼职申请、兼职评价和收藏信息。
2.管理员模块:
(1)公共管理:管理员可以对系统轮播图和网站公告可以进行查询、重置、添加、删除操作。
(2)用户管理:管理员可以查看某一用户详情,可以对用户信息进行,查询、新增、重置、删除操作
(3)资讯管理:管理员可以添加资讯分类信息,可以查看资讯列表信息中的某一资讯的详情和评论,可以对资讯信息进行查询、重置、新增、删除操作。
(4)职位分类:管理员可以对职位分类信息可以进行查询、重置、新增和删除操作。
(5)兼职信息:管理员可以对兼职信息进行查询、重置、新增和删除操作。
(6)兼职申请:管理员可以查看某一兼职申请信息详情并进行审核,对兼职申请信息可以进行添加、查询、重置、删除操作。
(7)兼职评价:管理员可以查看兼职评价列表中的某一兼职评价的详情并进行回复,可以对兼职评价信息进行查询、重置、新增和删除操作。
2.2.2非功能性分析
校园兼职系统的非功能性需求比如校园兼职系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下3-1表格中:
表3-1校园兼职系统非功能需求表
安全性 | 主要指校园兼职系统数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 | 可靠性是指校园兼职系统能够按照用户提交的指示进行操作,经过测试,可靠性90%以上。 |
性能 | 性能是影响校园兼职系统占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 | 用户只要跟着校园兼职系统的页面展示内容进行操作,就可以了。 |
可维护性 | 校园兼职系统开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
校园兼职系统的完整UML用例图分别是图2-1和图2-2。
注册用户角色的用例图如下图2-1所示 。
图2-1校园兼职系统注册用户角色用例图
管理员角色的用例图如下图2-2所示。
图2-2校园兼职系统管理员角色用例图
用户成功登入系统后就能够实现增加数据的操作,增加数据的编号是特定的,系统生成,用户不能随意填写,除了编号以外,其他增加信息用户自己填写,填写后的信息经过系统验证,验证合法通过就显示增加数据成功了,相反,就没有增加成功,增加数据的流程如下图2-3所示。
图2-3 数据增加流程图
数据修改时的流程和上面介绍的数据增加时的流程差不多,数据修改的流程如下图图2-4所示。
图2-4 数据修改流程图
如果系统里面存在一些没有用的数据,管理人员还可以对这些数据进行删除,图2数据删除的流程图如下图2-5所示。
本章主要通过对校园兼职系统的可行性分析、功能需求分析、系统用例分析、系统流程分析,确定整个校园兼职系统要实现的功能。同时也为校园兼职系统的代码实现和测试提供了标准。
本章主要讨论的内容包括校园兼职系统的功能模块设计、数据库系统设计。
在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本校园兼职系统中的用例。那么接下来就要开始对本校园兼职系统的架构、主要功能和数据库开始进行设计。校园兼职系统根据前面章节的需求分析得出,其总体设计模块图如图3-1所示。
图3-1校园兼职系统功能模块图
本系统的用户包括管理员和用户两种用户模块的功能基本是相同的,用户模块结构图如下图:
图3-2用户模块结构图
校园兼职系统是一个交流性质的公开平台,用户可以对兼职资讯进行评论,增加用户之间的互动性。但是同时也为了更好的规范评论的内容,管理员可以删除不合适的评论,具体的结构图如下:
图3-3评论管理模块结构图
校园兼职系统是中需要存储不少兼职信息,其模块功能结构,具体的结构图如下:
图3-4兼职信息模块结构图
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
下面是整个校园兼职系统中主要的数据库表总E-R实体关系图。
图3-5校园兼职系统总E-R关系图
通过上一小节中校园兼职系统中总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 | | 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 | 更新时间: |
整个校园兼职系统的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。
4校园兼职系统详细设计与实现
校园兼职系统的详细设计与实现主要是根据前面的校园兼职系统的需求分析和校园兼职系统的总体设计来设计页面并实现业务逻辑。主要从校园兼职系统界面实现、业务逻辑实现这两部分进行介绍。
系统首页以上中下的布局进行展示,正上方是系统的导航栏,下面是轮播图,再往下是兼职资讯等信息,其界面如下图4-1所示。
图4-1首页界面图
用户点击右上角“注册”按钮的时候,当填写上自己的账号、设置密码、确认密码、昵称、身份等信息后再点击“注册”按钮,系统将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,通过验证后即可用户注册成功。其界面展示如下图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-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-4所示。
图4-4网站公告界面图
用户可以查看兼职资讯列表信息,可以查看某一资讯的详情并进行点赞、收藏和发布评论操作,其页面如下图4-5所示。
图4-5兼职资讯界面图
用户可以查看兼职信息列表信息,同时支持通过输入关键字进行兼职信息查询;用户可以查看某一兼职信息详情并进行点赞、收藏和发表评论操作,点击“兼职申请”进入页面填写相关信息后点提交即可完成申请,其界面如下图4-6所示。
图4-6兼职信息界面图
当用户点击“我的”下方的“我的账户”按钮可以修改个人资料信息如头像、昵称、登录密码,其界面如下图4-7所示:
图4-7我的账户界面图
当用户点击“我的”下方的“个人中心”按钮可以查看个人首页、兼职申请、兼职评价、收藏列表信息,其界面如下图4-8所示:
图4-8个人中心界面图
管理员可以对系统轮播图和网站公告可以进行查询、重置、新增、删除操作。其界面如下图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-10所示。
图4-10用户管理界面图
管理员可以添加资讯分类信息,可以查看资讯列表信息中的某一资讯的详情和评论,可以对资讯信息进行查询、重置、新增、删除操作。其界面如下图4-11所示。
图4-11资讯管理界面图
管理员可以对职位分类信息可以进行查询、重置、新增和删除操作。其界面如下图4-12所示。
图4-12职位分类界面图
管理员可以对兼职信息进行查询、重置、新增和删除操作。其界面如下图4-13所示。
图4-13兼职信息界面图
管理员可以查看某一兼职申请信息详情并进行审核,对兼职申请信息可以进行添加、查询、重置、删除操作。其界面如下图4-14所示。
图4-14兼职申请界面图
管理员可以查看兼职评价列表中的某一兼职评价的详情并进行回复,可以对兼职评价信息进行查询、重置、新增和删除操作。其界面如下图4-15所示。
图4-15兼职评价界面图
5系统测试
系统测试包括:用户登录功能、兼职查看功能、兼职申请功能、密码修改功能测试,如表5-1、5-2、5-3、5-4所示:
表5-1用户登录功能测试表
用例名称 | 用户登录系统 |
目的 | 测试用户通过正确的用户名和密码可否登录功能 |
前提 | 未登录的情况下 |
测试流程 | 1)进入登录页面 2)输入正确的用户名和密码 |
预期结果 | 用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
实际结果 | 实际结果与预期结果一致 |
兼职信息查看功能测试:
表5-2兼职信息查看功能测试表
用例名称 | 兼职信息查看 |
目的 | 测试兼职信息查看功能 |
前提 | 用户正常登录 |
测试流程 | 点击导航栏兼职信息 |
预期结果 | 可以查看到所有兼职信息 |
实际结果 | 实际结果与预期结果一致 |
兼职申请测试:
表5-3兼职申请功能测试表
用例名称 | 兼职申请测试 |
目的 | 兼职申请功能 |
前提 | 用户正常登录 |
测试流程 | 1)在兼职信息下方点击“兼职申请”进入页面填写信息。 2)信息填写完后点提交。 |
预期结果 | 完成兼职申请信息提交 |
实际结果 | 实际结果与预期结果一致 |
密码修改搜索功能测试:
表5-4密码修改功能测试表
用例名称 | 密码修改测试用例 |
目的 | 测试注册用户密码修改功能 |
前提 | 注册用户正常登录情况下 |
测试流程 | 1)注册用户密码修改并完成填写。 2)点击进行提交。 |
预期结果 | 使用新的密码可以登录 |
实际结果 | 实际结果与预期结果一致 |
通过编写校园兼职系统的测试用例,已经检测完毕用户登录功能、兼职查看功能、兼职申请功能、密码修改功能测试,通过这4大模块为校园兼职系统的后期推广运营提供了强力的技术支撑。
本文描述了校园兼职系统设计与实现的原理和开发过程,该系统是通过采用现下比较流程的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.
我首先要向我的论文指导老师表示深深的感谢。在整个论文的创作过程中,导师的悉心指导和无微不至的关怀,对我起到了巨大的推动作用。导师的耐心教诲和建设性的意见,都对我有着莫大的帮助。他们的严谨的学术态度、敬业的精神和高超的教学技艺,都为我树立了追求卓越的典范。这些无价的品质,不仅影响了我现在的生活,也激励着我持续向前。
同时,我要向我的一同求学的同学们表示感激,他们既是我的学习伙伴,也是我生活中的良师。在大学的生涯中,他们给予了我无微不至的关怀和支持。有了他们的帮助,我才能顺利完成学业。在这里,我要向所有给予我援手的老师和同学们表示感谢,是你们陪我度过了这段珍贵的大学时光。
我也要向我敬爱的父母表达感谢,是他们用辛勤的付出和深深的爱,将我抚养成人。我永远不会忘记他们为我付出的辛勤努力和深深的爱。在成长的道路上,他们始终是我前进的动力和信念。为了回报他们的养育之恩,我一定会努力学习,用我未来的成就让他们感到更加骄傲。
在这里,我要向所有关心我、支持我、帮助过我的人表示深深的感谢,是你们陪我走过了人生的曲折与坎坷。我会将大家的支持和关爱转化为前进的动力,努力成为更好的我。
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~