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


graph TD
    %% Стилизация под белый фон диплома
    classDef actor fill:#ffffff,stroke:#333333,stroke-width:2px,font-weight:bold,color:#000000;
    classDef process fill:#ffffff,stroke:#333333,stroke-width:1px,color:#000000;
    classDef main fill:#f9f9f9,stroke:#333333,stroke-width:2px,font-weight:bold,color:#000000;
    classDef wpfStyle fill:#ffffff,stroke:#333333,stroke-width:2px,stroke-dasharray: 5 5,color:#000000;

    %% 1. ВХОД НА САЙТ
    START([Пользователь открывает сайт]) --> VIEW[Форма ввода данных в браузере]:::process

    %% 2. БЛОК АВТОРИЗАЦИИ (Тот самый центральный прямоугольник)
    VIEW --> AUTH{АВТОРИЗАЦИЯ <br> Проверка логина/пароля <br> или Google_ID}:::main
    
    AUTH -->|Данные неверны| ERR[Ошибка доступа]:::process
    ERR --> VIEW

    %% 3. РАЗВЕТВЛЕНИЕ ПО ДВУМ РОЛЯМ
    AUTH -->|Роль: student| ST[СТУДЕНТ]:::actor
    AUTH -->|Роль: teacher| TR[ПРЕПОДАВАТЕЛЬ]:::actor

    %% Сценарий Студента
    subgraph Блок_Студента ["Взаимодействие Студента"]
        ST --> ST_1(Выбор дисциплины и темы):::process
        ST_1 --> ST_2(Запуск теста):::process
        ST_2 --> ST_3(Выбор и ввод ответов):::process
        ST_3 --> ST_4(Сохранение попытки в БД):::process
        ST_4 --> ST_5(Просмотр оценки):::process
    end

    %% Сценарий Преподавателя
    subgraph Блок_Преподавателя ["Взаимодействие Преподавателя"]
        TR --> TR_1(Управление темами курсов):::process
        TR --> TR_2(Создание тестов и вопросов):::process
        TR_2 --> TR_3(Настройка лимитов времени/попыток):::process
        TR --> TR_4(Просмотр результатов студентов):::process
    end

    %% 4. АДМИНИСТРАТИВНАЯ ПОДСИСТЕМА (WPF) - Работает автономно
    subgraph Административный_Контур ["Административная подсистема (Без роли админа на сайте)"]
        WPF[WPF TestSyncManager]:::wpfStyle
        WPF --> W_1(Настройка локального контура):::process
        W_1 --> W_2(Регистрация преподавателей в БД):::process
        W_2 --> W_3(Запуск синхронизации данных):::process
        W_3 --> W_4(Слияние локальной и удаленной БД):::process
    end