49 lines
2.6 KiB
Markdown
49 lines
2.6 KiB
Markdown
# ДЗ 2026-04-28 - Веб-сервис умного дома
|
||
|
||
## Цель:
|
||
|
||
Превращаем умный дом в веб-сервис.
|
||
|
||
## Срок:
|
||
|
||
Сдать до: **2026-05-25**
|
||
|
||
## Описание/Пошаговая инструкция выполнения домашнего задания:
|
||
|
||
Реализовать backend сервис для управления умным домом и frontend приложение для взаимодействия с ним.
|
||
|
||
- Технология взаимодействия с backend сервисом (gRPC, REST, GraphQL, ...) выбирается произвольно.
|
||
|
||
API backend сервиса предоставляет доступ ко всему базовому функционалу библиотеки умного дома:
|
||
|
||
- [x] Добавление/удаление/перечисление комнат в доме и получение информации о конкретной комнате.
|
||
- [x] Добавление/удаление/перечисление устройств в комнате и получение информации о конкретном устройстве.
|
||
- [x] Получение отчёта о доме.
|
||
- [x] Присутствуют функциональные тесты, которые общаются с backend-ом и проверяют его ответы.
|
||
|
||
Frontend приложение:
|
||
|
||
- [x] Отображает список комнат в доме.
|
||
- [x] Позволяет перейти к конкретной комнате или добавить новую комнату.
|
||
- [x] Отображает список устройств в комнате.
|
||
- [x] Позволяет перейти к конкретному устройству или добавить новое устройство.
|
||
- [x] Позволяет запросить отчёт о состоянии дома.
|
||
|
||
**Критерии оценки:**
|
||
|
||
- Workspace успешно собирается.
|
||
- Приложения-примеры успешно выполняются.
|
||
- Команды cargo clippy, и cargo fmt --check не выводят ошибок и предупреждений.
|
||
|
||
## Демо
|
||
|
||
Проект разбит на бэкенд и фронтенд. Для демонстрации сначала нужно запустить сервер из подкаталога `baсkend`:
|
||
|
||
cargo run
|
||
|
||
Затем, не останавливая сервер, запустить фронт из подкаталога `frontend`:
|
||
|
||
trunk serve
|
||
|
||
Далее можно переходить в браузер по адресу `http://localhost:8080`.
|