Skip to content
/ vlorp Public

A small REST API built with Spring Boot, Spring Web, Kotlin, JPA, H2, JUnit 5, and JDK 11.

Notifications You must be signed in to change notification settings

Tim-Rapp/vlorp

Repository files navigation

Vlorp

This was a take-home coding exercise for an interview where the task was to build a REST API with CRUD operations that writes data to an in-memory database, using all the technologies listed below:

Kotlin, Spring Boot, Spring Web, JPA, H2 (in-memory db), JUnit 5, Mockito, and Gradle.

If this was destined to be a production app, next steps would include:

  • more features
  • lots more tests. Unit, functional, end-to-end
  • input validation
  • ktlint
  • change from in-memory to persisted db
  • specify dependency versions in build.gradle
  • enable spring boot monitoring

and might include:

  • document the API (e.g., Swagger)
  • change server
  • create a UI and/or a reference client

Docker

To build image and run with docker, use ./gradlew clean jibDockerBuild && docker-compose up --build --remove-orphans Google's jib plugin pushes the image it builds to docker registry (run docker images to see a list) Container entrypoint set to [java, -cp, /app/resources:/app/classes:/app/libs/*, timrapp.springbootjpah2.vlorp.VlorpApplicationKt]

Redis

Docker starts a Redis container, but it's not used by the app. Yet.

Ktlint

Using Ktlint 0.36 and org.jlleitschuh.gradle.ktlint gradle plugin.

About

A small REST API built with Spring Boot, Spring Web, Kotlin, JPA, H2, JUnit 5, and JDK 11.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages