Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sisimomo/hexagonalchess-backend
The backend of my Hexagonal Chess portfolio project.
https://github.com/sisimomo/hexagonalchess-backend
chess hexagonal-chess java portfolio spring spring-boot
Last synced: 14 days ago
JSON representation
The backend of my Hexagonal Chess portfolio project.
- Host: GitHub
- URL: https://github.com/sisimomo/hexagonalchess-backend
- Owner: sisimomo
- License: mit
- Created: 2023-08-18T02:55:51.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2023-08-24T04:51:25.000Z (over 1 year ago)
- Last Synced: 2023-08-24T05:59:44.957Z (over 1 year ago)
- Topics: chess, hexagonal-chess, java, portfolio, spring, spring-boot
- Language: Java
- Homepage: https://hexagonalchess-api.zucchi.dev/swagger-ui/index.html
- Size: 293 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![MIT License][license-shield]][license-url]
[![LinkedIn][linkedin-shield]][linkedin-url]
Hexagonal Chess - Backend
Immerse yourself in the strategic world of Gliński's variant chess with my project. The Backend is powered by Spring Boot, showcasing my expertise in web development.
RESTful API doc
·
Report Bug
·
Request Feature
Table of Contents
## About The Project
As a passionate web developer, I constantly seek out intriguing challenges. Inspired by a
[YouTube video by C.G.P. Grey titled 'Can Chess, with Hexagons?'](https://youtu.be/bgR3yESAEVE), I
dove into the world of hexagonal chess and was immediately captivated by its unique complexity and
possibilities. This fascination drove me to create a digital version of the Gliński's variant,
blending my love for coding with my newfound interest for this chess variant.### Built With
* [![IntelliJ-IDEA][IntelliJ-IDEA-shield]](https://www.jetbrains.com/idea/)
* [![MariaDB][MariaDB-shield]](https://mariadb.org/)
* [Keycloak](https://www.keycloak.org/)
* [![Spring][Spring-shield]](https://spring.io/)
* [![Java][Java-shield]](https://www.java.com/en/)
* [![Gradle][Gradle-shield]](https://gradle.org/)
* [![Swagger][Swagger-shield]](https://swagger.io/)
* [![Hibernate][Hibernate-shield]](https://hibernate.org/)
* [Spring Data JPA EntityGraph](https://github.com/Cosium/spring-data-jpa-entity-graph)
* [JPA](https://jakarta.ee/specifications/persistence/3.0/)
* [![Junit5][Junit5-shield]](https://junit.org/junit5/)
* [Lombok](https://projectlombok.org/)
* [MapStruct](https://mapstruct.org/)
* [JPA 2 Metamodel Generator](https://docs.jboss.org/hibernate/orm/5.4/topical/html_single/metamodelgen/MetamodelGenerator.html)## Local development environment
To get a local copy up and running, follow these simple steps.
### Prerequisites
Before diving into the installation section, make sure your system meets the following
prerequisites:- [Git](https://git-scm.com/)
- [Docker](https://www.docker.com/)
- [Docker Compose](https://docs.docker.com/compose/)
- [Java 17](https://www.java.com)
- [IntelliJ IDEA](https://www.jetbrains.com/idea/)
- [npm](https://www.npmjs.com/)
- [Angular CLI](https://cli.angular.io/)### Installation
#### 1. Get Local Docker Compose Running
1.1. **Clone the Docker Compose Repository:**
Start by cloning the Docker Compose repository using the following command:
```sh
git clone https://github.com/sisimomo/hexagonalChess-docker-compose.git
```1.2. **Navigate to the Local Folder:**
Move into the local folder within the cloned repository:
```sh
cd ./hexagonalChess-docker-compose/local
```1.3. **Configure Environment Variables:**
Duplicate the `.env.sample` file and rename it to `.env`:
```sh
cp ./.env.sample ./.env
```Customize the variables in the `.env` file to your preferences.
1.4. **Initiate Docker Compose:**
Start docker containers using Docker Compose:
```sh
docker-compose up -d
```#### 2. Get the Backend Running
2.1. **Clone the Backend Repository:**
Clone the backend repository using the following command:
```sh
git clone https://github.com/sisimomo/hexagonalChess-backend.git
```2.2. **Open in IntelliJ:**
Open the cloned repository folder using IntelliJ IDEA.
2.3. **Update Environment Variables:**
Adjust the environment variables according to your `.env` modifications in the "Run/Debug
configuration" named "HexagonalChessApplication" located in the `.run` folder within the cloned
repository.2.4. **Start the Application:**
Launch the application using the "Run/Debug configuration" named "HexagonalChessApplication" in
IntelliJ.#### 3. Get the Frontend Running
3.1. **Clone the Frontend Repository:**
Clone the frontend repository using the following command:
```sh
git clone https://github.com/sisimomo/hexagonalChess-frontend.git
```3.2. **Navigate to the Frontend Folder:**
Change your working directory to the frontend folder:
```sh
cd ./hexagonalChess-frontend
```3.3. **Install Dependencies:**
Install project dependencies using npm:
```sh
npm install
```3.4. **Run the Project:**
Start the project using Angular CLI:
```sh
ng serve
```#### 4. Enjoy!
Feel free to explore the code and provide suggestions for enhancement by creating feature requests
through new [GitHub issues][issues-url].## Roadmap
- [ ] Send STOMP error message when an error occurred.
- [ ] Complete Chess Engine unit tests.
- [x] Coordinate class.
- [x] Piece abstract class.
- [ ] Pawn class.
- [ ] King class.
- [ ] Game class.
- [ ] Create a RESTful endpoint returning all previously played games.
- [ ] Add a chat in the game page.See the [open issues][issues-url] for a full list of
proposed features (and known issues).## License
Distributed under the MIT License. See `LICENSE.txt` for more information.
## Contact
[![LinkedIn][linkedin-shield]][linkedin-url]
Project Urls:
* [Backend](https://hexagonalchess-api.zucchi.dev/)
* [Frontend](https://hexagonalchess.zucchi.dev/)
* [Identity provider](https://hexagonalchess-auth.zucchi.dev/realms/HexagonalChess/account/)[forks-shield]: https://img.shields.io/github/forks/sisimomo/hexagonalChess-backend.svg?style=for-the-badge
[forks-url]: https://github.com/sisimomo/hexagonalChess-backend/network/members
[stars-shield]: https://img.shields.io/github/stars/sisimomo/hexagonalChess-backend.svg?style=for-the-badge
[stars-url]: https://github.com/sisimomo/hexagonalChess-backend/stargazers
[issues-shield]: https://img.shields.io/github/issues/sisimomo/hexagonalChess-backend.svg?style=for-the-badge
[issues-url]: https://github.com/sisimomo/hexagonalChess-backend/issues
[license-shield]: https://img.shields.io/github/license/sisimomo/hexagonalChess-backend.svg?style=for-the-badge
[license-url]: https://github.com/sisimomo/hexagonalChess-backend/blob/master/LICENSE.txt
[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555
[linkedin-url]: https://linkedin.com/in/simon-vallieres-358555187
[Spring-shield]: https://img.shields.io/badge/spring-%236DB33F.svg?style=for-the-badge&logo=spring&logoColor=white
[Java-shield]: https://img.shields.io/badge/java-%23ED8B00.svg?style=for-the-badge&logo=openjdk&logoColor=white
[Gradle-shield]: https://img.shields.io/badge/Gradle-02303A.svg?style=for-the-badge&logo=Gradle&logoColor=white
[Swagger-shield]: https://img.shields.io/badge/Swagger-85EA2D?style=for-the-badge&logo=Swagger&logoColor=white
[Junit5-shield]: https://img.shields.io/badge/Junit5-25A162?style=for-the-badge&logo=junit5&logoColor=white
[MariaDB-shield]: https://img.shields.io/badge/MariaDB-003545?style=for-the-badge&logo=mariadb&logoColor=white
[Hibernate-shield]: https://img.shields.io/badge/Hibernate-59666C?style=for-the-badge&logo=Hibernate&logoColor=white
[IntelliJ-IDEA-shield]: https://img.shields.io/badge/IntelliJIDEA-000000.svg?style=for-the-badge&logo=intellij-idea&logoColor=white