Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/kapetrosyan1/java-shareit

Приложение для сдачи в аренду вещей
https://github.com/kapetrosyan1/java-shareit

docker hibernate java-11 junit maven mockito postgresql spring-boot webclient-springboot

Last synced: 26 days ago
JSON representation

Приложение для сдачи в аренду вещей

Awesome Lists containing this project

README

        

# java-shareit
Мое первое многомодульное приложение, состоящее из двух микросервисов.

В данном приложении пользователи могут сдавать в аренду свои вещи, а также оставлять запросы на добавление новых вещей, которые они бы хотели взять в аренду.

_**Используемый стэк**_: Spring Boot, JUnit, Mockito, RestTemplate, Hibernate, Maven, SQL, PostgreSQL, Postman
# Функциональность
Приложение состоит из двух микросервисов:
- gateway (микросервис, который осуществляет валидацию входных данных, после чего перенаправляет запрос в основной сервис посредством Rest Template)
- server (основной сервис, в котором реализована основаня функциональность)

Основной функционал приложения:
- Создание, обновление и удаление пользователей
- Получение пользователей
- Всех
- По идентификатору
- Создание запроса на добавление вещи
- Получение запросов на добавление вещи (всех либо получение по идентификатору)
- Добавление, обновление и удаление вещей
- Поиск вещей
- Всех
- По идентификатору
- По владельцу
- По названию либо описанию вещи
- Добавление комментария к вещи пользователем, который ее бронировал
- Добавление запроса на бронирование вещи
- Подтверждение либо отклонение запроса на бронирование собственником вещи
- Поиск бронирований
- По идентификатору
- По арендатору и статусу бронирования (пользователь может видеть только свои бронирования)
- По собственнику вещи и статусу бронирования (пользователь может видеть бронирования только к своим вещам)
# Тестирование
Свыше 90% кода покрыты тестами. При написании тестов использовалась библиотека Mockito. Кроме того, было написано 3 интеграционных теста.
# Диаграмма базы данных
![ShareIt diagram](https://github.com/kapetrosyan1/java-shareit/assets/127433632/fcba7a15-74f5-4693-8209-eaccee891e74)