Мхитар Манасян bestmdidi Паспорт верифицирован
Сайты, Telegram-боты и Mini Apps - Next.js, Nest.js, Node.js
Рейтинг
40 067
№ 14 в каталоге
Отзывы
Профессионализм
10/10
Коммуникация
9 /10
Город
Москва
Опыт работы
6 лет
На сайте с
2022 года
Юридический статус
Самозанятый
Эксперт
Национальной Гильдии Фрилансеров
Freelance.Boutique
Премиум-сервис для лучших исполнителей
Безопасная сделка
Деньги списываются после приёмки

Визуальный редактор дашбордов мониторинга: npm-пакет на React и TypeScript со структурным редактированием, drag-and-drop, undo/redo и проверкой структуры

Используемые навыки CI/CD Node.js React.js Typescript Веб-разработка

Описание

Заказчик развивает платформу мониторинга ИТ-инфраструктуры (проект под NDA, поэтому без названий). Дашборды платформы описываются структурой «страницы, фреймы, виджеты», и администраторы собирали их правкой текстового конфига: медленно и с ошибками.

Нужен был визуальный редактор в формате npm-пакета на React и TypeScript. Он встраивается в админку платформы как компонент, принимает объект дашборда, даёт редактировать структуру мышью и возвращает объект без потерь: поля, которые редактор не трогает, обязаны вернуться байт в байт. Внутри пакета нет ни одного сетевого запроса и никакой привязки к конкретной платформе - вся интеграция через пропсы и колбэки. Веб-разработка в чистом виде: компонент, который должен прижиться в чужом продукте и не сломать его данные.

Решение

Сделал пакет под ключ. Структурная канва со страницами, фреймами и семью видами раскладки, палитра виджетов по каталогу, контейнеры с вложенностью, перетаскивание с живым предпросмотром результата, undo/redo, размерные категории виджетов, панель свойств, дерево структуры, проверка структуры с панелью проблем и переходом к месту ошибки, светлая и тёмная темы, две локали.

Frontend на React 19 и TypeScript в strict-режиме. Главный инвариант - редактирование без потерь: всё, что редактор не трогает, возвращается байт в байт; это закреплено fuzz-тестами на случайных конфигурациях. Всего 370+ unit-тестов на Vitest, инструментарий на Node.js. CI/CD на GitHub Actions: проверки как гейты, отчёт о сборке, публикация версии в приватный npm-реестр одним пушем тега. Бандл лёгкий - около 36 КБ JavaScript и 10 КБ CSS в gzip.

Результат

Пакет встроен в админку платформы и полностью закрывает редактирование дашбордов: администраторы собирают страницы и виджеты мышью вместо правки конфига руками, а данные возвращаются без потерь. Работа сдана поэтапно, все этапы приняты в срок, отзыв заказчика: «Работы выполнены в срок максимально близко к ТЗ». Сотрудничество продолжается.

Пакет живёт в приватном npm-реестре внутри закрытой платформы, поэтому публичной ссылки нет: интерфейсы показаны на скриншотах с выдуманным демонстрационным конфигом, публикация согласована с заказчиком.

Оценили проект:

Другие проекты

Все проекты →
Веб-разработка и IT Комплекс автоматизации сауны «Наутилус»: управление оборудованием по ModBus, видеонаблюдение на WebRTC и админ-панель оператора. Fullstack на NestJS + React (TypeScript)
Комплекс автоматизации сауны «Наутилус»: управление оборудованием по ModBus, видеонаблюдение на WebRTC и админ-панель оператора. Fullstack на NestJS + React (TypeScript)
21
Веб-разработка и IT PropFirmWay - платформа для сравнения проп-трейдинговых фирм: каталог челленджей, рейтинги и отзывы трейдеров, AI-скрейпер, SEO-ядро | Next.js, Nest.js, Node.js
PropFirmWay - платформа для сравнения проп-трейдинговых фирм: каталог челленджей, рейтинги и отзывы трейдеров, AI-скрейпер, SEO-ядро | Next.js, Nest.js, Node.js
152
Веб-разработка и IT Telegram Mini App для белорусского магазина цифровых товаров PlayStation: игры, подписки, донаты. Парсер PS Store, приём платежей, админ-панель | React.js, Nest.js, PostgreSQL
Telegram Mini App для белорусского магазина цифровых товаров PlayStation: игры, подписки, донаты. Парсер PS Store, приём платежей, админ-панель | React.js, Nest.js, PostgreSQL
375
Веб-разработка и IT TMS для американской грузоперевозочной компании: рейсы и документы, мобильные экраны водителя, расчёт зарплат и P&L-отчёты. Fullstack на NestJS + React, PostgreSQL, TypeScript
TMS для американской грузоперевозочной компании: рейсы и документы, мобильные экраны водителя, расчёт зарплат и P&L-отчёты. Fullstack на NestJS + React, PostgreSQL, TypeScript
13