An API to manage water pockets storage and loans between them
- Gradle and Kotlin DSL
- Spring Boot 2.5.1
- SpringDoc OpenAPI
- JDK 11
- Kotlin 1.5
- MySQL 8.0
- H2 Database (for integration testing)
- Docker
- JaCoCo 0.8.7
- Codecov for code coverage reports triggered by Github Actions
- Mockito-Kotlin
To get a local copy up and running follow these simple steps.
-
Clone the repo
git clone https://github.com/danieltex/faerun-app.git
-
Install Java JDK 11+
Follow the installation guide for your OS at Overview of JDK Installation
-
Building the source
./gradlew clean build
-
Build the docker image:
docker build -t faerunapp .
-
Running
Start the database and app with docker compose:
docker-compose up
-
Start the database
docker-compose up db
-
Build and run the application with gradle or start the
FaerunAppApplicationKt
class through your IDE of preference./gradlew bootRun
The application will start on the port 5000
- Create a new water pocket
curl --location --request POST 'http://localhost:5000/water-pockets' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Itaipu",
"storage": 62200000.0
}'
Response:
{
"name": "Itaipu",
"storage": 62200000.0,
"id": 1
}
More examples can be seen at the API Documentation at http://localhost:5000/swagger-ui.html
Project Link: https://github.com/danieltex/faerun-app