# KP-Assess
**Repository Path**: yxl/KP-Assess
## Basic Information
- **Project Name**: KP-Assess
- **Description**: KP-Assess 是一个专业的篮球赛事数据分析与预测系统,基于 BuildAdmin 快速开发框架构建。系统集成了球队数据管理、球员数据统计、赛事竞猜、AI分析报告等核心功能,为篮球爱好者和专业分析师提供全面的数据支持。
- **Primary Language**: PHP
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 3
- **Forks**: 0
- **Created**: 2014-11-22
- **Last Updated**: 2026-06-29
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
### 项目简介
KP-Assess 是一个专业的篮球赛事数据分析与预测系统,基于 BuildAdmin 快速开发框架构建。系统集成了球队数据管理、球员数据统计、赛事竞猜、AI分析报告等核心功能,为篮球爱好者和专业分析师提供全面的数据支持。
**主要特点:**
- 🏀 **完整的篮球数据体系**: 支持 NBA 等主流联赛的球队、球员、比赛数据管理
- 📊 **专业的统计分析**: 提供赛季统计、比赛数据、球员表现等多维度分析
- 🤖 **AI 智能分析**: 集成 AI 分析报告功能,提供智能化的赛事预测
- 💰 **赛事竞猜系统**: 支持用户参与赛事竞猜,增加互动性
- 📱 **响应式设计**: 完美适配 PC、平板、手机等多种设备
- 🔐 **权限管理**: 完善的 RBAC 权限控制体系
- ⚡ **高性能**: 支持常驻内存运行,性能提升数十倍
✨ 关于 `Star` 的小小期待 ✨
~~文档和演示站的「入场券」是点亮 Star~~ 哈哈哈,开个玩笑,实际上**您不需要任何「门槛」即可访问源码、文档和演示站**,在您丝滑体验文档与强大功能的同时,我们有个温暖的请求 —— 若 `BuildAdmin` 让您眼前一亮,请为我们点亮一颗 `Star`,这将是一次开发者间最浪漫的「确认过眼神」,亦可助我们向本应「自由开放」的开源界证明:优秀的项目我会发自内心的点亮 Star ~(而不是像某些同类产品哪样,将 Star 作为文档或演示站的「强制交换」条件)
## 功能特性
### 核心功能模块
#### 1. 球队管理系统
- ✅ 球队信息管理(名称、简称、城市、球馆等)
- ✅ 球队Logo和封面图片管理
- ✅ 球队排名和权重设置
- ✅ 球队在线分析报告和AI分析报告
- ✅ 球队赛季统计数据(得分、篮板、助攻等完整技术指标)
- ✅ 支持多联赛、多类型球队分类
#### 2. 球员管理系统
- ✅ 球员基本信息(姓名、昵称、位置、身高等)
- ✅ 球员头像和照片管理
- ✅ 球员评分和排名系统
- ✅ 球员赛季详细统计数据
- 场均得分、篮板、助攻、抢断、盖帽
- 投篮命中率、三分命中率、罚球命中率
- 效率值、真实命中率、使用率等高级数据
- ✅ 球员比赛实时数据统计
- ✅ 球员状态管理(在役/退役/受伤)
- ✅ 球员线上球探报告和AI分析报告
#### 3. 赛事数据管理
- ✅ 比赛日程管理
- ✅ 实时比赛数据更新
- ✅ 比赛技术统计(两队对比数据)
- ✅ 比赛结果记录和分析
- ✅ 历史比赛数据查询
#### 4. 赛事竞猜系统
- ✅ 赛事发布和管理
- ✅ 投注截止时间设置
- ✅ 赔率管理
- ✅ 用户投注记录
- ✅ 竞猜结果结算
- ✅ 赛事评论互动
- ✅ 全场/半场结果预测
#### 5. 内容管理系统
- ✅ 网站公告管理
- ✅ 友情链接管理
- ✅ 广告位管理
- ✅ 幻灯片管理(中心页/竞猜页/其他)
- ✅ 前端菜单配置
- ✅ 网站留言管理
#### 6. 用户管理系统
- ✅ 会员注册登录
- ✅ 会员分组和权限
- ✅ 会员余额管理
- ✅ 会员积分系统
- ✅ 用户地址管理
- ✅ 个人资料管理
#### 7. 系统管理
- ✅ 管理员管理
- ✅ 角色组权限管理
- ✅ 菜单规则管理
- ✅ 系统配置管理
- ✅ 附件管理
- ✅ 操作日志记录
- ✅ 数据回收站
- ✅ 敏感数据修改记录
### 技术亮点
**🚀 CRUD 代码生成**
- 图形化拖拽生成后台增删改查代码
- 自动创建数据表和模型
- 支持24种表单组件
- 关联表自动生成
**💥 内置 WEB 终端**
- 集成于本地开发环境
- 自动执行 npm install
- 代码格式化自动化
- 可扩展调用任意命令
**🔀 前后端分离**
- 前端代码完全独立
- RESTful API 设计
- Token 认证机制
- 跨域支持
**⚡️ 常驻内存运行**
- Workerman 提供 HTTP 服务
- WebSocket 实时通信
- 性能提升数十倍
**🌴 数据安全**
- 全局数据回收站
- 字段级修改记录
- 数据回滚和还原
- 敏感数据监控
## 技术栈
### 后端技术
- **框架**: ThinkPHP 8.1+
- **语言**: PHP 8.0+
- **数据库**: MySQL 8.0+
- **缓存**: Redis (可选)
- **常驻内存**: Workerman
- **ORM**: ThinkPHP Model
- **认证**: JWT Token
### 前端技术
- **框架**: Vue 3.5+
- **语言**: TypeScript 5.7+
- **构建工具**: Vite 6.0+
- **状态管理**: Pinia 2.3+
- **UI 组件**: Element Plus 2.9+
- **路由**: Vue Router 4.x
- **HTTP 请求**: Axios
- **代码规范**: ESLint + Prettier
### 开发工具
- **IDE**: VS Code / PhpStorm
- **包管理**: Composer / NPM / PNPM
- **版本控制**: Git
- **数据库管理**: Navicat / phpMyAdmin
## 环境要求
- PHP >= 8.0
- MySQL >= 5.7 (推荐 8.0+)
- Node.js >= 18.x
- Composer >= 2.0
- Nginx / Apache
## 安装部署
### 1. 克隆项目
```bash
git clone https://github.com/your-username/KP-Assess.git
cd KP-Assess
```
### 2. 安装后端依赖
```bash
composer install
```
### 3. 配置环境变量
复制 `.env-example` 为 `.env` 并修改配置:
```bash
cp .env-example .env
```
编辑 `.env` 文件,配置数据库信息:
```ini
[DATABASE]
TYPE = mysql
HOSTNAME = 127.0.0.1
DATABASE = assess
USERNAME = root
PASSWORD = your_password
HOSTPORT = 3306
CHARSET = utf8mb4
PREFIX = kp_
```
### 4. 导入数据库
使用 Navicat 或命令行导入 `database/base.sql` 和 `database/ba.sql`:
```bash
mysql -u root -p assess < database/base.sql
mysql -u root -p assess < database/ba.sql
```
### 5. 安装前端依赖
```bash
cd web
npm install
# 或使用 pnpm
pnpm install
```
### 6. 启动开发服务器
**后端服务:**
```bash
# 传统方式
php think run
# 或使用 Workerman 常驻内存(推荐)
php think workerman start
```
**前端服务:**
```bash
cd web
npm run dev
```
访问 `http://localhost:5173` 即可看到前端页面。
### 7. 生产环境部署
**前端打包:**
```bash
cd web
npm run build
```
将 `web/dist` 目录下的文件部署到 Web 服务器。
**后端配置 Nginx:**
```nginx
server {
listen 80;
server_name your-domain.com;
root /path/to/KP-Assess/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
```
## 项目结构
```
KP-Assess/
├── app/ # 应用目录
│ ├── admin/ # 后台管理模块
│ │ ├── controller/ # 控制器
│ │ ├── model/ # 模型
│ │ ├── validate/ # 验证器
│ │ └── lang/ # 语言包
│ ├── api/ # API 接口模块
│ ├── common/ # 公共模块
│ ├── front/ # 前台模块
│ └── worker/ # Worker 模块
├── config/ # 配置文件
├── database/ # 数据库相关
│ ├── migrations/ # 数据库迁移文件
│ ├── base.sql # 基础数据表结构
│ └── ba.sql # BuildAdmin 系统表
├── extend/ # 扩展类库
├── modules/ # 模块市场
├── public/ # Web 根目录
│ ├── assets/ # 静态资源
│ └── index.php # 入口文件
├── runtime/ # 运行时目录
├── web/ # 前端项目
│ ├── src/ # 源代码
│ │ ├── views/ # 页面组件
│ │ ├── api/ # API 请求
│ │ ├── stores/ # Pinia 状态
│ │ └── router/ # 路由配置
│ ├── package.json # 依赖配置
│ └── vite.config.ts # Vite 配置
├── composer.json # Composer 配置
└── README.md # 项目说明
```
## 开发指南
### 快速开始开发
#### 1. 创建新的数据表
使用 BuildAdmin 的 CRUD 代码生成功能:
1. 登录后台管理系统
2. 进入 "CRUD代码生成" 模块
3. 填写表名、字段信息
4. 选择表单组件类型
5. 点击生成按钮
6. 系统自动生成前后端代码
#### 2. 添加 API 接口
在 `app/api/controller/` 目录下创建控制器:
```php
order('weigh', 'desc')
->paginate(20);
$this->success('获取成功', $teams);
}
public function detail($id)
{
$team = \app\admin\model\SportsLqTeam::find($id);
if (!$team) {
$this->error('球队不存在');
}
$this->success('获取成功', $team);
}
}
```
**前端命令:**
```bash
cd web
# 开发模式
npm run dev
# 生产构建
npm run build
# 预览构建结果
npm run preview
# 代码检查
npm run lint
# 格式化代码
npm run format
```
### API 文档
#### 认证接口
**登录:**
```http
POST /api/user/login
Content-Type: application/json
{
"username": "user",
"password": "123456"
}
```
**响应:**
```json
{
"code": 1,
"msg": "登录成功",
"data": {
"token": "eyJ0eXAiOiJKV1QiLCJhbGc...",
"user_info": {
...
}
}
}
```
#### 球队接口
**获取球队列表:**
```http
GET /api/team/index?page=1&limit=20
Authorization: Bearer {token}
```
**获取球队详情:**
```http
GET /api/team/detail?id={team_id}
Authorization: Bearer {token}
```
#### 球员接口
**获取球员列表:**
```http
GET /api/player/index?team_key={team_key}
Authorization: Bearer {token}
```
**获取球员赛季统计:**
```http
GET /api/player/season-stats?player_key={player_key}&season=2024
Authorization: Bearer {token}
```
### 权限控制
#### 后端权限
在控制器中设置需要登录的接口:
```php
class Team extends Api
{
// 不需要登录的接口
protected $noNeedLogin = ['index', 'detail'];
// 不需要鉴权的接口
protected $noNeedAuth = ['index'];
}
```
#### 前端权限
使用权限指令:
```vue
编辑
删除
```
### 数据验证
创建验证器 `app/admin/validate/Team.php`:
```php
'require|max:85',
'city' => 'max:50',
'stadium' => 'max:100',
'ranking' => 'number',
];
protected $message = [
'name.require' => '球队名称不能为空',
'name.max' => '球队名称不能超过85个字符',
];
}
```
## 常见问题
### 1. 数据库连接失败
**问题:** `SQLSTATE[HY000] [2002] Connection refused`
**解决:**
- 检查 MySQL 服务是否启动
- 确认 `.env` 中的数据库配置正确
- 检查数据库用户权限
### 2. 前端跨域问题
**问题:** `Access to XMLHttpRequest has been blocked by CORS policy`
**解决:**
在 `config/middleware.php` 中配置跨域:
```php
return [
'\\think\\middleware\\AllowCrossDomain',
];
```
### 3. 文件上传失败
**问题:** 上传文件时提示权限错误
**解决:**
```bash
# Linux/Mac
chmod -R 755 runtime
chmod -R 755 public/uploads
# Windows
# 确保 IIS/Apache/Nginx 用户有写入权限
```
### 4. Workerman 启动失败
**问题:** `Address already in use`
**解决:**
```bash
# 查找占用端口的进程
lsof -i:2345
# 杀死进程
kill -9 {PID}
# 或更换端口
php think workerman start --port=2346
```
### 5. 前端白屏
**问题:** 访问前端页面显示空白
**解决:**
- 检查浏览器控制台是否有报错
- 确认后端 API 是否正常响应
- 检查 Token 是否过期
- 清除浏览器缓存
## 性能优化
### 后端优化
1. **启用 Redis 缓存**
```ini
[CACHE]
DRIVER = redis
HOST = 127.0.0.1
PORT = 6379
```
2. **数据库索引优化**
- 为常用查询字段添加索引
- 避免 SELECT * ,只查询需要的字段
- 使用分页查询,避免一次性加载大量数据
3. **使用 Workerman**
- 常驻内存运行,避免重复加载
- 性能提升 10-50 倍
### 前端优化
1. **路由懒加载**
```typescript
const routes = [
{
path: '/team',
component: () => import('/@/views/team/index.vue')
}
]
```
2. **图片优化**
- 使用 WebP 格式
- 实施懒加载
- CDN 加速
3. **代码分割**
- Vite 自动进行代码分割
- 第三方库按需引入
## 安全建议
1. **修改默认密码**
- 管理员默认密码: `admin123`
- 会员默认密码: `123456`
2. **启用 HTTPS**
- 生产环境必须使用 HTTPS
- 配置 SSL 证书
3. **定期备份数据库**
```bash
mysqldump -u root -p assess > backup_$(date +%Y%m%d).sql
```
4. **限制文件上传类型**
- 在 `config/upload.php` 中配置允许的文件类型
- 验证文件 MIME 类型
5. **开启数据回收站**
- 重要数据删除前先放入回收站
- 定期清理过期数据
## 贡献指南
欢迎提交 Issue 和 Pull Request!
1. Fork 本仓库
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 开启 Pull Request
## 许可证
本项目基于 Apache 2.0 许可证开源。
BuildAdmin 遵循 `Apache2.0` 开源协议发布,提供无需授权的免费使用。
## 支持与联系
- 📧 Email: your-email@example.com
- 💬 QQ群: 待添加
- 🐛 Issues: [GitHub Issues](https://github.com/your-username/KP-Assess/issues)
- 📖 文档: [在线文档](https://your-docs-url.com)
## 致谢
感谢以下开源项目:
- [BuildAdmin](https://gitee.com/wonderful-code/buildadmin) - 基础框架
- [ThinkPHP](https://www.thinkphp.cn/) - PHP 框架
- [Vue.js](https://vuejs.org/) - 前端框架
- [Element Plus](https://element-plus.org/) - UI 组件库
- [Workerman](https://www.workerman.net/) - 常驻内存服务
---
**如果这个项目对你有帮助,请给我们一个 ⭐ Star!**
Made with ❤️ by KP Team