ChessItOut is a web application that allows users to analyze chess.com profiles, explore game histories, and dive into detailed game analysis.
- Profile Analysis: Search for chess.com players and view their profile information, including username, avatar, and rating.
- Game History: Browse through a player's game history and select a game to analyze.
- Detailed Game Analysis:
- Interactive chessboard display with move highlighting.
- Move list with navigation.
- Engine evaluation using Stockfish.js.
- AI-powered feedback on each move using the Gemini API.
- Theme Toggle: Switch between light and dark themes.
- Responsive Design: The application is designed to work on different screen sizes.
- React: A JavaScript library for building user interfaces.
- Vite: A build tool that provides a fast and optimized development experience.
- TypeScript: A superset of JavaScript that adds static typing.
- Tailwind CSS: A utility-first CSS framework.
- chess.js: A JavaScript chess library for move generation and validation.
- chessboardjsx: A React component for displaying chessboards.
- Stockfish.js: A JavaScript port of the Stockfish chess engine.
- Gemini API: Used for AI-powered move analysis.
- react-router-dom: For routing between different pages.
- axios: For making HTTP requests to the chess.com API.
- date-fns: For date formatting.
- framer-motion: For animations.
- lucide-react: For icons.
- react-icons: For icons.
- react-lazyload: For lazy loading images.
- react-tooltip: For tooltips.
- recharts: For charts.
- @mliebelt/pgn-parser: For parsing PGN strings.
- Clone the repository.
- Install dependencies using
npm install
. - Create a
.env
file and add your Gemini API key asVITE_GEMINI_API_KEY
. - Start the development server using
npm run dev
. - Open your browser and navigate to
http://localhost:5173
.
src/
: Contains the source code for the application.components/
: Contains the React components.ChessAnalysis/
: Contains components related to chess analysis.ChessBoard/
: Contains components related to the chessboard.
hooks/
: Contains custom React hooks.services/
: Contains services for fetching data from the chess.com API.types/
: Contains TypeScript type definitions.utils/
: Contains utility functions.workers/
: Contains web workers.
public/
: Contains static assets.images/
: Contains images used in the application.
Contributions are welcome! Please feel free to submit a pull request.
This project is licensed under the MIT License.