# 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