技术分享
🎱智慧桌球项目文档
00 分钟
2024-6-20
2024-6-20
type
status
date
Jun 20, 2024 09:30 AM
slug
summary
category
tags
password
icon

产品说明

桌球在线计分微信小程序是为桌球比赛设计的在线计分工具,支持用户注册、赛事创建、AI识别计分等功能。

主要功能

客户端

  • 用户注册与登录:用户可通过微信账号扫码快速注册并登录,实现个人信息的存储和同步
  • 赛事创建与管理:用户通过扫描台球桌上二维码可创建新赛事,设置赛事名称、时间、地点、参赛人数等信息,并可对已有赛事进行编辑、删除等操作。
  • AI识别和计分:利用AI技术对台球桌面进行实时识别和跟踪,自动记录进球和计分,减少了传统台球计分的人为误差和繁琐操作。
  • 赛事查看:用户通过历史记录查看自己已参与赛事,并查看赛事详情。
  • 个人信息修改:用户可通过小程序进行个人昵称、头像等资料修改。

服务端

  • 管理员注册与登录:管理员可通过扫描二维码或在PC端实现管理员账号注册与登录。
  • 台球厅管理权限绑定:管理员可创建和管理台球厅信息,包括台球厅的名称、地址和区域编码,并绑定管理权限。
  • 赛事管理:管理员可以查看台球厅内的所有赛事信息。
  • 用户心理管理:管理员可以查看和管理用户信息,包括用户的注册信息和赛事参与记录。
  • 系统维护与日志管理:管理员可以查看系统的操作日志,监控系统状态,进行常规的系统维护。

环境配置

  • 前端:基于微信小程序开发平台构建用户界面。
  • 后端:采用Java作为服务器端编程语言。
  • 数据库:使用MySQL作为数据存储解决方案。
  • 硬件:集成力度传感器和摄像头传感器以支持AI识别功能。
  • 服务器:部署在稳定可靠的云服务器上,确保小程序的高性能和可用性。

用户界面

  • 首页:如图 1和图 2所示,通过扫一扫按钮扫描台球二维码注册新赛事;展示最近赛事;轮播图。
    • 图 1 首页展示
      图 1 首页展示
      图 2 创建对局展示
      图 2 创建对局展示
  • 历史:如图 3所示,可通过条件查询历史赛事记录。
    • 图 3 历史查询展示
      图 3 历史查询展示
  • 我的:如图 4所示,展示用户个人信息和相关设置按钮。
    • 图 4 个人资料展示
      图 4 个人资料展示

数据库表结构设计

用户表

字段名
数据类型
描述
数据来源
openid
VARCHAR(255)
微信OpenID(唯一标识)
自动获取
nickname
VARCHAR(50)
用户昵称
自动获取,可修改
avatar_url
VARCHAR(255)
用户头像URL
自动获取,可修改
phone
VARCHAR(20)
用户手机号(可选)
用户手动输入
...
...
其他用户信息

赛事表

字段名
数据类型
描述
数据来源
id
INT AUTO_INCREMENT
赛事ID(主键)
自动生成
title
VARCHAR(100)
赛事名称
创建赛事时,用户手动填写
start_time
DATETIME
赛事开始时间
创建赛事时,自动生成
end_time
DATETIME
赛事结束时间
结束赛事时,自动生成
location
VARCHAR(255)
赛事地点
扫描二维码自动添加
rule
INT
赛事规则
用户下拉框选择
max_players
INT
最大参赛人数
根据赛事规则自动添加
creator_id
INT
创建者ID
根据创建者ID自动生成
userA_id
INT
用户AID
用户选择
userA_score
INT
用户A得分
根据明细统计所得
userB_id
INT
用户BID
用户选择
userB_score
INT
用户B得分
根据明细统计所得
userC_id
INT
用户CID
用户选择
userC_score
INT
用户C得分
根据明细统计所得
userD_id
INT
用户DID
用户选择
userD_score
INT
用户D得分
根据明细统计所得
winner_id
INT
获胜者id
通过得分判断

赛事详情表

字段名
数据类型
描述
数据来源
id
INT  AUTO_INCREMENT
详情ID(主键)
自动生成
match_id
INT
赛事ID
user_id
INT
用户ID
score
INT
得分
传感器
date
INT
时间
自动生成
foul
INT
犯规
传感器
...
...
其他

参赛者表

字段名
数据类型
描述
数据来源
id
INT  AUTO_INCREMENT
参赛者ID(主键)
自动生成
user_id
INT
用户ID(外键,关联users表)
自动生成
match_id
INT
赛事ID(外键,关联matches表)
自动生成
...
...
其他

管理员表

字段名
数据类型
描述
数据来源
id
INT AUTO_INCREMENT
管理员ID(主键)
自动生成
username
VARCHAR(50) NOT NULL
管理员用户名
管理员填写
password
VARCHAR(255) NOT NULL
管理员密码(加密存储)
管理员填写
billiard_hall_id
INT
管理的台球厅ID(关联台球厅表)
如果创建时自动对应台球厅的id
created_at
DATETIME NOT NULL
管理员创建时间
自动生成
updated_at
DATETIME
管理员更新时间(可选)
自动生成

台球厅表

字段名
数据类型
描述
数据来源
id
INT AUTO_INCREMENT
台球厅ID(主键)
自动生成
name
VARCHAR(100) NOT NULL
台球厅名称
管理员填写
address
VARCHAR(255)
台球厅地址
管理员选择
region_code
VARCHAR(10)
台球厅所在区域的编码
根据选择索引对应编码
created_at
DATETIME NOT NULL
台球厅创建时间
自动生成

日志表

字段名
数据类型
描述
数据来源
id
INT AUTO_INCREMENT
操作日志ID(主键)
自动生成
administrator_id
INT NOT NULL
执行操作的管理员ID(外键,关联管理员表)
自动生成
operation
VARCHAR(255) NOT NULL
操作描述(如“创建用户”、“修改赛事”等)
自动生成
result
ENUM('success', 'failure')
操作结果(成功或失败)
自动生成
details
TEXT
操作详情(可选,用于存储更详细的日志信息)
自动生成
timestamp
DATETIME NOT NULL
操作时间戳
自动生成
 

评论
Loading...