Welcome to my Spring Boot Application repository! This is a beginner-level project I started to learn Java Spring Boot. The application is implemented using Spring Boot and JPA (Java Persistence API). It features modular development with each module containing its own service, controller, and repository classes and interfaces. The application includes modules such as Jobs, Companies, and Reviews.
The project is organized into the following modules:
Handles job-related operations.
Manages company-related operations.
Manages reviews of jobs and companies.
Each module consists of:
Contains the business logic.
Handles HTTP requests and responses.
Manages database interactions.
For each module, the following operations are implemented and tested using POSTMAN:
Add new records to the database.
Remove existing records from the database.
Modify existing records.
Retrieve all records from the database.
Retrieve specific records by their ID.
The application uses an H2 database, which is commonly used for development due to its simplicity and in-memory capabilities. The H2 database also provides a web-based console for easy database management and inspection.
The application has been updated to include Docker support with PostgreSQL and pgAdmin. This allows for more robust database management and easier deployment.
The project includes a docker-compose.yaml file to set up the necessary containers for the application, PostgreSQL, and pgAdmin. The Maven Docker plugin is used to build and manage Docker images.
PostgreSQL is used as the main database for production environments, providing a more scalable and reliable solution compared to the H2 in-memory database.
pgAdmin is included to provide a web-based interface for managing the PostgreSQL database.
- Java 11 or higher
- Maven
- Docker and Docker Compose
- POSTMAN (for testing API endpoints)
Once the application is running, you can access the H2 database console at: http://localhost:8080/h2-console
You can use POSTMAN to test the various endpoints for each module. Below are the endpoints for each module: