Функциональность системы ======================== Для студентов ------------- Мои курсы ~~~~~~~~~ 📚 **Список всех курсов** * Отображаются курсы, на которые студент записан * Красивые карточки с описанием и статусом * Быстрый доступ к заданиям Домашние задания ~~~~~~~~~~~~~~~~ 📝 **Управление заданиями** * Список заданий по каждому курсу * Срок сдачи для каждого задания * Статусы: "Не сдано" / "Сдано" / "Оценено" * Детальное описание задания Отправка работ ~~~~~~~~~~~~~~ 📤 **Сдача решений** * Загрузка файлов с решениями (PDF, ZIP, DOCX и др.) * Возможность пересдачи (новый файл заменяет старый) * Подтверждение успешной отправки Просмотр результатов ~~~~~~~~~~~~~~~~~~~~ ⭐ **Оценки и обратная связь** * Оценки от преподавателя * Текстовые отзывы и рекомендации * Таблица оценок по всем курсам * История всех отправок Для преподавателей ------------------ Управление курсами ~~~~~~~~~~~~~~~~~~ ➕ **CRUD операции** * Создание новых курсов через удобный веб-интерфейс * Редактирование названия и описания * Удаление неактуальных курсов * Запись студентов на курс (через интерфейс) Создание заданий ~~~~~~~~~~~~~~~~ 📝 **Домашние задания** * Создание заданий в рамках курса * Установка сроков сдачи * Редактирование описания заданий * Удаление заданий Проверка работ ~~~~~~~~~~~~~~ 📥 **Оценивание студентов** * Просмотр всех отправленных работ * Скачивание файлов для проверки * Выставление оценок (числовая оценка) * Написание текстовых отзывов * Фильтрация: "Все" / "Непроверенные" / "Проверенные" Статистика и отчеты ~~~~~~~~~~~~~~~~~~~ 📊 **Аналитика** * Количество сданных работ по каждому заданию * Список студентов на курсе * Статус проверки работ Для администраторов ------------------- Полное управление системой ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 🛠️ **Админ-панель Django** * Полный доступ к админ-панели Django * Создание и управление пользователями * Назначение ролей (Студент / Преподаватель) * Управление всеми курсами и заданиями * Просмотр всех отправок в системе Безопасность ------------ Разграничение доступа ~~~~~~~~~~~~~~~~~~~~~ .. list-table:: :header-rows: 1 :widths: 40 20 20 20 * - Действие - Студент - Преподаватель - Администратор * - Просмотр своих курсов - ✅ - ✅ - ✅ * - Просмотр чужих курсов - ❌ - ❌ - ✅ * - Сдача работ - ✅ - ❌ - ❌ * - Просмотр чужих работ - ❌ - ❌ (только свои курсы) - ✅ * - Создание курсов - ❌ - ✅ - ✅ * - Запись студентов - ❌ - ✅ (свои курсы) - ✅ * - Проверка работ - ❌ - ✅ (свои курсы) - ✅ * - Доступ в /admin - ❌ - ❌ - ✅ Защита данных ~~~~~~~~~~~~~ 🔐 **Механизмы безопасности** * **Аутентификация**: Все защищенные страницы требуют входа * **Авторизация**: Каждый видит только свои данные * **Защита от атак**: SQL-инъекции, XSS, CSRF блокируются Django * **Изоляция**: Студент А не может видеть работы студента Б * **Изоляция курсов**: Преподаватель А не может управлять курсами преподавателя Б Статусы и индикаторы -------------------- Статусы домашних заданий (для студента) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. list-table:: :header-rows: 1 :widths: 15 50 15 * - Статус - Описание - Цвет * - 🔴 Не сдано - Работа еще не загружена - Красный * - 🟡 Сдано - Работа загружена, ждет проверки - Желтый * - 🟢 Оценено - Работа проверена, есть оценка - Зеленый Фильтры работ (для преподавателя) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. list-table:: :header-rows: 1 :widths: 30 70 * - Фильтр - Описание * - Все работы - Показать все отправки * - Непроверенные - Работы без оценки (требуют проверки) * - Проверенные - Работы с оценкой Поддерживаемые форматы файлов ------------------------------ Загружаемые файлы ~~~~~~~~~~~~~~~~~ **Поддерживаемые форматы:** * 📄 PDF (``.pdf``) * 📦 Архивы (``.zip``, ``.rar``, ``.7z``) * 📝 Документы (``.doc``, ``.docx``, ``.txt``) * 📊 Таблицы (``.xls``, ``.xlsx``) * 🖼️ Изображения (``.jpg``, ``.png``, ``.gif``) * 💻 Код (``.py``, ``.java``, ``.cpp``, и др.) **Ограничения:** * Максимальный размер файла определяется настройками Django * Один файл на одно задание (новая загрузка заменяет старую) Известные ограничения MVP -------------------------- Текущая версия является MVP (Minimum Viable Product) Что НЕ реализовано ~~~~~~~~~~~~~~~~~~ (может быть добавлено в будущем): * ❌ Восстановление пароля * ❌ Email-уведомления о новых заданиях/оценках * ❌ Групповые работы (несколько студентов на одно задание) * ❌ Автоматическая проверка кода (автотесты) * ❌ Экспорт оценок в Excel/CSV * ❌ Статистика и аналитика (графики прогресса) * ❌ Комментарии к конкретным строкам кода * ❌ Интеграция с LMS (Moodle, Canvas) Что ЕСТЬ сейчас ~~~~~~~~~~~~~~~ * ✅ Полный цикл: создание курсов → задания → сдача → проверка → оценки * ✅ Разграничение прав (студент/преподаватель/администратор) * ✅ Удобный веб-интерфейс * ✅ Адаптивный дизайн * ✅ Безопасность данных