8.2 KiB
Спроектируй и реализуй универсальный конструктор пользовательских метрик для аналитического дашборда.
Цель
Пользователь без знания программирования должен иметь возможность собрать собственную метрику из доступных данных, настроить способ расчёта и выбрать её визуальное представление.
Конструктор должен подходить как для простых показателей, так и для сложных вычисляемых метрик.
Основной сценарий
Раздели создание метрики на три логических этапа:
- Основная информация.
- Расчёт.
- Отображение.
Пользователь должен свободно перемещаться между этапами, не теряя введённые данные.
Основная информация
Предусмотри:
- название метрики;
- необязательное описание;
- категорию или смысловую группу;
- единицу измерения;
- понятное отличие новой метрики от редактирования существующей.
Расчёт
Поддержи несколько способов создания метрики:
- выбор готового показателя;
- сумма выбранных значений;
- разница между показателями;
- отношение или процент;
- среднее, минимум и максимум;
- накопительный итог;
- собственная формула.
Источники данных должны определяться динамически. Не используй жёстко заданные категории или показатели.
Позволь выбирать:
- набор учитываемых данных;
- временной период;
- режим расчёта;
- фильтры;
- группировку;
- правила обработки отсутствующих значений.
Формулы
Добавь редактор собственных формул с поддержкой:
- арифметических операций;
- скобок;
- доступных показателей и категорий;
- ссылок на другие пользовательские метрики;
- функций агрегации;
- сравнений с предыдущими периодами;
- автодополнения;
- описания доступных переменных;
- проверки формулы до сохранения.
Конструктор должен обнаруживать:
- неизвестные переменные;
- синтаксические ошибки;
- деление на ноль;
- циклические зависимости между метриками;
- несовместимые единицы измерения;
- отсутствующие источники данных.
Ошибки показывай рядом с проблемным полем и объясняй понятным языком.
Отображение
Позволь настроить:
- формат числа;
- количество знаков после запятой;
- денежную единицу или процент;
- направление оценки результата;
- целевое значение;
- предупредительные и критические пороги;
- цветовые состояния;
- выбранные графики;
- отображение на дашборде.
Поддержи основные варианты визуализации:
- числовая карточка;
- прогресс;
- сравнение;
- динамика;
- столбчатый график;
- линейный график;
- компактный индикатор состояния.
Показывай живое превью метрики. Оно должно обновляться при изменении настроек, но не сохранять черновик как готовую метрику.
Пользовательский опыт
Интерфейс должен постепенно раскрывать сложность:
- сначала показывать только обязательные параметры;
- дополнительные настройки размещать в раскрывающихся блоках;
- скрывать поля, которые не относятся к выбранному типу расчёта;
- сохранять незавершённый черновик;
- предупреждать при закрытии формы с несохранёнными изменениями;
- не перегружать экран вспомогательным текстом.
Предусмотри понятные состояния:
- пустые данные;
- загрузка;
- ошибка;
- некорректная формула;
- успешное сохранение;
- редактирование;
- дублирование;
- удаление и восстановление.
Управление метриками
Пользователь должен иметь возможность:
- создавать метрики;
- редактировать;
- дублировать;
- временно скрывать;
- закреплять на дашборде;
- менять порядок;
- переносить в хранилище;
- удалять с возможностью восстановления;
- окончательно удалять;
- импортировать и экспортировать конфигурации.
Совместимость
Модель метрики должна быть версионируемой. При развитии конструктора старые сохранённые метрики должны продолжать работать или автоматически мигрировать в новую схему.
Изменение или удаление источника данных не должно незаметно ломать метрику. Показывай её состояние и предлагай выбрать замену.
Адаптивность и доступность
Конструктор должен одинаково хорошо работать на компьютерах и мобильных устройствах:
- без горизонтального скролла;
- с удобными зонами нажатия;
- с поддержкой экранной клавиатуры;
- с полной клавиатурной навигацией;
- с корректными focus-состояниями;
- с доступными названиями элементов;
- с достаточным контрастом.
Критерии готовности
- Простую метрику можно создать за несколько понятных действий.
- Сложную формулу можно собрать и проверить до сохранения.
- Все параметры влияют на живое превью.
- Некорректную конфигурацию невозможно сохранить.
- Ошибки объясняют причину и способ исправления.
- Старые метрики остаются совместимыми.
- Интерфейс корректно работает на мобильных и настольных экранах.
- Нет жёсткой зависимости от конкретных категорий, показателей или структуры данных.
- Основные пользовательские сценарии покрыты автоматическими тестами.