# 📊 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 ```