Skip to content

Quick Start Content Creation

Phil edited this page Nov 17, 2025 · 2 revisions

Quick Start: Content Creation

Last Updated: 2025-01-12 | For: Teachers & Content Creators

Welcome! This guide will help you create your first MoFaCTS lesson in just a few steps.


πŸ“‹ What You Need

To create content for students in MoFaCTS, you need two files:

  1. TDF File (Training/Tutor Definition File) - A JSON file that defines your lesson structure
  2. Stimulus File - A JSON file containing your questions and answers

πŸ’‘ Tip: The easiest way to start is by downloading an example from your server and modifying it!


πŸš€ 5-Minute Quick Start

Step 1: Download an Example

Log into your MoFaCTS instance and download a demo TDF package. All demo files are free to download from the Content Upload page.

Step 2: Understand the Basic Structure

A minimal TDF file looks like this:

{
  "setspec": {
    "lessonname": "My First Lesson",
    "userselect": "true",
    "stimulusfile": "my-questions.json"
  }
}

A minimal stimulus file looks like this:

{
  "setspec": {
    "clusters": [
      {
        "stims": [
          {
            "display": {
              "clozeText": "The capital of France is ______."
            },
            "response": {
              "correctResponse": "Paris"
            }
          }
        ]
      }
    ]
  }
}

Step 3: Modify the Content

  1. Open the example files in a text editor (VS Code, Notepad++, etc.)
  2. Change the lesson name in the TDF file
  3. Modify the questions and answers in the stimulus file
  4. Save both files

Step 4: Upload to MoFaCTS

  1. Create a ZIP file containing both your TDF and stimulus file
  2. Log into MoFaCTS with your teacher/admin account
  3. Go to Content Upload
  4. Click Upload Package and select your ZIP file
  5. Wait for processing to complete

Step 5: Test Your Lesson

  1. Go to the main dashboard
  2. Find your lesson in the list
  3. Click Start to test it
  4. Verify your questions appear correctly

πŸ“– Understanding TDF Files

TDF (Training/Tutor Definition File) files control how your lesson behaves. They use JSON format and have three main parts:

1. Setspec (Lesson Settings)

The setspec section defines lesson-wide settings:

Field Required Description
lessonname βœ… Yes The full name of your lesson
userselect βœ… Yes Set to "true" to show on the main page
stimulusfile βœ… Yes Filename of your questions/answers file
lfparameter No Answer matching strictness (0-1, default 1)
audioInputEnabled No Enable speech recognition
enableAudioPromptAndFeedback No Enable text-to-speech

Example:

{
  "setspec": {
    "lessonname": "Chapter 1: Introduction",
    "userselect": "true",
    "stimulusfile": "chapter1.json",
    "lfparameter": "0.85"
  }
}

2. Units (Lesson Sections)

Units are the building blocks of your lesson. Each unit can be:

  • Instructions - Display text with a Continue button
  • Learning Session - Adaptive practice with the AI algorithm
  • Assessment Session - Fixed quizzes or tests

Simple Instruction Example:

{
  "unitname": "Welcome",
  "unitinstructions": "<p>Welcome to Chapter 1! Click Continue when ready.</p>"
}

3. Delivery Parameters

Controls how questions are presented and timed.

Common Parameters:

Parameter Description Example Value
drill Time limit for answering (ms) 30000 (30 seconds)
correctprompt How long to show "Correct!" (ms) 1000 (1 second)
reviewstudy How long to show answer after wrong (ms) 6000 (6 seconds)
fontsize CSS font size 3

πŸ“ Understanding Stimulus Files

Stimulus files contain your actual questions, answers, and media.

Basic Structure

{
  "setspec": {
    "clusters": [
      {
        "stims": [ /* questions go here */ ]
      }
    ]
  }
}

Question Types

Fill-in-the-Blank (Cloze)

{
  "display": {
    "clozeText": "The powerhouse of the cell is the ______."
  },
  "response": {
    "correctResponse": "mitochondria"
  }
}

Image-Based Questions

{
  "display": {
    "imgSrc": "heart-diagram.jpg"
  },
  "response": {
    "correctResponse": "aorta"
  }
}

Multiple Choice (Button Trial)

Set buttontrial: "true" in your unit's delivery params, and:

{
  "display": {
    "text": "What is 2 + 2?"
  },
  "response": {
    "correctResponse": "4",
    "responses": ["3", "4", "5", "6"]
  }
}

βš™οΈ Common Settings for New Teachers

For Spelling-Tolerant Lessons

"deliveryparams": {
  "useSpellingCorrection": "true",
  "allowPhoneticMatching": "true",
  "lfparameter": "0.85"
}

For Timed Quizzes

"deliveryparams": {
  "drill": "15000",
  "reviewstudy": "3000",
  "correctprompt": "500"
}

For Self-Paced Study

"deliveryparams": {
  "drill": "0",
  "skipstudy": "true",
  "correctprompt": "1000"
}

🎯 Next Steps

Now that you understand the basics:

  1. Explore Examples - Download and study existing TDFs from your server
  2. Read Detailed Docs:
  3. Test Thoroughly - Always test your lessons before assigning to students
  4. Get Data - Use Data Output to track student performance

πŸ’‘ Tips for Success

βœ… DO:

  • Start simple - get a basic lesson working first
  • Test your lessons yourself before assigning
  • Use descriptive unitname values for tracking
  • Set userselect: "true" so students can see your lesson
  • Include clear instructions in your units

❌ DON'T:

  • Don't forget to upload both TDF and stimulus files together
  • Don't use special characters in filenames
  • Don't set time limits too short (students need time to think!)
  • Don't skip the testing phase

πŸ†˜ Troubleshooting

"Lesson doesn't appear on student dashboard"

  • Check that userselect is set to "true" in setspec
  • Verify the TDF was uploaded successfully

"Questions don't display correctly"

  • Check your stimulus file JSON syntax (use a JSON validator)
  • Verify the stimulusfile name in TDF matches your file name exactly

"Students can't answer questions"

  • Check that correctResponse is spelled correctly
  • Verify delivery params don't have drill: "0" for tests

πŸ“š See Also


Ready to dive deeper? Check out the full Content Creation guide!

Clone this wiki locally