Moodle
Course Builder

CSV to live course in minutes. No forms. No clicking. Just upload and go.

Install Extension
Extension sidepanel showing CSV upload zone ready to receive a file

3,400+ tests passing · 279 test suites · CI hard-gated

before
Empty moodle course showing only General section and blank New Section placeholders with no activities
after
Populated moodle course with lessons, quizzes, and activities fully built from CSV

click to enlarge

how it works — step by step

open a moodle course

Navigate to any moodle 4.x or 5.x course page — new, existing, or template. The extension activates automatically on course URLs.

Moodle course page showing empty sections ready for content
open the sidepanel and upload

Click the extension icon. The sidepanel opens alongside your moodle tab with the upload zone ready. Drag your CSV or click to browse.

Extension sidepanel open with upload zone ready to receive a CSV file
review the parsed content

The extension parses your CSV instantly and shows module count, lesson count, question count, and question type breakdown. Verify the structure matches your intent.

CSV parsed showing modules, lessons, and questions with type breakdown
confirm the execution plan

Edit the course name and module names if needed. The extension shows exactly what it will build — section count, step count, mapping confidence. Click confirm to lock the plan.

Plan confirmed showing steps across sections with mapping review
execution begins

Click "go automate." The extension starts driving moodle's forms — renaming sections, creating lessons, populating quizzes with answers and feedback. All through the real DOM, no API shortcuts.

Execution in progress showing step counter and current action
watch it build

Real-time progress as sections appear in moodle. Quizzes fill with questions. Typical build time for 28 questions across 6 modules: 4-5 minutes.

Sidepanel showing progress through build steps
build complete

All steps succeeded, zero failed. The sidepanel shows a summary with a direct link to open the finished course.

Build complete card showing all steps succeeded with link to open course
verify your course

Click the course link to verify — all modules, lessons, and quizzes are live and ready for students. The populated course is indistinguishable from one built by hand.

Populated moodle course with all modules, lessons, and quizzes built from CSV

csv format

Export from Google Sheets as CSV. The extension reads this structure directly.

ModuleLessonQuestionsOptionsAnswer
Module #1: Assembly
Servo Calibration
What PWM value centers the servo?A) 1000 B) 1500 C) 2000 D) 2500B) 1500: center position
Calculate servo travel range1000: PWM range in microseconds
Module #2: Firmware
Flashing OpenCat
USB baud rate for OpenCat?A) 9600 B) 57600 C) 115200 D) 250000C) 115200: default serial speed

supported question types

multiple choice
A) B) C) D) options with correct answer marked
true / false
answer is TRUE or FALSE
numerical
answer is a number with optional tolerance
short answer
exact text match, case-insensitive
essay
long-form response with model answer
matching
pipe-separated pairs: term|definition
drag and drop
reorder or categorize items
Install Extension

Chrome 131+. Works with Moodle 4.x and 5.x. Any theme.

technical details

architecture

  • Chrome manifest v3 — service worker + content scripts + sidepanel
  • DOM automation through validated form-fill, no moodle API dependency
  • Checkpoint and resume on failure — pick up where you left off
  • 100-question stress tested (single build, under 8 minutes)

testing

  • Playwright regression suite for end-to-end flow validation
  • Screenshots on this page captured by the test suite at 2x retina
  • Jest unit tests + Puppeteer e2e + Playwright regression

who this is for

  • Instructional designers building courses from curriculum spreadsheets
  • LMS administrators bulk-creating course content
  • Course coordinators who maintain question banks across semesters
  • Anyone tired of clicking through moodle's quiz form 100 times