- Описание проекта
- Особенности архитектуры
- Стек технологий
- Установка и запуск
- Конфигурация
- Тестирование
- Контакты
Сервис Share-It предназначен для обмена (шеринга) вещей между пользователями.
В репозитории реализован бэкенд (серверная часть), обеспечивающий:
- управление пользователями;
- публикацию и каталогизацию вещей, доступных для шеринга;
- обработку запросов на аренду / возврат вещей;
- уведомления / логирование транзакций и действий;
- взаимодействие микросервисов через API Gateway.
Проект является учебным — его задача показать навыки построения микросервисной архитектуры, работы с базами данных, тестирования, деплоя через Docker и т.д.
- Микросервисный подход: разделение функционала на отдельные сервисы.
- API Gateway (
shareit-gateway) для маршрутизации запросов и возможного централизованного контроля/аутентификации. - Сервисная логика и доступ к данным реализованы через Spring Boot + Spring Data JPA.
- СУБД: PostgreSQL.
- Контейнеризация и оркестрация через Docker Compose.
- Тестирование: модульные тесты, интеграционные тесты, покрытие ключевых компонентов (Mockito, JUnit и др.).
| Компонент | Технология / библиотека |
|---|---|
| Язык программирования | Java 17 |
| Фреймворк | Spring Boot, Spring Data JPA |
| СУБД | PostgreSQL |
| Сборщик / управление зависимостями | Maven |
| Контейнеризация | Docker, Docker Compose |
| Тестирование | JUnit, Mockito |
Ниже — шаги, необходимые для развёртывания и запуска проекта на локальной машине.
-
Клонировать репозиторий
git clone https://github.com/Timirlon/share-it.git cd share-it -
Убедиться, что установлен Docker и Docker Compose
-
Создать .env или настроить конфигурацию (см. раздел "Конфигурация")
-
Запуск через Docker Compose docker-compose up --build
-
Локальный запуск вручную
# Сначала запускаем основной сервис cd shareit-server mvn clean install mvn spring-boot:run # Затем gateway cd ../shareit-gateway mvn clean install mvn spring-boot:run
После старта сервисов можно обращаться к API через указанные порты в конфигурации (по умолчанию или настроенные).
| Переменная / параметр | Описание | Пример значения / Замечания |
|---|---|---|
spring.datasource.url |
URL подключения к базе данных | например jdbc:postgresql://localhost:5432/shareitdb |
spring.datasource.username |
Имя пользователя БД | — |
spring.datasource.password |
Пароль к БД | — |
| Порты сервисов | Gateway, сервер и т.п. | Убедиться, что не пересекаются |
| Другие настройки | JWT / безопасность / логирование (если есть) | — |
Замечание: переменные конфигурации могут быть вынесены в .env файл или в application.properties / application.yml, в зависимости от сервиса.
- Запуск юнит-тестов через Maven:
mvn test - Присутствует 100% покрытие тестами функционала основного модуля - shareit-server
- Рекомендуется при внесении изменений добавлять тесты для новых функций / исправлений ошибок.
Если возникнут вопросы — можно связаться с автором через GitHub: Timirlon