Chess_Engine / web /README.md
electro-sb's picture
first commit
100a6dd
# Chess Engine Web UI
A modern, interactive web interface for the chess engine using React and Tailwind CSS.
## Features
- Interactive chess board with piece movement
- Visual indicators for legal moves (green dots)
- Hint system with highlighted squares
- Game controls (new game, undo, resign)
- Position analysis display
- Move history tracking
- Responsive design for various screen sizes
- Multiple board themes (brown and grey)
## Setup
### WSL Setup (Recommended)
If you're using Windows Subsystem for Linux (WSL):
1. Run the setup script to install all dependencies:
```bash
chmod +x setup.sh
./setup.sh
```
2. Copy the chess assets to the public folder:
```bash
chmod +x copy-assets.sh
./copy-assets.sh
```
3. Start the development server:
```bash
npm run dev
```
For detailed WSL-specific instructions, see [WSL_SETUP.md](./WSL_SETUP.md).
### Windows Setup
1. Run the setup script to install all dependencies:
```
setup.bat
```
2. Copy the chess assets to the public folder (see Asset Setup section below)
3. Start the development server:
```
npm run dev
```
### Manual Setup
1. Install dependencies:
```
npm install --save react react-dom axios
npm install --save-dev typescript @types/react @types/react-dom @vitejs/plugin-react vite tailwindcss postcss autoprefixer
```
2. Start the development server:
```
npm run dev
```
3. Build for production:
```
npm run build
```
## Troubleshooting TypeScript Errors
If you encounter TypeScript errors related to React, try these steps:
1. Make sure all dependencies are installed:
```
npm install
```
2. If you see "Cannot find module 'react'" errors, try:
```bash
# WSL/Linux
./fix-dependencies.sh
# Windows
fix-dependencies.bat
```
3. Restart your IDE or TypeScript server
4. For detailed instructions, see [TYPESCRIPT_FIXES.md](./TYPESCRIPT_FIXES.md)
## Asset Setup
Before running the application, you need to copy the chess assets to the public folder:
1. Copy all files from `frontend/assets/pieces` to `frontend/web/public/assets/pieces`
2. Copy all files from `frontend/assets/boards/brown` to `frontend/web/public/assets/boards/brown`
3. Copy all files from `frontend/assets/boards/grey` to `frontend/web/public/assets/boards/grey`
Or use the provided script:
```bash
# WSL/Linux
./copy-assets.sh
```
### High-Resolution Assets
For high-resolution displays:
1. Copy your 2x assets to the same folders, keeping the same naming convention but with "2x" instead of "1x"
2. Example: `b_bishop_1x.png` and `b_bishop_2x.png` should both be in the pieces folder
## Backend Integration
The web UI communicates with the chess engine's REST API. Make sure the backend API is running on port 8000 or update the proxy configuration in `vite.config.ts` to match your backend URL.
## Technologies Used
- React 18
- TypeScript
- Tailwind CSS
- Vite
- Axios for API communication