Project_ITIS

0
README.md

📊 Code Quality Assessment Tool

CI/CD Pipeline Python 3.8+

Автоматический инструмент для оценки качества студенческого Python кода на основе множества метрик.

🎯 Описание проекта

Code Quality Assessment Tool - это комплексный инструмент для автоматической оценки качества Python кода. Он анализирует код по следующим критериям:

  • PEP 8 Compliance - соблюдение стандартов кодирования Python (с использованием AST парсинга)
  • 🔄 Cyclomatic Complexity - цикломатическая сложность функций
  • 📚 Documentation - наличие и качество docstring
  • 📋 Code Duplication - обнаружение дублирования кода
  • Test Coverage - покрытие кода тестами

Полезность проекта (4 балла)

Этот инструмент решает реальную проблему в образовательном процессе:

  • Автоматизирует проверку студенческих работ
  • Предоставляет объективную оценку качества кода
  • Генерирует детальные отчеты с рекомендациями по улучшению
  • Экономит время преподавателей на код-ревью
  • Помогает студентам улучшать навыки программирования

📁 Структура проекта

Project_ITIS/ ├── .github/ │ └── workflows/ │ ├── ci.yml # CI/CD pipeline │ ├── student-code-review.yml # Автоматическая проверка студентов │ └── release.yml # Релизы ├── code_quality_tool/ │ ├── __init__.py # Инициализация пакета │ ├── __main__.py # Entry point │ ├── analyzer.py # Главный анализатор │ ├── pep8_checker.py # Проверка PEP 8 │ ├── complexity_analyzer.py # Анализ сложности │ ├── docstring_checker.py # Проверка документации │ ├── duplicate_detector.py # Детекция дубликатов │ ├── coverage_analyzer.py # Анализ покрытия │ ├── report_generator.py # Генератор отчетов │ └── cli.py # CLI интерфейс ├── tests/ │ ├── __init__.py │ ├── test_pep8_checker.py │ ├── test_complexity_analyzer.py │ ├── test_docstring_checker.py │ └── test_analyzer.py ├── student_submissions/ # Папка для студенческих работ │ └── README.md ├── .gitignore ├── requirements.txt └── README.md

🚀 Установка

Требования

  • Python 3.8 или выше
  • pip

Установка зависимостей

💻 Использование

Анализ одного файла

Анализ директории

Генерация отчета в разных форматах

Анализ с проверкой покрытия тестами

Пакетный анализ студенческих работ

📊 Примеры использования

Пример 1: Анализ простого файла

Запуск анализа:

Результат:

  • Overall Score: 95.5
  • Grade: A (Excellent)
  • PEP 8: 100.0
  • Complexity: 100.0
  • Documentation: 100.0

Пример 2: Анализ проекта

Пример 3: Использование в Python коде

🔧 CI/CD Integration

GitHub Actions Workflows

Проект включает три workflow:

1. CI/CD Pipeline (
ci.yml
)

  • Запускается при push в main/develop
  • Тестирование на Python 3.8, 3.9, 3.10, 3.11
  • Проверка PEP 8 с помощью flake8
  • Проверка форматирования с black
  • Анализ с pylint
  • Самоанализ кода инструмента
  • Загрузка отчетов в artifacts

2. Student Code Review (
student-code-review.yml
)

  • Запускается по расписанию (ежедневно в 2:00 UTC)
  • Можно запустить вручную через workflow_dispatch
  • Анализирует все работы в папке
    student_submissions/
  • Генерирует отчеты для каждого студента
  • Сохраняет отчеты в artifacts на 90 дней

3. Release (
release.yml
)

  • Запускается при создании тега версии
  • Собирает пакет
  • Создает GitHub Release

Использование для проверки студенческих работ

  1. Студенты размещают свой код в
    student_submissions/student_name/
  2. GitHub Actions автоматически анализирует код
  3. Отчеты доступны в разделе Actions → Artifacts

📈 Метрики и оценивание

Система оценивания

Каждая метрика оценивается по шкале 0-100:

МетрикаВесОписание
PEP 8 Compliance20%Соблюдение стандартов кодирования
Complexity25%Цикломатическая сложность
Documentation20%Наличие docstring
Code Duplication20%Отсутствие дубликатов
Test Coverage15%Покрытие тестами

Итоговая оценка

  • A (90-100): Excellent - отличное качество кода
  • B (80-89): Good - хорошее качество
  • C (70-79): Satisfactory - удовлетворительно
  • D (60-69): Needs Improvement - требует улучшения
  • F (0-59): Poor - плохое качество

🧪 Тестирование

Запуск тестов:

📝 Примеры отчетов

Инструмент генерирует красивые HTML отчеты с:

  • Общей оценкой и grade
  • Детальными метриками по каждому критерию
  • Списком нарушений и проблем
  • Рекомендациями по улучшению
  • Цветовой индикацией (зеленый/желтый/красный)

🎓 Использование в образовательном процессе

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

  1. Настройте GitHub Actions для автоматической проверки
  2. Студенты загружают код в свои папки
  3. Получайте автоматические отчеты
  4. Используйте метрики для объективного оценивания

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

  1. Запускайте анализ локально перед отправкой работы
  2. Изучайте рекомендации в отчетах
  3. Улучшайте код на основе метрик
  4. Отслеживайте прогресс