Mancala Game is a Java-based application that allows users to play the popular Mancala board game. The game follows the traditional rules of Mancala and provides an interactive interface for players to make moves and compete against each other.
- Interactive game interface
- Multiple players support
- Rule-based move validation
- Capture and scoring functionality
- End game detection and winner determination
The app is hosted live at the following links
- Live Frontend: https://gabedave.github.io/mancala-game/
- Live Backend: https://mancala-game-app.onrender.com/
- Java
- Spring Boot
- Spring Data JPA
- Hibernate
- RESTful API
- JUnit (for testing)
- Maven (for dependency management)
- JavaScript
- React
- Java Development Kit (JDK) 8 or above
- Maven
- NPM
- Clone the repository:
git clone https://github.com/your-username/mancala-game.git
- Navigate to the project directory:
cd mancala-game
- Build the project using Maven:
mvn clean install
- Run the application:
mvn spring-boot:run
- Access the application api in your web browser at http://localhost:8080 or use the live backend at https://mancala-game-app.onrender.com/. Reference the swagger-ui documentation http://localhost:8080/swagger-ui/index.html
- To start the frontend, navigate to the client folder in the project directory:
cd client
- Build the project using NPM:
npm run build
- Run the web app using a static server:
npm install -g serve
serve -s build
- Create a new game by clicking on the "Start New Game" button or close from an existing game from the active games list.
- Start the game and take turns making moves by selecting a pit on each side of the board.
- Follow the traditional rules of Mancala to distribute the stones and capture opponent's stones.
- Continue playing until the game ends, and a winner is determined.
- Play again or start a new game as desired.
Contributions are welcome! If you find any bugs or have suggestions for improvements, please open an issue or submit a pull request.
This project is licensed under the MIT License.
For any questions or inquiries, please contact [email protected].