VChess is an online chess platform that allows users to play chess against each other in real-time. The project is divided into two main components: the backend and the frontend. They are Git submodules - essentially references (of commits) to other Git repositories to keep my backend and frontend code/commits seperate, while allowing them to be to be put in the same superproject.
- Responsive UI: User-friendly interface for seamless chess gameplay with high keyboard accessibility.
- Real-time Chess: Play chess against opponents in real-time.
- Matchmaking: Automatically find and pair players based on availability.
- Analysis Mode: Utilizes the Stockfish chess engine to run as a web worker to provide positions evaluation and move suggestions.
- Puzzles: A training mode to allow users to train their tactics on random chess puzzles.
- Node.js and NPM installed on your machine.
-
Clone the repository and update submodules:
git clone --recursive https://github.com/tamnguyen820/VChess.git cd VChess git submodule update --init --recursive
-
Install dependencies for both frontend and backend:
# Install backend dependencies cd backend npm install # Install frontend dependencies cd ../frontend npm install
You will need 2 terminal tabs/instances:
-
Start the backend server:
cd backend npm start
-
Start the frontend development server:
cd frontend npm start
-
Open the application in your web browser at http://localhost:5173/
This project is licensed under the MIT License - see the LICENSE for details.
- Lichess: the project utilizes many assets from Lichess (board themes, piece sets, sounds, API, etc.)
- Stockfish.js: the chess engine this project uses for position analysis.