马拉松赛事志愿者管理系统的架构设计主要分为可以3层,主要有Web层,业务层,Model层。其中web层还包括View层和Controller层,Model层包括元数据扩展层和数据访问层。
系统架构如下图所示。
图4-1 系统架构
马拉松赛事志愿者管理系统总体分为前台用户模块和后台管理员模块、志愿者模块和举办者模块。
四个模块表现上是分别独立存在,但是访问的数据库是一样的。每一个模块的功能都是根据先前完成的需求分析,并查阅相关资料后整理制作的。
综上所述,系统功能结构图如下图所示。
图4-2 系统功能结构图
根据前面的数据流程图,结合系统的功能模块设计,设计出符合系统的各信息实体。
用户ER图如下图所示。
马拉松赛事志愿者管理系统所拥有的数据表有以下:用户信息表,赛事信息表,赛事动态信息,全岗申请表,专业申请表等。
由于数据表较多,只展示系统主要数据表,如下表所示。
表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 | 用户编号: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | article_id | mediumint | 8 | 0 | N | Y | 文章id:[0,8388607] | |
2 | title | varchar | 125 | 0 | N | Y | 标题:[0,125]用于文章和html的title标签中 | |
3 | type | varchar | 64 | 0 | N | N | 0 | 文章分类:[0,1000]用来搜索指定类型的文章 |
4 | hits | int | 10 | 0 | N | N | 0 | 点击数:[0,1000000000]访问这篇文章的人次 |
5 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
6 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
8 | source | varchar | 255 | 0 | Y | N | 来源:[0,255]文章的出处 | |
9 | url | varchar | 255 | 0 | Y | N | 来源地址:[0,255]用于跳转到发布该文章的网站 | |
10 | tag | varchar | 255 | 0 | Y | N | 标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 | |
11 | content | longtext | 2147483647 | 0 | Y | N | 正文:文章的主体内容 | |
12 | img | varchar | 255 | 0 | Y | N | 封面图 | |
13 | description | text | 65535 | 0 | Y | N | 文章描述 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000]决定分类显示的先后顺序 |
3 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
4 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
5 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
6 | icon | text | 65535 | 0 | Y | N | 分类图标: | |
7 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
7 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | check_in_id | int | 10 | 0 | N | Y | 打卡签到ID | |
2 | volunteer_type | varchar | 64 | 0 | Y | N | 志愿类型 | |
3 | event_name | varchar | 64 | 0 | Y | N | 赛事名称 | |
4 | event_location | varchar | 64 | 0 | Y | N | 赛事地点 | |
5 | competition_schedule | date | 10 | 0 | Y | N | 比赛日程 | |
6 | hosting_users | int | 10 | 0 | Y | N | 0 | 举办用户 |
7 | volunteer | int | 10 | 0 | Y | N | 0 | 志愿者 |
8 | clock_in_date | date | 10 | 0 | Y | N | 打卡日期 | |
9 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | check_in_and_sign_out_id | int | 10 | 0 | N | Y | 打卡签退ID | |
2 | volunteer_type | varchar | 64 | 0 | Y | N | 志愿类型 | |
3 | event_name | varchar | 64 | 0 | Y | N | 赛事名称 | |
4 | event_location | varchar | 64 | 0 | Y | N | 赛事地点 | |
5 | competition_schedule | date | 10 | 0 | Y | N | 比赛日程 | |
6 | hosting_users | int | 10 | 0 | Y | N | 0 | 举办用户 |
7 | volunteer | int | 10 | 0 | Y | N | 0 | 志愿者 |
8 | clock_in_date | date | 10 | 0 | Y | N | 打卡日期 | |
9 | full_name | varchar | 64 | 0 | Y | N | 姓名 | |
10 | volunteer_duration | int | 10 | 0 | Y | N | 0 | 志愿时长 |
11 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | collect_id | int | 10 | 0 | N | Y | 收藏ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
3 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
4 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
6 | title | varchar | 255 | 0 | Y | N | 标题: | |
7 | img | varchar | 255 | 0 | Y | N | 封面: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | event_dynamics_id | int | 10 | 0 | N | Y | 赛事动态ID | |
2 | event_name | varchar | 64 | 0 | Y | N | 赛事名称 | |
3 | event_location | varchar | 64 | 0 | Y | N | 赛事地点 | |
4 | number_of_participants | int | 10 | 0 | Y | N | 0 | 参赛人数 |
5 | competition_schedule | date | 10 | 0 | Y | N | 比赛日程 | |
6 | hosting_users | int | 10 | 0 | Y | N | 0 | 举办用户 |
7 | cover_photo | varchar | 255 | 0 | Y | N | 封面图片 | |
8 | dynamic_content | text | 65535 | 0 | Y | N | 动态内容 | |
9 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
10 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | event_information_id | int | 10 | 0 | N | Y | 赛事信息ID | |
2 | event_name | varchar | 64 | 0 | Y | N | 赛事名称 | |
3 | event_location | varchar | 64 | 0 | Y | N | 赛事地点 | |
4 | number_of_participants | int | 10 | 0 | Y | N | 0 | 参赛人数 |
5 | competition_schedule | date | 10 | 0 | Y | N | 比赛日程 | |
6 | event_cover | varchar | 255 | 0 | Y | N | 赛事封面 | |
7 | hosting_users | int | 10 | 0 | Y | N | 0 | 举办用户 |
8 | event_details | text | 65535 | 0 | Y | N | 赛事详情 | |
9 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
10 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | full_job_application_id | int | 10 | 0 | N | Y | 全岗申请ID | |
2 | volunteer_type | varchar | 64 | 0 | Y | N | 志愿类型 | |
3 | event_name | varchar | 64 | 0 | Y | N | 赛事名称 | |
4 | event_location | varchar | 64 | 0 | Y | N | 赛事地点 | |
5 | competition_schedule | date | 10 | 0 | Y | N | 比赛日程 | |
6 | hosting_users | int | 10 | 0 | Y | N | 0 | 举办用户 |
7 | volunteer | int | 10 | 0 | Y | N | 0 | 志愿者 |
8 | volunteer_experience | varchar | 64 | 0 | Y | N | 志愿经验 | |
9 | health | text | 65535 | 0 | Y | N | 健康状况 | |
10 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
11 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表full_position_volunteer_positions (全岗志愿岗位)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | full_position_volunteer_positions_id | int | 10 | 0 | N | Y | 全岗志愿岗位ID | |
2 | volunteer_type | varchar | 64 | 0 | Y | N | 志愿类型 | |
3 | event_name | varchar | 64 | 0 | Y | N | 赛事名称 | |
4 | event_location | varchar | 64 | 0 | Y | N | 赛事地点 | |
5 | number_of_recruits | int | 10 | 0 | Y | N | 0 | 招募人数 |
6 | competition_schedule | date | 10 | 0 | Y | N | 比赛日程 | |
7 | hosting_users | int | 10 | 0 | Y | N | 0 | 举办用户 |
8 | cover_photo | varchar | 255 | 0 | Y | N | 封面图片 | |
9 | volunteer_details | text | 65535 | 0 | Y | N | 志愿详情 | |
10 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
11 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
2 | title | varchar | 125 | 0 | N | N | 标题: | |
3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | organizer_id | int | 10 | 0 | N | Y | 举办方ID | |
2 | full_name | varchar | 64 | 0 | Y | N | 姓名 | |
3 | gender | varchar | 64 | 0 | Y | N | 性别 | |
4 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
5 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | praise_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
表professional_application (专业申请)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | professional_application_id | int | 10 | 0 | N | Y | 专业申请ID | |
2 | volunteer_type | varchar | 64 | 0 | Y | N | 志愿类型 | |
3 | event_name | varchar | 64 | 0 | Y | N | 赛事名称 | |
4 | event_location | varchar | 64 | 0 | Y | N | 赛事地点 | |
5 | competition_schedule | date | 10 | 0 | Y | N | 比赛日程 | |
6 | hosting_users | int | 10 | 0 | Y | N | 0 | 举办用户 |
7 | volunteer | int | 10 | 0 | Y | N | 0 | 志愿者 |
8 | volunteer_experience | varchar | 64 | 0 | Y | N | 志愿经验 | |
9 | certificate_screenshot | varchar | 255 | 0 | Y | N | 证书截图 | |
10 | health | text | 65535 | 0 | Y | N | 健康状况 | |
11 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
12 | recommend | 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 | 更新时间 |
表professional_volunteer_positions (专业志愿岗位)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | professional_volunteer_positions_id | int | 10 | 0 | N | Y | 专业志愿岗位ID | |
2 | volunteer_type | varchar | 64 | 0 | Y | N | 志愿类型 | |
3 | event_name | varchar | 64 | 0 | Y | N | 赛事名称 | |
4 | event_location | varchar | 64 | 0 | Y | N | 赛事地点 | |
5 | number_of_recruiters | int | 10 | 0 | Y | N | 0 | 招聘人数 |
6 | competition_schedule | date | 10 | 0 | Y | N | 比赛日程 | |
7 | hosting_users | int | 10 | 0 | Y | N | 0 | 举办用户 |
8 | cover_photo | varchar | 255 | 0 | Y | N | 封面图片 | |
9 | volunteer_details | text | 65535 | 0 | Y | N | 志愿详情 | |
10 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
11 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | slides_id | int | 10 | 0 | N | Y | 轮播图ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | content | varchar | 255 | 0 | Y | N | 内容: | |
4 | url | varchar | 255 | 0 | Y | N | 链接: | |
5 | img | varchar | 255 | 0 | Y | N | 轮播图: | |
6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | upload_id | int | 10 | 0 | N | Y | 上传ID | |
2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
3 | path | varchar | 255 | 0 | Y | N | 访问路径 | |
4 | file | varchar | 255 | 0 | Y | N | 文件路径 | |
5 | display | varchar | 255 | 0 | Y | N | 显示顺序 | |
6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
7 | dir | varchar | 255 | 0 | Y | N | 文件夹 | |
8 | type | varchar | 32 | 0 | Y | N | 文件类型 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
13 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | volunteer_id | int | 10 | 0 | N | Y | 志愿者ID | |
2 | full_name | varchar | 64 | 0 | Y | N | 姓名 | |
3 | gender | varchar | 64 | 0 | Y | N | 性别 | |
4 | occupation | varchar | 64 | 0 | Y | N | 职业 | |
5 | volunteer_experience | varchar | 64 | 0 | Y | N | 志愿经验 | |
6 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
7 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
8 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | volunteer_evaluation_id | int | 10 | 0 | N | Y | 志愿者评价ID | |
2 | volunteer_type | varchar | 64 | 0 | Y | N | 志愿类型 | |
3 | event_name | varchar | 64 | 0 | Y | N | 赛事名称 | |
4 | event_location | varchar | 64 | 0 | Y | N | 赛事地点 | |
5 | competition_schedule | date | 10 | 0 | Y | N | 比赛日程 | |
6 | hosting_users | int | 10 | 0 | Y | N | 0 | 举办用户 |
7 | volunteer | int | 10 | 0 | Y | N | 0 | 志愿者 |
8 | volunteer_self_assessment | text | 65535 | 0 | Y | N | 志愿者自评 | |
9 | evaluation_by_the_organizer | varchar | 64 | 0 | Y | N | 举办方评价 | |
10 | certificate_of_honor | varchar | 255 | 0 | Y | N | 荣誉证书 | |
11 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
该系统是通过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用户注册流程图
用户进入系统首页后,点击“注册”链接进入到注册页面,按照页面提示输入用户名、密码和手机号,页面进行表单验证,验证输入的用户名和手机号是否合法,表单验证通过后,点击“立即注册”按钮,利用 Ajax 技术,对用户名和手机号实现页面无刷新验证,检测数据库中是否已经存在该用户名或手机号,若数据库中不存在,则注册成功,注册成功后,自动跳转到登录页面。
用户注册界面如下图所示。
图5-2用户注册界面
主要由两部分组成,登录前的登录界面以及登录后的用户功能界面。登录界面,要求用户输入用户名和密码,当用户名和密码其中一个输入为空时,给出提示“用户名,密码不能为空”。获取用户名和密码后到数据库中查找,如果用户名存在,以及对应的密码正确,则登录成功,否则登录失败。登录失败后给出提示,并把焦点停在文本框中。登录成功后将该次会话的全局变量username设置为用户名。登录成功后进入会员的功能模块,主要有会员基本信息修改,已经发布报名信息信息管理,发布信息,和退出功能。退出功能是清除全局变量username的值,并跳回到首页。
登录流程图如下图所示。
图5-3登录流程图
用户注册完成后,点击“登录”进入到登录页面,输入用户名和密码,点击“登录”按钮,对用户名和密码进行验证,根据传入的用户名和密码在数据库中是否能查询到一条用户信息,若不能返回用户信息则登录失败,页面提示用户名或密码错误。
用户登录界面如下图所示。
图5-4用户登录界面
用户登录/注册成功之后可以修改自己的基本信息。修改页面的表单中每一个input的name值都要与实体类中的参数相匹配,在用户点击修改页面的时候,如果改后用户名与数据库里面重复了,页面会提示该用户名已经存在了,否则通过Id来查询用户,并将用户的信息修改为表单提交的数据。
首页,用户登录进入系统首页后,可以查看首页、通知公告、志愿者培训、赛事信息、赛事动态、全岗志愿者岗位、专业职员职位、我的等功能模块,并进行相对应的操作,如下图所示。
图5-5前台首页展示界面
赛事信息,在赛事信息页面,用户可以查看赛事信息详情:赛事名称、赛事地点、参赛人数:比赛日程、举办用户等,并可进行点赞、收藏、评论等操作,如下图所示。
图5-6赛事信息管理界面
全岗职位伸申请,在全岗职位伸申请页面,用户可以提交志愿赛事、赛事名称、赛事地点、参赛人数、比赛日程、举办用户、志愿者、志愿经验等信息,如下图所示。
图5-7全岗职位伸申请界面
专业职位伸申请,在专业职位伸申请页面,用户可以提交志愿赛事、赛事名称、赛事地点、参赛人数、比赛日程、举办用户、志愿者、志愿经验、证书截图等信息,如下图所示。
图5-8专业职位伸申请界面
首页,用户登录进入系统首页后,可以查看主页、个人信息中心、公共管理(轮播图、通知公告)、用户管理(志愿者、管理员、举办者)、信息管理(志愿者培训、培训分类)、赛事信息、赛事动态、全岗志愿者岗位、专业职员职位、全岗申请、专业申请、打卡签到、打卡签退、志愿者评价 等功能模块,并进行相对应的操作,如下图所示。
图5-9管理员首页界面图
志愿者管理,在志愿者管理页面,管理员可以查看用户名、昵称、姓名、性别、志愿经验等信息,并进行新增、删除、修改、查询、详情等操作,如下图所示。
图5-7报名信息界面
志愿者培训,在志愿者培训页面,管理员可以查看标题、封面图、文章分类、标签、新增时间、更新时间等信息,并进行新增、删除、修改、查询、详情、查看评论等操作,如下图所示。
图5-8志愿者培训界面
全岗志愿者职位,在全岗志愿者职位页面,管理员可以查看志愿类型、赛事名称、赛事地点、参赛人数、比赛日程、举办用户等信息,并进行新增、删除、修改、查询、详情等操作,如下图所示。
图5-9全岗志愿者职位界面
志愿者培训,在志愿者培训页面,举办者可以新增标题、封面图、文章分类、正文、标签、新增时间、更新时间等信息,如下图所示。
图5-10志愿者培训界面图
全岗申请,在全岗申请页面,举办者可以查看志愿赛事、赛事名称、赛事地点、参赛人数、比赛日程、举办用户、志愿者、志愿经验等信息,并进行重置、查询、详情等操作,如下图所示。
图5-11全岗申请界面
志愿者评价,在志愿者评价页面,举办者可以查看志愿类型、赛事名称、赛事地点、参赛人数、比赛日程、举办用户、志愿者、志愿者评价等信息,并进行重置、查询、详情等操作,如下图所示。
图5-12志愿者评价界面
打卡签到,在打卡签到页面,志愿者可以查看参赛人数、比赛日程、举办用户、志愿者、打卡信息、新增时间等信息,并进行重置、查询、详情、新增、签到等操作,如下图所示。
图5-13打卡签到界面图
全岗申请,在全岗申请页面,志愿者可以查看志愿赛事、赛事名称、赛事地点、参赛人数、比赛日程、举办用户、志愿者、志愿经验等信息,并进行重置、查询、详情、签到、自评等操作,如下图所示。
图5-14全岗申请界面
对任何系统而言,测试都是必不可少的环节,测试可以发现系统存在的很多问题,所有的软件上线之前,都应该进行充足的测试之后才能保证上线后不会Bug频发,或者是功能不满足需求等问题的发生。下面分别从单元测试,功能测试和用例测试来对系统进行测试以保证系统的稳定性和可靠性。
下表是系统登录功能测试用例,检测了用户名和密码的不同的输入情况,观察系统的响应情况。得出该功能达到了设计目标。
表6-1 系统登录功能测试用例
功能描述 | 用于系统登录 | |
测试目的 | 检测登录时的合法性检查 | |
测试数据以及操作 | 预期结果 | 实际结果 |
输入的用户名和密码带有非法字符 | 提示用户名或者密码错误 | 与预期结果一致 |
输入的用户名或者密码为空 | 提示用户名或者密码错误 | 与预期结果一致 |
输入的用户名和密码不存在 | 提示用户名或者密码错误 | 与预期结果一致 |
输入正确的用户名和密码 | 登录成功 | 与预期结果一致 |
下表是注册功能测试用例,检测了各种数据的输入情况,观察系统的响应情况。得出该功能达到了设计目标。
表6-2 注册功能测试用例
功能描述 | 用于用户注册 | |
测试目的 | 检测用户注册时的合法性检查 | |
测试数据以及操作 | 预期结果 | 实际结果 |
输入的手机号不合法 | 提示请输入正确的手机号码 | 与预期结果一致 |
输入的字段为空 | 提示必填项不能为空 | 与预期结果一致 |
输入的密码少于6位 | 提示密码必须为6-12位 | 与预期结果一致 |
输入的密码大于12位 | 提示密码必须为6-12位 | 与预期结果一致 |
下表是全岗申请信息管理功能的测试用例,检测了全岗申请信息管理中对全岗申请信息的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。
前置条件;用户登录系统。
表6-3 全岗申请管理的测试用例
功能描述 | 用于全岗申请信息管理 | |
测试目的 | 检测全岗申请信息管理时的各种操作的运行情况 | |
测试数据以及操作 | 预期结果 | 实际结果 |
点击添加全岗申请信息,必填项合法输入,点击保存 | 提示添加成功 | 与预期结果一致 |
点击添加全岗申请信息,必填项输入不合法,点击保存 | 提示必填项不能为空 | 与预期结果一致 |
点击修改全岗申请信息,必填项修改为空,点击保存 | 提示必填项不能为空 | 与预期结果一致 |
点击修改全岗申请信息,必填项输入不合法,点击保存 | 提示必填项不能为空 | 与预期结果一致 |
点击删除全岗申请信息,选择全岗申请信息删除 | 提示删除成功 | 与预期结果一致 |
点击搜索全岗申请信息,输入存在的全岗申请信息名 | 查找出全岗申请信息 | 与预期结果一致 |
点击搜索全岗申请信息,输入不存在的全岗申请信息名 | 不显示全岗申请信息 | 与预期结果一致 |
在经过之前的所有的工作之后,通过对软件的测试方法、测试原则还有典型的测试用例进行全面的、深入的介绍。经过对系统的全面测试,系统目前所具有的所有功能均成功的实现并且通过了测试,整个系统实现了基于springboot开发的期望。
总结与展望
本文研究了马拉松赛事志愿者管理系统的设计与实现,在文章开端首先对个研究背景、研究现状和研究内容作了简单的介绍,然后通过系统分析,引申出本系统研究的主要内容。
通过对 spring boot技术和MYSQL数据库的简介,从硬件和软件两反面说明了马拉松赛事志愿者管理系统的设计与实现的可行性,本文结论及研究成果如下:实现了 spring boot与MYSQL相结合构建的马拉松赛事志愿者管理系统,通过马拉松赛事志愿者管理系统的设计与实现的研究与实现,我感触到学习一门新技术,最重要的是实践,只有多动手才能尽快掌握它,一个系统的开发,经验是最重要的,经验不足,就难免会有许多考虑不周之处。要想吸引更多的用户,系统的界面必须要美观、有特色、友好,功能要健全。
由于在此之前对于 spring boot知识并不了解,所以从一开始就碰到许多困难,例如一开始的页面显示不规范、数据库连接有问题已经无法实现参数的传递等等,不过通过我不断的查阅相关的资料,以及向老师同学请教,最后出现的所有的问题都得到了解决,通过这次的系统开发,我学到了很多的知识,也明白了自己在哪些方面有不足的地方,尤其是学会如何从大量的信息中筛选出所需有用的信息,同时我更加深刻的体会到了,虽然书本上的大部分知识都是有价值,正确的,但实际上每个人编程的思路和对数据处理的方法、思想都是不同的,这就要求我们一定要通过实践才能找到解决问题的方案。在此次毕业设计活动中,我不断的提高了自己,也得到了宝贵的经验,我相信这些对我以后的发展都会有很大帮助。
通过这次的马拉松赛事志愿者管理系统开发,让我学到了更多的知识,同时通过这次系统的设计也让我明白了自己在哪方面有不足,以后加以学习争取可以开发住更多有用的适用的系统软件,本次系统的设计提高了我的编程水平,为了我今后系统的开发打下了结实的基础。
参考文献
[1]庞飞,田泓霖. 让青春在冬奥志愿服务中闪光[N]. 河北日报,2021-12-08(007).
[2]程桂英. 建成青年志愿服务组织1500余个志愿者达9.3万余人[N]. 攀枝花日报,2021-12-04(002).
[3]翟力.培育新时代大学生志愿服务精神研究[J].山西青年,2021(22):67-68.
[4]程钟泽.高职院校大学生志愿服务管理优化研究[J].华东纸业,2021,51(06):77-79.
[5]苗娟.浅析文化志愿者队伍的服务建设与发展[J].大众文艺,2021(21):4-5.
[6]陈美玲,蔡霞,张金梅,李红玉,赵丹鹤.医学生志愿者心理健康与志愿服务动机的关系及学业自我效能感的中介作用[J].职业与健康,2021.
[7]郝雨泽. 高校大学生志愿者参与社区志愿服务路径研究[N]. 现代物流报,2021.
[8]上官晓敏.试论公共图书馆文化志愿者服务持续性——以三明市图书馆为例[J].兰台内外,2021(31):55-57.
[9]王翠.浅谈博物馆志愿服务规范——以苏州博物馆志愿服务为例[J].文物鉴定与鉴赏,2021(20):136-138.
[10]匡湘鄂,张丽芳. 小径湾社区有了志愿者服务站[N]. 惠州日报,2021
[11]“红色物业”青年志愿者行动:打通青年服务群众“最后一公里”[J].中国共青团,2021(20):62.
[12]孙乐婵. 社会工作介入社区志愿者培育实务研究[D].河南财经政法大学,2021.
[13]吴彧杰,邵哲文,龚瑞晴,陈智豪. Analysis of Youth Volunteer Service Behavior in Major Public Emergency—Based on Hangzhou Normal University and Zhejiang University[J]. 服务科学和管理,2021,10(03):
[14]王伟勍.基于Spring框架的教学管理系统设计[J].电脑知识与技术,2021,17(11):69-70.DOI:10.14004/j.cnki.ckt.2021.0940.
[15]Tao Feng. On the Sustainable Development of College Students' Volunteer Service in the New Era[J]. Frontiers in Educational Research,2021,4.0(3.0):
[16]Weitao Xu,Siyi Xue,Haoyan Du. The Role of College Students' Volunteer Service in Ideological and Political Education[J]. International Journal of Education and Management,2021,6(1):
[17]刘霆宇. 社区志愿服务发展的组织化路径[D].华东理工大学,2021
[18]沈菁. 植物园科普志愿者团队建设及管理[C]//2020年中国植物园学术年会论文集.,2020:211-215.
[19]吴康平.构建志愿者服务常态化机制[J].中国共青团,2018(05):28-29.
[20]周维,方浩翰.高校高铁志愿者专业化路径探析——以湖州市高校为例[J].广东蚕业,2018,52(03):115+117.
酒店网络营销方案新零售系统软件网站设计效果图模板外贸平台有哪些免费的重庆公司电话中国500强公司名单免费海报在线制作网页布局模板图片重庆做网站推广推广普通话方案建立个网站要多少钱网页源代码搜索快捷键重庆网站设计推荐婚纱网站首页设计学校网站备案流程所有视频大全在线观看手机游戏制作成版年蝴蝶视频app疫情死亡人数最新消息一般网站建设流程德州网站设计公司短链生成器重庆企业网络组建软件营销策略都有哪些网页版传奇霸主物联网公司软件技术主要从事什么工作网页工具栏不见了简单php网页模板湖州网站西安网站到首页排名