Tipos de Ejercicio
Estructura general
{ "id": "string", "type": "ExerciseType", "group": "ExerciseGroup", "subgroup": "ExerciseSubgroup", "content": {}, "config": {}, "metadata": {}}Grupos
| Grupo | Enum | Descripción |
|---|---|---|
| Vocabulary | VOCABULARY | Vocabulario, definiciones, uso contextual |
| Reading | READING | Comprensión de lectura |
| Listening | LISTENING | Comprensión oral basada en audio |
| Grammar | GRAMMAR | Ejercicios gramaticales |
Subgrupos
| Subgrupo | Enum | Descripción |
|---|---|---|
| Drag & Drop | DRAG_AND_DROP | Arrastrar elementos a zonas |
| Match | MATCH | Emparejar elementos relacionados |
| Multiple Choice | MULTIPLE_CHOICE | Selección múltiple |
| Complete | COMPLETE | Completar espacios en blanco |
| Word Search | WORD_SEARCH | Sopa de letras |
| Crossword | CROSSWORD | Crucigrama |
ExerciseType
Se construye como ${ExerciseGroup}_${ExerciseSubgroup}:
VOCABULARY_WORD_SEARCHGRAMMAR_MULTIPLE_CHOICEREADING_COMPLETELISTENING_MATCHContenido por Subgrupo
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 (Dinámico)
{ "words": [ { "answer": "CAT", "clue": { "type": "TEXT", "value": "A small animal" } }, { "answer": "DOG", "clue": { "type": "TEXT", "value": "A loyal pet" } } ], "settings": { "gridSize": 10 }}CROSSWORD (Estático)
{ "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"}Evaluación
Cada tipo de ejercicio tiene su propia estrategia de evaluación:
| Tipo | Estrategia |
|---|---|
multiple_choice | Comparación exacta |
fill_blank | Multi-respuesta, normaliza lowercase/trim |
open_answer | Distancia Levenshtein, umbral 80% |
word_search | Palabras encontradas vs total |
crossword | Palabras correctas vs total |
match | Pares correctos vs total |
drag_and_drop | Items en zona correcta vs total |
Resultado:
{ "isCorrect": true, "score": 10, "feedback": "All words found!"}