Обзор проекта
HW Checker - это система для управления домашними заданиями, разработанная на Django.
Основные возможности
Для студентов
Просмотр списка курсов, на которые записан
Просмотр домашних заданий по каждому курсу
Отправка решений (файлы)
Просмотр оценок и комментариев преподавателя
Отслеживание статуса выполнения заданий
Таблица оценок по всем курсам
Для преподавателей
Создание и управление курсами
Запись студентов на курсы
Создание домашних заданий в рамках курса
Редактирование заданий и курсов
Просмотр всех отправленных работ
Выставление оценок
Добавление комментариев к работам студентов
Фильтрация работ по статусу (все/непроверенные/проверенные)
Архитектура
Проект состоит из следующих компонентов:
- Models (Модели)
UserProfile- профили пользователей с ролями (студент/преподаватель)Course- курсы с преподавателями и студентамиHomework- домашние задания в рамках курсаSubmission- отправленные работы студентов
- Views (Представления)
Представления для авторизации
Dashboard для студентов (список курсов)
Dashboard для преподавателей (список своих курсов)
CRUD операции для курсов
CRUD операции для заданий
Управление студентами курса
Отправка и проверка работ
- Forms (Формы)
Регистрация пользователей с выбором роли
Создание и редактирование домашних заданий
Отправка решений (файловая загрузка)
Выставление оценок и отзывов
- Decorators (Декораторы)
Проверка роли пользователя (
student_required,teacher_required)Контроль доступа к курсам и заданиям
Организация курсов
Система построена на курсовой модели:
Преподаватель создает курс и может:
Управлять описанием курса
Записывать студентов на курс
Создавать домашние задания в рамках курса
Видеть только свои курсы
Студенты видят только те курсы, на которые они записаны:
Список заданий отображается по курсам
Каждое задание связано с конкретным курсом
Таблица оценок организована по курсам
Домашние задания всегда принадлежат курсу:
При создании задания указывается курс
Студенты могут отправить работу только один раз
Преподаватель может проверить все работы по заданию
Технологии
Django 5.2 - основной фреймворк
SQLite - база данных (по умолчанию)
Bootstrap - UI компоненты
Sphinx - генерация документации