Skip to content

Resolve "Демо-сценарий end-to-end" - #109

Merged
Adilforest merged 4 commits into
mainfrom
develop
Jun 26, 2026
Merged

Adilforest merged 4 commits into
mainfrom
develop

Conversation

@Adilforest

Copy link
Copy Markdown
Owner

Closes #34

Что сделано

Финальная интеграция M6: данные каталога приведены к правдоподобному виду для защиты, добавлены детерминированные демо-аккаунты по ролям и одно-командный запуск демо; README описывает сценарий показа и ссылку на живое демо.

Основные изменения

  • seed_demo (catalog): дополняет импортированные объекты разумным износом и ОДНИМ свежим осмотром для детерминированного большинства (по умолчанию 88%), чтобы после пересчёта распределение по состояниям выглядело реалистично, а не «сплошь аварийным/просроченным»; меньшинство намеренно оставлено как «хвост» требующих внимания/просроченных. Идемпотентно (демо-осмотры помечены и пересоздаются), реальные данные импорта не удаляются.
  • create_demo_users (accounts): идемпотентно создаёт по аккаунту на роль (viewer/engineer/manager/admin; admin — суперпользователь) с фиксированными паролями; если юзер есть — сбрасывает пароль и роль; печатает таблицу логин/пароль/роль.
  • bootstrap_demo (catalog): одна команда — справочники → импорт открытых данных → история гидропостов → seed_demorecompute_assessments → демо-аккаунты; шаги импорта мягко пропускаются, если сырых датасетов нет.
  • README: запуск одной командой, ссылка на живое демо https://aquageodemo.ruletk.com/, таблица демо-аккаунтов, сценарий показа.

Зачем это сделано

Каталог из-за пустой/синтетической истории осмотров выглядел «всё аварийное и просрочено». Демо-сид делает картину достоверной (большинство исправно/под наблюдением, меньшинство в ремонте/аварии), а единая команда и аккаунты дают воспроизводимый сквозной демо-сценарий для защиты.

Тестирование

Проверено на копии реального датасета (1432 объекта): до — 1145/1432 просрочено, перекос в repair; после демо-сида — serviceable=566, monitoring=422, repair=304, emergency=140, просрочено 266. Все 4 демо-входа дают корректную роль; инженер подаёт заявку (decide → 403), менеджер согласует → PDF-приказ (HTTP 200); /admin/ поднимается; повторные запуски идемпотентны.

Adilforest and others added 4 commits June 26, 2026 15:31
- seed_demo: augments imported objects with believable wear + ONE fresh
  inspection for a deterministic majority (default 88%), so recompute yields a
  realistic spread instead of 'almost all overdue/repair'; minority left as the
  attention/overdue tail; idempotent (demo inspections tagged + re-created)
- create_demo_users: idempotent accounts per role (viewer/engineer/manager/admin,
  admin = superuser) with fixed known passwords; resets password if user exists;
  prints a login/password/role table
- bootstrap_demo: one command — reference -> import -> hydropost history ->
  seed_demo -> recompute -> demo users (import steps skipped gracefully if raw
  datasets absent)
- README: one-command bring-up, live demo link, demo-accounts table, show script

Verified on a clone of the real dataset (1432 objects): before 1145/1432 overdue,
repair-heavy; after serviceable=566 monitoring=422 repair=304 emergency=140,
overdue 266. All 4 demo logins return correct roles; engineer submits (can't
decide, 403), manager approves -> order PDF (200); /admin/ up; idempotent re-runs.
Resolve "Демо-сценарий end-to-end"
…ploy seed_demo)

main already has a seed_demo (creates compact demo objects for the live deploy's
Helm seed-Job). Rename this realistic-inspection seeder to seed_demo_state so both
coexist; bootstrap_demo calls seed_demo_state, and falls back to seed_demo to
create objects when --skip-import is used.
@Adilforest
Adilforest merged commit 98fe768 into main Jun 26, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Демо-сценарий end-to-end

1 participant