Skip to content

vl4ks/java-shareit

Repository files navigation

ShareIt — Сервис для шеринга вещей

ShareIt — это бэкенд-сервис для шеринга вещей, который позволяет пользователям брать в аренду различные предметы друг у друга без необходимости их приобретения.

📌 Основной функционал

  • Регистрация пользователей и управление профилями
  • Добавление вещей для аренды с описанием и статусом доступности
  • Бронирование вещей на определённые даты
  • Подтверждение/отклонение бронирований владельцами вещей
  • Поиск вещей по названию и описанию
  • Система запросов на добавление новых вещей
  • Комментирование после использования арендованных вещей

🛠 Технологический стек

  • Java 21 с Spring Boot
  • Maven для сборки проекта
  • Spring MVC для REST API
  • Hibernate/JPA для работы с базой данных
  • H2 Database
  • Lombok для сокращения boilerplate-кода
  • Docker для контейнеризации
  • JUnit 5 для тестирования

🏗 Архитектура проекта

Проект использует микросервисную архитектуру и состоит из двух основных модулей:

1. Gateway (shareit-gateway)

  • Обрабатывает входящие HTTP-запросы
  • Выполняет валидацию данных
  • Маршрутизирует запросы к основному серверу
  • Обрабатывает исключения и формирует ответы

2. Server (shareit-server)

  • Содержит основную бизнес-логику
  • Работает с базой данных
  • Обрабатывает бронирования, вещи, пользователей и запросы
  • Предоставляет REST API для внутреннего использования

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

  • Java 21 или выше
  • Maven 3.6+
  • Docker и Docker Compose (для запуска в контейнерах)

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

✅ Проверка работоспособности

После запуска вы можете использовать Postman-коллекцию из папки postman/sprint.json для тестирования API.

🌐 API Endpoints

Пользователи (/users)

  • POST /users — создание пользователя
  • GET /users/{userId} — получение пользователя по ID
  • PATCH /users/{userId} — обновление пользователя
  • DELETE /users/{userId} — удаление пользователя

Вещи (/items)

  • POST /items — создание вещи
  • GET /items/{itemId} — получение вещи по ID
  • PATCH /items/{itemId} — обновление вещи
  • GET /items — получение всех вещей пользователя
  • GET /items/search — поиск вещей
  • POST /items/{itemId}/comment — добавление комментария

Бронирования (/bookings)

  • POST /bookings — создание бронирования
  • PATCH /bookings/{bookingId} — подтверждение/отклонение бронирования
  • GET /bookings/{bookingId} — получение бронирования по ID
  • GET /bookings — получение бронирований пользователя
  • GET /bookings/owner — получение бронирований владельца

Запросы (/requests)

  • POST /requests — создание запроса
  • GET /requests — получение запросов пользователя
  • GET /requests/all — получение всех запросов
  • GET /requests/{requestId} — получение запроса по ID

💡 Проект разработан в учебных целях для освоения современных подходов к разработке бэкенд-приложений на Java с использованием Spring Boot и микросервисной архитектуры.

About

ShareIt — это бэкенд-сервис для шеринга вещей, который позволяет пользователям брать в аренду различные предметы друг у друга без необходимости их приобретения.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors