Наши разработчики были подключены к основной команде разработки в качестве аутстафф специалистов для доработки имеющегося и созданию нового функционала. Перед нами стояла задача внести изменения в панель администратора и реализовать новые элементы для удобства работы и управления приложением.
Командой разработки были реализована работа с древовидными структурами данных, а также инструменты для редактирования оформления своих работ дизайнерами и компонент для работы со сторонними сервисами-агрегаторами стоковых изображений.
Командой разработки были реализованы следующие задачи:
- Инструмент для работы с древовидными структурами внутри MongoDB;
- Управление деревом категорий с помощью XState (конечного автомата), отображение деревьев через D3.js. Данный метод структурировал информацию в БД и ликвидировал задержки при обработке данных, то есть сделал систему фильтрации более удобной(комфортной) для пользователей;
- Инструмент для дизайнеров, с помощью которого можно создавать и редактировать рамки для картин различных форм;
- Компонент для работы со сторонними сервисами-агрегаторами стоковых изображений. Дизайнеры не всегда могут генерировать новые изображения, поэтому возникла необходимость использовать сторонние сервисы для получения определенных изображений по запросу. Был создан функционал, который инкапсулировал логику работы со сторонними сервисами: на входе принимался массив строк для поиска, а на выходе дизайнер видел найденные по запросу изображения, из которых отбирались нужные.
Также команда провела значимую работу над изменениями в приложении:
Компоненты для отображения данных. Система росла, росло число данных, и способов управления ими. Команда заменила старую структуру на динамическую и переиспользовала компоненты, уменьшив количество строк кода с тысячи до сотен и десятков, чтобы снизить нагрузку на систему.
Клиент получил новый функционал, который упростил работу с сложными деревьями категорий и увеличил скорость работы дизайнеров.
Новый подход к организации кода и переиспользуемым компонентам ускорил процесс разработки frontend части приложения. Клиент был доволен результатом и оставил положительный отзыв о работе с нами.