spring-realworld-conduit-api

Spring RealWorld Conduit API

MIT License

Stars
9

Spring Boot RealWorld Conduit API

Spring Boot RealWorld Conduit API implements the API Endpoints of Conduit, which is a Medium.com clone.

Tech Stack

Prerequisites

  • JDK 21
  • Docker and Docker Compose
  • Your favourite IDE (Recommended: IntelliJ IDEA)

Install JDK using SDKMAN

$ curl -s "https://get.sdkman.io" | bash
$ source "$HOME/.sdkman/bin/sdkman-init.sh"
$ sdk install java 21.0.1-tem
$ sdk install maven

Verify the prerequisites

$ java -version
openjdk version "21.0.1" 2023-10-17 LTS
OpenJDK Runtime Environment Temurin-21.0.1+12 (build 21.0.1+12-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.1+12 (build 21.0.1+12-LTS, mixed mode)

$ docker info
Client:
 Version:    27.0.3
 Context:    desktop-linux
 ...
 ...
Server:
 Server Version: 27.0.3
 ...
 ...

$ docker compose version
Docker Compose version v2.28.1-desktop.1

How to?

# Clone the repository
$ git clone https://github.com/sivaprasadreddy/spring-realworld-conduit-api.git
$ cd spring-realworld-conduit-api

# Run tests
$ ./mvnw test

# Automatically format code using spotless-maven-plugin
$ ./mvnw spotless:apply

# Run/Debug application from IDE
Run `src/main/java/conduit/ConduitApplication.java` from IDE.

# Run application using Maven
./mvnw spring-boot:run

The application is configured to use Docker Compose to automatically start the application dependencies such as PostgreSQL.

Using Taskfile utility

Task is a task runner that we can use to run any arbitrary commands in easier way.

Installation

$ brew install go-task
(or)
$ go install github.com/go-task/task/v3/cmd/task@latest

#verify task version
$ task --version
Task version: 3.35.1

Using task to perform various tasks:


# Run tests
$ task test

# Automatically format code using spotless-maven-plugin
$ task format

# Build docker image
$ task build_image

# Run application in docker container
$ task start
$ task stop
$ task restart
Badges
Extracted from project README
CI Build Quality Gate Status Coverage