# Prompt для Gemini: диаграмма пайплайна IoT Demo ## Задача Создай красивую диаграмму (flowchart/архитектурную схему) пайплайна данных для IoT-демонстрации «Умный дом». Нужна **одна картинка** с 6 блоками сервисов и стрелками между ними. --- ## Сервисы (блоки) ### 1. Producer (верхний левый угол) - **Название:** Producer - **Подпись:** Node.js · Генератор IoT-событий - **Форма:** прямоугольник, синий/голубой (#3B82F6 или похожий) - **Иконка:** ⚙️ или 📡 - **Что делает:** Эмулирует 8 IoT-датчиков (температура °C, влажность %, энергопотребление kW), каждые 3 секунды генерирует случайное JSON-событие ### 2. RabbitMQ (центр-верх) - **Название:** RabbitMQ - **Подпись:** Очередь сообщений · iot-events - **Форма:** прямоугольник, оранжевый (#FF6600 — брендовый цвет RabbitMQ) - **Иконка:** 🐰 или 📬 - **Что делает:** Буфер сообщений AMQP. Принимает от Producer, отдаёт Consumer. Durable — не теряет при рестарте. ### 3. Consumer (правый верхний) - **Название:** Consumer - **Подпись:** Node.js · Обработчик - **Форма:** прямоугольник, зелёный (#10B981) - **Иконка:** 📥 или 🔄 - **Что делает:** Читает очередь RabbitMQ, параллельно пишет в Redis и MongoDB ### 4. Redis (левый-центр, под Producer) - **Название:** Redis - **Подпись:** Кэш · latest + counters + recent - **Форма:** прямоугольник, красный (#DC2626 — брендовый цвет Redis) - **Иконка:** ⚡ или 🗄️ - **Что делает:** Оперативный кэш для Dashboard. Хранит: последние значения датчиков (hash), счётчики по типам (hash), ленту 1000 событий (zset). ### 5. MongoDB (центр-низ) - **Название:** MongoDB - **Подпись:** Архив · TTL 7 дней - **Форма:** прямоугольник, тёмно-зелёный (#00684A — брендовый цвет MongoDB) - **Иконка:** 🍃 или 💾 - **Что делает:** Постоянный архив всех событий в коллекции iot_events. Автоудаление через 7 дней (TTL-индекс). ### 6. Dashboard (правый-низ) - **Название:** Dashboard - **Подпись:** Node.js + Chart.js · Веб-интерфейс - **Форма:** прямоугольник, фиолетовый (#8B5CF6) - **Иконка:** 📊 или 🖥️ - **Что делает:** Читает Redis, отдаёт JSON API и HTML с графиками. Bar chart (значения), Doughnut (счётчики), таблица событий. Автообновление каждые 3 сек. --- ## Стрелки (потоки данных) | От | К | Протокол | Подпись на стрелке | |---|---|---|---| | Producer | RabbitMQ | AMQP (порт 5672) | JSON-события → очередь iot-events | | RabbitMQ | Consumer | AMQP (порт 5672) | JSON-события ← очередь iot-events | | Consumer | Redis (latest) | TCP (порт 6379) | HSET sensor_id → значение | | Consumer | Redis (counters) | TCP (порт 6379) | HINCRBY device_type | | Consumer | Redis (recent) | TCP (порт 6379) | ZADD лента событий | | Consumer | MongoDB | TCP (порт 27017) | insertOne → коллекция iot_events | | Redis | Dashboard | TCP (порт 6379) | HGETALL + ZRANGE (только чтение) | --- ## Расположение на схеме ``` Producer ──→ RabbitMQ ──→ Consumer │ ┌──────────────┼──────────────┐ ↓ ↓ ↓ Redis MongoDB Redis (latest, (архив) (counters, recent) ...) │ │ │ └──────────────┼──────────────┘ ↓ Dashboard ``` --- ## Стиль - **Тёмный фон** (#0F172A или похожий) — как у самого дашборда - **Блоки** с закруглёнными углами (border-radius 8–12px) - **Цвета блоков** — брендовые цвета каждого сервиса (см. выше) - **Текст в блоках** — белый или светлый - **Стрелки** — с подписями протоколов (AMQP, TCP) и названиями данных - **Иконки** в блоках приветствуются - **Легенда** внизу: протоколы (AMQP — оранжевая стрелка, TCP — серая стрелка) - Заголовок схемы: «IoT Demo — Умный дом» и подзаголовок «6 сервисов Nubes Cloud» --- ## Дополнительно Можно добавить разделительную линию (или фон) показывающую, что все сервисы внутри Kubernetes-кластера, а наружу торчит только Dashboard (HTTP/HTTPS) и Producer/Consumer (для health-check). --- ## Формат Сгенерируй **SVG** или **PNG**, который можно вставить в README.md.