A highly customizable library aimed at support of various chess variants. This library is capable of generating legal moves, processing and loading games, rendering boards for arbitrary chess variants, supporting up to 14x14 board size and up to 4 players. The project supports variant configuration through variant rules and FEN data tags, as well as game metadata information and basic computer-controlled players capable of playing every variant possible to define through built-in variant rules.
The application is structured in three logical layers:
- Move generation layer. Generates and validates the legal moves, is the core move generation engine.
- Board rendering layer. Users move generation layer, React and Redux to render game boards.
- Page serving layer. Uses the above two layers and a Markdown parser to render the whole page.
You can run this project either through Java or through Webpack with a static page in case you do not have / are unable to install Java and Gradle and execute this method.
$ git clone https://github.com/YuraVolk/chess-variants-wiki
$ cd chess-variants-wiki
You will need to initialize four environment variables: MONGODB_USERNAME, MONGODB_PASSWORD, MONGODB_CLUSTER, JWT_SECRET, MAIL_USERNAME, MAIL_PASSWORD and DOMAIN_NAME.
docker build -t chess-variants-wiki .
docker run -p 10000:10000 --name ChessVariantsWiki chess-variants-wiki
Your app should now be running on localhost:5000.
Make sure you have Java and Gradle installed, these are required to run the application through this method. You will need to initialize four environment variables: MONGODB_USERNAME, MONGODB_PASSWORD, MONGODB_CLUSTER, JWT_SECRET, MAIL_USERNAME, MAIL_PASSWORD and DOMAIN_NAME. Run:
$ gradle bootRun
Your app should now be running on localhost:10000.
Run:
$ npm install
$ npm run static
Your app should now be running on http://127.0.0.1:5000/src/main/resources/public/development.html.