https://github.com/kotelnikovav/smart-home
Repository for studying cloud technologies
https://github.com/kotelnikovav/smart-home
docker grpc hibernate-orm java kafka maven postgresql rest spring-boot spring-cloud
Last synced: 10 months ago
JSON representation
Repository for studying cloud technologies
- Host: GitHub
- URL: https://github.com/kotelnikovav/smart-home
- Owner: KotelnikovAV
- Created: 2024-10-18T13:40:15.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-09T07:36:57.000Z (over 1 year ago)
- Last Synced: 2025-02-22T04:28:20.601Z (over 1 year ago)
- Topics: docker, grpc, hibernate-orm, java, kafka, maven, postgresql, rest, spring-boot, spring-cloud
- Language: Java
- Homepage:
- Size: 211 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Приложение SmartHome.
## 1. Описание проекта.
### 1.1 Идея приложения.
SmartHome — это приложение, объединяющее интернет-магазин оборудования для умного дома и платформу
анализа телеметрии датчиков. Нацеленное на удобство и функциональность, приложение позволяет пользователям не
только приобретать необходимые устройства, но и эффективно управлять их работой, обеспечивая безопасность и
комфорт.
Основная цель данного проекта - изучение и применение на практике Spring Cloud и Kafka.
### 1.2 Основная функциональность приложения.
Приложение состоит из двух частей: небольшой интернет-магазин оборудования для умного дома, платформа для анализа
телеметрии датчиков умного дома.
Основная функциональность интернет-магазина:
- модуль shopping-store — представляет собой витрину товаров, из которых пользователи выбирают товары для заказа;
- модуль shopping-cart — отвечает за работу с корзиной пользователей. Пользователи будут добавлять товары в корзину,
чтобы сделать заказ;
- модуль order — работает с заказами пользователей, оформляет их;
- модуль warehouse — отвечает за склад;
- модуль payment — в этом сервисе сосредоточена логика, связанная с оплатой заказов;
- модуль delivery — ответственен за доставку готовых заказов пользователям.
Основная функциональность платформы для анализа телеметрии:
- обрабатывает данные со всех проданных датчиков;
- трансформирует их в нужный формат;
- хранит описание сценариев: какую команду запустить и при каких показателях от конкретных датчиков;
- определяет необходимость запуска этих сценариев.
### 1.3 Стек используемых технологий.
Основные технологии и инструменты, используемые в данном проекте:
- Java (Amazon Corretto 21.0.6);
- Maven;
- Spring Boot;
- Spring Cloud;
- PostgreSQL;
- Hibernate ORM;
- Docker;
- Kafka;
- REST;
- gRPC.
## 2. Инструкция по развертыванию проекта.
Для запуска приложения необходимо:
- склонировать проект: https://github.com/KotelnikovAV/plus-smart-home-tech.git;
- открыть проект с помощью IntelliJ IDEA и выполнить команду mvn package;
- запустить исполнение файла compose.yml.
После успешного исполнения файла docker-compose.yml приложение будет доступно на порту 8080.
## 3. Техническая документация проекта.
Спецификация API в формате openapi:
- модуль shopping-store — [shopping-store-spec.json](https://github.com/user-attachments/files/18723601/shopping-store-spec.json);
- модуль shopping-cart — [shopping-cart-spec.json](https://github.com/user-attachments/files/18723603/shopping-cart-spec.json);
- модуль order — [order-spec.json](https://github.com/user-attachments/files/18723604/order-spec.json);
- модуль warehouse — [warehouse-spec.json](https://github.com/user-attachments/files/18723606/warehouse-spec.json);
- модуль payment — [payment-spec.json](https://github.com/user-attachments/files/18723607/payment-spec.json);
- модуль delivery — [delivery-spec.json](https://github.com/user-attachments/files/18723608/delivery-spec.json);
- модуль telemetry - [telemetry-spec.json](https://github.com/user-attachments/files/18723609/telemetry-spec.json).