{"id":28477469,"url":"https://github.com/itaxbox/chessmaster","last_synced_at":"2026-04-10T15:14:09.510Z","repository":{"id":295501764,"uuid":"940672189","full_name":"ITAXBOX/ChessMaster","owner":"ITAXBOX","description":"A full-featured chess game implementation built with Spring Boot.","archived":false,"fork":false,"pushed_at":"2025-05-27T07:19:55.000Z","size":1305,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-30T08:44:40.494Z","etag":null,"topics":["chess","css","docker","html","java","javascript","junit","problem-solving","spring-boot"],"latest_commit_sha":null,"homepage":"https://chess.aliitawi.me","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ITAXBOX.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-02-28T15:33:49.000Z","updated_at":"2025-06-07T20:50:12.000Z","dependencies_parsed_at":"2025-06-30T08:35:52.360Z","dependency_job_id":"935c8383-ef9f-445d-bea9-d61f8bdfcc43","html_url":"https://github.com/ITAXBOX/ChessMaster","commit_stats":null,"previous_names":["itaxbox/chess-game","itaxbox/chessmaster"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ITAXBOX/ChessMaster","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ITAXBOX%2FChessMaster","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ITAXBOX%2FChessMaster/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ITAXBOX%2FChessMaster/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ITAXBOX%2FChessMaster/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ITAXBOX","download_url":"https://codeload.github.com/ITAXBOX/ChessMaster/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ITAXBOX%2FChessMaster/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279014119,"owners_count":26085463,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chess","css","docker","html","java","javascript","junit","problem-solving","spring-boot"],"created_at":"2025-06-07T16:36:16.908Z","updated_at":"2025-10-13T07:32:52.027Z","avatar_url":"https://github.com/ITAXBOX.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Chess Master\n\nA full-featured chess game implementation with a Spring Boot backend, supporting all standard chess rules and features. This project serves as a foundation for a scalable chess platform with future plans for online multiplayer capabilities.\n\n![Chess Master Game](Images/Chess.png)\n\n## 🎮 Features\n\n- **Complete Chess Rules Implementation**:\n  - Standard piece movements and captures\n  - Special moves (castling, en passant)\n  - Check and checkmate detection\n  - Stalemate recognition\n  - Pawn promotion\n  - Draw conditions (perpetual check, insufficient material)\n  \n- **Game Controls**:\n  - Time control options\n  - Game state persistence\n  - Move history tracking\n\n- **RESTful API**:\n  - Game creation endpoints\n  - Move validation and execution\n  - Game state queries\n  - Board representation\n\n## 🏗️ Architecture\n\nThe project is structured following a clean, modular design:\n\n### Core Components\n- **Pieces**: Abstract base class with specific implementations (Pawn, Rook, Knight, etc.)\n- **Board**: Manages the game state and piece positions\n- **Game**: Coordinates game flow, rules enforcement, and state transitions\n- **Timer**: Handles chess clock functionality for timed games\n\n### Service Layer\nProvides business logic to the controllers and handles game state management.\n\n### API Layer\nRESTful controllers exposing endpoints for game interaction.\n\n### Frontend\nBasic web interface for game visualization.\n\n## 🚀 Future Plans\n\n- Online multiplayer capability\n- User accounts and authentication\n- Game history and statistics\n- Rating system\n- Tournament support\n\n## 💻 Technical Stack\n\n- **Backend**: Java 21, Spring Boot 3.4.2\n- **Build Tool**: Maven\n- **Testing**: JUnit, with more than 60 comprehensive test cases\n- **Frontend**: HTML, CSS and JavaScript\n\n## 🧪 Testing\n\nThe project includes 69 test cases covering various aspects of the chess implementation:\n- Piece movement validation\n- Special move rules (en passant, castling)\n- Check and checkmate scenarios\n- Draw conditions\n- Game state transitions\n\n## 🔧 Development Journey\n\nThis project represents a significant milestone in my development journey. Starting from scratch with the core chess components (pieces, board), I built the entire system layer by layer:\n\n1. Implemented the abstract `Piece` class and its concrete implementations\n2. Developed the `Board` representation and state management\n3. Created the `Game` logic to enforce rules and manage state\n4. Added special chess rules like en passant (particularly challenging)\n5. Built the service and controller layers\n6. Implemented comprehensive testing (69 tests)\n7. Added time control features\n\n## 📝 Project Structure\n\n```\nsrc/\n  ├── main/\n  │   ├── java/\n  │   │   └── itawi/\n  │   │       └── chessgame/\n  │   │           ├── ChessGameApplication.java\n  │   │           ├── config/\n  │   │           ├── controller/\n  │   │           │   └── ChessGameController.java\n  │   │           ├── core/\n  │   │           │   ├── board/\n  │   │           │   ├── enums/\n  |   |           |   ├── exception/\n  │   │           │   ├── game/\n  │   │           │   ├── piece/\n  │   │           │   ├── timer/\n  │   │           │   └── util/\n  │   │           ├── dto/\n  │   │           └── service/\n  │   │               └── ChessGameService.java\n  │   └── resources/\n  │       ├── static/\n  │       │   └── js/\n  │       │       └── chess.js\n  │       └── templates/\n  └── test/\n      └── java/\n          └── itawi/\n              └── chessgame/\n                  ├── ChessGameApplicationTests.java\n                  └── core/\n                      ├── board/\n                      ├── game/\n                      ├── piece/\n                      └── timer/\n```\n\n## 🚀 Getting Started\n\n### Prerequisites\n- Java 21\n- Maven\n\n### Running the Application\n1. Clone the repository\n2. Run `mvn clean install`\n3. Start the application with `mvn spring-boot:run`\n4. Access the game at `http://localhost:8080`\n\n## 📋 API Endpoints\n\n- `POST /api/v1/chess/new-game` - Start a new game\n- `GET /api/v1/chess/board` - Get the current board state\n- `GET /api/v1/chess/status` - Get the current game status\n- Additional endpoints for moves, promotions, and game state management\n\n## 🔮 Challenges and Learnings\n\nThe most significant challenge during development was implementing the en passant rule correctly, which required careful consideration of piece state tracking and move validation. This project provided valuable experience in:\n\n- Object-oriented design for complex rule systems\n- State management in game applications\n- Comprehensive test case development\n- RESTful API design for interactive applications\n\n---\n\nMade with ♟️ and ❤️ by Itawi\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitaxbox%2Fchessmaster","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fitaxbox%2Fchessmaster","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitaxbox%2Fchessmaster/lists"}