# Web GUI For Stockfish Chess

![GUI Type](https://img.shields.io/badge/Type-Web_GUI-orange)
![JavaScript](https://img.shields.io/badge/Language-JavaScript-yellow)
![jQuery](https://img.shields.io/badge/jQuery-3.4.1-blue)

![Stockfish 10 Chess Engine](https://img.shields.io/badge/Stockfish_Chess_Engine-10-43AC6A)
![Chessboard.JS](https://img.shields.io/badge/Chessboard.JS-1.0.0-brown)
![PGN Viewer](https://img.shields.io/badge/LT_PGN_Viewer-3.498-teal)

![Mobile Support](https://img.shields.io/badge/Touch_Based_Device_Support-Yes-purple)
![Known Bugs](https://img.shields.io/badge/Known_Bugs-1-green)


## Overview

It is a web graphical user interface (GUI) for the Stockfish Chess engine. It is a fully functional web-based chess app that allows you to play against the Stockfish chess engine.


## Mission

Our mission from this project is to develop a modern responsive free and open source web-based chess GUI powered by the Stockfish chess engine.


## Main Live Demo

https://labinatorsolutions.github.io/stockfish-chess-web-gui/


## Other Implementations - (Included For Reference)

You can find other chess web GUI implementations in the "other-implementations" folder. The other implementations are not currently maintained and included for reference only.

- https://labinatorsolutions.github.io/stockfish-chess-web-gui/other-implementations/example1/index.html
- https://labinatorsolutions.github.io/stockfish-chess-web-gui/other-implementations/example2/index.html
- https://labinatorsolutions.github.io/stockfish-chess-web-gui/other-implementations/example3/index.html
- https://labinatorsolutions.github.io/stockfish-chess-web-gui/other-implementations/example4/index.html

**Note:** The above implementations or examples will be removed from this repository when this GUI improves to the stage where it surpasses all of the above examples in terms of features. In the meantime, we will keep them for educational purposes and a good point of reference. The above examples provide a working example of how some features can be implemented. Please refer to their license and readme files to learn more about each of those examples.


## Features

- Lightweight.
- Easy To Install.
- Fully Responsive.
- Uses Stockfish Version 10.
- Uses jQuery 3.4.1.
- Uses Chessboard.js Version 1.0.0.
- LT-PGN-Viewer Version 3.498.


## Online Installation

- Download or clone this repository.
- Upload the unzipped folder of this repository to your web server then view it from your web browser.


## Local Installation

- Download or clone this repository.
- Install a web server locally to test effectively the GUI. A fast approach is download and install [XAMPP](https://www.apachefriends.org/index.html).
- Copy the folder of the repository to the (htdocs) directory then view it locally from your web browser.


## Basic Suggested Improvements

- Adding an option to set FEN.
- Adding an alternative option to move the pieces by clicking and pointing.
- Adding a visual evaluation meter to show the player what is the engine's evaluation of the current position.


## Advanced Suggested Improvements

- Redesigning the layout to become more intuitive for touch-based devices and PCs.
- Adding an option to set the chess clock for both players.
- Adding an option to edit the board visually.
- Adding an opening book.
- Adding a visual graph representing the history of the computer's evaluation.


## Development & Contribution

We welcome all developers to contribute to this repository by fixing bugs or adding features.

It is also great to check our advanced chess app at:
- https://github.com/LabinatorSolutions/boldchess-web-app

**List Of Current Contributors:**
- https://github.com/LabinatorSolutions/stockfish-chess-web-gui/graphs/contributors


## License

GNU GPLv3: [https://www.gnu.org/licenses/gpl-3.0-standalone.html](https://www.gnu.org/licenses/gpl-3.0-standalone.html)


## Credits

- Stockfish: [https://github.com/mcostalba/Stockfish](https://github.com/mcostalba/Stockfish)
- Stockfish.js: [https://github.com/nmrugg/stockfish.js](https://github.com/nmrugg/stockfish.js)
- Oakmac Chessboard: [https://github.com/oakmac/chessboardjs](https://github.com/oakmac/chessboardjs)
- Caustique Chessboard: [https://github.com/caustique/chessboard-js](https://github.com/caustique/chessboard-js)
- LT-PGN-Viewer: [http://www.lutanho.net/pgn/pgnviewer.html](http://www.lutanho.net/pgn/pgnviewer.html)
- jQuery: [https://github.com/jquery/jquery](https://github.com/jquery/jquery)
- BoldChess: [https://boldchess.com](https://boldchess.com/)
- Labinator: [https://labinator.com](https://labinator.com/)
