Веб-приложение для управления домашними заданиями, разработанное по методологии Extreme Programming (XP) в рамках курса Software Engineering.
Система позволяет преподавателям создавать курсы и задания, а студентам — сдавать работы и получать оценки с обратной связью.
➡️ Описание продукта для пользователей
📚 Полная документация
Проект полностью следует принципам XP:
- ✅ Парное программирование - вся разработка в парах
- ✅ Непрерывная интеграция - автоматическое тестирование и деплой
- ✅ Частые релизы - итеративная разработка с малыми коммитами
- ✅ Простой дизайн - архитектура по принципу YAGNI
- ✅ Рефакторинг - постоянное улучшение кода
- ✅ Коллективное владение - активное участие всей команды
- ✅ TDD - тесты с начала разработки
- Backend: Django 5.2.7 + Python 3.9+
- Database: SQLite
- Frontend: Django Templates + Bootstrap 5
- CI/CD: GitHub Actions (линтеры, тесты, автодокументация)
- Docs: Sphinx + ReadTheDocs
➡️ Обоснование выбора технологий
# Клонируйте репозиторий
git clone https://github.com/yv0vaa/SE-XP.git
cd SE-XP
# Создайте виртуальное окружение
python -m venv venv
source venv/bin/activate # Linux/macOS
# или venv\Scripts\activate # Windows
# Установите зависимости
pip install -r requirements.txt
# Выполните миграции и запустите сервер
cd hw_checker
python manage.py migrate
python manage.py createsuperuser
python manage.py runserverОткройте http://127.0.0.1:8000/ в браузере.
➡️ Пошаговая инструкция
➡️ Инструкция для тестирования
Проект полностью реализует требования ТЗ версии 1.1:
- ✅ Список курсов и домашних заданий
- ✅ Детальный просмотр ДЗ
- ✅ Отправка решения (файл)
- ✅ Просмотр оценок и отзывов
- ✅ Таблица с результатами
- ✅ Управление курсами (CRUD) через веб-интерфейс
- ✅ Управление домашними заданиями (CRUD)
- ✅ Проверка работ и выставление оценок
- ✅ Разграничение прав по ролям
- ✅ Защита
/admin(только администраторы) - ✅ Защита от SQL-инъекций и XSS
- ✅ Все тесты безопасности пройдены
➡️ Полное техническое задание
➡️ Описание функционала
make help # Список всех команд
make install # Установить зависимости
make run # Запустить сервер
make test # Запустить тесты
make lint # Проверить код линтерами
make format # Автоформатирование кода
make docs # Собрать документациюSE-XP/
├── hw_checker/ # Django приложение
│ ├── assignments/ # Основное приложение
│ │ ├── models.py # Модели: Course, Homework, Submission
│ │ ├── views.py # Views для студентов и преподавателей
│ │ ├── forms.py # Формы
│ │ ├── tests.py # Тесты
│ │ └── templates/ # HTML шаблоны
│ └── hw_checker/ # Настройки Django
├── docs/ # Sphinx документация
└── .github/workflows/ # CI/CD
➡️ Руководство по разработке
➡️ Как контрибьютить
CI Pipeline - запускается при каждом push и PR:
- ✅ Тестирование на Python 3.10, 3.11, 3.12
- ✅ Review - Codacy
- ✅ Линтинг (flake8, black, isort, pylint)
- ✅ Запуск тестов
- ✅ Проверка миграций
Documentation Pipeline - автоматическая публикация документации на GitHub Pages
Мы следуем XP практикам:
- Создайте ветку для вашей фичи
- Напишите тесты (TDD подход)
- Напишите код с docstrings (Google Style)
- Проверьте качество:
make format && make lint && make test - Создайте Pull Request с описанием изменений
➡️ Руководство для разработчиков
- 📖 Онлайн-документация - полная документация на GitHub Pages
- 📘 Описание продукта - руководство для пользователей
- 📋 Техническое задание - ТЗ версии 1.1
- 🚀 Быстрый старт - пошаговое руководство
- Обзор проекта
- Установка
- Руководство пользователя
- Функциональность
- FAQ
- XP практики
- Технологический стек
- Руководство по разработке
- CI/CD
- API Reference
Этот проект лицензирован под лицензией MIT - см. файл LICENSE для подробностей.
- Vladimir Zakharov - Core functionality, courses
- Dmitrii Deruzhinskii - Testing, integration, CI/CD
- Aleksei Tokarev - Documentation, deployment
Homework Checker - разработан с применением методологии Extreme Programming