flowchart LR
%% Акторы (внешние сущности)
Guest(["Гость"])
User(["Пользователь"])
Student(["Студент"])
Teacher(["Преподаватель"])
Curator(["Куратор"])
Admin(["Администратор"])
SystemTime(["Время (31 августа)"])
%% Обобщение пользователей (пустой наконечник)
Guest --> User
Student --> User
Teacher --> User
Curator --> User
Admin --> User
%% Варианты использования (Use Cases)
UC_Login(("Авторизоваться в системе"))
UC_ViewMain(("Просмотреть главную страницу"))
UC_ViewCurriculum(("Просмотреть учебный план"))
%% Студент и Куратор (Портфолио)
UC_AddAchievement(("Добавить достижение"))
UC_CheckAchievement(("Проверить достижение"))
%% Студент (Дисциплины)
UC_ViewDisciplines(("Просмотреть дисциплины направления"))
%% Преподаватель (Дисциплины)
UC_ViewAllDisciplines(("Просмотреть все дисциплины"))
UC_ManageMaterials(("Работать с материалами дисциплины"))
UC_ApplyDiscipline(("Оставить заявку на дисциплину"))
%% Администратор (Управление)
UC_RegisterUser(("Зарегистрировать пользователя"))
UC_EditUser(("Изменить данные пользователя"))
UC_SearchUser(("Найти пользователя"))
UC_AssignTeacher(("Назначить ответственного за дисциплину"))
UC_ConsiderApply(("Рассмотреть заявку на дисциплину"))
%% Коммуникация
UC_ChatGeneral(("Общаться в общем чате"))
UC_ChatSub(("Общаться в подчатах"))
UC_SendMessage(("Отправить личное сообщение"))
%% Автоматика
UC_TranslateStudent(("Перевести студента на следующий курс"))
%% Связи (Актор -> Use Case)
Guest --- UC_ViewMain
Guest --- UC_ViewCurriculum
User --- UC_Login
User --- UC_ViewMain
User --- UC_ChatGeneral
User --- UC_SendMessage
Student --- UC_ViewDisciplines
Student --- UC_AddAchievement
Student --- UC_ChatSub
Teacher --- UC_ViewAllDisciplines
Teacher --- UC_ManageMaterials
Teacher --- UC_ApplyDiscipline
Teacher --- UC_ChatSub
Curator --- UC_CheckAchievement
Curator --- UC_AddAchievement
Curator --- UC_ChatGeneral
Curator --- UC_ChatSub
Admin --- UC_RegisterUser
Admin --- UC_EditUser
Admin --- UC_SearchUser
Admin --- UC_AssignTeacher
Admin --- UC_ConsiderApply
Admin --- UC_ChatGeneral
SystemTime --- UC_TranslateStudent
%% Связи Include/Extend (без прямых сплошных стрелок)
UC_AddAchievement -.->|include| UC_Login
UC_CheckAchievement -.->|include| UC_Login
UC_ManageMaterials -.->|include| UC_Login
UC_RegisterUser -.->|include| UC_Login
UC_ChatGeneral -.->|include| UC_Login
UC_EditUser -.->|extend| UC_SearchUser