Дописать API бэкенда NodeJS + Exrpess + MySql + SocketIO

15 000 руб. за проект
15 октября 2021, 20:56 • 3 отклика • 38 просмотров
нужные навыки
NodeJs - Express
SocketIO
MySql

чат на сокетах
1. Написать новый метод для обработки сабмита сообщения в чат.
Поля запроса:
IdFrom: int,
IdTo: int,
Text: varchar| text (Length 1000)
Attachments: (реализация на сервере)
Datetime: datetime default NOW()

2)получить сообщения
- авторизация или другой механизм что бы доступ к сообщениям получил только получатель/отправитель
http://www.passportjs.org/packages/passport-local/ - локальная стратегия
на этапе handshake сокета проверять валидность куки клиента. и тем самым авторизовть его по текущим кукам
- получение сообщений из базы данных с пагинацией (20 сообщений за запрос) endless scroll

3)метка онлайн
-каждые 30 секунд отправлять alive пакет и обрабатывать статус пользователя в бд (если в течении минуты пакета не появились - поставить статус офлайн)
организовать presence на основе встроенного в socket.io механизм heartbeat
пристроиться к его эвентам и на основе этого держать флаг presence юзера актуальным

4)платежи
https://www.npmjs.com/package/uniteller-node
-подключить платежку Uniteller
-зачислить деньги на баланс если пополнили баланс
-списать деньги если пользователь купил услугу за счет баланса
-создавать платежные данные на входные данные (если пользователь платит не с баланса а напрямую)(на общую сумму заказа сделать платежку)
-проверка платежки

5)доработка старого бэкенда
/v1/uplaod/*
исправить загрузку
Записывать в бд не относительный путь, а полный
(Что бы фронт забирал фотку с Бэка без дополнительных проблем )

/v1/sign-up/phone/confirm /v1/sign-up/phone/as-team
сделать нормальный генератор случайных чисел
что бы каждый раз стабильно выводил 6 символов (англ буквы в нижнем регистре и цифры)

/v1/reating/getTop
возвращать только даннные где ~time~ больше чем время в момент запроса
вернуть вместе с orderid информацию о order

/v1/rating/getAvRating/
возвращение просто float с 2 знаками после запятой(4.32) без avg

/v1/company/
при возвращении вкладывать рейтинг

/v1/company/{userId}
при возвращении вкладывать рейтинг
и отзывы

/v1/team/
при возвращении вкладывать рейтинг

/v1/team/{userId}
при возвращении вкладывать рейтинг
и отзывы

/v1/user/me
при возвращении вкладывать рейтинг

написать документацию к выше описанному функционалу

По заверению одного из разработчиков - работы часов на 40
пишите сразу в телегу @usta_tech