Skip to content

Latest commit

 

History

History
 
 

Домашнее задание 1

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

Домашнее задание 1

Вводная

Требуется спроектировать приложение мессенджер наподобие Discord. (Для упрощения без аудио и видео связи).

Основные бизнес возможности в нашем приложении (MVP1):

  1. Регистрация пользователя (по почте и паролю + Oauth)
  2. Вход/авторизация (по почте и паролю + Oauth)
  3. Редактирование профиля пользователя (никнейм - уникальный, информация о себе, аватарка)
  4. Поиск пользователей по никнейму
  5. Добавить пользователя в друзья
  6. Убрать пользователя из друзей
  7. Подтвердить или отклонить запрос на дружбу
  8. Просмотр списка своих друзей (подтвердивших и не подтвердивших еще)
  9. Создать сервер
  10. Поиск сервера
  11. Присоединяться к серверу (подписаться)
  12. Отписаться от сервера
  13. Получить список серверов, в которых состоит пользователь (сервера на которые подписан и свои созданные сервера)
  14. Пригласить пользователя на сервер
  15. Опубликовать сообщение на сервере (может только владелец сервера)
  16. Написать сообщение другу
  17. Получить сообщение из чата с пользователем
  18. Получить сообщения (публикации) сервера

Дополнительные бизнес возможности в нашем приложении (MVP2):

  1. Создать канал на сервере (может только создатель сервера)
  2. Удалить канал на сервере (может только создатель сервера)
  3. Присоединиться к каналу (пользователь может одновременно быть только в одном канале)
  4. Отключиться от канала

Планируется иметь два вида клиентов: декстопные и мобильные

Задание

  1. Необходимо спроектировать backend нашего приложения, используя микросервисную архитектуру, т.е. необходимо разделить наше приложение на микросервисы. Описать, за что будет отвечать каждый сервис, какие данные будет у себя хранить, с какими сервисами взаимодействовать, какие методы/API будет предоставлять, какие события публиковать/потреблять.
  2. Нарисовать архитетуру (блок схему) backend приложения со связми сервисов (кто куда ходит и за чем).
  3. ⭐ Для каждого сервиса выбрать конкретную БД и обосновать, почему выбрана именно она. Если сервисы общаются асинхронно с помощью брокера сообщений, выбрать конкретный и обосновать.