Update readme

This commit is contained in:
2025-03-17 14:43:12 +04:00
parent 24c70a0113
commit 2be3fce2ab
2 changed files with 27 additions and 2 deletions

View File

@@ -1,10 +1,12 @@
# Chat # Chat
> Chat - это анонимный асинхронный мессенджер > **Chat** - это анонимный асинхронный мессенджер
**Chat** написан *за 10 часов* как тестовое задание перед одним из моих собеседований. Я выполнял [это техническое задание](./Техническое%20задание.md)
## Стек ## Стек
- Frontend: - Frontend:
- [TypeScript](https://www.typescriptlang.org) - [TypeScript](https://www.typescriptlang.org)
- [React 19](https://react.dev) - [React](https://react.dev) 19
- [Next.js](https://nextjs.org) 15 (App Router) - [Next.js](https://nextjs.org) 15 (App Router)
- [Tailwind CSS](https://tailwindcss.com/) - [Tailwind CSS](https://tailwindcss.com/)
- [Yup](https://github.com/jquense/yup) - [Yup](https://github.com/jquense/yup)

View 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 - кол-во активных слушателей