/spring-test-driven

Project done for an Udemy course named "Testing Spring Boot App with JUnit, Mockito & Testcontainers" using Spring Boot 3 and tested with said technologies along with Spring Boot Testing.

Primary LanguageKotlin

spring-test-driven

Project done for an Udemy course named "Testing Spring Boot App with JUnit, Mockito & Testcontainers" using Spring Boot 3 and tested with said technologies along with Spring Boot Testing.

Requirements

Architecture Layers

PRESENTATION LAYER

This layer is at the top of the architecture. This tier is responsible for:

✔️ Performing authentication.

✔️ Converting JSON data into an object (and vice versa).

✔️ Handling HTTP requests.

✔️ Transfering authentication to the business layer.

BUSINESS LAYER

The business layer is responsible for:

✔️ Performing validation.

✔️ Performing authorization.

✔️ Handling the business logic and rules.

PERSISTENCE LAYER

This layer is responsible for:

✔️ Containing storage logic.

✔️ Fetching objects and translating them into database rows (and vice versa).

DATABASE LAYER

This layer is simply the actual database that is responsible for:

✔️ Performing database operations (mainly CRUD operations).

Software structure

image

Getting Started

  1. Clone the repository
  2. Navigate to the project directory
  3. Build the project using Maven:
./mvnw clean install
  1. Run the project using Maven wrapper:
./mvnw spring-boot:run
  1. The application will start on http://localhost:8080

Usage

  • You will also need the database installed on your machine and set the connection vars on the application.properties or application.yml