Техническое задание: PWA приложение для видеозвонков
Необходимо создать Progressive Web Application (PWA) на основе React и TypeScript для мобильного использования. Приложение должно поддерживать видеозвонки (WebRTC), текстовый чат, таймер баланса, систему подарков и push-уведомления.
Основные требования к функционалу
1. Видеозвонки и чат
- Реализация WebRTC для peer-to-peer видеозвонков на устройствах iOS/Android (в вебе).
- Low-latency видео трансляция с оптимизацией под разные браузеры.
- Текстовый чат реального времени с отображением истории и статуса.
- Управление микрофоном и камерой, возможность переключения между передней/задней камерой.
2. Интерфейс и опыт
- Mobile-first макет: все экраны адаптированы под мобильные устройства и десктоп (responsive дизайн).
- Страницы: лендинг, профили пользователей (настройки и статистика), гостевой режим (вход без регистрации), админ-панель (управление пользователями и балансом).
- Таймер баланса: отслеживание времени, потраченного на платные звонки, с визуальным индикатором и предупреждениями.
3. Система подарков и уведомлений
- Возможность отправлять платные или бесплатные подарки через интерфейс с привязанными фантиками/множителями.
- Push-уведомления (Web Push API) для событий: входящий звонок, сообщение или подарок, баланс на нуле.
4. Технические аспекты
- Интеграция WebSockets для обмена сигналами WebRTC и синхронизации чата.
- Оптимизация видео: адаптивный битрейт, поддержка кодека VP8/VP9/H264 на iOS и Android в стандартных пользователях Safari и Chrome.
- PWA метаданные (манифест, service worker для кеширования) с возможностью ‘установки’ на домашний экран телефонов.
- Работа с устройствами (камера/микрофон) - обработка временной блокировки и запросов разрешений на iOS.
Целевая аудитория
- Организации, нуждающиеся в простых видеозвонках без регистрации или с упрощённой административкой.
- Пользователи со слабым интернетом - требует low-latency потоковая передача.
- Система работает полностью в PWA, без нативных фреймворков, используя только сертификат HTTPS.