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.
- 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.
- Java 17+
- Docker & Docker Compose
-
- Gradle
- PostgreSQL client (optional)
-
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:
- API Base URL: http://localhost:8080
- Database: localhost:5332 (username: bradltr, password: password)
- Database: Configured in src/main/resources/application.properties.
- Docker Compose: Configured in docker-compose.yml.
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.
- 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.
This project is licensed under the MIT License.