| Адаптивная верстка | 150 г |
| Ночная тема | 150 г |
| Подписка через WebSocket | 150 г |
| TypeScript | 150 г |
| Аватарки как на GitHub | 100 г |
| Аудионабор | 100 г |
| Местоположение с картой | 100 г |
| Прикрепление картинок к сообщению | 100 г |
| Редактирование чатов | 100 г |
| Упоминания (@username) и профили | 100 г |
| Форвард и реплай сообщений | 100 г |
| Браузерные уведомления | 50 г |
| Вибрация на уведомления | 50 г |
| Микроразметка | 50 г |
| Реакции к сообщениям | 50 г |
| Редактирование и удаление сообщений | 50 г |
| Саджест Emoji | 50 г |
Верстка выглядит хорошо в портретном и ландшафтном режиме. Без багов, но и без крайностей. Минимальная ширина 400px.
Темная тема интерфейса. Просто инвертировать цвета нельзя. Должно быть красиво и не вырвиглазно. Должно учитывать системную тему.
Подписка на новые сообщения во всех чатах через WebSocket.
Основная сложность: стандартный браузерный API не умеет передавать заголовки.
Можно использовать дополнительные библиотеки.
Код написан с использованием TypeScript, красиво и без any.
Поскольку API поддерживает аватарки в виде Base64, нужно научиться их рандомно генерировать для каждого пользователя.
Добавить возможность набирать сообщения на русском языке голосом.
Можно использовать дополнительные библиотеки.
Добавить возможность отправлять текущее местоположение в виде сообщения. Для генерации картинки можно использовать StaticAPI.
Добавить возможность отправлять картинки и прикреплять к сообщению.
API поддерживает base64, поэтому можно преврящать байты картинки в строку и отправлять в API.
Прикрепленные картинки можно хранить в meta сообщения.
Добавить возможность редактировать чаты: приглашать/выгонять людей, менять имя чата, картинку чата. Удалять чат.
Добавить возможность упоминать людей в чате. Добавить саджест людей в текущем чате после набора @. Добавить страницу профиля человека, по клику на @login, переходить на страницу профиля.
Добавить возможность отвечать на сообщения и пересылать сообщения в другой чат. Можно полностью копировать сообщение, добавлять произвольную мета-дату. По реплаю/форварду должно быть понятно, кто был автором этого сообщения.
Добавить браузерные уведомления на получение нового сообщения.
Добавить вибрацию устройства на получение нового сообщения.
Структурировать информацию на странице с помощью семантичных тегов. yandex.ru/support/webmaster/schema-org
Добавить возможность ставить произвольные реакции на сообщения. Пользуйтесь мета-данными сообщения, чтобы хранить счётчики. Можно не решать проблемы с атомарностью инкремента.
Добавить возможность редактировать и удалять свои сообщения. Добавить возможность удалять сообщения админу чата.
Добавить блок или саджест с выбором эмоджи.
10 мая 00:01