Video Demo: https://www.youtube.com/watch?v=vdpV1gWqXR8
- Download the MySQL installer (link for Windows 10)
- Install with all default options
- Open MySQL Workbench
- Run
create database chessdb;
- Run
use chessdb;
- Create a file called
dev.env
in thebackend/config
folder - Paste the contents
backend/config/sample.txt
intodev.env
- Replace
<replace_with_your_password>
with the password set during your MySQL installation
- To upgrade to the latest version of the database, run
npm run db-migrate up
- To downgrade to the previous version of the database, run
npm run db-migrate down
- Run
npm run load-sample-data
- Compare the output to test-sample.out
- The production data is a months collection of games from https://www.ficsgames.org/download.html and is found in res/production
- Run
npm run test-prod-data
, note this may take a while to insert all of the production data, the actual processing is quick - Compare the output to test-production.out
- Download the appropriate executable for the Stock Fish Engine based on your computer architecture (link for download)
- Locate the path of the executable/application file from the download
- Add this file path to the STOCK_FISH_ENG_PATH variable in the dev.env or .env file
- Run the backend
- Navigate to the
/backend
folder - Install dependencies by running
npm install
- Run
npm run dev
- Navigate to the
- Run the frontend
- Navigate to the
/frontend
folder - Install dependencies by running
npm install
- Run
npm start
- Navigate to the
- Navigate to
http://localhost:3000/
to view the web application
- Play a game on a chessboard, with the ability to undo moves, reset or flip the board
- Get a list of all games that have reached a particular position, and their next moves
- Get percentage of games that have ended in a draw, win, or loss from that position
- Add games to the dataset by uploading a PGN file
- Delete games from the dataset via the Data Table page
- View and update player profiles via the Data Table page
- Get a list of all games that meet a set of criteria (white player name, black player name, minimum elo, result, etc.)
- Get the engine evaluation and stockfish 15 recommended moves for a given position