Files
interfaces/lab1/report/graph.dot
2025-11-18 09:43:39 +03:00

70 lines
3.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

digraph MushroomHikeApp {
rankdir=LR;
fontsize=10;
node [shape=rectangle, style=rounded, fontsize=10];
// --- Основные состояния участников похода (am) ---
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поход"];
}