Задача: создать XML-парсер RSS лент, с кешированием записей на сервере, реализовать автопостер бота для групп в VK и Facebook, а также панель управления для модерирования постов, времени постинга, выбора rss лент, периода выборки постов.
За основу бекэнд взять PHP фреймворк Lumen 6, бд MySQL8, сервер VPS на LEMP стеке, фронтэнд Vue.js + Vuetify. Для работы с API (VK, Facebook), использованы официальные SDK, сам XML-парсер реализован на нативном PHP.
Демонстрация:
Задача: создать MVP - CRM сервис мультимессенджер (регистрация пользователей, тарификация, оплата), для общения из одной панели в VK (сообщения сообществ), Facebook (публичные страницы), Telegram (бот), Viber (бот), Instagram (личные сообщения), бота для ответа на несложные вопросы, генератор карточки клиента и шаблоны ответов для чата.
Бекэнд на Laravel 5.6 (на базе существующей панели управления продвижением Instagram, а в последствии вырезанной), заказчиком было принято решение оставить БД MySQL 5.6, что вызвало много проблем в будущем. Мгновенное получение сообщений реализовано с помощью технологии WebSocket, сервером Centrifugo. Обмен сообщениями VK, Facebook реализованы с официальным SDK, Viber написан самостоятельно, Telegram с библиотекой TelegramBotPHP, Instagram через реализацию микросервиса на фреймворке Express с библиотекой Instagram private API написанной на TypeScript, под Node.Js, так как этот вариант являлся единственным рабочим решением для Instagram. В боте реализован разбор предложений до 8 слов, автоматическое приветствие, морфологический разбор слов на основе библиотеки phpMorphy.
Фронтэнд в форме SPA на базе Vue.js, Vuetify, Vuex, Centrifuge, Axios, и других.
Демонстрация:
Задача: создание целевой страницы автосервиса по дизайн-макету.
Целевая страница автосервиса сделана в адаптивном дизайне, на OctoberCMS (Bootstrap 4, jquery-3.3.1). Реализован Telegram бот оповещения, о заявках через форму сайта и динамическая галерея, которая получает фото через Instagram API, из аккаунта автосервиса с кешированием на 2 часа.
Демонстрация сайта: