Обзор проекта

HW Checker - это система для управления домашними заданиями, разработанная на Django.

Основные возможности

Для студентов

  • Просмотр списка курсов, на которые записан

  • Просмотр домашних заданий по каждому курсу

  • Отправка решений (файлы)

  • Просмотр оценок и комментариев преподавателя

  • Отслеживание статуса выполнения заданий

  • Таблица оценок по всем курсам

Для преподавателей

  • Создание и управление курсами

  • Запись студентов на курсы

  • Создание домашних заданий в рамках курса

  • Редактирование заданий и курсов

  • Просмотр всех отправленных работ

  • Выставление оценок

  • Добавление комментариев к работам студентов

  • Фильтрация работ по статусу (все/непроверенные/проверенные)

Архитектура

Проект состоит из следующих компонентов:

Models (Модели)
  • UserProfile - профили пользователей с ролями (студент/преподаватель)

  • Course - курсы с преподавателями и студентами

  • Homework - домашние задания в рамках курса

  • Submission - отправленные работы студентов

Views (Представления)
  • Представления для авторизации

  • Dashboard для студентов (список курсов)

  • Dashboard для преподавателей (список своих курсов)

  • CRUD операции для курсов

  • CRUD операции для заданий

  • Управление студентами курса

  • Отправка и проверка работ

Forms (Формы)
  • Регистрация пользователей с выбором роли

  • Создание и редактирование домашних заданий

  • Отправка решений (файловая загрузка)

  • Выставление оценок и отзывов

Decorators (Декораторы)
  • Проверка роли пользователя (student_required, teacher_required)

  • Контроль доступа к курсам и заданиям

Организация курсов

Система построена на курсовой модели:

  1. Преподаватель создает курс и может:

    • Управлять описанием курса

    • Записывать студентов на курс

    • Создавать домашние задания в рамках курса

    • Видеть только свои курсы

  2. Студенты видят только те курсы, на которые они записаны:

    • Список заданий отображается по курсам

    • Каждое задание связано с конкретным курсом

    • Таблица оценок организована по курсам

  3. Домашние задания всегда принадлежат курсу:

    • При создании задания указывается курс

    • Студенты могут отправить работу только один раз

    • Преподаватель может проверить все работы по заданию

Технологии

  • Django 5.2 - основной фреймворк

  • SQLite - база данных (по умолчанию)

  • Bootstrap - UI компоненты

  • Sphinx - генерация документации