Skip to content

Chrislee187/Chess

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 

Repository files navigation

Chess Index

Welcome the index page for my Chess Project.

This project is designed to be a "sand-box" for playing around with new ideas and technologies on something larger and more complex than the examples typically found on the sites accompanying these ideas and techs.

To this end the project doesn't necessarily reflect the best implementation of chess but is meant to represent approaches used more typically in enterprise development (rather than game development). Chess is the "business" here.

Components

The project is designed for the engine itself to be easily reusable by multiple clients, be they front end UI's with a (admittedly very basic) chessboard such as the Blazor, Angular and React clients or less visual tooling such as the webapi host for the engine (that the UI clients use).

Core chess engine in C#.

A database to manage chess games, using NET Core 3.0 and EF Core to create a mature RESTful API for managing the chess game database.

Exposes the chess engine through a simple REST-like JSON WebAPI using Core MVC WebAPI.

The Swagger UI for it can be seen at https://chess-web-api.azurewebsites.net/swagger/index.html (may take to a few moments to fire up, it's not exactly a popular site!).

A client-side blazor SPA that runs the native C# chess engine in the browser using Mono and WebAssembly.

A version of this can be found at https://chessstaticstorage.z33.web.core.windows.net

A simple react client (typescript) created for comparison of "SPA" approaches. Uses the chess engine via the WebAPI.

A suite of Specflow/Selenium WebDriver/Shouldly BDD style tests that ensure the UX behaves as expected and then using these expected behaviors and custom board setups determines that the rules of chess are correctly implemented.

Tools to manipulate PGN Portable Game Notation files.

Catch-all project for assorted other chess-related things im currently experimenting with.

A simple angular client, based on a previous and incomplete version of the engine and my thinking, needs to be updated to be brought in line with the other chess.xxxx clients.