mooc-dsl

module
v0.0.0-...-6766b9b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 18, 2025 License: MIT

README

Go Reference License

MOOC DSL project aims to simplify the process of creating and managing educational tests across various platforms and systems.

Tutors often face the challenge of adapting their test descriptions to different Learning Management Systems (LMS) and standalone software. Each system typically has its own syntax and format, requiring tutors to invest significant time in understanding and translating their test descriptions.

This project addresses these challenges by introducing a Domain-Specific Language with simple and intuitive syntax for describing tests (see assets/sample.txt for DSL specifications).

Tutors describe tests using DSL syntax, which are then processed and transformed into JSON format that can be integrated with third-party educational software, including LMS and custom educational platforms.

Project provides two main features:

  • Syntax checker that outputs JSON with errors descriptions
  • Parser which transforms DSL into JSON

Check assets folder for samples of JSON output and sample tests.

Build instructions

Install Go

From project directory build binary using make

make build

or build and run simultaneously

make build-run

Check Makefile for other available commands.

Available flags:

  • --fname to set filename of test
  • --vebose to print generate JSON in temrinal
  • --showErrors to print DSL syntax errors in temrinal

In case of errors in the source DSL code, an error report will be generated with the name [sourcename]_error.json

Directories

Path Synopsis
internal
config
Package config contains configuration constants
Package config contains configuration constants
dsl
Package dsl implements DSL parser includes syntax checker, quiz and answers parsing
Package dsl implements DSL parser includes syntax checker, quiz and answers parsing
storage
Package storage contains functions for saving generated JSON to file
Package storage contains functions for saving generated JSON to file

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL