Exercise Types
General Structure
{ "id": "string", "type": "ExerciseType", "group": "ExerciseGroup", "subgroup": "ExerciseSubgroup", "content": {}, "config": {}, "metadata": {}}Groups
| Group | Enum | Description |
|---|---|---|
| Vocabulary | VOCABULARY | Vocabulary, definitions, contextual usage |
| Reading | READING | Reading comprehension |
| Listening | LISTENING | Audio-based oral comprehension |
| Grammar | GRAMMAR | Grammar exercises |
Subgroups
| Subgroup | Enum | Description |
|---|---|---|
| Drag & Drop | DRAG_AND_DROP | Drag elements to zones |
| Match | MATCH | Match related elements |
| Multiple Choice | MULTIPLE_CHOICE | Multiple selection |
| Complete | COMPLETE | Fill in the blanks |
| Word Search | WORD_SEARCH | Word search puzzle |
| Crossword | CROSSWORD | Crossword puzzle |
ExerciseType
Built as ${ExerciseGroup}_${ExerciseSubgroup}:
VOCABULARY_WORD_SEARCHGRAMMAR_MULTIPLE_CHOICEREADING_COMPLETELISTENING_MATCHContent by Subgroup
MULTIPLE_CHOICE
{ "question": "What is the past tense of 'go'?", "options": [ { "id": "a", "text": "goed", "isCorrect": false }, { "id": "b", "text": "went", "isCorrect": true }, { "id": "c", "text": "gone", "isCorrect": false } ]}COMPLETE
{ "sentence": "I ___ to school yesterday.", "answers": ["went"]}MATCH
{ "pairs": [ { "left": "Dog", "right": "A loyal pet" }, { "left": "Cat", "right": "A small animal" } ]}DRAG_AND_DROP
{ "items": [ { "id": "1", "text": "Apple", "correctZoneId": "fruit" }, { "id": "2", "text": "Carrot", "correctZoneId": "vegetable" } ], "zones": [ { "id": "fruit", "label": "Fruits" }, { "id": "vegetable", "label": "Vegetables" } ]}WORD_SEARCH
{ "words": [ { "word": "APPLE", "clue": { "type": "TEXT", "value": "A red fruit" } }, { "word": "DOG", "clue": { "type": "IMAGE", "value": "https://cdn/dog.webp" } } ], "settings": { "gridSize": 12, "allowDiagonal": true, "allowReverse": false }}CROSSWORD (Dynamic)
{ "words": [ { "answer": "CAT", "clue": { "type": "TEXT", "value": "A small animal" } }, { "answer": "DOG", "clue": { "type": "TEXT", "value": "A loyal pet" } } ], "settings": { "gridSize": 10 }}CROSSWORD (Static)
{ "clues": { "across": [ { "number": 1, "answer": "CAT", "clue": { "type": "TEXT", "value": "A small animal" }, "position": { "row": 0, "col": 0 } } ], "down": [] }}Config
{ "shuffle": true, "timeLimit": 60, "attempts": 1}Metadata
{ "difficulty": "easy", "tags": ["past-tense", "verbs"], "language": "en"}Evaluation
Each exercise type has its own evaluation strategy:
| Type | Strategy |
|---|---|
multiple_choice | Exact comparison |
fill_blank | Multi-answer, normalizes lowercase/trim |
open_answer | Levenshtein distance, 80% threshold |
word_search | Words found vs total |
crossword | Correct words vs total |
match | Correct pairs vs total |
drag_and_drop | Items in correct zone vs total |
Result:
{ "isCorrect": true, "score": 10, "feedback": "All words found!"}