esoe
3 weeks ago
3 changed files with 201 additions and 0 deletions
@ -0,0 +1,92 @@ |
|||||||
|
@startuml |
||||||
|
|
||||||
|
package models { |
||||||
|
' сущность Организация |
||||||
|
class Organization { |
||||||
|
- id : Long |
||||||
|
- name: String |
||||||
|
-- |
||||||
|
getters |
||||||
|
setters |
||||||
|
} |
||||||
|
|
||||||
|
' сущость Должность |
||||||
|
class Position { |
||||||
|
- id : Long |
||||||
|
- name : String |
||||||
|
- organization : Organization |
||||||
|
-- |
||||||
|
getters |
||||||
|
setters |
||||||
|
} |
||||||
|
|
||||||
|
' сущность Аккаунт |
||||||
|
class Account { |
||||||
|
- id : Long |
||||||
|
- code35 : String |
||||||
|
- position : Position |
||||||
|
- attampt : List<Attampt> |
||||||
|
-- |
||||||
|
getters |
||||||
|
setters |
||||||
|
} |
||||||
|
|
||||||
|
' сущность Попытки входа |
||||||
|
class Attampt { |
||||||
|
- id : Long |
||||||
|
- sessionId : String |
||||||
|
-- |
||||||
|
getters |
||||||
|
setters |
||||||
|
} |
||||||
|
} |
||||||
|
package repository { |
||||||
|
interface RemoteRepository{ |
||||||
|
- client : WebClient |
||||||
|
-- |
||||||
|
+ organizationsPage() Page<Organization> |
||||||
|
+ organizationsList() List<Organization> |
||||||
|
+ positions() List<Position> |
||||||
|
+ positions(Organization org) Page<Position> |
||||||
|
} |
||||||
|
|
||||||
|
class RemoteRepositoryImpl{ |
||||||
|
- client : WebClient |
||||||
|
-- |
||||||
|
+ organizationsPage() Page<Organization> |
||||||
|
+ organizationsList() List<Organization> |
||||||
|
+ positions() List<Position> |
||||||
|
+ positions(Organization org) Page<Position> |
||||||
|
} |
||||||
|
RemoteRepositoryImpl -> RemoteRepository |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
package controllers{ |
||||||
|
class MainframeController { |
||||||
|
{static} log : Logger |
||||||
|
- repo : RemoteRepository |
||||||
|
-- |
||||||
|
+ getMainframe() : String |
||||||
|
} |
||||||
|
|
||||||
|
class AuthController { |
||||||
|
{static} log : Logger |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
Position o-- Organization |
||||||
|
Account o-- Position |
||||||
|
Account o-- Attampt |
||||||
|
MainframeController o-- RemoteRepository |
||||||
|
|
||||||
|
AuthController o-- RemoteRepository |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@enduml |
@ -0,0 +1,109 @@ |
|||||||
|
@startuml |
||||||
|
title "exam.main : диаграмма состояний (state)\n {структура графического интерфейса платформы}" |
||||||
|
left to right direction |
||||||
|
|
||||||
|
[*] --> mainframe : exam-main (localhost:100) |
||||||
|
|
||||||
|
' mainframe |
||||||
|
state "mainframe" as mainframe { |
||||||
|
state "fragment: authorization" as authorization{ |
||||||
|
authorization: - поле для внесения кода попытки |
||||||
|
authorization: - кнопка перехода к продолжению существующей попытки (курсу) |
||||||
|
authorization: фрагмент может быть скрыт от пользователя, если хотим исключить \nвозможность входа по коду попытки |
||||||
|
|
||||||
|
} |
||||||
|
state "fragment: registration" as registration { |
||||||
|
registration: - селект наименования организации |
||||||
|
registration: - селект наименования должности |
||||||
|
registration: - кнопка перехода к новой попытке (курсу) |
||||||
|
} |
||||||
|
state "fragment: hello" as hello { |
||||||
|
hello : - Приветствие (*.md статический контент) |
||||||
|
hello : - Коментарии для новых пользователей (*.md статический контент) |
||||||
|
hello : - Пояснения по обработке персональных данных (*.md статический контент) |
||||||
|
} |
||||||
|
state "hidden: session active" as active |
||||||
|
} |
||||||
|
|
||||||
|
registration --> access : наименование организации и должность |
||||||
|
authorization --> access : код попытки |
||||||
|
active --> access : id текущей сессии |
||||||
|
|
||||||
|
state "Проверка доступа" as access { |
||||||
|
access: проверка наличия кода попытки в базе |
||||||
|
access: проверка наличия текущей сессии в базе |
||||||
|
access: создание нового аккаунта |
||||||
|
access: переход к аккаунту |
||||||
|
access: переход к mainframe |
||||||
|
} |
||||||
|
access --> mainframe : запрошенный аккаунт отсутствует |
||||||
|
access --> account : направление пользователя к запрошенному аккаунту |
||||||
|
|
||||||
|
state "Назначенные курсы" 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 "Курс" as course { |
||||||
|
|
||||||
|
state "fragment: 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 "Вопос" as question { |
||||||
|
question: тело вопроса |
||||||
|
question: варианты ответа |
||||||
|
question: переход к следующему вопросу |
||||||
|
question: переход к главной странице опроса |
||||||
|
question: переход к курсам |
||||||
|
} |
||||||
|
|
||||||
|
question --> quiz : запросить следующий вопрос, если есть |
||||||
|
question --> course : продолжить изучение |
||||||
|
' question --> account : выбрать другой курс |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@enduml |
After Width: | Height: | Size: 129 KiB |
Loading…
Reference in new issue