@startuml left to right direction actor "Пользователь" as user note top of user : Основной пользователь приложения - обучаемый actor "Администратор" as admin note top of admin : Администратор учебного центра (загрузка контента) actor "Монитор" as monitor note top of monitor : Заказчик, проверяющий результаты обучений и тестирований ' rectangle exam-service { usecase "Создание курса" as courseCreate usecase "Создание теста" as testCreate usecase "Создание вопроса" as questionCreate usecase "Создание ответа" as answerCreate usecase "Создание темы" as themeCreate usecase "Создание структуры курса" as schemeCreate usecase "Оформление содержимого курса" as courseEdit courseCreate <-- admin testCreate <-- admin questionCreate <-- admin answerCreate <-- admin schemeCreate <-- admin themeCreate <-- admin courseEdit <-- admin usecase "Назначение задания" as target target <-- admin usecase "Подробный просмотр результатов" as resultsView monitor --> resultsView usecase "Авторизация" as auth ' rectangle "Авторизация" as examServiceAuth { usecase "Внесение сведений об организации" as organization usecase "Внесение сведений о должности" as position usecase "внесение кода действующей учетной записи" as code35 auth ..> organization auth ..> position auth ..> code35 ' } usecase "Просмотр перечня доступных курсов" as task usecase "Просмотр статусов о прохождении курса" as status usecase "Изучение контента курса" as learn ' rectangle "Обучение" as examServiceLearn { usecase "Просмотр текста" as text usecase "Скачивание документов" as doc usecase "Просмотр изображений" as image usecase "Просмотр видео" as video learn ..> text learn ..> doc learn ..> image learn ..> video ' text <.. courseCreate ' doc <.. courseCreate ' image <.. courseCreate ' video <.. courseCreate ' } text <.. courseEdit doc <.. courseEdit image <.. courseEdit video <.. courseEdit usecase "Прохождение проверки знаний" as test ' rectangle "Проверка знаний" as examServiceTest { usecase "Просмотр вопросов и доступных ответов" as quiz usecase "Выбор ответов" as answer usecase "Отправка ответов в базу" as postAttampt test ..> quiz test ..> answer test ..> postAttampt ' quiz <.. testCreate ' answer <.. testCreate ' postAttampt <.. testCreate ' } user --> auth user --> task user --> learn user --> test user --> status monitor --> status usecase "Актуализация перечня организаций" as organizationsActuator usecase "Актуализация перечня должностей" as positionsActuator target <-- organizationsActuator target <-- positionsActuator organizationsActuator <-- admin positionsActuator <-- admin rectangle "API" as api #Pink { usecase "/organizations" as organizations usecase "/positions" as positions usecase "/accounts" as accounts usecase "/targets" as targets usecase "/courses" as courses usecase "/schemes" as schemes usecase "/themes" as themes usecase "/questions" as questions usecase "/answers" as answers usecase "/quizes" as quizes usecase "/results" as results } organization <.. organizations position <.. positions code35 <.. accounts targets <.. target task <.. targets status <.. results resultsView <.. results quizes <.. testCreate target <.. testCreate target <.. courseCreate courses <.. courseCreate themes <.. themeCreate schemes <.. schemeCreate quiz <.. quizes questions <.. questionCreate answers <.. answerCreate status <.. accounts ' results <.. accounts ' targets <-- courses organizations <.. organizationsActuator positions <.. positionsActuator ' } @enduml