Доработать чат на node.js
Цена договорная
Решили для сайте сделать 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 пункты. Но опять же все нужно проверить и починить если что-то не работает из выше перечисленного. Также возможно я что-то захочу доработать.
Все что вам не понятно, я объясню покажу, расскажу.
Проект небольшой, я не готов платить сверх большие суммы, но я готов заплатить адекватную цену за ваш труд.
Оцените за сколько готовы сделать, я со своей стороны скажу готов ли я ее заплатить.
Безопасная сделка.
Работу требуется сделать в кротчайшие сроки.
Над проектом работал другой человек, но так как у него долгое время очень много работы, я принял решение отдать проект на доработку на фриланс.
Вот собственно сам чат проекта. 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 пункты. Но опять же все нужно проверить и починить если что-то не работает из выше перечисленного. Также возможно я что-то захочу доработать.
Все что вам не понятно, я объясню покажу, расскажу.
Проект небольшой, я не готов платить сверх большие суммы, но я готов заплатить адекватную цену за ваш труд.
Оцените за сколько готовы сделать, я со своей стороны скажу готов ли я ее заплатить.
Безопасная сделка.
Работу требуется сделать в кротчайшие сроки.
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.