Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wkrzywiec/library-hexagonal
An example application written in Hexagonal (Ports and Adapter) architecture
https://github.com/wkrzywiec/library-hexagonal
cqrs ddd docker docker-compose domain-driven-design hexagonal-architecture java-11 ports-and-adapters postgres spring-boot tdd
Last synced: 15 days ago
JSON representation
An example application written in Hexagonal (Ports and Adapter) architecture
- Host: GitHub
- URL: https://github.com/wkrzywiec/library-hexagonal
- Owner: wkrzywiec
- Created: 2020-04-29T18:41:36.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-07-27T10:09:25.000Z (4 months ago)
- Last Synced: 2024-09-30T14:11:02.119Z (about 1 month ago)
- Topics: cqrs, ddd, docker, docker-compose, domain-driven-design, hexagonal-architecture, java-11, ports-and-adapters, postgres, spring-boot, tdd
- Language: Java
- Homepage:
- Size: 9.93 MB
- Stars: 260
- Watchers: 8
- Forks: 55
- Open Issues: 47
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Library
> written in *Hexagonal (Ports & Adapters) Architecture*![Master Branch](https://github.com/wkrzywiec/library-hexagonal/workflows/Master%20Branch/badge.svg?branch=master) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=wkrzywiec_library-hexagonal&metric=alert_status)](https://sonarcloud.io/dashboard?id=wkrzywiec_library-hexagonal) [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=wkrzywiec_library-hexagonal&metric=coverage)](https://sonarcloud.io/dashboard?id=wkrzywiec_library-hexagonal) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
This is a small application that provides basic REST endpoints for managing library (add new book, reserve, borrow it, etc.).
The technology behind it:
* Java 11
* Postgres
* Spring Boot## Installing / Getting started
#### Using `docker-compose`
In the terminal run the following command:
```console
$ docker-compose up
```#### Using Maven (with H2 or local Postgres database)
First compile an application:
```console
$ mvn clean package
```Then, you have two options either run it with H2 database or with local Postgres database. For first approach just run:
```console
$ mvn spring-boot:run
```For a second option, check in the configuration file - `src/main/resources/application.yml` for profile *local-postgres* if connection details are correct and if so, run the command:
```console
$ mvn spring-boot:run -P local-postgres
```#### Inside IntelliJ (with H2 or Postgres database)
First configure how you run the `LibraryHexagonalApplication.java` by adding `--spring.profiles.active=h2` (for H2 database) or `--spring.profiles.active=postgres` (for Postgres database) as a **Program argument**.
Then just run the `LibraryHexagonalApplication.java` class so it will use H2 database (you don't need to have postgres database up and running).