🎯 AgroPlatform — Demo Guide
Цей документ описує повний demo-flow продукту для показу інвесторам, партнерам або клієнтам. Платформа містить готові demo-дані, які seed-яться автоматично при першому запуску.
📋 Зміст
- Credentials та startup
- Що є в demo-середовищі
- 7-хвилинний walkthrough
- 20-хвилинний walkthrough
- Сценарії, що готові до демонстрації
🔑 Credentials та Startup
Запуск
# Варіант A — Docker Compose (рекомендується, одна команда)
git clone https://github.com/barach6662001-bit/AgroPlatform.git
cd AgroPlatform
docker-compose up --build -d
# Перевірити що все запустилось
docker-compose ps
# Дочекатись "healthy" у колонці Status для всіх сервісів (~60 сек)
| Сервіс | URL |
|---|---|
| Frontend | http://localhost:3000 |
| API | http://localhost:8080 |
| Swagger | http://localhost:8080/swagger |
Demo-дані seed-яться автоматично один раз при першому запуску (AUTO_MIGRATE=true). Повторний запуск контейнерів не дублює дані.
Demo-облікові дані
| Поле | Значення |
|---|---|
demo@agro.local |
|
| Пароль | DemoPass1 |
| Tenant ID | aaaaaaaa-0000-0000-0000-000000000001 |
| Tenant | Агро-Демо ТОВ |
Додаткові облікові записи (однотенантні, вже в системі):
| Пароль | Роль | |
|---|---|---|
demo@agro.local |
DemoPass1 |
Administrator |
agro@agro.local |
AgroPass1 |
Agronomist |
manager@agro.local |
ManagerPass1 |
Manager |
На сторінці входу є кнопка «Увійти як Demo» для одноклікового входу.
📊 Що є в demo-середовищі
Після автоматичного seed база даних містить реалістичний dataset агропідприємства «Агро-Демо ТОВ»:
Поля (7 полів, 490.5 га)
| Поле | Площа | Культура | Статус |
|---|---|---|---|
| Захід-1 | 120.0 га | Пшениця озима | Зібрано |
| Схід-2 | 85.0 га | Соняшник | В процесі |
| Північ-3 | 95.0 га | Кукурудза | Зібрано |
| Південь-4 | 60.0 га | Ріпак | Зібрано |
| Центр-5 | 70.0 га | Ячмінь | Зібрано |
| Схід-2б | 35.0 га | Соняшник (озимий) | Посів |
| Пар-7 | 25.5 га | Пар (підготовка) | В обробці |
Склади (3 склади)
| Склад | Тип | Залишки |
|---|---|---|
| Головний склад МТС | Матеріальний | Насіння пшениці 4 500 кг, соняшника 1 200 кг, кукурудзи 2 000 кг |
| Паливно-мастильний | ПММ | Дизпаливо 10 800 л |
| Агрохімічний | Хімія | Гербіцид 320 л, Добриво 17 000 кг, Фунгіцид 300 л |
Зерносховища (2 об’єкти)
| Зерносховище | Тип | Ємність | Партії зерна |
|---|---|---|---|
| Зерносховище Захід | Flat | 500 т | Пшениця озима: 180 т (від 255 т після продажів) |
| Зерносховище Схід | Elevator | 800 т | Соняшник: 106.4 т; Кукурудза: 250 т (від 440 т) |
Техніка (5 одиниць)
| Техніка | Тип | Статус |
|---|---|---|
| Трактор John Deere 8R 310 | Трактор | Активний |
| Комбайн Claas Lexion 770 | Комбайн | Активний |
| Обприскувач Amazone UX 5200 | Обприскувач | Активний |
| Сівалка Horsch Pronto 9 DC | Сівалка | Активна |
| КамАЗ 45143 (зерновоз) | Вантажівка | На ремонті |
Агрооперації (7 операцій)
| Операція | Поле | Статус |
|---|---|---|
| Збирання пшениці | Захід-1 | Завершено |
| Збирання соняшника | Схід-2 | В процесі |
| Збирання кукурудзи | Північ-3 | Завершено |
| Посів пшениці | Захід-1 | Завершено |
| Посів кукурудзи | Північ-3 | Завершено |
| Захист соняшника (ЗЗР) | Схід-2 | Завершено |
| Підживлення добривами | Захід-1 | Завершено |
Економіка
- 12 записів витрат загальна сума ~1 073 402 UAH по категоріях: Насіння, Добрива, ЗЗР, Паливо, Техніка, Зарплата, Оренда
- 5 записів продажів загальна сума ~5 382 000 UAH (Kernel Holding, МХП, АДМ, Bunge Ukraine)
- 7 бюджетних позицій на поточний рік (~3 135 000 UAH план)
Персонал (4 співробітники)
Петро Харченко (Тракторист), Іван Бойко (Комбайнер), Микола Кравець (Агроном-захисник), Тетяна Бондар (Комірник) — з журналами відпрацьованого часу та виплатами зарплати.
Паливо
2 цистерни (дизель 10 800/20 000 л, бензин 850/3 000 л), 4 заправки техніки.
Аудит (4 записи)
Зміни статусу операцій, техніки, продажів та витрат — готові для демонстрації Audit Log.
⚡ 7-хвилинний Walkthrough (Ключовий Vertical Slice)
Ціль: показати наскрізний agricultural cycle від поля до продажу за 7 хвилин.
Аудиторія: інвестори / C-level, що хочуть швидко побачити цінність продукту.
0:00 — Вхід у систему (30 с)
- Відкрити http://localhost:3000
- Натиснути кнопку «Увійти як Demo» або вввести:
- Email:
demo@agro.local - Password:
DemoPass1
- Email:
- Звернути увагу: система одразу відкриває Dashboard з даними.
0:30 — Dashboard (1 хв)
Показати на Dashboard:
- KPI-карточки угорі: площа полів, залишок зерна, прибуток поточного сезону, кількість активних операцій.
- Графік витрат — видно розподіл по категоріях.
- Останні операції — список із поточними статусами.
- Сповіщення (дзвоник у правому куті) — 2 непрочитані: низький залишок палива та активне збирання.
1:30 — Поля (1 хв 30 с)
- Перейти до Поля в меню.
- Показати список 7 полів із площею та культурою.
- Відкрити Захід-1 (120 га, пшениця):
- Вкладка Посів — записи про висів 3 500 кг насіння.
- Вкладка Збирання — врожайність та дата збирання.
- Вкладка Витрати — загальна сума витрат по полю.
3:00 — Агрооперації (1 хв)
- Перейти до Операції.
- Показати список операцій із фільтром за статусом.
- Відкрити операцію «Збирання пшениці — Захід-1»:
- Прив’язана техніка (Комбайн Claas Lexion 770, 14 год).
- Використані ресурси (дизель, запчастини).
- Статус: Завершено.
4:00 — Зерносховище (1 хв)
- Перейти до Зерносховище в меню.
- Показати 3 партії зерна (пшениця 180 т, соняшник 106.4 т, кукурудза 250 т).
- Натиснути «Рух» на партії пшениці — видно надходження 255 т та продаж 75 т.
- Підкреслити: автоматична прив’язка до поля, де вирощено зерно.
5:00 — Економіка та P&L (1 хв)
- Перейти до Економіка → Витрати.
- Показати 12 записів витрат по категоріях (насіння, добрива, паливо, тощо).
- Перейти на Економіка → P&L по полях.
- Показати: Захід-1 — витрати ~558 000 UAH, виручка ~1 620 000 UAH → прибуток.
- Перейти на Економіка → Бюджет — план vs факт по категоріях.
6:00 — Аудит та Права доступу (1 хв)
- Перейти до Адмін → Аудит-лог.
- Показати записи: завершення операції збирання, переведення КамАЗа на ремонт, запис витрат.
- Перейти до Адмін → Права доступу.
- Показати рольову матрицю (Administrator / Agronomist / Manager) з можливістю налаштування.
🔍 20-хвилинний Walkthrough (Повний Огляд)
Ціль: детально показати всі модулі і можливості платформи.
Аудиторія: технічні директори, агрономи, потенційні клієнти, що хочуть повний product tour.
0:00–2:00 — Вхід та Dashboard
- Відкрити http://localhost:3000 → кнопка «Увійти як Demo».
- Dashboard — оглядовий екран:
- 4 KPI-карточки: полів 7 (490.5 га), зерна в сховищах 536.4 т, доходи сезону ~5.38 млн UAH, активних операцій 1.
- Секція «Активні операції» — збирання соняшника (Схід-2, в процесі).
- Секція «Склади» — залишки по ключових товарах.
- Дзвоник сповіщень — 2 непрочитані (паливо, збирання).
2:00–5:00 — Модуль Полів
- Поля → Список — 7 полів, сортування/фільтр по культурі.
- Відкрити Захід-1 (120 га):
- Вкладка Зони — карта полів (Leaflet, MapTiler).
- Вкладка Посів — деталі сівби.
- Вкладка Збирання — врожайність 4.25 т/га.
- Вкладка Добрива — план і факт внесення.
- Вкладка ЗЗР — обробки, використані препарати.
- Вкладка Аналіз ґрунту — NPK показники (якщо є дані).
- Вкладка Інспекції — записи обходів поля.
- Поля → Оренда — список орендованих ділянок.
- Поля → Сівозміна — AI Advisor рекомендує культуру на наступний сезон.
5:00–7:00 — Модуль Складів
- Склади — список 3 складів із локацією.
- Склади → Товари — 7 позицій (насіння, добрива, ЗЗР, паливо) з кодами та цінами.
- Склади → Рухи — всі 10 записів (надходження та видачі).
- Показати фільтри: по складу, по товару, по типу руху, за датою.
- Натиснути «Прихід» — показати форму додавання надходження (не зберігати, просто показати UI).
7:00–9:00 — Зерносховище
- Зерносховище — список 3 зернових партій:
- Пшениця озима: 180 т / 500 т (Зерносховище Захід)
- Соняшник: 106.4 т (Зерносховище Схід)
- Кукурудза: 250 т / 800 т (Зерносховище Схід)
- Натиснути «Рух» для партії кукурудзи:
- Показати надходження 440 т та продаж 190 т.
- Натиснути «Відвантажити» — форма продажу/відвантаження зерна (не зберігати).
- Натиснути «Прийняти зерно» — форма нової партії (показати поля: зерносховище, тип зерна, вологість, ціна за тонну).
9:00–11:00 — Агрооперації (Lifecycle)
- Операції — список 7 операцій, різні статуси.
- Відкрити «Збирання пшениці — Захід-1» (завершено):
- Терміни: плановий початок/кінець та фактичний.
- Прив’язана техніка: Комбайн Claas Lexion 770, 14 год роботи, 490 л дизелю.
- Ресурси: деталі списання зі складу.
- Відкрити «Збирання соняшника — Схід-2» (в процесі):
- Показати можливість завершення операції.
- Кнопка «Нова операція» — показати форму: поле, тип, ресурси, техніка (не зберігати).
11:00–13:00 — Техніка
- Техніка — список 5 одиниць із статусами (4 активних, 1 на ремонті).
- Відкрити John Deere 8R 310:
- Загальні дані: марка, модель, рік, наробіток мотогодин.
- Журнал роботи: 4 записи (сівба, збирання).
- Журнал заправок: 2 записи.
- Відкрити КамАЗ 45143 — показати статус «На ремонті», записи обслуговування.
- Техніка → Обслуговування — записи ТО із датами та вартістю.
- Fleet (карта) — показати карту з GPS-позиціями техніки в реальному часі (за наявності телематики).
13:00–15:30 — Економіка та Аналітика
- Економіка → Витрати — 12 записів:
- Категорії: Насіння (308 838 UAH), Добрива (232 538 UAH), ЗЗР (17 227 UAH), Паливо (192 400 UAH), Техніка (40 500 UAH), Зарплата (95 000 UAH), Оренда (182 500 UAH).
- Показати фільтр по категорії та по полю.
- Показати CSV-експорт.
- Економіка → Аналітика — графіки витрат у динаміці.
- Економіка → P&L по полях — прибутковість кожного поля.
- Економіка → Бюджет — план (3 135 000 UAH) vs факт по 7 категоріях.
- Економіка → Маржинальність — маржа по культурах.
- Аналітика → Ефективність полів — ранжування полів по прибутку/га.
- Аналітика → Ресурси — витрата ресурсів по датах та полях.
15:30–17:00 — Продажі
- Продажі — список 5 угод (~5.38 млн UAH):
- Kernel Holding: пшениця 150 т × 7 200 = 1 080 000 UAH.
- МХП: ячмінь 200 т × 5 500 = 1 100 000 UAH.
- АДМ Україна: кукурудза 190 т × 5 800 = 1 102 000 UAH.
- Bunge Ukraine: ріпак 80 т × 19 500 = 1 560 000 UAH.
- Kernel Holding: пшениця 75 т × 7 200 = 540 000 UAH (другий транш).
- Продажі → Аналітика — графік виручки у розрізі культур та покупців.
17:00–18:30 — HR (Персонал)
- HR → Співробітники — 4 активних співробітники з посадами та відділами.
- Відкрити Петро Харченко (Тракторист, 180 UAH/год):
- Журнал відпрацьованого часу: 2 записи (сівба, підготовка ґрунту).
- HR → Журнал робіт — 4 записи з прив’язкою до полів і операцій.
- HR → Зарплата — 5 виплат: 4 оклади серпня (~84 100 UAH) + 1 аванс Харченку.
18:30–19:30 — Паливо
- Паливо — 2 цистерни:
- Дизель: 10 800 / 20 000 л (54% заповнена).
- Бензин: 850 / 3 000 л (28% заповнена).
- Показати 4 транзакції: надходження 15 000 л та 3 видачі техніці.
- Показати сповіщення «Низький залишок» — інтегроване з Notification Center.
19:30–20:00 — Адмін: Права та Аудит
- Адмін → Права доступу:
- Показати рольову матрицю для ролі Administrator (усі права).
- Перемкнути на роль Agronomist — обмежені права на Економіку та HR.
- Показати можливість fine-grained налаштування (canRead/canCreate/canUpdate/canDelete).
- Адмін → Аудит-лог — 4 записи змін:
- Продаж пшениці створено (Kernel Holding, 1 080 000 UAH).
- Операція збирання завершена (статус InProgress → Completed).
- КамАЗ переведено на ремонт (Active → UnderRepair).
- Витрата палива записана (130 000 UAH).
- Налаштування → Користувачі — 3 облікові записи в одному тенанті.
✅ Сценарії, що готові до демонстрації
| # | Сценарій | Статус | Модуль |
|---|---|---|---|
| 1 | Перегляд списку полів із культурами та площею | ✅ Ready | Поля |
| 2 | Картка поля: посів, збирання, добрива, ЗЗР | ✅ Ready | Поля |
| 3 | Перегляд залишків складу та рухів товарів | ✅ Ready | Склади |
| 4 | Перегляд зернових партій та їх рухів | ✅ Ready | Зерносховище |
| 5 | Відвантаження/прийом зерна (форма) | ✅ Ready | Зерносховище |
| 6 | Перегляд та завершення агроопераціі | ✅ Ready | Операції |
| 7 | Прив’язка техніки та ресурсів до операції | ✅ Ready | Операції |
| 8 | Парк техніки: картка, наробіток, заправки | ✅ Ready | Техніка |
| 9 | Облік витрат по категоріях та полях | ✅ Ready | Економіка |
| 10 | P&L по полях (доходи - витрати) | ✅ Ready | Економіка |
| 11 | Бюджет: план vs факт | ✅ Ready | Економіка |
| 12 | Аналітика продажів по культурах | ✅ Ready | Продажі |
| 13 | HR: персонал, журнал робіт, зарплата | ✅ Ready | HR |
| 14 | Паливний облік: цистерни, транзакції | ✅ Ready | Паливо |
| 15 | Рольова матриця прав доступу | ✅ Ready | Адмін |
| 16 | Аудит-лог змін сутностей | ✅ Ready | Адмін |
| 17 | Dashboard KPI та графіки | ✅ Ready | Dashboard |
| 18 | Сповіщення (Notification Center) | ✅ Ready | Notifications |
| 19 | Планування сівозміни (AI Advisor) | ✅ Ready | Поля |
| 20 | CSV-експорт витрат та продажів | ✅ Ready | Економіка |
💡 Поради для демонстратора
- Не модифікуйте demo-дані під час демо — всі зміни зберігаються в БД і видно аудиторії. Якщо потрібен «чистий» reset — виконати
docker-compose down -v && docker-compose up --build -d. - Потрібен internet для завантаження MapTiler tiles (карта полів). У офлайн-середовищі карта залишиться без тайлів, але контури полів відображатимуться.
- Перемикання мови — іконка прапора у верхньому правому куті (Українська / English).
- Для технічної аудиторії — показати Swagger UI (
/swagger): всі ендпоінти задокументовані, можна виконувати запити прямо з браузера. - Для демонстрації API — після логіну скопіювати JWT токен із DevTools → Network (будь-який
/api/запит, заголовокAuthorization: Bearer ...) та вставити у Swagger → Authorize.
🔗 Пов’язані документи
| Документ | Опис |
|---|---|
| README.md | Головна сторінка проекту |
| docs/architecture.md | Архітектура (Clean Architecture, CQRS) |
| docs/auth.md | Аутентифікація та авторизація |
| docs/tenancy.md | Мультиорендність |
| docs/api.md | Довідник API |
| docs/deployment.md | Деплой у продакшен |