Skip to content

SHAREit is a service that allows users to rent things and share their own. The platform is implemented on the basis of a microservice architecture, which provides flexibility and scalability. , Project architectureTemplate repository for ShareIt project.

Notifications You must be signed in to change notification settings

ViktorSalk/java-shareit

Repository files navigation

🛠 ShareIt — Микросервис для шеринга вещей

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

Проект состоит из двух основных микросервисов:

Основной сервис (shareit-server)

    Управление пользователями

    Добавление, поиск и бронирование вещей

    Обработка запросов на аренду

    Комментарии к вещам

Сервис шлюза (shareit-gateway)

    Маршрутизация запросов

    Валидация данных

    Балансировка нагрузки

⚙️ Технологический стек Технология Назначение Java 17 Основной язык разработки Spring Boot Создание микросервисов PostgreSQL Хранилище данных Docker Контейнеризация Maven Управление зависимостями и сборка Hibernate ORM для работы с БД REST API Взаимодействие между сервисами 📡 Основные Endpoint'ы 🔍 Public API (Публичный доступ)

Вещи

GET /items — получить список доступных вещей

GET /items/{id} — получить информацию о вещи

GET /items/search?text={query} — поиск вещей по названию/описанию

Пользователи

GET /users/{id} — получить информацию о пользователе

👤 Private API (Для авторизованных пользователей)

Вещи

POST /items — добавить новую вещь

PATCH /items/{id} — обновить информацию о вещи

DELETE /items/{id} — удалить вещь

Бронирование

POST /bookings — создать запрос на бронирование

PATCH /bookings/{id}?approved={true/false} — подтвердить/отклонить бронь

GET /bookings/{id} — получить информацию о бронировании

Комментарии

POST /items/{id}/comment — добавить отзыв о вещи

🛠 Admin API (Для администраторов)

Пользователи

GET /users — список всех пользователей

POST /users — добавить пользователя

DELETE /users/{id} — удалить пользователя

💡 Ключевая бизнес-логика

✅ Бронирование вещей

Можно бронировать только доступные вещи

Владелец вещи не может бронировать свою же вещь

Бронирование возможно только на будущие даты

✅ Комментарии

Отзывы можно оставлять только после завершения бронирования

Длина комментария ограничена (например, 2–1000 символов)

✅ Поиск вещей

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

Результаты возвращаются с пагинацией

🔐 Безопасность

Авторизация через JWT

Пользователи могут редактировать только свои вещи

Администраторы имеют доступ к управлению пользователями

� Цель проекта

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

About

SHAREit is a service that allows users to rent things and share their own. The platform is implemented on the basis of a microservice architecture, which provides flexibility and scalability. , Project architectureTemplate repository for ShareIt project.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •