В рамках этого проекта вы научитесь создавать приложение, которое работает в асинхронном режиме, используя современные методы коммуникации между Frontend и Backend.
Разработать удобный браузерный клиент, позволяющий пользователям оперативно вступать в диалог с зарегистрированными пользователями.
-
Аутентификация пользователей:
- Пользователь может зарегистрироваться в системе.
- Пользователь может выполнить вход в систему по своему логину и паролю. В качестве логина используется email пользователя. При регистрации ему на почту должно прийти письмо с подтверждением регистрации.
- В качестве email сервера можно использовать, например, сервисы Яндекс или Google, либо развернуть свой почтовый сервер и отправлять письма встроенным функционалом.
-
Интерфейс пользователя:
- После входа пользователь должен увидеть список своих чатов. В первой версии мессенджера это будут личные сообщения тем, кого пользователь добавил в список своих контактов.
- Пользователь может характеризоваться:
- Email-ом, при помощи которого осуществляется логин.
- Ником в сети. Если задан nickname, email можно скрыть в поиске.
- Пользователь может создавать свой аватар в профиле.
- Общение между пользователями производится в окне чата. Обмен сообщениями производится в реальном времени, используя асинхронные методы, такие как WebSocket, LongPolling requests и другие.
-
Настройки профиля:
- Задать или изменить свой nickname (уникален).
- Задать или изменить свой аватар. При отсутствии показывается стандартная картинка.
- Скрыть или показать свой email.
-
Групповые чаты:
- Создание групповых чатов через popup-меню, используя функционал поиска пользователей.
- В чат можно добавлять только пользователей из своих контактов.
-
Функционал сообщений:
- Редактирование и удаление сообщений: При клике правой кнопкой мыши по сообщению система предлагает опции «Отредактировать сообщение» и «Удалить сообщение». При редактировании текст сообщения подгружается в поле ввода, а после изменения обновляется как в интерфейсе, так и в БД.
- Пересылка сообщений: При клике правой кнопкой мыши по сообщению система предлагает опцию «Переслать сообщение». Сообщение можно переслать внутри списка контактов.
-
Уведомления и оповещения:
- При поступлении нового сообщения должен срабатывать короткий звуковой сигнал.
- Чат имеет возможность отключения оповещений. При нажатии правой кнопкой мыши по чату система показывает выпадающее меню с опцией «Включить/Отключить оповещения». Чат с отключенными оповещениями должен отличаться в списке от чатов с включенными оповещениями.