Опис проєкту
ПерекладЗ технічної сторони очікуємо транспорт на WebSocket для живої доставки, з розумним запасним варіантом й автоматичним переподключенням при розриві зв'язку. Повідомлення повинні зберігатися в базі, щоб історія коректно підвантажувалася при повторному відкритті чату, а доставка була упорядкованою й без дублів навіть при нестабільній мережі. Потрібні індикатор набору тексту, статусам «доставлено» й «прочитано» за кожним повідомленням, лічильники непрочитаного за діалогами й присутність (онлайн, був у мережі). Важливі вкладення: користувач повинен вміти надсилати зображення й документи з превью й безпечним обмеженням розміру. Коли одержувач офлайн чи вкладка закрита, push-сповіщення повідомить про нове повідомлення. Бекенд повинен спиратися на наші поточні облікові записи й права доступу, а не вводити окрему систему авторизації.
Безпеку й захист від зловживань вважаємо частиною завдання: автентифіковані сокет-з'єднання, прив'язані до активної сесії, перевірка прав (користувач читає лише ті треди, де він учасник), очистка введення від XSS при виводі повідомлень і базова rate limiting проти флуду. Чекаємо чистий задокументований код у нашому поточному стеку, коротку інструкцію з інтеграції й тести на основні сценарії.
— Особисті й групові чати з управлінням учасниками
— Доставка по WebSocket із переподключенням й офлайн-фолбеком
— Індикатор набору, статусам доставки/прочитання, лічильники непрочитаного, присутність
— Вкладення-зображення й документи з превью й лімітом розміру
— Push-сповіщення для офлайн-одержувачів
— Історія, порядок, дедупліцирування й збереження повідомлень
— Сокети за сесією, перевірка прав за тредами, захист від XSS, rate limiting