Summary
I’ve played a decent number of chess games on the chess.com platform since 2019 and all my chess data can be explored using the API endpoints documented inside the website.
I was interested in monitoring my rating change over the cumalative number of games played.
Link to the project here: Chess.com - Python Analysis
Analytics Process Flow
graph TD;
subgraph Process Initiation
0([Python Notebook Executed])-->A[HTTPS Request Chess
Username Stats] end subgraph Data Extraction A-->B[Requesting List of
Month Endpoints] B-->C[Request List Games
For Each Month Endpoint] C-->D[Unpack all Games
into Dataframe] end subgraph Data Cleaning D-->E[Filtering to
Blitz Chess Games] E-->F[Cleaning pgn Chess data
and Merging Additional Attributes] F-->G[Extracting Player Ratings
and Game Results] G-->H[Curating List of Columns] end subgraph Data Aggregation H-->J[Top Openings] H-->K[Time of Day] H-->L[Monthly Volume] H-->M[Game Result] end subgraph Visualisation J-->N[Graphing Openings] K-->O[Graphing Time of Day] L-->P[Graphing Monthly Volume] M-->Q[Graphing Game Result] end subgraph XlsxDashboard N-->R[Insert and Format Tabular Data] O-->R P-->R Q-->R R-->S[Insert Matplotlib Charts] S-->T([Close Xlsxwriter Workbook Object]) end
Username Stats] end subgraph Data Extraction A-->B[Requesting List of
Month Endpoints] B-->C[Request List Games
For Each Month Endpoint] C-->D[Unpack all Games
into Dataframe] end subgraph Data Cleaning D-->E[Filtering to
Blitz Chess Games] E-->F[Cleaning pgn Chess data
and Merging Additional Attributes] F-->G[Extracting Player Ratings
and Game Results] G-->H[Curating List of Columns] end subgraph Data Aggregation H-->J[Top Openings] H-->K[Time of Day] H-->L[Monthly Volume] H-->M[Game Result] end subgraph Visualisation J-->N[Graphing Openings] K-->O[Graphing Time of Day] L-->P[Graphing Monthly Volume] M-->Q[Graphing Game Result] end subgraph XlsxDashboard N-->R[Insert and Format Tabular Data] O-->R P-->R Q-->R R-->S[Insert Matplotlib Charts] S-->T([Close Xlsxwriter Workbook Object]) end
Data Visualisations
The following images are served directly from my github repository: