From 70c13ef62259dc552ebf4e8f4fb725468658984e Mon Sep 17 00:00:00 2001 From: Jacky Yang Date: Sun, 25 Jan 2026 01:25:32 +0800 Subject: [PATCH] 0.5.2: Update WebRDD --- WebRDD.md | 67 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 38 insertions(+), 29 deletions(-) diff --git a/WebRDD.md b/WebRDD.md index 90bf390..3ac177a 100644 --- a/WebRDD.md +++ b/WebRDD.md @@ -3,7 +3,7 @@ ## 1. 项目概述 (Overview) ### 1.1 项目背景 -YRTV 是一个面向 CS2 战队数据洞察与战术研判的 Web 平台。该平台基于现有的 `ETL` 数据管线与 `L2_Main.sqlite` 核心数据库,旨在通过 Web 界面提供可视化的数据查询、战队管理、战术模拟及深度分析功能。 +YRTV 是一个面向 CS2 战队数据洞察与战术研判的 Web 平台,旨在通过 Web 界面提供可视化的数据查询、战队管理、战术模拟及深度分析功能。 ### 1.2 核心目标 * **数据可视化**: 将复杂的 SQLite 比赛数据转化为易读的图表、雷达图和趋势线。 @@ -18,7 +18,7 @@ YRTV 是一个面向 CS2 战队数据洞察与战术研判的 Web 平台。该 * **L3**: SQLite (`database/L3/L3_Features.sqlite`) - 高级衍生特征 (Read-Only for Web) * **Web**: SQLite (`database/Web/Web_App.sqlite`) - [新增] 业务数据 (用户、评论、阵容配置、策略板存档) * **模板引擎**: Jinja2 (服务端渲染) -* **前端样式**: Tailwind CSS (CDN 引入,快速开发) +* **前端样式**: Tailwind CSS (CDN 引入,快速开发) + PC-First 响应式设计 (适配手机、平板与桌面端),主题色紫色,可切换黑白模式。 * **前端交互**: * **图表**: Chart.js / ECharts (雷达图、趋势图) * **交互**: Alpine.js 或原生 JS (处理模态框、异步请求) @@ -36,16 +36,18 @@ yrtv/ │ ├── app.py # Flask 应用入口 │ ├── config.py # 配置文件 │ ├── routes/ # 路由模块 -│ │ ├── main.py # 首页与通用 -│ │ ├── players.py # 玩家模块 -│ │ ├── teams.py # 战队模块 -│ │ ├── matches.py # 比赛模块 -│ │ ├── tactics.py # 战术与分析模块 -│ │ └── admin.py # 管理后台 -│ ├── services/ # 业务逻辑层 (数据计算) -│ │ ├── stats_service.py # 核心指标计算 -│ │ ├── feature_store.py # L3 特征读取与计算 -│ │ └── etl_trigger.py # ETL 调度 +│ │ ├── main.py # 首页与通用 (Home) +│ │ ├── players.py # 玩家模块 (List, Detail, Compare) +│ │ ├── teams.py # 战队模块 (Lineup, Stats) +│ │ ├── matches.py # 比赛模块 (List, Detail, Demo) +│ │ ├── tactics.py # 战术模块 (Lineup Builder, Map, Nade) +│ │ ├── wiki.py # 知识库模块 (Wiki, Docs) +│ │ └── admin.py # 管理后台 (ETL Trigger, User Mgmt) +│ ├── services/ # 业务逻辑层 (连接 L2/L3/Web DB) +│ │ ├── stats_service.py # 基础数据查询 (L2) +│ │ ├── feature_service.py # 高级特征查询 (L3) +│ │ ├── wiki_service.py # 知识库管理 +│ │ └── user_service.py # 用户与评论管理 │ ├── static/ # 静态资源 │ │ ├── css/ │ │ ├── js/ @@ -53,25 +55,32 @@ yrtv/ │ └── templates/ # Jinja2 模板 │ ├── base.html │ ├── components/ -│ └── ... (各页面模板) +│ ├── home/ +│ ├── players/ +│ ├── teams/ +│ ├── matches/ +│ ├── tactics/ +│ ├── wiki/ +│ └── admin/ ├── database/ # 数据存储 │ ├── L1A/ # 原始爬虫数据 │ ├── L2/ # 结构化事实数据 -│ └── L3/ # [新增] 衍生特征库 (Feature Store) -└── ETL/ # ETL 脚本 - ├── L1A.py - ├── L2_Builder.py - └── L3_FeatureEng.py # [新增] L3 特征工程脚本 +│ ├── L3/ # 衍生特征库 (Feature Store) +│ └── Web/ # [新增] 业务数据库 (User, Comment, Wiki) +└── ETL/ # 数据处理层 (ETL Pipeline) + ├── L1A.py # L1A Ingest + ├── L2_Builder.py # L2 Transform + └── L3_Builder.py # L3 Feature Engineering (原 feature_store.py 逻辑) ``` ### 2.2 数据流向 -1. **ETL 层**: +1. **ETL 层 (数据处理核心)**: * L1 (Raw): 爬虫 -> JSON 存储。 * L2 (Fact): JSON -> 清洗/标准化 -> Fact/Dim Tables。 - * **L3 (Features)**: L2 -> 聚合/滑窗计算/模型推理 -> Player/Team Derived Features (e.g., 近期状态分, 地图熟练度, 关键局胜率)。 -2. **Service 层**: Flask Service 读取 L2 (基础数据) 和 L3 (高级特征),执行业务逻辑。 -3. **View 层**: Jinja2 渲染 HTML,嵌入计算后的数据。 -4. **Client 层**: 浏览器展示页面,JS 处理局部交互。 + * **L3 (Features)**: L2 -> 聚合/滑窗计算/模型推理 -> Player/Team Derived Features。**数据处理逻辑收敛于 ETL 目录下的脚本,Web 端仅负责读取 L2/L3 结果。** +2. **Service 层**: Flask Service 仅负责 SQL 查询与简单的业务组装(如评论关联),不再包含复杂的数据计算逻辑。 +3. **View 层**: Jinja2 渲染 HTML。 +4. **Client 层**: 浏览器交互。 --- @@ -92,11 +101,11 @@ yrtv/ * **比赛解析器**: 输入 5E 比赛链接,点击按钮触发后台 ETL 任务(异步),前端显示 Loading 状态或 Toast 提示。 ### 3.2 玩家模块 (Players) -#### 3.2.1 玩家列表 +#### 3.2.1 玩家列表 PlayerList * **筛选/搜索**: 按 ID/昵称搜索,按 K/D、Rating、MVP 等指标排序。 * **展示**: 卡片式布局,显示头像、ID、主队、核心数据 (Rating, K/D, ADR)。 -#### 3.2.2 玩家详情 -* **基础信息**: 头像、SteamID、5E ID、注册时间。可以手动分配Tag。 +#### 3.2.2 玩家详情 PlayerProfile +* **基础信息**: 头像、SteamID、5E ID、注册时间。可以手动分配Tag。玩家列表 Players * **核心指标**: 赛季平均 Rating, ADR, KAST, 首杀成功率等。 * **能力雷达图**: *计算规则需在 Service 层定义*。 * **趋势图**: 近 10/20 场比赛 Rating 走势 (Chart.js)。 @@ -109,11 +118,11 @@ yrtv/ * **统计概览**: 战队整体胜率、近期战绩、地图胜率分布,个人关键数据。 ### 3.4 比赛模块 (Matches) -#### 3.4.1 比赛列表 +#### 3.4.1 比赛列表 MatchList * **筛选**: 按地图、日期范围筛选。 * **展示**: 列表视图,显示时间、地图、比分、胜负、MVP。 -#### 3.4.2 比赛详情 +#### 3.4.2 比赛详情 MatchDetail * **头部**: 比分板(CT/T 分数)、地图、时长、Demo 下载链接。 * **数据表**: 双方队伍的完整数据表(K, D, A, FK, FD, ADR, Rating, KAST, AWP Kills 等)。 * *利用 `fact_match_players` 中的丰富字段*。 @@ -126,7 +135,7 @@ yrtv/ * **共同经历**: 查询这 5 人共同参与过的比赛场次及胜率。 * **协同矩阵**: 选择特定阵容,展示两两之间的协同数据(如:A 补枪 B 的次数,A 与 B 同时在场时的胜率)。 * **最佳/短板分析**: 基于历史数据分析该阵容在特定地图上的强弱项。 -#### 3.5.2 数据对比 +#### 3.5.2 数据对比 Data Center * **多选对比**: 选择多名玩家,并在同一雷达图/柱状图中对比各项数据。 * **地图筛选**: 查看特定玩家在特定地图上的表现差异。 #### 3.5.3 道具与策略板 (Grenades & Strategy Board)