Технічне завдання

Введення

 Найменування:

    Messenger

 Тип:

    Веб-застосунок

 Мета розробки:

    Розробити месенджер для обміну миттєвими повідомленнями в особистих повідомленнях та групових чатах.

Детальні вимоги

 Типи користувачів:

  В особистих чатах усі користувачі рівні та мають можливості, які описані в наступному пункті.

  В групових чатах є три типи користувачів:

  • Учасник: користувач, якого додали до чату.

    •   написання та перегляд повідомлень
    •   перегляд профілів всіх користувачів чату
    •   перегляд інформації про чат
  • Модератор: учасник, підвищений власником.

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

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

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

  Управління акаунтом:

  • реєстрація
  • авторизація
  • зміна паролю
  • редагування інформації про себе

  Приватні чати:

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

  Групові чати:

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

  Інтерфейс:

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

  Використання технологій:

  • Spring Boot (Java)
  • React (TypeScript)
  • PostgreSQL або MongoDB
  • WebSocket