Добро пожаловать в Process Mining Tool — инструмент для анализа и визуализации бизнес-процессов на основе логов событий. Это приложение позволяет превратить сырые данные (CSV) в понятные графы процессов, выявлять узкие места и анализировать эффективность выполнения задач.
Process Mining (Интеллектуальный анализ процессов) — это дисциплина, находящаяся на стыке анализа данных (Data Mining) и управления бизнес-процессами (BPM).
Вместо того чтобы моделировать процессы "как они должны быть" (идеальная картина), Process Mining позволяет увидеть процессы "как они есть на самом деле", используя цифровые следы (логи) из информационных систем.
Мы используем алгоритм построения Direct Follower Graph (DFG):
- События (Nodes): Каждое уникальное действие в логе становится узлом графа.
- Переходы (Edges): Если в рамках одной сессии (кейса) за событием A сразу следует событие B, мы рисуем стрелку A -> B.
- Частота и Время: Толщина и подписи связей показывают, как часто происходил переход и сколько времени он занимал в среднем.
- 📊 Визуализация графа: Автоматическое построение графа процесса на основе загруженного CSV-файла.
- 🔍 Интерактивность:
- Масштабирование (Zoom) и перемещение (Pan) по графу.
- Фильтрация ребер по "мощности" (частоте переходов) для скрытия редких путей и фокусировке на основном процессе.
- 📈 Метрики:
- Общее количество кейсов и событий.
- Средняя и медианная длительность процесса.
- Выявление "узких мест" (bottlenecks) по времени.
- 💾 Экспорт:
- Скачивание графа в формате PNG.
- Экспорт детального отчета по метрикам в JSON.
- ⚡ Производительность: Написан на Go для быстрой обработки больших файлов.
- Установленный Go (версия 1.18 или выше).
- Браузер (Chrome, Safari, Firefox).
Для быстрого запуска демонстрации используйте подготовленный скрипт:
./demo.shЭтот скрипт автоматически запустит сервер и откроет браузер с загруженным интерфейсом.
-
Клонируйте репозиторий (если вы еще этого не сделали):
git clone <ваша-ссылка-на-github> cd process-mining
-
Запустите сервер: Используя Makefile:
make run
Или напрямую через Go:
go run ./cmd/app/main.go serve
-
Откройте в браузере: Перейдите по адресу: http://localhost:8085
-
Подготовка данных: Вам нужен CSV-файл со следующей структурой (заголовки обязательны):
SessionID,Timestamp,Description 1,2023-08-24T18:43:48Z,Checkout 2,2023-08-23T14:16:35Z,Place Order ...
Пример файла находится в папке
datasets/largest_dataset.csv. -
Загрузка: Нажмите кнопку "Загрузить файл" и выберите ваш CSV.
-
Анализ:
- Изучите построенный граф.
- Используйте ползунок "Фильтр мощности" справа, чтобы убрать редкие переходы и увидеть "счастливый путь" (happy path).
- Посмотрите статистику в блоке метрик под графом.
-
Экспорт:
- Нажмите "Скачать PNG", чтобы сохранить изображение графа.
- Нажмите "Экспорт метрик", чтобы получить JSON-отчет.
process-mining/
├── cmd/ # Точки входа в приложение (main.go, команды CLI)
├── config/ # Конфигурация приложения (переменные окружения)
├── datasets/ # Примеры данных для тестирования
├── internal/
│ ├── domain/ # Бизнес-логика (построение графа, сущности)
│ ├── infrastructure/ # Работа с файловой системой (CSV Reader)
│ ├── presentation/ # HTTP-хендлеры
│ └── service/ # Сервисный слой (связь между слоями)
├── static/ # Фронтенд (HTML, CSS, JS, библиотеки)
├── utils/ # Вспомогательные скрипты (генераторы данных)
├── makefile # Команды для сборки и запуска
└── demo.sh # Скрипт для быстрой демонстрации
Проект разработан в рамках демонстрации возможностей Process Mining. Стек: Go (Golang), JavaScript, Viz.js, HTML/CSS.