Разработка web сайта стриминг сервиса
Функциональные требования:
1 Регистрация и аутентификация пользователей.
2 Реализовать функционал пополнения баланса аккаунта и вывода средств с помощью предложенных платёжных сервисов.
3 Просмотр контента. Любой пользователь должен иметь возможность просматривать любой доступный ему стрим на сервисе в real time режиме.
4 Любой пользователь должен иметь возможность начать трансляцию, поделиться ею и интерактивно взаимодействовать со зрителями.
5 Во время просмотра стрима, зрители должны иметь возможность отправлять микро-донаты стримеру в реальном времени и видеть отправленные донаты от других пользователей в интерактивном режиме.
6 Реализовать систему комментариев и чата, которая позволит зрителям общаться между собой и с авторами стримов.
7 Реализовать несколько тематических страниц предоставляющих косвенные механизмы фильтрации стримов.
8 Внедрить минимально необходимую систему модерации контента.
Технические требования:
1 Весь проект должен быть написан на TypeScript.
2 Frontend исключительно на React. Адаптивная вёрстка должна соответствовать уже готовому дизайну в Figma.
3 Backend на любом подходящем фреймворке или JS библиотеке, предпочтительно на NodeJS платформе. В случае необходимости и при наличии объективных преимуществ для реализации конкретно наших задач, может быть выбран и другой язык программирования для построения backend части проекта.
4 База данных должна иметь реляционную модель. СУБД - произвольная, соответствующая нагрузкам и специфике проекта. Предпочтительно Postgres/MySQL.
5 Деплой проекта на Google Cloud с применением контейнеризации.
6 В качестве технологии передачи и обработки видео потока расмотреть технологию WebRTC, или предложить другой более подходящий вариант. Также необходимо внедрить высококачественный видеоплеер с возможностью управления настройками звука и качеством видео для оптимизации трафика.
7 Опыт использования сайта на мобильном телефоне должен быть подобен опыту использования приложения. Возможно необходимо будет интегрировать PWA технологию.
8 Обеспечить защиту от возможных атак и уязвимостей.
Дополнительные требования:
1 Масштабируемость и нагрузки: VMP должен выдерживать нагрузку ~5000 активных стримов и ~50 000 активных зрителей. Проект должен быть реализован с учетом дальнейшей горизонтальной масштабируемости без радикальных изменений в архитектуре. При необходимости интегрировать балансировку нагрузок.
2 Тестирование производительности: Провести тестирование производительности и нагрузочное тестирование системы для проверки ее работоспособности и способности выдерживать заявленные нагрузки.
3 Локализация: EN, RU.
4 Гибкая методология разработки со спринтами и дашбордами.
Данное техническое задание представлено в максимально упрощённом виде. Полную версию ТЗ для MVP предоставим после предварительного обсуждения.