https://github.com/enkarin/bookcrossingserver
Server implementation for a book exchange application
https://github.com/enkarin/bookcrossingserver
greenmail hacktoberfest java lombok maven spring spring-data-jpa spring-security-jwt testcontainers
Last synced: 3 months ago
JSON representation
Server implementation for a book exchange application
- Host: GitHub
- URL: https://github.com/enkarin/bookcrossingserver
- Owner: EnKarin
- License: mit
- Created: 2021-12-16T09:21:11.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2025-07-27T16:39:07.000Z (3 months ago)
- Last Synced: 2025-07-27T17:40:56.239Z (3 months ago)
- Topics: greenmail, hacktoberfest, java, lombok, maven, spring, spring-data-jpa, spring-security-jwt, testcontainers
- Language: Java
- Homepage:
- Size: 5.03 MB
- Stars: 7
- Watchers: 2
- Forks: 6
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# BookCrossing Server
**BookCrossing** is the implementation of a simple service for the exchange of paper books.[](https://github.com/EnKarin/BookCrossingServer/actions/workflows/build.yml)
[](https://github.com/EnKarin/BookCrossingServer/blob/master/LICENSE "MIT")
[](https://codecov.io/gh/EnKarin/BookCrossingServer)
[](https://sonarcloud.io/summary/new_code?id=io.github.enkarin%3Abookcrossing)
[](https://sonarcloud.io/summary/new_code?id=io.github.enkarin%3Abookcrossing)
[](https://sonarcloud.io/summary/new_code?id=io.github.enkarin%3Abookcrossing)
[](https://dashboard.stryker-mutator.io/reports/github.com/EnKarin/BookCrossingServer/master)### 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
```shell
git clone https://github.com/EnKarin/BookCrossingServer.git
cd BookCrossingServer
./mvnw clean package
```#### Build Docker image
##### With arm64 support
```shell
./mvnw clean package docker:build -DskipTests
```##### Without arm64 support
```shell
./mvnw spring-boot:build-image -DskipTests
```### Running locally
#### Run PostgreSQL database only
```shell
docker-compose --project-name="pg-bookscrossing" up -d
```##### Stop
```shell
docker-compose --project-name="pg-bookscrossing" down
```#### Run application in Docker
```shell
docker-compose --file docker-compose-full.yml --project-name="bookscrossing-full" up -d
```##### Stop
```shell
docker-compose --project-name="bookscrossing-full" down
```### Documentation
[Swagger UI interactive documentation for localhost](https://localhost:8443/swagger-ui.html)## Issue Tracking
Found a bug? Have an idea for an improvement? Feel free to [file an issue](../../issues).