springboot 高校体育运动会管理系统
目 录
运动会是学校重大活动之一,是检验学生的健康水平和提高身体素质的有效途径之一。在规模上虽然不如大型运动会,但由于比赛项目多,参赛人数广,数据处理量大,管理比较复杂,尤其编排,记录,公告工作是一项复杂的工程。所以提高学校运动会召开的质量和水平显得尤为重要。学校虽然早已运用了校园运动会管理信息系统,节约了不少的人力、物力,但随着科技与时代的发展,单机版的管理系统已经不能完全满足需求。例如:运动会期间的信息无法及时共享,包括赛事状况,比赛成绩以及运动会中的各种表单等。给用户带来了诸多不便。所以开发管理系统势在必行。
为了提高大学生的身体素质,促进学生德智体美劳全面发展,各所高校每年都会举行运动会比赛,然而各所高校在举行运动会时,很少甚至没有使用过校园运动会管理系统来处理运动会中的信息,在很大程度上还是依赖人工操作,一般通过文档或者办公软件来处理大量的数据。这种方式给运动会管理人员带来了繁重的工作量,而且效率较为低下,更新缓慢,且容易出错。此外这种方式比较封闭,无论是运动员,还是场外观众,都不能很好地了解比赛场上实时状况,例如所有的比赛项目,参赛人员信息以及成绩排名等。这就不能使每一位同学都真正参与到运动会中去,从而也在一定程度上失去了开展运动会的意义。
在国内,计算机在运动会管理方面的应用越来越深入,广东省第十一届运动会电子信息服务系统通过整合硬件平台、网络通信平台、数据库平台、工具平台、应用软件平台将省运会各类资源有机、高效地集成到一起,形成一个完整的、开放的、结构化的、先进的工作平台。在这个统一的平台基础上,实现了广东省第十一届运动会电子信息服务系统的完整的应用。根据省运会的规模以及实际需要,广东省第十一届运动会电子信息服务系统划分为六大子系统:计算机网络系统、无线局域网系统、有线卫星电视系统、指挥调度系统、集群网络通信系统、赛事管理系统。
国外对高校运动会管理系统的开发与研究也很关注,由于外国与中国的教学模式有差别,学校性质与中国也不相同,这就要求他们所采用的“高校高校体育运动会管理系统”更加具有可变和灵活的特点。在国外的高校中,运动员可以更多参与到运动会之中,如果自己有要求,还可以去他学校的参加运动会,同样也可以拿其他学校的比赛名次,鉴于这种情况,对“高校体育运动会管理系统”的要求就更高,所涉及到的内容就更广,如:学生的个人信息查询和修改就需要涉及两个或更多的学校,因此,国外也在对此做进一步研究、开发。在大型的运动会系统的使用方面,在国外举办的较大规模的运动会和专项比赛上已广泛使用,如近几届的奥运会,均使用了上千台微机联网进行赛事管理,在功能上基本上满足了管理的需求,但其开发成本和运行成本巨大,难以普及使用。
第一章是绪论,本文章的开头部分,对本题目的研究背景和研究意义等一些做文字性的描述。
第二章研究了高校体育运动会管理系统的所采用的开发技术和开发工具。
第三章是系统分析部分,包括系统总体需求描述、功能性角度分析系统需求、非功能性等各个方面分析系统是否可以实现。
第四章是系统设计部分,本文章的重要部分,提供了系统架构的详细设计和一些主要功能模块的设计说明。
第五章是系统的具体实现,介绍系统的各个模块的具体实现。
第六章在前几章的基础上对系统进行测试和运行。
最后对系统进行了认真的总结,以此对未来有一个新的展望。
本系统前端部分基于MVVM模式进行开发,采用B/S模式,后端部分基于Java的springboot框架进行开发。
前端部分:前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router和Vuex实现动态路由和全局状态管理,Ajax实现前后端通信,Element UI组件库使页面快速成型,项目前端通过栅格布局实现响应式,可适应PC端、平板端、手机端等不同屏幕大小尺寸的完美布局展示。
后端部分:采用springboot作为开发框架,同时集成MyBatis、Redis等相关技术。
MVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。当然这些事 ViewModel 已经帮我们做了,它可以取出 Model 的数据同时帮忙处理 View 中由于需要展示内容而涉及的业务逻辑。微软的WPF带来了新的技术体验,如Silverlight、音频、视频、3D、动画……,这导致了软件UI层更加细节化、可定制化。同时,在技术层面,WPF也带来了 诸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由来便是MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演变过来的一种新型架构框架。它立足于原有MVP框架并且把WPF的新特性糅合进去,以应对客户日益复杂的需求变化。
科技的进步,给日常带来许多便利:教室的投影器用到了虚拟成像技术,数码相机用到了光电检测技术,比如超市货物进出库的记录需要一个信息仓库。这个信息仓库就是数据库,而这次的高校体育运动会管理系统也需要这项技术的支持[7]。
用MySQL这个软件,是因为它能接受多个使用者访问,而且里面存在Archive等。它会先把数据进行分类,然后分别保存在表里,这样的特别操作就会提高数据管理系统自身的速度,让数据库能被灵活运用。MySQL的代码是公开的,而且允许别人二次编译升级。这个特点能够降低使用者的成本,再搭配合适的软件后形成一个良好的网站系统。虽然它有缺点,但是综合各方面来说,它是使用者的主流运用的对象[8]。
B/S(Browser/Server)比前身架构更为省事的架构。它借助Web server完成数据的传递交流。只需要下载浏览器作为客户端,那么工作就达到“瘦身”效果, 不需要考虑不停装软件的问题[9]。
Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriseJavaBeans)模型的补充,甚至是替补。Spring框架为开发提供了一系列的解决方案,比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等等。Spring框架具有控制反转(IOC)特性,IOC旨在方便项目维护和测试,它提供了一种通过Java的反射机制对Java对象进行统一的配置和管理的方法。Spring框架利用容器管理对象的生命周期,容器可以通过扫描XML文件或类上特定Java注解来配置对象,开发者可以通过依赖查找或依赖注入来获得对象。Spring框架具有面向切面编程(AOP)框架,SpringAOP框架基于代理模式,同时运行时可配置;AOP框架主要针对模块之间的交叉关注点进行模块化。Spring框架的AOP框架仅提供基本的AOP特性,虽无法与AspectJ框架相比,但通过与AspectJ的集成,也可以满足基本需求。Spring框架下的事务管理、远程访问等功能均可以通过使用SpringAOP技术实现。Spring的事务管理框架为Java平台带来了一种抽象机制,使本地和全局事务以及嵌套事务能够与保存点一起工作,并且几乎可以在Java平台的任何环境中工作。Spring集成多种事务模板,系统可以通过事务模板、XML或Java注解进行事务配置,并且事务框架集成了消息传递和缓存等功能。Spring的数据访问框架解决了开发人员在应用程序中使用数据库时遇到的常见困难。它不仅对Java:JDBC、iBATS/MyBATIs、Hibernate、Java数据对象(JDO)、ApacheOJB和ApacheCayne等所有流行的数据访问框架中提供支持,同时还可以与Spring的事务管理一起使用,为数据访问提供了灵活的抽象。Spring框架最初是没有打算构建一个自己的WebMVC框架,其开发人员在开发过程中认为现有的StrutsWeb框架的呈现层和请求处理层之间以及请求处理层和模型之间的分离不够,于是创建了SpringMVC。
Vue.js是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用。
Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。
Vue.js 自身不是一个全能框架——它只聚焦于视图层。因此它非常容易学习,非常容易与其它库或已有项目整合。另一方面,在与相关工具和支持库一起使用时,Vue.js 也能驱动复杂的单页应用。
本次设计基于B/S 模式下,运用Java技术采用的是MySQL数据库和Eclipse实现,总体的可行性共分为以下三个方面。
所谓的技术可行性就是在限定时间,前期拟定的功能能否被满足。在开发设计上是否会遇上解决不了的问题。做完的项目能否被很好地应用,如果存在缺点在后期的维护上是否存在很大的难度。在对这个系统评估后,认定已存在的技术能达成目标。用JSP技术来实现动态的页面,嵌入低依赖性的设计模式,灵活的数据库,配合稳定的服务器,整个系统的运行效率大大提升。由此可见,在技术层面达成目标不是非非之想。
在项目上使用的工具大部分都是是当下流行开源免费的,所以在开发前期,开发时用于项目的经费将会大大降低,不会让开发该软件在项目启动期受到经费的影响,所以经济上还是可行的。尽量用最少的花费去满足用户的需求。省下经费用于人工费,以及设备费用。将在无纸化,高效率的道路上越走越远。
本系统实现功能的操作很简单,普通电脑的常见配置就可以运行本软件,并且只要粗通电脑使用的基本常识就可以流畅的使用本软件。电脑具备连接互联网的能力,并且可以正常访问系统,并不需要操作者有什么高超的能力,只需了解业务流程,并且按照专业知识进行正确操作即可,所以高校体育运动会管理系统具备操作可行性。
在系统开发设计前,应该对功能做初步设想,清楚这个管理系统有什么板块,每个板块有什么功能,整体的设计是否满足使用者的需求,接着对所开发的系统功能进行的详细分析总结,从而设计出完整的系统并将其实现。用户和开发人员的交流分析,使其达到最佳理解程度,使系统功能达到最佳。
运动员用例图如下所示。

图3-1 运动员用例图
管理员用例图如下所示。

图3-2 管理员用例图
裁判员用例图如下所示。

图3-3 裁判员用例图
系统非功能需求有非常多,比如性能需求、可承载最大用户数、稳定性、易用性需求等。本系统分析时考虑到易用性需求,因为系统是给人使用的,所以必须充分从用户的角度出发,考虑用户体验,使系统易理解易上手易操作。
一层数据流程图包括了登录注册、用户功能和检索维护等模块,在登录注册模块使用到的数据存储有用户账户文档,用户功能模块需要的存储是用户各功能模块数据文档,检索维护是使用以上这些数据文档通过关键词进行检索。
系统的一层数据流图如下图所示。

图3-2系统数据流图(一层)
二层数据流程是对一层数据流层图中填写登录注册信息、用户功能的细化。即:填写登录注册信息细化为填制信息、后台审核,用户功能细化为查看通知公告、宣传资讯、比赛信息,管理报名信息、取消信息、成绩信息等操作。
系统的二层数据流图如下图所示。

图3-4系统数据流图(二层)
目前B/S体系的系统主要的数据访问方式是:通过浏览器页面用户可以进入系统,系统可以自动对用户向服务器发送的请求进行处理,处理请求是在系统后台中进行的,用户在浏览器页面上进行相应操作,就能够看到服务端传递的处理结果。高校体育运动会管理系统主要分为视图-模型-控制三层架构设计。在视图层中,主要是操作在服务器端向客户端反馈并显示的数据,在模型层中,主要处理相关的业务逻辑、数据整合等,最后的控制层它介于视图和模型之间,主要是调整两层之间的关系,最终落实数据的传递。
系统架构图如下图所示。

图4-1系统架构图
系统设计的目的是分析系统包括的所有功能结构,为开发人员设计开发和实现系统做好准备工作。经过前期的需求调查、分析和整理之后,确定的总体需求主要包括多个模块,分别是:首页、轮播图、通知公告管理、资源管理(宣传资讯、资讯分类)、系统用户(管理员、运动员、裁判员)、模块管理(比赛信息、报名信息、取消信息、成绩信息)。系统整体角色分为三个部分,一是运动员、二是裁判员、最后是管理员。权限分布也是很明显,运动员是在除去浏览比赛信息之外还具有查询和管理自己账户信息、报名信息、取消信息、成绩信息等权限;裁判员具有管理报名信息、取消信息、成绩信息等权限;管理员是最高权限拥有者。
系统功能结构图如下图所示。

图4-2系统功能结构图
对于一个要开发的系统来说,E-R图可以让别人能更快更轻松的了解此系统的事务及它们之间的关系。根据系统分析阶段所得出的结论确定了在高校体育运动会管理系统中存在着多个实体分别是用运动员、裁判员、管理员、比赛信息、报名信息、取消信息、成绩信息、宣传资讯。
系统总体ER图如下图所示。

图4-4系统总体ER图
数据库逻辑结构就是将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 |
用户编号: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
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 |
athlete_users_id |
int |
10 |
0 |
N |
Y |
运动员用户ID |
|
|
2 |
athletes |
varchar |
64 |
0 |
Y |
N |
运动员 |
|
|
3 |
gender |
varchar |
64 |
0 |
Y |
N |
性别 |
|
|
4 |
age |
int |
10 |
0 |
Y |
N |
0 |
年龄 |
|
5 |
examine_state |
varchar |
16 |
0 |
N |
N |
已通过 |
审核状态 |
|
6 |
recommend |
int |
10 |
0 |
N |
N |
0 |
智能推荐 |
|
7 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户ID |
|
8 |
create_time |
datetime |
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 |
cancel_information_id |
int |
10 |
0 |
N |
Y |
取消信息ID |
|
|
2 |
athlete_account |
int |
10 |
0 |
Y |
N |
0 |
运动员账号 |
|
3 |
athletes |
varchar |
64 |
0 |
Y |
N |
运动员 |
|
|
4 |
gender |
varchar |
64 |
0 |
Y |
N |
性别 |
|
|
5 |
age |
int |
10 |
0 |
Y |
N |
0 |
年龄 |
|
6 |
project_number |
varchar |
64 |
0 |
Y |
N |
项目编号 |
|
|
7 |
entry_name |
varchar |
64 |
0 |
Y |
N |
项目名称 |
|
|
8 |
competition_classification |
varchar |
64 |
0 |
Y |
N |
比赛分类 |
|
|
9 |
competition_time |
datetime |
19 |
0 |
Y |
N |
比赛时间 |
|
|
10 |
referee_account |
int |
10 |
0 |
Y |
N |
0 |
裁判账号 |
|
11 |
referee_name |
varchar |
64 |
0 |
Y |
N |
裁判姓名 |
|
|
12 |
number_of_cancellations |
int |
10 |
0 |
Y |
N |
0 |
取消人数 |
|
13 |
reason_for_cancellation |
text |
65535 |
0 |
Y |
N |
取消原因 |
|
|
14 |
examine_state |
varchar |
16 |
0 |
N |
N |
未审核 |
审核状态 |
|
15 |
examine_reply |
varchar |
16 |
0 |
Y |
N |
审核回复 |
|
|
16 |
recommend |
int |
10 |
0 |
N |
N |
0 |
智能推荐 |
|
17 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
18 |
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: |
表competition_information (比赛信息)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
competition_information_id |
int |
10 |
0 |
N |
Y |
比赛信息ID |
|
|
2 |
project_number |
varchar |
64 |
0 |
Y |
N |
项目编号 |
|
|
3 |
entry_name |
varchar |
64 |
0 |
Y |
N |
项目名称 |
|
|
4 |
competition_poster |
varchar |
255 |
0 |
Y |
N |
比赛海报 |
|
|
5 |
competition_classification |
varchar |
64 |
0 |
Y |
N |
比赛分类 |
|
|
6 |
competition_time |
datetime |
19 |
0 |
Y |
N |
比赛时间 |
|
|
7 |
number_of_participants_in_the_competition |
int |
10 |
0 |
Y |
N |
0 |
比赛人数 |
|
8 |
reportable_number_of_people |
int |
10 |
0 |
Y |
N |
0 |
可报人数 |
|
9 |
referee_account |
int |
10 |
0 |
Y |
N |
0 |
裁判账号 |
|
10 |
referee_name |
varchar |
64 |
0 |
Y |
N |
裁判姓名 |
|
|
11 |
competition_requirements |
text |
65535 |
0 |
Y |
N |
比赛要求 |
|
|
12 |
introduction_to_judges |
text |
65535 |
0 |
Y |
N |
裁判简介 |
|
|
13 |
hits |
int |
10 |
0 |
N |
N |
0 |
点击数 |
|
14 |
praise_len |
int |
10 |
0 |
N |
N |
0 |
点赞数 |
|
15 |
recommend |
int |
10 |
0 |
N |
N |
0 |
智能推荐 |
|
16 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
17 |
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 |
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已取消 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
referee_user_id |
int |
10 |
0 |
N |
Y |
裁判员用户ID |
|
|
2 |
referee_name |
varchar |
64 |
0 |
Y |
N |
裁判姓名 |
|
|
3 |
gender_of_referee |
varchar |
64 |
0 |
Y |
N |
裁判性别 |
|
|
4 |
age_of_referee |
int |
10 |
0 |
Y |
N |
0 |
裁判年龄 |
|
5 |
examine_state |
varchar |
16 |
0 |
N |
N |
未审核 |
审核状态 |
|
6 |
recommend |
int |
10 |
0 |
N |
N |
0 |
智能推荐 |
|
7 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户ID |
|
8 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
9 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
表registration_information (报名信息)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
registration_information_id |
int |
10 |
0 |
N |
Y |
报名信息ID |
|
|
2 |
athlete_account |
int |
10 |
0 |
Y |
N |
0 |
运动员账号 |
|
3 |
athletes |
varchar |
64 |
0 |
Y |
N |
运动员 |
|
|
4 |
gender |
varchar |
64 |
0 |
Y |
N |
性别 |
|
|
5 |
age |
int |
10 |
0 |
Y |
N |
0 |
年龄 |
|
6 |
project_number |
varchar |
64 |
0 |
Y |
N |
项目编号 |
|
|
7 |
entry_name |
varchar |
64 |
0 |
Y |
N |
项目名称 |
|
|
8 |
competition_classification |
varchar |
64 |
0 |
Y |
N |
比赛分类 |
|
|
9 |
competition_time |
datetime |
19 |
0 |
Y |
N |
比赛时间 |
|
|
10 |
referee_account |
int |
10 |
0 |
Y |
N |
0 |
裁判账号 |
|
11 |
referee_name |
varchar |
64 |
0 |
Y |
N |
裁判姓名 |
|
|
12 |
number_of_applicants |
int |
10 |
0 |
Y |
N |
0 |
报名人数 |
|
13 |
information_remarks |
text |
65535 |
0 |
Y |
N |
信息备注 |
|
|
14 |
examine_state |
varchar |
16 |
0 |
N |
N |
未审核 |
审核状态 |
|
15 |
examine_reply |
varchar |
16 |
0 |
Y |
N |
审核回复 |
|
|
16 |
recommend |
int |
10 |
0 |
N |
N |
0 |
智能推荐 |
|
17 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
18 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
score_information_id |
int |
10 |
0 |
N |
Y |
成绩信息ID |
|
|
2 |
referee_account |
int |
10 |
0 |
Y |
N |
0 |
裁判账号 |
|
3 |
referee_name |
varchar |
64 |
0 |
Y |
N |
裁判姓名 |
|
|
4 |
athlete_account |
int |
10 |
0 |
Y |
N |
0 |
运动员账号 |
|
5 |
athletes |
varchar |
64 |
0 |
Y |
N |
运动员 |
|
|
6 |
gender |
varchar |
64 |
0 |
Y |
N |
性别 |
|
|
7 |
age |
int |
10 |
0 |
Y |
N |
0 |
年龄 |
|
8 |
project_number |
varchar |
64 |
0 |
Y |
N |
项目编号 |
|
|
9 |
entry_name |
varchar |
64 |
0 |
Y |
N |
项目名称 |
|
|
10 |
competition_classification |
varchar |
64 |
0 |
Y |
N |
比赛分类 |
|
|
11 |
competition_time |
datetime |
19 |
0 |
Y |
N |
比赛时间 |
|
|
12 |
score |
varchar |
64 |
0 |
Y |
N |
比赛成绩 |
|
|
13 |
score_description |
text |
65535 |
0 |
Y |
N |
成绩说明 |
|
|
14 |
recommend |
int |
10 |
0 |
N |
N |
0 |
智能推荐 |
|
15 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
16 |
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 |
更新时间: |
登录,系统的登录窗口是用户的入口,用户只有在登录成功后才可以进入访问。通过在登录提交表单,后台处理判断是否为合法用户,进行页面跳转,进入系统中去。
登录合法性判断过程:用户输入账号和密码后,系统首先确定输入输入数据合法性,然后在login.jsp页面发送登录请求,调用src下的mainctrl类的dopost方法来验证。
用户登录模块的IPO如下所示:
输入:用户名和密码。
处理:
1)检测用户输入的账号、密码是否正确及在数据库已对应存在。
2)从数据库中提取记录,并储存在本地的session中(timeout默认=30min)。
3)根据用户名,将其显示在系统首页上。
输出:是否成功的信息。
登录流程图如下所示。

图5-1登录流程图
系统登录界面如下所示。

图5-2系统登录界面
注册,用户必须注册登录后才能使用系统大部分功能,用户名不允许重复如果重复将会注册失败,并弹出相应的提示,通过js实现对输入的验证。
用户注册流程图如下所示。

图5-4用户注册流程图
用户注册界面如下图所示。

图5-5用户注册界面
首页,系统呈现出一种简洁大方的首页:界面简约、鳞次栉比,用户能轻车熟路的使用。出于对系统使用群体广泛的顾虑,应有良好性能的后台,如下图所示。

图5-3系统首页界面
宣传资讯,运动员可以浏览资讯详情,并可进行点赞、收藏、评论等操作,如下图所示。

图5-4宣传资讯界面
比赛信息,运动员可以查看项目编号、项目名称、比赛分类、比赛时间、比赛人数、可报人数、裁判账号、裁判姓名等信息,并可进行参与报名、点赞、收藏、评论等操作,如下图所示。

图5-4比赛信息界面
报名,运动员可以在报名页面提交运动员账号、运动员、年龄、项目编号、项目名称、比赛分类、比赛时间、裁判账号、裁判姓名、报名人数、信息备注等内容,如下图所示。

图5-5报名界面
-
- 运动员后台管理模块的实现
取消报名,运动员可以在取消报名页面提交运动员账号、运动员、年龄、项目编号、项目名称、比赛分类、比赛时间、裁判账号、裁判姓名、取消人数、取消原因等内容,如下图所示。

图5-6取消报名界面
成绩信息,运动员可以查看运动员账号、运动员、年龄、项目编号、项目名称、比赛分类、比赛时间、裁判账号、裁判姓名、比赛成绩、成绩说明等信息,并可进行查询、重置等操作,如下图所示。

图5-7成绩信息界面
-
- 管理员功能模块的实现
首页,管理员登陆系统后台,可以查看首页、轮播图、通知公告管理、资源管理(宣传资讯、资讯分类)、系统用户(管理员、运动员、裁判员)、模块管理(比赛信息、报名信息、取消信息、成绩信息)等功能模块,并进行相对应的操作,如下图所示。

图5-8管理员后台首页
宣传资讯,管理员可以查看标题、封面图、文章分类、标签、创建时间、更新时间等信息,并可进行新增、删除、修改、操作、详情、查看评论等操作,如下图所示。

图5-9宣传资讯界面
运动员用户管理,管理员可以查看昵称、用户名、姓名、性别、年龄、创建时间、更新时间等信息,并可进行新增、删除、修改、操作、详情等操作,如下图所示。

图5-10运动员用户管理界面
比赛信息管理,管理员可以查看项目编号、项目名称、比赛分类、比赛时间、比赛人数、可报人数、裁判账号、裁判姓名等信息,并可进行新增、删除、修改、操作、详情、参赛报名、查看评论等操作,如下图所示。

图5-11比赛信息管理界面
-
- 裁判员功能模块的实现
报名信息,裁判员可以在报名信息页面查看运动员账号、运动员、年龄、项目编号、项目名称、比赛分类、比赛时间、裁判账号、裁判姓名、报名人数、信息备注等内容,并进行查询、重置、详情、录入成绩等操作,如下图所示。

图5-12报名信息界面
录入成绩,裁判员可以在录入成绩页面录入运动员账号、运动员、年龄、项目编号、项目名称、比赛分类、比赛时间、裁判账号、裁判姓名、比赛成绩、成绩说明等内容,如下图所示。

图5-13录入成绩界面
测试存在于软件开发进程中的最后一个阶段,它可以保证一个软件的开发质量是否符合设计者的初衷,也为程序的正式上线做了最后一道质量检测的工序。软件测试主要是控制各种条件、包括软件输出方式,使用模式和运行环境等,来评估一个系统或应用是否符合设计标准。在软件测试过程中,我们一般刻意的去制造错误和极端条件,不能仅依照正常模式允许,而是多去尝试那些意外的情况。
只有在运行和维护阶段之前经历大量的测试的软件,才能说明它的质量是经得起检验的。最近计算机业界也都一致认为,测试应该存在于软件设计的每个阶段,因为越早发现错误,修复起来就越容易。
实际上,对于一个软件应用,错误是必然存在的,无论使用何种技术或手段,都不可能绝对的排除软件漏洞。测试是随着软件开发一同诞生的,两者是共同发展进步的。实际上,测试可以大幅度的降低维护的成本,如果一个漏洞在开发的早期就被发现,那么修复它的成本远比上线后再修复的成本要低得多。
测试有白盒测试和黑盒测试两种方式。
其中,白盒测试是将软件看成一个透明的白盒子,按照程序的内部控制结构和处理技术逻辑来选定测试用例、软件系统测试的逻辑路径及过程需要进行管理测试,又称玻璃盒测试。因此白盒测试需要选择足够多的测试用例,覆盖尽可能多的代码来发现程序中的错误。
黑盒测试,也称为功能测试。它将需软件看作一个黑盒,像一个普通用户一样来模拟软件的使用流程。黑盒测试通过大量的输入边界值或错误数据,来检查是否可产生正确的输出。
本系统测试 主要选择黑盒测试,少量采用白盒测试。通过测试达到以下测试目的:
1.检查各大功能模块的运行,确保其能够正确运行,并检查各页面的完整性,保证页面完整。
2.检查各个接口是否可以正确地输入和输出,保证数据流通稳定可行。
3.检查数据结构,保证其和外部接口没有访问错误,访问顺利。
4.检查原计划的性能需求有没有完成,运行流畅。
本系统的测试用例(部分):
|
登录部分测试用例 |
|||||
|
编号 |
对象 |
项目 |
操作 |
预期结果 |
结果 |
|
1 |
登录 |
登录提示 |
使用正确的账号密码登录 |
成功登录 |
预期结果 |
|
2 |
登录提示 |
使用正确的账号但错误的密码登录 |
提示密码错误 |
预期结果 |
|
|
3 |
登录提示 |
使用错误的账号登录 |
提示不存在账户 |
预期结果 |
|
|
4 |
登录提示 |
不输入账号,点击登录 |
提示输入账号 |
预期结果 |
|
|
5 |
登录提示 |
输入账号但不输入密码点击登录 |
提示输入密码 |
预期结果 |
|
|
6 |
登录入口 |
已登录账号,查看登录入口 |
不显示登录入口 |
预期结果 |
|
处理器:Inter Core I7-4710MQ四核处理器
内存:4GB
硬盘:1T
操作系统:Windows 10
数据库:MySQL
6.4系统运行情况
全部测试用例都已通过(包括但不限于以上测试用例),且不存在漏洞,实现了论文开始时所作要求。本系统运行稳定,使用流畅,可以满足用户需求。
更多推荐
所有评论(0)