Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Стек технологий:1) PHP (7.3.18) / Laravel (7.10.3)

2) пакет https://caffeinatedpackages.com/guide/packages/modules.html (обязательно!)

3) mysql >= 5.7

4) git

5) строгая типизация

6) SOLID

7) Swagger

8) PHPUnit

9) Ответы сервера должны быть в формате json. Использовать нужно вот этот хелпер https://github.com/dees040/laravel-api-responses

Детали технического задачния:

Задача будет состоять из 3-х крупных блоков:1) API для фронтенда

2) API сторонних сервисов

3) WebHook для Вайбер

4) Система отправки сообщений

Необходимо создать миграции и модули для таблиц:

viber_user_botsструктура:

id, user_id, bot_name, bot_key, created_at, updated_atотношения:

viber_user_bots.user_id = users.id | cascade

viber_bot_message_statuses (модель не нужна, но нужен сид)id, name, created_at, updated_atСид: новое, прочитано, отправлено

viber_bot_message_message_types (модель не нужна, но нужен сид)id, name, created_at, updated_atСид: text, picture, video, file, location, contact, sticker, carousel content, url

viber_bot_recipientsid, viber_key, name, avatar, created_at, updated_atОдин пользователь может принадлежать многим рассылкам и многим клиентам!

viber_bot_messagesid, bot_id, message_id, recipient, message, message_type, media (json), status, created_at, updated_atотношения:viber_bot_messages.bot_id = viber_user_bots.id | cascadeviber_bot_messages.recipient = viber_bot_recipients.viber_key | cascadeviber_bot_messages.message_type = viber_bot_message_message_types.id | nullviber_bot_messages. status = viber_bot_message_statuses.id | nullВ этой модели необходимо описать все отношения и методы для получения библиотечных данных для viber_bot_message_message_types и viber_bot_message_statuses

Необходимо создать контроллеры и эндпоины:API для фронтенда

1) GET | api/v1/viber-bot/get-unreaded-count - возвращает количество непрочитанных сообщений для текущего авторизованного пользователя. Параметры отсутствуют.2) GET | api/v1/viber-bot/get-bot-list - возвращает список ботов текущего пользователя и количество непрочитанных сообщений для каждого бота. Параметры отсутствуют.3) GET | api/v1/viber-bot/get-chats/{bot_id} - возвращает список всех чатов (получателей) в пределе данного бота и количество непрочитанных сообщений.Параметры:bot_id - id бота. Необходимо проверить принадлежит ли этот id пользователю который его запрашивает.4) GET | api/v1/viber-bot/{bot_id}/message/{recipient} - Получение всей переписки с определенным получателем в пределах одного бота. В ответе должны присутствовать не только id типов и статусов, а и сами статусы.Параметры:bot_id - id бота. Необходимо проверить принадлежит ли этот id пользователю который его запрашивает.recipient - ключ получателя5) POST | api/v1/viber-bot/{bot_id}/message - отправка сообщения получателю.Параметры:bot_id - id бота. Необходимо проверить принадлежит ли этот id пользователю который его запрашивает.recipient - ключ получателяmessage - сообщение (опционально, если есть медиа файл)media - данные об отправляемом файле/ссылке/т.д. (опционально)message_type - id типа сообщения6) GET | api/v1/viber-bot/get-message-types - получение списка типов сообщений и их id. Параметры отсутствуют.7) GET | api/v1/viber-bot/get-message-statuses - получение списка статусов сообщений и их id. Параметры отсутствуют.

API сторонних сервисов

Все точно также как и для "API для фронтенда" только ссылка будет отличаться и изменится с api/v1 на api/v2

WebHook для Вайбер

Необхожимо разработать динамический метод для viber WebHook.Эндпоинт ANY api/nsfw/viber-bot/{user_id}/{bot_id}Где:user_id - id пользователя который создал ботаbot_id - id бота

Подробно о том что и как будет передаваться на вебхук можно почитать тут - https://developers.viber.com/docs/api/rest-bot-api/#callbacks

Система отправки сообщений

Для отправки сообщений ожидается использование laravel event и очередей.

Доп. требования:1) На прием кода мы оставляем за собой 3 дня.

2) Будет код-ревью и если что-то не понравится то исполнитель обязуется доработать код.

3) Для работы с viber ожидается создание отдельного сервиса/клиента с описанием интерфейса и dependency injection

4) Покрытие тестами 90-100%

5) Документацию оформить в Swagger

3 года назад
romax777
38 лет
6 лет в сервисе
Был
2 года назад

Заявки фрилансеров

Нет заявок фрилансеров
  • Похожие заказы

  • $70

    Требуется доработка фильтра для платформы Битрикс, позволяющая выбирать диапазон значений. Фильтр должен поддерживать диапазон от и до, например, от 1 кГЦ до 1 Мгц, с заполнением двух свойств в товаре. Рассматривается возможность приведения свойств к одному значению для расчета и вывода в фильтре. Подробности по запросу.

    Закрыт
    3 года назад
  • Задача заключается в скачивании и восстановлении сайта из web.archive.org на платформе WordPress. Необходимо восстановить функционал и структуру сайта, при этом точность передачи дизайна не критична, так как шаблон будет заменен на новый в будущем.

    Закрыт
    3 года назад
  • Необходимо исправить смещение макета (CLS) сайта games-walker.com, чтобы уменьшить его до 0. Проект включает исправление определенных div-ов, а также предоставление письменного объяснения по методу исправления для будущего использования. Обращение к ссылке для анализа смещения является обязательным.

    Закрыт
    3 года назад
  • Требуется разработать кнопку на сайт для отображения карточек техники. Сначала показывать 9 карточек, затем по 6 при нажатии на кнопку 'показать еще'. Важно реализовать решение без использования скриптов, чтобы не ухудшить скорость загрузки сайта.

    Завершен
    3 года назад
  • Необходимо внести изменения на сайт WordPress + WooCommerce согласно предоставленному макету. Требуется переделка верхнего меню, добавление закрепленного меню, корзины и личного кабинета с отображением имени и аватара. Также необходимо подключить регистрацию и вход на сайт по SMS. Проект должен быть адаптивным. Укажите стоимость и сроки выполнения работ.

    Закрыт
    3 года назад
  • Требуется помощь в корректном переводе моделей из Blender в Three.js. Ожидается участие специалистов с реальным практическим опытом работы с этими инструментами. Задача включает в себя оптимизацию и адаптацию 3D-моделей для веб-приложений.

    Закрыт
    3 года назад
  • Требуется разработка чат бота в Телеграм для тестирования знаний целевой аудитории. Бот должен включать приветственные сообщения, тест из 12 вопросов с кнопками-ответами, систему подсчета баллов и отправки результатов. Также необходим функционал уведомлений о новых пользователях, команды для рассылки и статистики. Картинки тестов должны меняться, а после прохождения теста - предоставляться бонусы. Оплата обсуждаема.

    Закрыт
    3 года назад
  • $30

    Требуется привести в порядок страницы на движке Joomla, следуя техническому заданию. Необходимо создать красивый и функциональный дизайн, исключив лишние элементы. Подробности указаны в схематическом изображении.

    Закрыт
    3 года назад
  • Необходимо реализовать парсинг сайта для получения live-результатов с ресурсов Soccer365.ru и Flashscore.ru. Задача включает в себя разработку скрипта, который будет извлекать актуальные данные в режиме реального времени для дальнейшего использования.

    Закрыт
    3 года назад