70 lines
3.6 KiB
Plaintext
70 lines
3.6 KiB
Plaintext
digraph MushroomHikeApp {
|
||
rankdir=LR;
|
||
fontsize=10;
|
||
node [shape=rectangle, style=rounded, fontsize=10];
|
||
|
||
// --- Основные состояния участников похода (a–m) ---
|
||
a [label="a) Начальное состояние\n(главный экран)"];
|
||
b [label="b) Планирование похода\n(маршрут, точки, погода, офлайн-карты)"];
|
||
c [label="c) Управление участниками\n(приглашения, роли, доверенные контакты)"];
|
||
d [label="d) Чек-лист снаряжения\n(шаблон, распределение, контроль сборов)"];
|
||
e [label="e) Активная навигация\n(карта, GPS, режимы отображения)"];
|
||
f [label="f) Фиксация находки\n(фото, координаты, заметки)"];
|
||
g [label="g) Семейная корзина\n(все находки группы)"];
|
||
h [label="h) Семейный чат\n(сообщения, фото, геолокация)"];
|
||
i [label="i) Справочник грибов\n(виды, съедобность, двойники)"];
|
||
k [label="k) Панель организатора\n(мониторинг, управление маршрутом)"];
|
||
l [label="l) Архив походов\n(список завершённых походов)"];
|
||
m [label="m) Детальный просмотр похода\n(трек, события, статистика)"];
|
||
|
||
|
||
// --- SOS (красный, отдельный) ---
|
||
j [label="j) Экстренный режим (SOS)", color="red", fontcolor="red", style="rounded,bold", penwidth=2];
|
||
|
||
// --- Технические невидимые точки для "стрелок из ниоткуда" ---
|
||
fromAnywhereToA [shape=point, width=0, height=0, style=invis];
|
||
fromAnywhereToSOS [shape=point, width=0, height=0, style=invis];
|
||
|
||
// Стрелки "из ниоткуда"
|
||
fromAnywhereToA -> a [label="25. Переход\nна главный экран", style=dashed];
|
||
fromAnywhereToSOS -> j [label="24. SOS\n(из любого состояния)", style=dashed, color="red", fontcolor="red"];
|
||
|
||
// --- Переходы (кроме SOS и возврата на главный) ---
|
||
|
||
a -> b [label="1. Создать поход"];
|
||
|
||
a -> e [label="2. Присоединиться (день похода)"];
|
||
a -> d [label="3. Присоединиться (подготовка)"];
|
||
|
||
b -> c [label="4. Управление\nучастниками"];
|
||
|
||
c -> d [label="5. Чек-лист"];
|
||
b -> d [label="6. Чек-лист"];
|
||
|
||
d -> e [label="7. Начать поход"];
|
||
b -> e [label="8. Начать поход"];
|
||
|
||
e -> f [label="9. Фиксировать\nнаходку"];
|
||
f -> e [label="10. Сохранить\nи вернуться"];
|
||
|
||
e -> g [label="11. Открыть корзину"];
|
||
g -> e [label="12. Назад к\nнавигации"];
|
||
|
||
e -> h [label="13. Открыть чат"];
|
||
h -> e [label="14. Назад к\nнавигации"];
|
||
|
||
f -> i [label="15. Открыть\nсправочник"];
|
||
g -> i [label="16. Открыть\nсправочник"];
|
||
i -> f [label="17. Назад\nк фиксации"];
|
||
i -> g [label="18. Назад\nк корзине"];
|
||
|
||
e -> k [label="19. Панель\nорганизатора"];
|
||
k -> e [label="20. Назад к\nнавигации"];
|
||
|
||
e -> l [label="21. Завершить\nпоход"];
|
||
|
||
a -> l [label="22. Открыть\nархив"];
|
||
l -> m [label="23. Открыть\nпоход"];
|
||
|
||
}
|