Skip to content

Server implementation for a book exchange application

License

Notifications You must be signed in to change notification settings

EnKarin/BookCrossingServer

Repository files navigation

BookCrossing Server

BookCrossing is the implementation of a simple service for the exchange of paper books.

Java CI GitHub codecov Coverage Lines of Code Code Smells Mutation testing badge

Requirements

  1. Java 17 and above
  2. Maven
  3. PostgreSQL

The service provides the following functions:

  • User registration/authorization
  • List of users
  • Updating profile data
  • Adding/removing a book description
  • List of books
  • Basic messenger
  • Bookmarks
  • Administrative functions for blocking/unblocking users

Building

git clone https://github.com/EnKarin/BookCrossingServer.git
cd BookCrossingServer
./mvnw clean package

Build Docker image

With arm64 support
./mvnw clean package docker:build -DskipTests
Without arm64 support
./mvnw spring-boot:build-image -DskipTests

Running locally

Run PostgreSQL database only

docker-compose --project-name="pg-bookscrossing" up -d
Stop
docker-compose --project-name="pg-bookscrossing" down

Run application in Docker

docker-compose --file docker-compose-full.yml --project-name="bookscrossing-full" up -d
Stop
docker-compose --project-name="bookscrossing-full" down

Documentation

Swagger UI interactive documentation for localhost

Issue Tracking

Found a bug? Have an idea for an improvement? Feel free to file an issue.