Skip to content

Latest commit

 

History

History
135 lines (97 loc) · 8.47 KB

README.md

File metadata and controls

135 lines (97 loc) · 8.47 KB

Chess Endgame Training

Get it on Google Play

Chess Endgame Training is a web application to practice a variety of well organized chess endgames.

  • It allows you to play against the Syzygy tablebases or against the Stockfish 16 NNUE engine.

  • The application tracks your personal record in each position. It also allows you to solve each position automatically and review the movements once completed.

  • It includes challenges of mate and also of draw, for both white and black.

  • Save configurations and progress to Google Drive to avoid losing them.

  • When reaching a trivial position, it doesn't force you to solve it manually (it prompts you to resolve those last moves automatically without penalizing you for it).

  • Parameterize Stockfish by depth and time.

  • List of moves: allows you to select a move and continue another line from there.

  • Manual mode: to move opponent's pieces to explore lines not suggested by syzygy or Stockfish: "what if...?"

  • Uses the chessground board which allows you to draw circles and arrows.

  • Light and dark themes.

  • Multiple piece styles.

  • Several board colors to choose from.

  • Multi language (currently English/Spanish/Russian).

  • Board image capture.

  • Copy FEN and PGN to clipboard.

  • Button to open position analysis on Lichess.

It is distributed in both Android App and Progressive Web App. The Web App allows to open an arbitrary position from a FEN string indicating the objective to achieve (checkmate or draw) : https://chess-endgame-trainer.mooo.com/fen/FEN_STRING/TARGET

TARGET is checkmate by default. Examples:

https://chess-endgame-trainer.mooo.com/fen/8/4p1p1/8/7k/2qN3B/4P1P1/2B4K/8 w - - 0 1

https://chess-endgame-trainer.mooo.com/fen/8/5qpB/5P2/4B2N/8/p7/P2k4/K7 w - - 0 1/draw

Optionally, you can change roles and play with the opponent pieces:

http://chess-endgame-trainer.mooo.com/fen/8/3k4/8/3K4/3P4/8/8/8 b - - 0 1?player=w

You can also play random positions to achieve checkmate in 1 to 10 moves.

http://chess-endgame-trainer.mooo.com/checkmate/3

Screenshots

3dparty resources

Following software and resources has been used:

Development

A Docker image is provided to bootstrap a development environment:

Build image

./exec.sh build-img

Start development server

./exec.sh start

Build for production

./exec.sh build-app

If you don't want to use Docker, you can install Node.js (latest LTS) and a package manager (i.e. pnpm) to install dependencies, start the development server and build for production.

TWA / Android bundle

A TWA has been generated with bubblewrap:

bubblewrap init --manifest https://chess-endgame-trainer.mooo.com/manifest.json

Building:

bubblewrap build --skipSigning

Signing:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore [PATH_TO_KEYSTORE] ./app-release-unsigned-aligned.apk [KEY_ALIAS]
zipalign -v 4 ./app-release-unsigned-aligned.apk myapp-aligned.apk
apksigner sign --ks [PATH_TO_KEYSTORE] --v1-signing-enabled true --v2-signing-enabled true myapp-aligned.apk

The file .well-known/assetslinks.json includes the Sha256 fingerprint of the certificate used to sign the apk:

keytool -list -v -keystore [PATH_TO_KEYSTORE]

Acknowledgements

This project has been carried out as part of the Final Degree Project in the Bachelor's Degree in Computer Engineering at UNIR.