final_project_base

0
README.md
  1. Создайте виртуальное окружение:

  2. Активируйте окружение:

    • Windows:
    • Linux/macOS:
  3. Установите зависимости:


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

1. Быстрый старт (CLI)

Самый простой способ — использовать командную строку.

Генерация для списка студентов:

Настройка сложности (5 легких, 3 средних, 2 сложных):

Включение математических задач и ответов:

2. Использование своего банка вопросов

Создайте файл

my_questions.json
в папке
data
:

Запустите с флагом

--questions
:

3. Использование в Python коде


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

. ├── src/ # Исходный код приложения │ ├── __init__.py │ ├── main.py # Точка входа (CLI интерфейс) │ ├── generator.py # Логика генерации и классы │ └── utils.py # Утилиты (экспорт, валидация) ├── tests/ # Модульные тесты │ ├── __init__.py │ ├── test_generator.py # Тесты логики генерации │ └── test_utils.py # Тесты экспорта и утилит ├── data/ # Данные │ ├── sample_questions.json # Пример банка вопросов │ └── .gitkeep ├── .gitverse/workflows/ # CI/CD пайплайны │ ├── tests.yml # Автотесты при пуше │ └── generate-variants.yml # Ручной запуск генерации ├── output/ # Папка для результатов (игнорируется git) ├── Dockerfile # Конфигурация образа Docker ├── docker-compose.yml # Запуск через Compose ├── pytest.ini # Настройки тестов ├── requirements.txt # Зависимости └── README.md # Документация

✅ Тестирование и Качество кода

Проект покрыт тестами и следует стандартам PEP 8.

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

Запуск с отчетом о покрытии:

Проверка стиля кода (Linter):

Форматирование кода:


🔧 CI/CD (GitVerse)

Проект использует GitVerse Actions для автоматизации.

1.
tests.yml
(Автоматический)

Запускается при каждом

git push
.

  • Устанавливает зависимости.
  • Проверяет стиль кода (
    flake8
    ).
  • Запускает все тесты (
    pytest
    ).

2.
generate-variants.yml
(Ручной)

Позволяет генерировать варианты прямо в интерфейсе GitVerse без установки Python локально.

  1. Перейдите во вкладку CI/CD -> Generate Variants.
  2. Нажмите Run workflow.
  3. Введите количество студентов (например,
    10
    ).
  4. После завершения скачайте архив с вариантами в разделе Artifacts.

🐳 Docker

Вы можете запустить генератор в изолированном контейнере.

Сборка образа:

Запуск генерации:

Использование Docker Compose:


📊 Примеры вывода

Консоль

Текстовый файл (пример)


📝 Типы поддерживаемых вопросов

ТипОписаниеПример
multiple_choice
Выбор одного правильного ответаТест с вариантами A, B, C
true_false
Верно или Неверно"Python — компилируемый язык"
fill_blank
Ввод ответа вручную"Напишите результат 2+2"
math
Математическая задачаАвтогенерация числовых примеров

📄 Лицензия

Этот проект распространяется под лицензией MIT.


👤 Автор

Студент курса Python-разработки.