esoe
3 weeks ago
3 changed files with 201 additions and 0 deletions
@ -0,0 +1,92 @@
@@ -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 @@
@@ -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