Техническое задание: Интерактивное меню для Smart TV
Ключевая цель
Создать полноэкранное интерактивное меню для отображения на телевизоре, которое автоматически запускается при включении системы и работает полностью автономно, без необходимости подключения к интернету.
Требования к системе
Операционная система и отображение
- ОС: Linux (без графического рабочего стола).
- Все необходимые сервисы запускаются автоматически при загрузке.
- Интерфейс отображается через браузер Chromium в kiosk-режиме (полноэкранно, без элементов пользовательского интерфейса браузера).
- Браузер должен автоматически стартовать и открывать локальный адрес веб-приложения.
Формат и интерфейс приложения
- Приложение - одностраничное (SPA) на React.
- Запрещена любая прокрутка страницы.
- Интерфейс рассчитан на один экран с разрешением Full HD и должен включать:
- Блок с категориями.
- Блок с позициями меню.
- Один промо-блок для акций.
- Все данные (меню, акции) загружаются из локального JSON-файла.
- Обновление данных на экране должно происходить динамически, без перезагрузки страницы.
Анимации
- Использовать платформу Rive.app для анимаций.
- Анимация должна быть в формате .riv.
- Управление анимацией осуществляется через State Machine (Машину состояний).
- Состояния анимации задаются и изменяются через данные из JSON-файла.
Серверная часть (Backend)
- Использовать фреймворк FastAPI.
- Сервер запускается локально на устройстве (например, Raspberry Pi).
- Требуется реализовать один endpoint (эндпоинт) для отдачи актуального JSON с данными меню и состояний акций.
Режим работы
- Полностью офлайн-режим. Все файлы (код, данные, анимации) хранятся и работают локально.
- Подключение к интернету не требуется для основной функциональности.
Что НЕ входит в проект (не является частью MVP)
- Система управления (CRM).
- Интеграция с искусственным интеллектом (ИИ).
- Медиапланирование.
- Функционал удаленного управления сетью экранов.
Критерий завершенности проекта
После подачи питания на телевизор и устройство, система должна автоматически загрузиться и отобразить анимированное меню. Любые изменения, внесенные в конфигурационный JSON-файл, должны немедленно (или после короткого цикла обновления) отражаться на экране без необходимости перезагрузки устройства или приложения.