Доработать чат на node.js

Цена договорная
04 апреля 2020, 14:40 • 5 откликов • 117 просмотров
Решили для сайте сделать real-time chat, который в реальном времени будет оповещать о новых и доставлять новые сообщения.
Над проектом работал другой человек, но так как у него долгое время очень много работы, я принял решение отдать проект на доработку на фриланс.

Вот собственно сам чат проекта. https://github.com/FAST-JE/ws-chat

Сам проект написан на php7, mysql 5.7, nginx.

Ссылка на историю всего проекта, что и как было сделано для ознакомления. https://docs.google.com/document/d/1JPIA2iF50bTWuJaN0m1aTszMZadg_k1A_ONN5dFOsF4/edit
В конце есть тз того что прошлый человек начал делать и не доделал.


Что именно нужно сделать:



Сейчас обработчик ошибок, очень странный, надо его обсудить.


Что именно нужно сделать:

1. Сейчас обработчик ошибок, очень странный, надо его обсудить.
В интерфейс работы с ws добавить три функции done, success и fail
Формат ответа приняли следующий
{
type: string - название события
data: mixed - объект ответа
error: mixed - объект ошибки
}
2. Если соединение рвется надо реконнект делать и вообще когда может произойти обрыв.
3. Сейчас не доставится отредактированное сообщение всем.
4. То есть человек А удаляет диалог с человеком Б, но диалог не удаляется а скрывается и когда уже человек Б тоже удаляет диалог, то он уже точно удаляется из таблицы. Также массовое удаление диалогов.
5. Реализовать механизм добавления пользователей в черный список (см. Формат таблицы). Нельзя добавить самого себя в чс, добавление несуществующего юзера, добавление уже существующего в черном списке юзера.
6. Проверки. Причем некоторые проверки надо добавить еще и в создание диалога. Блокировка на уровне бана аккаунта.
Добавить проверку заблокирован ли отправитель сообщения или получатель, если заблокирован, то выводим ошибку кто заблокирован.
Проверка не заблокировано ли у отправителя возможность отправлять сообщения. Если блок, то ошибку показать.
Проверка на 1000 символов, если более 1000 символов, обрезаем.
Не занес ли получатель в черный список отправителя сообщения, и наоборот не занес ли в чс отправитель получателя. Описать формат таблицы ниже
Нельзя отправить пустое сообщение.
7. Сейчас допустим если у меня открыта вкладка одна с диалогов, я отправлю сообщение, то ответ придет на одну вкладку, то есть сообщение которое я отправил не появится во второй вкладке. - реализация на клиенте
8. Поиск диалогов, то есть будет форма я ввожу туда ник или id получателя, и он мне выдает список диалогов.
9. Есть системные сообщения. В кроне реализовать функционал попыток отправить рест запрос на сервер, по истечению количества попыток - отправить сообщение в базу данных (таблица messages).
Реализовать рест доступ к функции отправки сообщений + защитить JWT


Из выше перечисленного не выполнено 4,8,9 пункты. Но опять же все нужно проверить и починить если что-то не работает из выше перечисленного. Также возможно я что-то захочу доработать.

Все что вам не понятно, я объясню покажу, расскажу.

Проект небольшой, я не готов платить сверх большие суммы, но я готов заплатить адекватную цену за ваш труд.
Оцените за сколько готовы сделать, я со своей стороны скажу готов ли я ее заплатить.
Безопасная сделка.
Работу требуется сделать в кротчайшие сроки.