Spring Boot Engineers Project
This is a Spring Boot application designed to manage software engineers and their tech stacks. The project uses PostgreSQL as the database and is containerized with Docker.
Features
- Spring Boot: Backend framework for building RESTful APIs.
- PostgreSQL: Relational database for storing engineer data.
- Docker: Containerization for consistent development and deployment.
- Gradle: Build automation and dependency management.
- JPA: Simplified database interaction with Hibernate.
Prerequisites
- Java 17+
- Docker & Docker Compose
-
- PostgreSQL client (optional)
Setup Instructions
- Clone the Repository:
git clone https://github.com/Bradltr95/spring-boot-engineers.git
cd spring-boot-engineers
- Start the Database: Use Docker Compose to start the PostgreSQL container:
docker-compose up -d
- Run the Application: Use Gradle to build and run the application:
./gradlew bootRun
-
Access the Application:
Configuration
- Database: Configured in src/main/resources/application.properties.
- Docker Compose: Configured in docker-compose.yml.
Testing
Run the tests using Gradle:
./gradlew clean test -Psuite=SoftwareEngineerTestSuite_test.xml
All tests will be automatically run by the github workflow under /.github/workflows/pipeline.yml during a merge or PR.
Project Structure
- src/main/java: Application source code.
- src/test/java: Unit and integration tests run with TestNG and written using RestAssured.
- src/test/resources: The TestNG test suites.
- docker-compose.yml: Docker configuration for PostgreSQL.
- src/main/resources/application.properties: Application configuration.
- /build.gradle: The build settings where we define depenencies, plugins, testing and linting.
License
This project is licensed under the MIT License.