mirror of
https://github.com/StepanovPlaton/Chat.git
synced 2026-04-03 12:20:40 +04:00
Update readme
This commit is contained in:
23
Техническое задание.md
Normal file
23
Техническое задание.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# NodeJS Мессенджер
|
||||
|
||||
## Основные требования к логике работы приложения:
|
||||
1. Реализовать при помощи *любой* БД хранение последних 20 сообщений, которые были отправлены пользователями сайта
|
||||
> Реализовывать регистрацию или какую бы то ни было идентификацию пользователя не надо
|
||||
2. Сообщения должны приходить по WebSocket всем активным пользователям сайта в режиме live в виде "дельты"
|
||||
> Как только произошел POST запрос, это же сообщение рассылается всем активным пользователям
|
||||
3. Отправку сообщения отдельным POST запросом
|
||||
> Других REST запросов быть на сайте не должно
|
||||
4. Как только развернулся клиент, он должен установить WebSocket соединение с backend-ом и запросить snapshot всех актуальных сообщений на данный момент и впоследствии их редактировать с каждой новой "дельтой"
|
||||
|
||||
## Требования к оформлению:
|
||||
1. Использовать **React** + *любые другие библиотеки*
|
||||
2. *Дизайн может быть простым* и даже минималистичным, но *с логичным расположением* кнопок и появлением сообщений
|
||||
3. Любыми анимациями или улучшенным визуалом можно пренебречь, но будет плюсом, если такое будет реализованно
|
||||
|
||||
|
||||
## На что будет обращено внимание:
|
||||
- ***Реализация REST/WS части***
|
||||
- Отказоустойчивость ws соединения
|
||||
> То есть сообщения не должны теряться. Не должно быть такого, чтоб была необходимость обновлять сайт, чтоб увидеть новые сообщения
|
||||
- Добавление/удаление сообщений на бэке должно быть выполнено за O(1) по времени
|
||||
- Вещание должно быть выполнено за O(N) N - кол-во активных слушателей
|
||||
Reference in New Issue
Block a user