https://github.com/miskibin/chess-stats
https://github.com/miskibin/chess-stats
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/miskibin/chess-stats
- Owner: miskibin
- Created: 2022-08-09T13:55:15.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-08-09T09:22:14.000Z (10 months ago)
- Last Synced: 2025-01-23T20:56:38.696Z (4 months ago)
- Language: Python
- Size: 25.7 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README

[](https://github.com/pre-commit/pre-commit)# Chess stats
# [demo](https://miskibin.github.io/chess-stats/)
## description
Create reports from your chess games that you played on `chess.com` and `lichess.org` for free. Track your progress and improve your game. Check your win ratio per opening,
per time control,per day of the week, check in which stage of the game you are losing the most, and much more.## installation
### 1. Configure and run server
```bash
git clone https://github.com/michalskibinski109/chess-stats.git; cd chess-stats; python -m pip install -r requirements.txt; python ./chess_stats/manage.py migrate; python ./chess_stats/manage.py runserver
```### 2. Run worker
```bash
cd chess-stats; python ./chess_stats/manage.py qcluster
```### 3. Optionall
If you want stockfish engine to analyze your app and enable some more features, you need to download it from [here](https://stockfishchess.org/download/) and put it in the project folder.
### 4. That is it
Server is runnig in [localhost](localhost:8000) and you can use it.## Architecture.
Project is separated into 2 different repositories.
1. [chess-insight](https://github.com/michalskibinski109/chess_insight) - Low level library that handles communicating with apis and parses games.
2. chess-stats (This project) Provides server and plotting charts basing on the data from (1.)
### architecture```mermaid
---
title: Games parser
---
classDiagramclass ApiCommunicator
class ChessComCommunicator
class LichessCommunicatorclass CommunicatorFactory
class Game
class PlayerCommunicatorFactory --> ApiCommunicator: create
subgraph api_communicator
ApiCommunicator <|-- ChessComCommunicator
ApiCommunicator <|-- LichessCommunicator
ApiCommunicator o-- Game
Game o-- Player
end
```## Note
In this project I use logger from my other package. You can check it [here](https://github.com/michalskibinski109/easy_logs) if you want to use colored logs in your project.