Загрузка данных


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