Skip to content

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

Notifications You must be signed in to change notification settings

1EVILGUN1/java-shareit

Repository files navigation

ShareIt - сервис совместного использования вещей 🛠️📦

Shareit Banner

О проекте

ShareIt - это микросервисное Spring Boot приложение для организации шеринга вещей между пользователями. Сервис решает проблему временного доступа к предметам без необходимости их покупки.

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

  • Аренда вещей на определенный период
  • Управление списком доступных предметов
  • Система бронирования с защитой от двойного бронирования
  • Запросы на отсутствующие в системе вещи

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

Основные технологии

Компонент Технология
Бэкенд Java 21, Spring Boot 3.x
База данных PostgreSQL 16
Контейнеризация Docker
Сборка Maven

Зависимости проекта

<dependencies>
    <!-- Spring Boot -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-validation</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    
    <!-- Вспомогательные -->
    <dependency>
        <groupId>org.hibernate.validator</groupId>
        <artifactId>hibernate-validator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.httpcomponents.client5</groupId>
        <artifactId>httpclient5</artifactId>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    
    <!-- Тестирование -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

🚀 Запуск проекта

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

  • JDK 21+
  • Docker и Docker Compose
  • Maven 3.8+

Инструкция по развертыванию

  1. Собрать проект:
mvn clean package
  1. Запустить контейнеры:
docker-compose up -d

Сервисы будут доступны:

📡 API Endpoints

Основные конечные точки:

  • /users - управление пользователями
  • /items - работа с предметами
  • /bookings - бронирование вещей
  • /requests - запросы на новые предметы

🧪 Тестирование

Проект включает:

  • Юнит-тесты с Mockito
  • Интеграционные тесты
  • Проверка качества кода через:
    • Checkstyle
    • SpotBugs
    • JaCoCo (покрытие кода)

🔮 Планы по развитию

  1. Авторизация и безопасность:

    • Добавить JWT аутентификацию
    • Реализовать ролевую модель (USER, ADMIN)
  2. Улучшения API:

    • Пагинация для эндпоинтов
    • Расширенный поиск с фильтрами
  3. Оптимизации:

    • Кеширование с Redis
    • Асинхронная обработка запросов
  4. Мониторинг:

    • Prometheus + Grafana
    • Логирование в ELK-стек

📄 Конфигурация

Основные настройки:

# Server
server.port=9090
spring.datasource.url=jdbc:postgresql://localhost:6541/shareit
spring.datasource.username=shareit
spring.datasource.password=shareit

# Gateway
shareit-server.url=http://localhost:9090

📦 Структура проекта

shareit/
├── gateway/        # API Gateway
├── server/         # Основной сервис
└── docker-compose.yml

About

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

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published