Skip to content

gxmzu/real-time-evaluate-score

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

实时评分系统

项目背景

在一些赛事评分中,传统打分的方式是评委给每个参赛选手手写评分,评分完成后还必须手动计算分数,再由主持人宣布最终得分,这种方式容易评委错误地给选手打分,加之人工计算分数难免存在误差,这种方式既费时又无法保证精准,容易造成不公平的情况发生。为此,需要借助互联网方便快捷的特性,制作一个实时评分系统,来解决传统评分方式评分慢,计算不准的缺点。该系统可通过大屏展示实时评分,评委可以手机扫码对选手进行实时评分,根据计分规则,再实时展示到大屏。

项目分析

参与者 需求 详细需求
超级管理员 维护活动负责人 生成随机6位账号和密码作为活动负责人(账号为纯数字、密码为数字加字母),为活动负责人账号设置有效时间。
活动负责人 维护比赛信息 修改比赛名称、评分规则(可选择3种规则:总分、平均分、去最高值和最低值的平均分;确定分制)。
维护参赛团队信息 对参赛团队的批量导入、增删查改、确定比赛顺序。
维护评委信息 选择评委人数,根据评委人数生成评委账号,并选择第一位评委账号为主评委
主评委 打分 主评委关闭通道时,系统更新下一个比赛队伍信息;评委界面轮询系统查询当前比赛队伍,如果与当前界面的比赛队伍比较不一致,则刷新比赛信息以及打分按钮。
开启或关闭打分通道 主评委开启通道后,所有评委才能打分;关闭通道后,其他评委不能继续给当前队伍打分。
评委 打分 评委根据当前显示的选手进行打分,打分完毕显示提示信息为等待主评委开启评分通道。
观众 大屏展示 前端大屏实时展示选手得分,动态展示选手排名情况;如果选手过多则滚动显示

国内解决方案

国内已有比较成熟的解决方案,他们提供功能已经有评委评分、现场投票、打赏点赞、匿名评分可选、对评分对象进行多维度ABC测评、自定义指标类别、指标题型和权重分数、评分对象和评分人员,但大多面向大型赛事,针对小型赛事就有些复杂了。

img

img

img

img

项目评价

该项目需求少,使用在特定场景中,要求实时性、安全性高,并发小,并且可根据后续的需求进行修改增加新功能。由于未来可能的需求扩展,需要观众评分来活跃现场气氛,可能需要并发高的场景,需要考虑高并发的架构设计。为防止比赛时系统被恶意攻击,还需准备一些技术手段防止攻击,最坏情况下需要准备比赛评分备用方案以保证比赛的顺利进行。

数据库设计

用户表

字段名 数据类型 数据长度 是否为空 主键 默认值 是否自增 备注
user_id int 11 0 1 1 序号
user_name int 6 0 0 0 账号
user_pwd varchar 6 0 0 0 密码
user_type char 2 0 0 0 0为超级管理员,1为活动负责人,2为主评委,3为评委
start_time datetime 0 0 0 0 开始时间
end_time datetime 0 0 0 0 结束时间
nick_name varchar 6 0 0 0 姓名
create_time datetime 创建时间
create_by varchar 6 0 0 0 创建人
update_time datetime 修改时间
update_by varchar 6 0 0 0 修改人

用户比赛表

字段名 数据类型 数据长度 是否为空 主键 默认值 是否自增 备注
user_id int 11 0 1 0 用户id
match_id int 11 0 1 0 比赛id

比赛表

字段名 数据类型 数据长度 是否为空 主键 默认值 是否自增 备注
match_id int 11 0 1 0 比赛id
match_name varchar 255 0 0 0 比赛名称
info varchar 255 0 0 0 比赛简介
max_score int 5 0 0 100 0 最高分,默认100
score_rule_name int 11 0 0 0 评分规则名称
create_time datetime 创建时间
create_by varchar 6 0 0 0 创建人
update_time datetime 修改时间
update_by varchar 6 0 0 0 修改人

参赛团队信息表

字段名 数据类型 数据长度 是否为空 主键 默认值 是否自增 备注
contestent_id int 11 0 1 0 参赛者id
match_id int 11 0 0 0 比赛id
match_order int 4 1 0 0 比赛顺序
is_open bool 1 0 0 0 0 是否开启评分通道
name varchar 255 0 0 0 参赛者名称
info varchar 255 0 0 0 参赛者简介
score int 5 0 0 0 得分
rank int 11 0 0 0 排名
create_time datetime 0 创建时间
create_by varchar 6 0 0 0 创建人
update_time datetime 0 修改时间
update_by varchar 6 0 0 0 修改人

评委评分表

字段名 数据类型 数据长度 是否为空 主键 默认值 是否自增 备注
user_id int 11 0 1 1 用户id
contestent_id int 11 0 1 0 参赛者id
score int 5 0 0 0 得分
create_time datetime 创建时间
create_by varchar 6 0 0 0 创建人
update_time datetime 修改时间
update_by varchar 6 0 0 0 修改人

开发环境

工具 版本
jdk 1.8
maven 3.6.3
SpringBoot 2.3.7.RELEASE
Mybatis 2.1.4
pagehelper 1.2.12
fastjson 1.2.31
druid 1.2.6
Mysql驱动 8.0.26
Mysql 5.7.21
Redis 3.0.504

About

实时评分系统

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages