PWA-приложение для управления фонариками телефонов на стадионе — создание световых волн и шоу.
- Frontend: React + Vite + Tailwind CSS + shadcn/ui
- Backend: Express + WebSocket
- БД: SQLite (Drizzle ORM)
- QR-коды: Python-скрипт генерации
Овальная арена с 3 ярусами:
| Ярус | Секторы | Количество |
|---|---|---|
| Ярус 1 (внутренний) | 101–156 | 56 |
| VIP-ложи | — | визуальный слой |
| Ярус 3 (внешний) | 201–268 | 68 |
| Трибуна | Сторона | Цвет | Ярус 1 | Ярус 3 |
|---|---|---|---|---|
| A | Юг | Жёлтый | 101–116 (16) | 201–216 (16) |
| B | Запад | Синий | 145–156 (12) | 253–268 (16) |
| C | Север | Розовый | 129–144 (16) | 233–252 (20) |
| D | Восток | Зелёный | 117–128 (12) | 217–232 (16) |
- Световая волна — по часовой/против часовой стрелки, север-юг, восток-запад, случайная
- Толщина волны — от 1 сектора до целой трибуны
- Цикл — бесконечное повторение с мягкой остановкой
- Моргнуть всеми — одновременная вспышка всего стадиона
- Аппаратный фонарик — использование Torch API камеры, экранная вспышка как фоллбэк
- Синхронизация ярусов — секторы 3-го яруса мигают синхронно с 1-м ярусом
npm install
npm run devnpm run build
# Скопировать dist/ на серверcd qr-generator
pip install qrcode pillow
python generate_qr.pyГенерирует 124 QR-кода (56 ярус 1 + 68 ярус 3) в папку qr_codes/.