No description
| include | ||
| src | ||
| .gitignore | ||
| CMakeLists.txt | ||
| compile_commands.json | ||
| README.md | ||
| schema.sql | ||
| setup.sh | ||
📊 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)
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