You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
111 lines
5.0 KiB
111 lines
5.0 KiB
@startuml |
|
title "exam.main : диаграмма состояний (state)\n {структура графического интерфейса платформы}" |
|
left to right direction |
|
|
|
[*] --> mainframe : exam-main (localhost:100) |
|
|
|
' mainframe |
|
state "Страница входа (mainframe)" as mainframe { |
|
state "fragment: login" as login{ |
|
login: - поле для внесения кода попытки |
|
login: - кнопка перехода к продолжению существующей попытки (курсу) |
|
login: фрагмент может быть скрыт от пользователя, если хотим исключить \nвозможность входа по коду попытки |
|
state "hidden: Аутентификация" as authentification |
|
state "hidden: Авторизация" as authorization |
|
state "hidden: session active" as active |
|
} |
|
state "fragment: registration" as registration { |
|
registration: - селект наименования организации |
|
registration: - селект наименования должности |
|
registration: - кнопка перехода к новой попытке (курсу) |
|
} |
|
state "static: hello" as hello { |
|
hello : - Приветствие (*.md статический контент) |
|
hello : - Коментарии для новых пользователей (*.md статический контент) |
|
hello : - Пояснения по обработке персональных данных (*.md статический контент) |
|
} |
|
} |
|
|
|
authorization --> access : id аккаунта |
|
registration --> access : наименование организации и должность |
|
|
|
active --> access : id текущей сессии |
|
|
|
state "Проверка доступа (access)" as access { |
|
access: проверка наличия кода попытки в базе |
|
access: проверка наличия текущей сессии в базе |
|
access: создание нового аккаунта |
|
access: переход к аккаунту |
|
access: переход к mainframe |
|
} |
|
access --> mainframe : запрошенный аккаунт отсутствует |
|
access --> account : направление пользователя к запрошенному аккаунту |
|
|
|
state "Аккаунт (account)" as account { |
|
account: - ID попытки |
|
account: - перечень доступных курсов |
|
account: - выход из id (сброс сессии) |
|
state "fragment: courses" as courses { |
|
courses: - перечень назначенных курсов |
|
courses: - статус о завершении курса |
|
courses: - переход к выбранному курсу |
|
} |
|
state "fragment: info" as info { |
|
info: - Код попытки / пользователя |
|
info: - Наименование организации |
|
info: - Наименование должности |
|
} |
|
state "fragment: exit" as exit{ |
|
exit: - выйти из аккаунта (сбросить сессию) |
|
} |
|
} |
|
|
|
exit --> mainframe : сброс сессии и возврат на главную страницу |
|
|
|
state "Курс (course)" as course { |
|
|
|
state "static: content" as courseContent { |
|
courseContent: статический контент *.md |
|
courseContent: - img |
|
courseContent: - video |
|
courseContent: - links |
|
courseContent: - text |
|
courseContent: - docs |
|
} |
|
|
|
state "fragment: controls" as courseControls { |
|
courseControls: переход к первому вопросу |
|
courseControls: переход к аккаунту |
|
} |
|
|
|
state "hidden: Опрос" as quiz { |
|
quiz: скрытая форма: |
|
quiz: - скрытый список назначенных вопросов |
|
quiz: - редирект на следующий вопрос |
|
quiz: - если вопросы закончились, редирект на аккаунт |
|
} |
|
} |
|
courses --> course : переход к изучению материалов |
|
courseControls --> account : переход к списку доступных курсов (аккаунту) |
|
|
|
courseControls --> question : запрос первого вопроса |
|
quiz --> question : следющий вопрос |
|
|
|
state "Вопос (question)" as question { |
|
question: тело вопроса |
|
question: варианты ответа |
|
question: переход к следующему вопросу |
|
question: переход к главной странице опроса |
|
question: переход к курсам |
|
} |
|
|
|
question --> quiz : запросить следующий вопрос, если есть |
|
question --> course : продолжить изучение |
|
' question --> account : выбрать другой курс |
|
|
|
|
|
|
|
|
|
|
|
|
|
@enduml |