Skip to content

OmatthewY/java-shareit

Repository files navigation

ShareIt Сервис совместного использования вещей

Функционал программы

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

Программа включает в себя два микросервиса:

  1. Основной — содержит всё необходимое для работы продукта.
  2. Гейтвей-шлюз — производит валидацию входящих запросов, фильтруя некорректные запросы.

Основной микросервис реализует следующие возможности для пользователей:

  • Добавление вещи в каталог владельцем для сдачи в аренду (возможность добавить как по запросу пользователями такой вещи, так и самостоятельно).
  • Редактирование информации о вещи ее владельцем (пользователем добавившим эту вещь).
  • Просмотр информации о конкретной вещи любым пользователем.
  • Просмотр владельцем списка всех его вещей.
  • Поиск доступных для аренды вещей (по тексту).
  • Добавление запроса на бронирование (возможность брать вещи в аренду на определенные даты) любым пользователем.
  • Подтверждение или отклонение запроса на бронирование владельцем вещи.
  • Получение информации о конкретном бронировании автором запроса или владельцем вещи.
  • Получение списка бронирований автором запроса (фильтрация по статусу, сортировка от новых к старым).
  • Получение списка бронирований для всех вещей владельца.
  • Пользователи могут оставлять отзывы в форме комментариев на использованную вещь по окончании аренды.
  • Пользователи могут просматривать комментарии других пользователей.
  • Добавление нового запроса вещи. Например, если требуемая вещь отсутствует в каталоге.
  • Получение списка всех запросов автором с данными об ответах на них (сортировка от новых к старым).
  • Получение списка запросов других пользователей (сортировка от новых к старым).
  • Просмотр информации любым пользователем о конкретном запросе вещи вместе с данными об ответах на него.

🧩 Стек-технологий и опыт разработки 🧩

Проект в своей основе включает Java Core, Spring Boot Framework и возможности развертывания в сборке от Maven в контейнерах с использованием Docker. Программа представляет собой микросервис с архитектурой REST API.

Микросервис состоит из двух модулей:

  • shareit-server — отвечает за базовую и дополнительную бизнес-логику, ядро приложения;
  • shareit-gateway — служит в качестве шлюза приложения для валидации входящих запросов.

Системные требования

В данном репозитории представлен бэкенд приложения. Работоспособность приложения протестирована с помощью модульных и интеграционных тестов. Также программа протестирована по WEB API с помощью Postman-тестов.

Приложение работает корректно в текущем виде при наличии:

ERD-диаграмма

shareit

Упаковать и запустить приложение можно следующим образом:

  1. mvn clean install (сборка)
  2. docker-compose up (упаковка и запуск)

Про переменные окружения контейнеров:

Используемое время в контейнерах можно изменить при необходимости. Перед сборкой/упаковкой следует переписать переменные окружения времени (TZ - время контейнера, PGTZ - время базы данных) в файле docker-compose.yaml на требующееся значение по классификации Olson time zone database: например, TZ=Asia/Kuala_Lumpur - время для г. Куала-Лумпур (Малайзия).