Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
Приложение для сдачи в аренду вещей
- Host: GitHub
- URL: https://github.com/kapetrosyan1/java-shareit
- Owner: kapetrosyan1
- Created: 2024-02-19T16:09:52.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-06-28T16:36:00.000Z (4 months ago)
- Last Synced: 2024-09-30T13:23:59.562Z (about 1 month ago)
- Topics: docker, hibernate, java-11, junit, maven, mockito, postgresql, spring-boot, webclient-springboot
- Language: Java
- Homepage:
- Size: 93.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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)