/Streaming_Platform

Streaming Platform is a service that allows you to conveniently place videos and broadcast.

Primary LanguageJavaGNU General Public License v3.0GPL-3.0

Streaming Platform

Специфікація

Зміст

  1. Контекст
  2. Задачі
  3. Функціональні вимоги
  4. Сценарії

1. Контекст

Streaming Platform - це сервіс, що дозволяє зручно розміщувати відео матеріали та проводити трансляції. Цей проект розробляється для забезпечення простого та гнучкого функціоналу поширення відеоматеріалів, в тому числі проведення як класичних прямих трансляцій, так і спільного перегляду, завантажених на платформу, відео. Сервіс зосереджується на забезпеченні комфортного зв’язку між користувачами в реальному часі. Цей зв’язок забезпечує чат трансляції, що дає змогу коментувати події. Також існує можливість коментування відео, що дозволяє ділитися думками та враженнями. Сервіс забезпечує зручний пошук відео. Унікальність проекту заключається у поєднанні функцій відеохостингу та соціальної мережі.

Планується розгортання проекту з використанням екосистеми Spring та SpringBoot, зокрема Spring MVC, Spring Data JPA та Spring Testing Framework, менеджеру пакетів Maven.

Команда:

Технологічний стек

Back-end

  • Java 11
  • Spring Ecosystem
  • Maven - Dependency Management
  • PostgreSQL - Database System

Front-end:

  • HTML5
  • JavaScript
  • CSS

2. Задачі

Задачі, які вирішує проект:

  • зручне створення відео трансляцій
  • комфортне завантаження відео
  • зручний пошук відео
  • зручний перегляд відео та трансляцій
  • наявність публічних та приватних кімнат для перегляду
  • забезпечення спілкування користувачів
  • зручний моніторинг та аналіз перегляду та активності відео та трансляцій
  • поширення відео
  • пошук людей для спілкування зі спільними вподобаннями

Задачі поза скоупом даного проекту:

  • демонстрація екрану при трансляції
  • систему анонсів та запланованих подій
  • відео та голосовий чат
  • цензура висловлень

3. Функціональні вимоги

  • Реєстрація
  • Авторизація
  • Перегляд відео
  • Завантаження відео
  • Коментування відео
  • Транслювання завантаженого відео для спільного перегляду
  • Спілкування між користувачами в чаті під час трансляції
  • Моніторинг активності відео чи трансляції
  • Пошук відео

4. Сценарії

4.1 Реєстрація

Вимога: відсутність авторизації

  1. Користувач заходить на сторінку реєстрації
  2. Користувач задає необхідні дані* в відповідні поля вводу
  3. Система здійснює перевірку даних на коректність:
    • Система відображає користувачу повідомлення про некоректність введених даних
    • Система відображає користувачу повідомлення про вдалу реєстрацію
  4. Система зберігає дані користувача в базі даних
  5. Система перенаправляє користувача на сторінку авторизації

*Необхідні дані: логін, пароль, дата народження, е-пошта

4.2 Авторизація

Вимоги: наявність акаунту

  1. Користувач заходить на сторінку авторизації
  2. Користувач вводить необхідні дані* у відповідні поля вводу
  3. Система перевіряє коректність введених даних
    • Система сповіщає про некоректність введених даних
    • Система авторизує користувача
  4. Система перенаправляє користувача на головну сторінку

*Необхідні дані: логін / пошта, пароль

4.3 Перегляд відео/трансляції

  1. Користувач знаходить відео/трансляцію (на певній сторінці або скориставшись пошуком)
  2. Користувач натискає на прев’ю відео/трансляції
  3. Користувача перенаправляє на сторінку з програвачем та відповідним відео/трансляції
  4. Користувач переглядає відео/трансляцію

4.4 Завантаження відео

Вимога: користувач авторизований

  1. Користувач заходить на сторінку завантаження відео
  2. Користувач натискає на кнопку завантаження відеофайлу та обирає необхідний
  3. Користувач вводить назву та опис відео в відповідних полях та завантажує прев’ю
  4. Користувач натискає на кнопку збереження.
  5. Система завантажує відео

4.5 Коментування відео

Вимога: користувач авторизований

  1. Користувач натискає на відповідне поле коментування
  2. Користувач вводить текст коментаря
  3. Користувач натискає на кнопку відправки коментаря
  4. Система зберігає коментар

4.6 Транслювання

Вимога: користувач авторизований

  1. Користувач обирає опцію створення трансляції
  2. Користувач вводить дані опису трансляції (назву, короткий опис)
  3. Користувач натискає на завантаження прев’ю для трансляції.
  4. Користувач використовує програму для запису та передачі відеопотоку
  5. Трансляція починається

4.7 Транслювання завантаженого відео для спільного перегляду

Вимога: користувач авторизований

  1. Користувач натискає на прев’ю відео
  2. Користувача перенаправляє на сторінку з програвачем та відповідним відео
  3. Користувач натискає опцію спільного перегляду
  4. Користувач обирає тип кімнати (публічна/приватна)
  5. Система створює кімнату, відео якої синхронізується серед учасників

4.8 Спілкування в чаті під час трансляції

Вимога: користувач авторизований

  1. Користувач натискає на поле для вводу повідомлення в чаті трансляції
  2. Користувач вводить текст повідомлення
  3. Користувач натискає кнопку надсилання повідомлення
  4. Система обробляє повідомлення
  5. Система надсилає повідомлення глядачам трансляції

4.9 Моніторинг активності відео чи трансляції

Вимоги: користувач авторизований, авторство відео/трансляції

  1. Користувач обирає бажане відео чи трансляцію
  2. Користувач натискає опцію перегляду активності
  3. Система надає дані активності* відео чи трансляції
  4. Користувача перенаправляє на сторінку моніторингу

*Дані: кількість переглядів, коментарів, статистика переглядів за віком користувача

4.10 Пошук відео

  1. Користувач натискає на поле пошуку
  2. Користувач вводить інформацію в поле
  3. Система здійснює пошук по базі відповідно до введених даних
  4. Система надає та відображає результат: знайдені відео