Проект представляет собой сервис аренды вещей между пользователями. Пользователи могут добавлять предметы, которые готовы предоставить во временное пользование, находить нужные вещи и бронировать их на определённый период.
Технологический стек: Java 21, Spring Boot, Spring Data JPA, PostgreSQL, H2, Maven, REST, JUnit 5, Mockito, Lombok.
- создание пользователя
- обновление данных пользователя
- получение информации о пользователе
- удаление пользователя
- добавление новой вещи
- редактирование информации о вещи
- получение списка вещей пользователя
- поиск вещей по текстовому запросу
- добавление комментария о вещи только после завершения бронирования
- получение всех комментариев о вещи
- создание бронирования
- подтверждение бронирования владельцем вещи
- получение списка бронирований пользователя и владельца вещи
- создание запроса на необходимую вещь
- получение списка запросов
- просмотр запросов других пользователей
Проект реализован как multi-module Maven приложение и состоит из двух модулей:
- gateway — обработка HTTP запросов и валидация данных
- server — бизнес-логика и работа с базой данных
Проект покрыт несколькими типами тестов.
Тестируют работу контроллеров, обработку HTTP-запросов и проверку валидных и невалидных данных. Используемые инструменты:
- JUnit 5
- MockMvc
- Spring Boot Test
Проверяют корректность преобразования DTO объектов в JSON и обратно. Используемые инструменты:
- @JsonTest
- Jackson ObjectMapper
Проверяют работу сервисного слоя, бизнес-логику приложения и взаимодействие с базой данных. Используемые инструменты:
- SpringBootTest
- H2 Database
- Transactional tests