Аренда вещей — это приложение предлагает пользователям возможность арендовать товары, делать бронирование, оставлять отзывы и отправлять запросы на добавление новых товаров, а также делиться своими вещами с другими.
- Пользователи:
- Регистрация, обновление и получение профиля.
- Создание и управление учетными записями.
- Предметы:
- Добавление, обновление и удаление предметов.
- Поиск и просмотр доступных предметов.
- Поиск предметов по запросам пользователей.
- Заявки на аренду:
- Создание, обновление и управление заявками на аренду.
- Обработка запросов на аренду.
- Подтверждение или отклонение бронирований.
- Отзывы и комментарии:
- Оставление комментариев и отзывов после аренды.
- Микросервисная архитектура:
- Приложение построено на двух модулях: шлюз-сервис и основной-сервис.
- Gateway - модуль для первичной валидации пользовательских запросов и их передачи в серверный модуль.
- Server - модуль основной бизнес-логики, обрабатывающий запросы, взаимодействующий с базой данных и отправляющий ответы пользователям.
- Java Core:
- JDK версии 11: Современные возможности для высокого качества и производительности кода.- Фреймворки:
- Spring Boot: Упрощает разработку и развертывание приложений.
- Сетевое взаимодействие:
- REST Api: Легкость и гибкость взаимодействия между клиентом и сервером, используя контроллеры для обработки запросов в формате JSON.
- Валидация и обработка данных:
- Lombok: Упрощает написание кода, генерируя часто используемые конструкции.
- MapStruct: Упрощает маппинг данных между разными слоями приложения.
- Базы данных:
- PostgreSQL: высокая производительность и надежность.
- JPA и Hibernate: упрощают взаимодействие с базами данных через Object-Relational Mapping (ORM).
- Тестирование:
- JUnit: фреймворк для модульного тестирования кода.
- Mockito: библиотека тестирования для имитации зависимостей, через определение поведения @Moc объектов.
- Виртуализация:
- Docker: контейнеризация приложения для упрощенного развертывания и управления средой выполнения.