ShareIt — это бэкенд-сервис для шеринга вещей, который позволяет пользователям брать в аренду различные предметы друг у друга без необходимости их приобретения.
- Регистрация пользователей и управление профилями
- Добавление вещей для аренды с описанием и статусом доступности
- Бронирование вещей на определённые даты
- Подтверждение/отклонение бронирований владельцами вещей
- Поиск вещей по названию и описанию
- Система запросов на добавление новых вещей
- Комментирование после использования арендованных вещей
- Java 21 с Spring Boot
- Maven для сборки проекта
- Spring MVC для REST API
- Hibernate/JPA для работы с базой данных
- H2 Database
- Lombok для сокращения boilerplate-кода
- Docker для контейнеризации
- JUnit 5 для тестирования
Проект использует микросервисную архитектуру и состоит из двух основных модулей:
- Обрабатывает входящие HTTP-запросы
- Выполняет валидацию данных
- Маршрутизирует запросы к основному серверу
- Обрабатывает исключения и формирует ответы
- Содержит основную бизнес-логику
- Работает с базой данных
- Обрабатывает бронирования, вещи, пользователей и запросы
- Предоставляет REST API для внутреннего использования
- Java 21 или выше
- Maven 3.6+
- Docker и Docker Compose (для запуска в контейнерах)
После запуска сервисы будут доступны по следующим адресам:
- Gateway: http://localhost:8080
- Server: http://localhost:9090
После запуска вы можете использовать Postman-коллекцию из папки postman/sprint.json для тестирования API.
POST /users— создание пользователяGET /users/{userId}— получение пользователя по IDPATCH /users/{userId}— обновление пользователяDELETE /users/{userId}— удаление пользователя
POST /items— создание вещиGET /items/{itemId}— получение вещи по IDPATCH /items/{itemId}— обновление вещиGET /items— получение всех вещей пользователяGET /items/search— поиск вещейPOST /items/{itemId}/comment— добавление комментария
POST /bookings— создание бронированияPATCH /bookings/{bookingId}— подтверждение/отклонение бронированияGET /bookings/{bookingId}— получение бронирования по IDGET /bookings— получение бронирований пользователяGET /bookings/owner— получение бронирований владельца
POST /requests— создание запросаGET /requests— получение запросов пользователяGET /requests/all— получение всех запросовGET /requests/{requestId}— получение запроса по ID
💡 Проект разработан в учебных целях для освоения современных подходов к разработке бэкенд-приложений на Java с использованием Spring Boot и микросервисной архитектуры.