https://github.com/smenjas/chess-explorer
Explore the game of chess.
https://github.com/smenjas/chess-explorer
chess vanilla vanilla-css vanilla-javascript vanilla-js vanillajs
Last synced: 4 months ago
JSON representation
Explore the game of chess.
- Host: GitHub
- URL: https://github.com/smenjas/chess-explorer
- Owner: smenjas
- License: isc
- Created: 2023-07-31T05:15:24.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2026-02-03T23:52:38.000Z (4 months ago)
- Last Synced: 2026-02-04T11:52:54.953Z (4 months ago)
- Topics: chess, vanilla, vanilla-css, vanilla-javascript, vanilla-js, vanillajs
- Language: JavaScript
- Homepage: https://smenjas.github.io/chess-explorer/
- Size: 858 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Chess Explorer
This is a chess app built with vanilla JavaScript. It's an exercise to learn
web development fundamentals and chess strategy, using HTML, CSS, & JS.

## Exercise Constraints
- The game runs in the browser
- No libraries, frameworks, templates, or preprocessors
- Limited dev tools:
- [Node.js](https://nodejs.org/)
- [ESLint](https://www.npmjs.com/package/eslint)
- [nodemon](https://www.npmjs.com/package/nodemon)
- [Stylelint](https://stylelint.io/)
## Goals
- [x] Play locally
- [x] Support basic movements of each piece
- [x] Recognize check and mate
- [x] Recognize a draw
- [x] Don't allow moves that put or leave the king in check
- [x] Allow castling
- [x] Allow en passant
- [x] Promote pawns to queen
- [ ] Promote pawns to rook, bishop, or knight
- [x] Document the game score in algebraic notation
- [x] Play against an artificial opponent
- [ ] Play against another person remotely
## Development
Install the dependencies by running:
```sh
npm install
```
Start the node server with:
```sh
npm run dev
```
Identify syntax and style issues with:
```sh
npm run lint
```
Run automated tests with:
```sh
npm run test
```
Test the bot against itself with:
```sh
node client/play.js
```
[Pawn](https://icons8.com/icon/1009/pawn) icon by [Icons8](https://icons8.com)