Welcome to GamerScoreHub (the web-based game ranking system) backend repository. The purpose of this system is to enable users to keep track of newly released games and rate games.
- Requirement Collection and Analysis
- Development of the Logical Model
- Backend Development + Physical Model
- API Development
- Testing
- CI/CD Pipeline
- Deployment
- Front-End Development (In progress)
The primary programming language for API development was Java in its version 17 and OpenJDK 20. The chosen package manager for better dependency management was Maven for its support and practicality.
- Java
- Maven
- Spring Boot
- Spring Data JPA
- JWT
- Spring Security
- Springdoc OpenAPI
- Bean Validation
- JUnit
- Flyway
- Lombok
The framework used was Spring for its autoconfiguration of external dependencies and ease of coding, along with various compatible libraries for the project's purposes. JPA was used as an ORM tool, and migration control with Flyway. Additionally, JWT implementation with Spring Security was done to maintain API security and best practices, and documentation with SpringDoc (Swagger). Integration tests were also implemented using the same root database to make integration testing more accurate.
- MySQL
The primary database used was MySQL in its version 8.0 due to its support for small and medium-sized applications and scalability compatible with the project's objectives.
- Git
- Github Action
- Github
- Docker
- IntelliJ
The primary tool for code versioning was Git. Additionally, the entire development environment was used in the popular Jetbrains IntelliJ IDE. CI/CD pipelines were built with Github Action, and the application's Dockerization process was automated with the Docker.yml workflow.
Deployment:
- Railway
Furthermore, the application was deployed using the Railway tool.
There are two ways to run the project, with the first (taught in this section) involving cloning the project and the second pulling the image directly from Dockerhub:
- Clone the repository using the command:
git clone https://github.com/Ivi-SCD/backend-gamerscore-hub.git
- Start the database defined in the docker-compose.yml file:
docker-compose up -d
- Run the application in your favorite IDE.