Project_ITIS
3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
README.md
📊 Code Quality Assessment Tool
Автоматический инструмент для оценки качества студенческого 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)
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)
student-code-review.yml
- Запускается по расписанию (ежедневно в 2:00 UTC)
- Можно запустить вручную через workflow_dispatch
- Анализирует все работы в папке student_submissions/
- Генерирует отчеты для каждого студента
- Сохраняет отчеты в artifacts на 90 дней
3. Release (release.yml)
release.yml
- Запускается при создании тега версии
- Собирает пакет
- Создает GitHub Release
Использование для проверки студенческих работ
- Студенты размещают свой код в student_submissions/student_name/
- GitHub Actions автоматически анализирует код
- Отчеты доступны в разделе Actions → Artifacts
📈 Метрики и оценивание
Система оценивания
Каждая метрика оценивается по шкале 0-100:
| Метрика | Вес | Описание |
|---|---|---|
| PEP 8 Compliance | 20% | Соблюдение стандартов кодирования |
| Complexity | 25% | Цикломатическая сложность |
| Documentation | 20% | Наличие docstring |
| Code Duplication | 20% | Отсутствие дубликатов |
| Test Coverage | 15% | Покрытие тестами |
Итоговая оценка
- A (90-100): Excellent - отличное качество кода
- B (80-89): Good - хорошее качество
- C (70-79): Satisfactory - удовлетворительно
- D (60-69): Needs Improvement - требует улучшения
- F (0-59): Poor - плохое качество
🧪 Тестирование
Запуск тестов:
📝 Примеры отчетов
Инструмент генерирует красивые HTML отчеты с:
- Общей оценкой и grade
- Детальными метриками по каждому критерию
- Списком нарушений и проблем
- Рекомендациями по улучшению
- Цветовой индикацией (зеленый/желтый/красный)
🎓 Использование в образовательном процессе
Для преподавателей
- Настройте GitHub Actions для автоматической проверки
- Студенты загружают код в свои папки
- Получайте автоматические отчеты
- Используйте метрики для объективного оценивания
Для студентов
- Запускайте анализ локально перед отправкой работы
- Изучайте рекомендации в отчетах
- Улучшайте код на основе метрик
- Отслеживайте прогресс