Skip to content

dayekb/moodle_to_googlesheets

Repository files navigation

Moodle Grades Parser

Скрипт для получения оценок студентов из Moodle и экспорта в JSON/Google Sheets.

Установка

Автоматическая установка (Windows)

Запустите setup.bat - он автоматически настроит все необходимое.

Ручная установка

  1. Установите зависимости:
pip install -r requirements.txt
  1. Скопируйте файл конфигурации:
cp config_example config.env
  1. Отредактируйте config.env и укажите ваши настройки:

    • MOODLE_TOKEN - токен API Moodle
    • COURSE_ID - ID курса
  2. Настройте файлы со списками:

    cp students.txt.example students.txt
    cp activities.txt.example activities.txt
    cp quizzes.txt.example quizzes.txt

    Отредактируйте файлы и укажите нужные списки:

    • students.txt - ФИО студентов (по одному на строку)
    • activities.txt - названия активностей для фильтрации
    • quizzes.txt - названия тестов для фильтрации

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

Windows

Запустите один из батников:

  • run_moodle_parser.bat - полная настройка и запуск
  • quick_run.bat - быстрый запуск (если уже настроено)

Linux/Mac

python from_moodle_to_json.py

Скрипт:

  1. Получит список заданий и тестов из курса
  2. Отфильтрует студентов и активности согласно настройкам
  3. Соберет оценки из Moodle
  4. Выведет таблицу в консоль
  5. Предложит сохранить данные в JSON файл
  6. Предложит загрузить данные в Google Sheets (если настроено)

Настройка Google Sheets (опционально)

  1. Создайте проект в Google Cloud Console
  2. Включите Google Sheets API
  3. Создайте сервисный аккаунт и скачайте JSON ключ
  4. Поместите файл ключа в папку проекта как credentials.json
  5. Укажите SPREADSHEET_ID и WORKSHEET_NAME в config.env
  6. Предоставьте доступ к таблице email'у сервисного аккаунта

Структура файлов

  • from_moodle_to_json.py - основной скрипт
  • config.env - конфигурация (создается из config_example)
  • config_example - пример конфигурации
  • requirements.txt - зависимости Python
  • students.txt - список ID студентов (создается из students.txt.example)
  • activities.txt - список активностей (создается из activities.txt.example)
  • quizzes.txt - список тестов (создается из quizzes.txt.example)
  • credentials.json - ключ Google Sheets (если используется)

Результаты тестирования

Скрипт успешно протестирован!

Статистика тестового запуска:

  • 📊 Обработано студентов: 44 из списка (34 найдено на курсе, 10 не найдено)
  • 📝 Найдено заданий: 9 из 24 активностей курса
  • 🧪 Найдено тестов: 1 из доступных тестов
  • 📋 Получено оценок: 6 записей с реальными оценками
  • 💾 Данные сохранены в JSON и загружены в Google Sheets

Функции работают корректно:

  • ✅ Чтение конфигурации из .env файла
  • ✅ Загрузка списков из текстовых файлов
  • ✅ Поиск студентов по ФИО (не по ID)
  • ✅ Обработка отсутствующих студентов (отмечаются как "Нет")
  • ✅ Обработка студентов без оценок (отмечаются как "0")
  • ✅ Подключение к Moodle API
  • ✅ Фильтрация активностей
  • ✅ Сбор оценок из грейдбука
  • ✅ Экспорт в JSON
  • ✅ Загрузка в Google Sheets

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published