58 lines
1.9 KiB
Markdown
58 lines
1.9 KiB
Markdown
# 📊 LoL Bio-Rhythm Analytics
|
|
|
|
## 1. Overview
|
|
A high-performance data analysis engine built with C++ to identify Champion Bio-Rhythms—specific hours of the day when a League of Legends champion's win rate peaks.
|
|
|
|
This project analyzes whether timing (e.g., 3:00 PM vs. 3:00 AM) significantly impacts win rates for specific champions by processing large-scale match data from the Riot Games API.
|
|
|
|
## 2. Architecture
|
|
|
|
- C++ + Boost(Asio, Beast)
|
|
- MySQL (might be changed to another one)
|
|
|
|
```mermaid
|
|
sequenceDiagram
|
|
participant Admin as User/Admin
|
|
participant Sys as lol_analytics
|
|
participant Riot as Riot API
|
|
participant DB as DB
|
|
|
|
%% ==========================================
|
|
%% API 1: Sync All Users by League
|
|
%% ==========================================
|
|
rect rgb(240, 248, 255)
|
|
Note over Admin, DB: [API 1] Fetch all users by league
|
|
Admin->>Sys: Request: Sync League Users (League ID)
|
|
|
|
loop Page 1 to End (Until empty)
|
|
Sys->>Riot: GET /lol/league/v4/entries/... (page=N)
|
|
Riot-->>Sys: User List Data
|
|
Sys->>DB: Save/Update Users (Summoner ID, PUUID, etc.)
|
|
end
|
|
Sys-->>Admin: User Sync Completed
|
|
end
|
|
|
|
%% ==========================================
|
|
%% API 2: Sync Matches within Time X ~ Y
|
|
%% ==========================================
|
|
rect rgb(255, 245, 238)
|
|
Note over Admin, DB: [API 2] Fetch matches within time X ~ Y
|
|
Admin->>Sys: Request: Fetch Matches (Time X ~ Y)
|
|
|
|
Sys->>DB: Query User IDs (PUUIDs)
|
|
DB-->>Sys: PUUID List
|
|
|
|
loop For each User
|
|
Sys->>Riot: GET /lol/match/v5/matches/by-puuid/{puuid}?startTime=X&endTime=Y
|
|
Riot-->>Sys: Match ID List
|
|
|
|
loop For each Match ID
|
|
Sys->>Riot: GET /lol/match/v5/matches/{matchId}
|
|
Riot-->>Sys: Match Detail Data
|
|
Sys->>DB: Save Match Result (win/loss, timestamp, champion)
|
|
end
|
|
end
|
|
Sys-->>Admin: Match Sync Completed
|
|
end
|
|
```
|
|
|