Skip to main content

CLI-инструмент для структурирования учебных курсов

Project description

🎓 Course CLI

Course CLI — это консольный инструмент (teacher-side модуль) для преподавателей и методистов. Он позволяет рассматривать учебный курс как проект с готовой файловой структурой, обеспечивая единый стандарт разработки образовательных материалов.

🎯 Какую проблему мы решаем?

Обычно курсы создаются хаотично: файлы теряются, названия разделов непоследовательны, а учебные результаты (outcomes) и компетенции (skills) формулируются задним числом или забываются вовсе.

Course CLI генерирует стандартизированный шаблон курса при старте, заставляет автора продумать метаданные заранее и автоматически проверяет целостность курса (битые ссылки, пропущенные уроки).


🚀 Основной функционал

  • Scaffolding (Генерация): Интерактивное создание структуры папок, Markdown-файлов и конфигурации course.yaml.
  • Умная валидация: Проверка наличия обязательных полей, последовательности уроков и поиск «битых» внутренних ссылок.
  • Аналитика: Генерация красивого дашборда с образовательными метриками и структурой курса.
  • Интеграция с xAPI: Автоматическое логирование событий (initialized, validated, reported) в локальный файл-хранилище log.json по стандартам Evidence Locker.

🛠 Установка

Инструмент упакован как Python-пакет и поддерживает запуск через Docker.

Локальная установка (Рекомендуется для разработки)

Убедитесь, что у вас установлен Python 3.12+ и выполните:

git clone <ваш-репозиторий>
cd course-cli
make install

Запуск через Docker

Если вы не хотите устанавливать Python локально:

make docker-build
make docker-up

📖 Использование (Сценарий преподавателя)

После установки вам доступна глобальная команда course-cli.

1. Создание нового курса

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

course-cli init MyCourse

Что произойдет: Будет создана директория MyCourse/, файл course.yaml, корневой index.md и папки с уроками.

2. Проверка курса

Перед публикацией убедитесь, что курс не содержит ошибок:

course-cli validate MyCourse

Что произойдет: Скрипт проверит наличие результатов обучения, найдет пропущенные уроки и рекурсивно проверит все [ссылки](...) в Markdown файлах.

3. Отчет и аналитика

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

course-cli report MyCourse

Что произойдет: В консоль будет выведен аналитический дашборд (количество модулей, уроков, пустых разделов). При подтверждении будет записано xAPI-событие.


🤖 Команды автоматизации (Makefile)

Для удобства разработки и тестирования в проекте настроен Makefile.

Команда Описание
make demo 🎬 Запуск сквозного демо-сценария (E2E). Создает курс, прогоняет проверку (специально ловит тестовую ошибку) и выводит отчет. Идеально для демонстрации работы.
make test Запускает набор unit и интеграционных тестов через pytest.
make coverage Генерирует отчет о покрытии кода тестами (в консоли и HTML).
make run-cli Выводит справку по доступным командам CLI.

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

course-cli/
├── src/course_cli/        # Исходный код модуля
│   ├── cli.py             # Точка входа и маршрутизация команд
│   ├── validate.py        # Логика проверки курса
│   ├── report.py          # Логика сбора статистики
│   └── xapi.py            # Генератор событий по контракту xAPI
├── tests/                 # Автотесты (pytest)
├── scripts/               # Git-хуки (pre-commit для защиты коммитов)
├── Makefile               # Автоматизация рутинных задач
├── module.yaml            # Паспорт модуля
├── .env.example           # Шаблон переменных окружения
└── README.md              # Документация проекта

🔒 xAPI и Приватность

Все события логируются локально в директории курса (log.json). Система не собирает персональные данные студентов или полные тексты уроков, фиксируя только факты (verb) успешного выполнения действий преподавателем (actor) по спецификации xAPI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

course_cli_lvaavl-0.1.0.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

course_cli_lvaavl-0.1.0-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file course_cli_lvaavl-0.1.0.tar.gz.

File metadata

  • Download URL: course_cli_lvaavl-0.1.0.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for course_cli_lvaavl-0.1.0.tar.gz
Algorithm Hash digest
SHA256 fb3b7ba177722e92b6a1ef7726afbbf558ef8e7614e6e6c49c8c6d1a8f38ac0c
MD5 e233d3c82b31b765770a35dcc5dedf8a
BLAKE2b-256 7da55a325ebb4eb89c1ef7430c450d0e65208a539aef34aa7361c3c9d7910118

See more details on using hashes here.

File details

Details for the file course_cli_lvaavl-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for course_cli_lvaavl-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 18c5f2c70079f00770c078afb3d2c3172e350e641c1f656320d9bae34e84694d
MD5 d6695bd5b20e4521aa714de57584372a
BLAKE2b-256 b45e70191c82cc50a92436b0fbb7f8a9b3844b1b7c3d70ebdff6dfb2c21bd22a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page