Parchis Oca Games is a web application made with Java and Spring Boot that allows users to play the classic board games Parchis and Oca online with their friends or random opponents. It is a group project made for the subject Diseño y Pruebas I taking into account MVC design pattern.
- Play Oca and Parchis games online with friends or random opponents.
- Connect with friends, send and receive friend requests, and see their online status. Easily invite them to join your game rooms for a fun-filled gaming experience. You can also spectate the games your friends are playing.
- Real-time gameplay.
- User authentication and registration.
- Admin role with CRUD permissions.
- Lobby system for creating and joining game rooms.
- Game chat for players to communicate during gameplay.
- Leaderboards to track player rankings.
- Personal and global statistics.
- Unlock various achievements as you play, based on your gameplay and accomplishments.
- Implementation of tests for all the features.
Before running the project, make sure you have the following installed:
- Java Development Kit (JDK) 8 or higher
- Maven
-
Clone the repository to your local machine:
git clone https://github.com/Marchabar/Parchis-Oca-Games.git
-
Run the application:
mvn spring-boot:run
- Open your web browser and navigate to http://localhost:8080.
- If you're a new user, click on "Register" to create an account. Otherwise, click "Login" to sign in.
- Once logged in, choose a game to play! You'll be redirected to the lobby selector where you can create a new game room or join an existing one.
- Connect with your friends on using the "My friends" feature. Send and receive friend requests, and check your friends' online status.
- Join friends' game room using the "My friends" list or wait for other players to join.
- Start playing Oca and Parchis with your friends!
Here is a brief high-level overview of the tech stack this project uses:
-
Java: Object-oriented programing language and computing platform.
-
Spring Boot: Framework for building Java-based, production-ready applications with ease, providing various tools and libraries for application development.
-
Maven: Build automation and project management tool used for managing dependencies and building Java projects.
-
H2 SQL Database: In-memory and disk-based relational database management system.
-
Lombok: Java library that simplifies code by automatically generating boilerplate code, such as getters, setters, and constructors.
-
Tomcat: Runtime environment for JavaServer Pages in web applications.
-
Bootstrap: A front-end framework for creating responsive and visually appealing web interfaces.
-
JUnit: Testing framework for Java that facilitates unit testing by providing tools for writing and running test cases.
-
Mockito: Java library for creating mock objects, enabling easier testing by simulating the behavior of real objects in a controlled manner.