Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

🍃 The Sharing Items microservices backend application.

Notifications You must be signed in to change notification settings

antbaranov/java-shareit

Repository files navigation

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

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

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

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

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

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

  1. Добавление вещи в каталог владельцем для сдачи в аренду (возможность добавить как по запросу пользователями такой вещи, так и самостоятельно).
  2. Редактирование информации о вещи ее владельцем (пользователем добавившим эту вещь).
  3. Просмотр информации о конкретной вещи любым пользователем.
  4. Просмотр владельцем списка всех его вещей.
  5. Поиск доступных для аренды вещей (по тексту).
  6. Добавление запроса на бронирование (возможность брать вещи в аренду на определенные даты) любым пользователем.
  7. Подтверждение или отклонение запроса на бронирование владельцем вещи.
  8. Получение информации о конкретном бронировании автором запроса или владельцем вещи.
  9. Получение списка бронирований автором запроса (фильтрация по статусу, сортировка от новых к старым).
  10. Получение списка бронирований для всех вещей владельца.
  11. Пользователи могут оставлять отзывы в форме комментариев на использованную вещь по окончании аренды.
  12. Пользователи могут просматривать комментарии других пользователей.
  13. Добавление нового запроса вещи. Например, если требуемая вещь отсутствует в каталоге.
  14. Получение списка всех запросов автором с данными об ответах на них (сортировка от новых к старым).
  15. Получение списка запросов других пользователей (сортировка от новых к старым).
  16. Просмотр информации любым пользователем о конкретном запросе вещи вместе с данными об ответах на него.

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

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

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

Для удобства дальнейшей разработки и расширения приложения в модуле бизнес-логики объекты DTO выделены в отдельный субмодуль api: shareit-server-api. Кроме того, в сервисе статистики для обращения к слою бизнес-логики, реализован базовый механизм клиента, построенный на Спринговом RestTemplate.


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

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

Тесты расположены здесь:

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

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

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

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

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


About

🍃 The Sharing Items microservices backend application.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /