Wenjiro
Назад к работам
Relomax.cz
fullstackFull-Stack Developer

Relomax.cz

Сервис для переезда и клининга в Праге

Технологии

React.JS

Сайт, который позволяет клиентам организации быстро и просто оформить переезд или клининг.

Проблема

Для сайта relomax.cz требовалось реализовать гибкую систему управления каталогом, где администратор мог бы самостоятельно менять порядок товаров, редактировать цены и описания, а также настраивать отображение блоков на страницах — по аналогии с возможностями кастомизации в WordPress.

Подход

Анализ требований и ролей. Выделили две роли: администратор (полный контроль) и контент-менеджер (только правки цен/описаний). Определили критические сценарии: массовое обновление цен, перегруппировка товаров, скрытие/показ блоков без правки кода. Выбор архитектуры под кастомизацию. Вместо «жёсткой» верстки реализовали компонентную структуру: блоки как переиспользуемые сущности, порядок которых задаётся в админке. Для управления порядком выбрали сортировку по числовому полю sort_order. Проектирование гибкой админ-панели. Спроектировали интерфейс для управления: категориями, товарами, блоками страниц и их порядком. Заложили возможность включать/выключать блоки и менять их последовательность через drag-and-drop. Баланс между свободой и контролем. Чтобы клиент не «сломал» вёрстку, ограничили свободу: порядок — да, удаление обязательных блоков — нет, редактирование HTML — только в специально отведённых полях. План миграции и обучения. Подготовили инструкцию и короткий обучающий сценарий для нетехнических сотрудников, чтобы они могли самостоятельно выполнять типовые задачи.

Решение

CMS-подобная админка. Реализовали панель управления, где можно: менять порядок товаров в категории через перетаскивание (drag-and-drop), который сохраняется в поле sort_order; массово обновлять цены через CSV-импорт с валидацией; включать/выключать и менять порядок блоков на странице (например, «баннер», «популярные товары», «спецпредложение») через настройки страницы. Компонентная вёрстка. Страницы собираются из компонентов. Каждый блок имеет тип (баннер, сетка товаров, текстовый блок) и позицию. Порядок выводится согласно настройкам страницы в БД. API для интеграции. Добавили эндпоинты для импорта/экспорта каталога, чтобы клиент мог синхронизировать цены и остатки с внешней системой учёта. Валидация и безопасность. Ввели проверку типов данных, ограничение прав доступа по ролям, логирование изменений (кто, когда, что изменил). Документация и обучение. Подготовили пошаговые инструкции по основным операциям: как поменять порядок товаров, как обновить цены, как добавить/скрыть блок на странице. Стек (примерный, под задачу): Python (Django/FastAPI) для бэкенда, React для админки, PostgreSQL для хранения структуры и порядка, Redis для кэширования каталога.

Результат

Клиент управляет контентом без разработчика. Администратор может самостоятельно менять порядок товаров, обновлять цены массово, включать/выключать и переставлять блоки на страницах. Сокращение рутинных задач. Время на обновление каталога и изменение структуры страниц уменьшилось в 3–4 раза за счёт массового импорта и drag-and-drop интерфейса. Гибкость под разные типы страниц. Разные страницы сайта (главная, категории, акции) могут иметь уникальную компоновку блоков без создания отдельных шаблонов. Прозрачность и контроль. Логи изменений позволяют отслеживать правки и при необходимости откатывать неверные действия. Удовлетворённость заказчика. Клиент получил уровень свободы, близкий к возможностям CMS вроде WordPress, но в рамках целевого функционала интернет-магазина, без избыточности и потери производительности.