- Add intelligent content-game compatibility system with visual badges - Fix Adventure Reader to work with Dragon's Pearl content structure - Implement multi-column games grid for faster navigation - Add pronunciation display for Chinese vocabulary and sentences - Fix navigation breadcrumb to show proper hierarchy (Home > Levels > Content) - Add back buttons to all navigation pages - Improve JSONContentLoader to preserve story structure - Add comprehensive debugging and diagnostic tools 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
828 lines
36 KiB
JSON
828 lines
36 KiB
JSON
{
|
||
// === METADATA SECTION ===
|
||
// Core module identification and language configuration
|
||
"id": "english_class_demo_complete_example", // Unique ID based on name (lowercase, underscores)
|
||
"name": "English Class Demo - Complete Example",
|
||
"description": "Comprehensive example showcasing all content structure possibilities",
|
||
"difficulty": 6, // Scale 1-10: 1=absolute beginner, 10=native level
|
||
"original_lang": "english", // Language of the original content
|
||
"user_lang": "french", // User's native language for translations
|
||
"icon": "assets/icons/uk-flag.svg", // Path to icon file
|
||
"icon_fallback": "🇬🇧", // Emoji fallback if file missing
|
||
|
||
// === SYSTEM TAGS ===
|
||
// Categorization for content discovery and filtering
|
||
"tags": [
|
||
"beginner-friendly", // Suitable for beginners
|
||
"audio-rich", // Contains significant audio content
|
||
"grammar-focus", // Emphasizes grammar learning
|
||
"cultural-content", // Includes cultural context
|
||
"interactive", // Has interactive exercises
|
||
"daily-life", // Real-world applicable content
|
||
"conversation", // Dialogue-based learning
|
||
"multimedia" // Multiple content types (text, audio, visual)
|
||
],
|
||
|
||
// === SKILLS COVERED ===
|
||
// Learning objectives and competencies addressed
|
||
"skills_covered": [
|
||
"vocabulary_recognition", // Identifying and understanding words
|
||
"vocabulary_production", // Using words correctly in context
|
||
"listening_comprehension", // Understanding spoken language
|
||
"reading_comprehension", // Understanding written text
|
||
"pronunciation", // Correct sound production
|
||
"grammar_application", // Using grammar rules correctly
|
||
"cultural_awareness", // Understanding cultural context
|
||
"conversation_skills", // Interactive dialogue ability
|
||
"translation", // Converting between languages
|
||
"pattern_recognition", // Identifying linguistic patterns
|
||
"error_correction", // Identifying and fixing mistakes
|
||
"audio_discrimination" // Distinguishing between sounds
|
||
],
|
||
|
||
// === VOCABULARY SECTION ===
|
||
// Multiple levels of vocabulary completion from minimal to comprehensive
|
||
"vocabulary": {
|
||
|
||
// === MINIMAL LEVEL (Translation only) ===
|
||
// Simplest form - just word and translation
|
||
"cat": "chat",
|
||
"dog": "chien",
|
||
"house": "maison",
|
||
|
||
// === BASIC LEVEL (Essential data) ===
|
||
// Translation + type
|
||
"book": {
|
||
"translation": "livre",
|
||
"type": "noun"
|
||
},
|
||
|
||
"read": {
|
||
"translation": "lire",
|
||
"type": "verb"
|
||
},
|
||
|
||
// === MEDIUM LEVEL (Common teaching elements) ===
|
||
// Translation + type + pronunciation OR image
|
||
"apple": {
|
||
"translation": "pomme",
|
||
"type": "noun",
|
||
"pronunciation": "/ˈæp.əl/",
|
||
"image": "images/vocabulary/apple.jpg" // Visual representation
|
||
},
|
||
|
||
"beautiful": {
|
||
"translation": "beau/belle",
|
||
"type": "adjective",
|
||
"pronunciation": "/ˈbjuː.tɪ.fəl/",
|
||
"examples": ["The sunset is beautiful"] // Single example
|
||
},
|
||
|
||
// === RICH LEVEL (Audio + visual) ===
|
||
// Multiple media types for enhanced learning
|
||
"elephant": {
|
||
"translation": "éléphant",
|
||
"type": "noun",
|
||
"pronunciation": "/ˈel.ɪ.fənt/",
|
||
"audio": "audio/vocabulary/elephant.mp3",
|
||
"image": "images/vocabulary/elephant.jpg",
|
||
"examples": [
|
||
"The elephant is huge",
|
||
"Elephants have good memory"
|
||
]
|
||
},
|
||
|
||
// === COMPREHENSIVE LEVEL (Full linguistic data) ===
|
||
// All possible fields for maximum educational value
|
||
"run": {
|
||
"translation": "courir",
|
||
"type": "verb",
|
||
"pronunciation": "/rʌn/",
|
||
"audio": "audio/vocabulary/run.mp3",
|
||
"image": "images/vocabulary/run_action.gif", // Can be GIF for actions
|
||
"examples": [
|
||
"I run in the park every morning",
|
||
"She runs faster than me",
|
||
"They ran to catch the bus"
|
||
],
|
||
"grammarNotes": "Irregular verb: run/runs/running/ran/run",
|
||
"conjugation": {
|
||
"present": ["run", "runs"],
|
||
"past": "ran",
|
||
"participle": "run",
|
||
"continuous": "running"
|
||
},
|
||
"difficulty_context": "Physical action verb - easy to demonstrate"
|
||
},
|
||
|
||
// === ADVANCED LEVEL (Cultural and contextual) ===
|
||
"breakfast": {
|
||
"translation": "petit-déjeuner",
|
||
"type": "noun",
|
||
"pronunciation": "/ˈbrek.fəst/",
|
||
"audio": "audio/vocabulary/breakfast.mp3",
|
||
"image": "images/vocabulary/breakfast.jpg",
|
||
"examples": [
|
||
"I have breakfast at 7 AM",
|
||
"What did you have for breakfast?",
|
||
"Breakfast is the most important meal"
|
||
],
|
||
"cultural_note": "Traditional English breakfast includes eggs, bacon, beans, and toast"
|
||
}
|
||
},
|
||
|
||
// === GRAMMAR SYSTEM ===
|
||
// Step-by-step grammar lessons with explanation -> exercise -> explanation -> exercise flow
|
||
"grammar": {
|
||
"present_simple_be": {
|
||
"id": "present_simple_be",
|
||
"title": "Present Simple - Verb 'to be'",
|
||
"difficulty": 3,
|
||
"prerequisite": null, // No prerequisite - foundational lesson
|
||
"estimated_time": 15, // minutes
|
||
"learning_objectives": [
|
||
"Conjugate 'to be' in present tense",
|
||
"Use 'to be' in affirmative sentences",
|
||
"Form questions with 'to be'"
|
||
],
|
||
|
||
// Sequential steps: explanation -> exercise -> explanation -> exercise
|
||
"steps": [
|
||
{
|
||
"type": "explanation",
|
||
"order": 1,
|
||
"title": "Introduction to 'be'",
|
||
"content": "The verb 'to be' is the most important verb in English. It has three forms in present tense.",
|
||
"translation": "Le verbe 'être' est le verbe le plus important en anglais. Il a trois formes au présent.",
|
||
"examples": [
|
||
{ "original": "I am happy", "userLanguage": "Je suis heureux" },
|
||
{ "original": "You are smart", "userLanguage": "Tu es intelligent" },
|
||
{ "original": "She is tall", "userLanguage": "Elle est grande" }
|
||
]
|
||
},
|
||
{
|
||
"type": "exercise",
|
||
"order": 2,
|
||
"exercise_type": "multiple_choice",
|
||
"title": "Choose the correct form",
|
||
"questions": [
|
||
{
|
||
"question": "I ___ a student",
|
||
"options": ["am", "is", "are"],
|
||
"correct": "am",
|
||
"explanation": "Use 'am' with 'I'"
|
||
},
|
||
{
|
||
"question": "She ___ my friend",
|
||
"options": ["am", "is", "are"],
|
||
"correct": "is",
|
||
"explanation": "Use 'is' with 'she', 'he', 'it'"
|
||
},
|
||
{
|
||
"question": "They ___ teachers",
|
||
"options": ["am", "is", "are"],
|
||
"correct": "are",
|
||
"explanation": "Use 'are' with 'they', 'we', 'you'"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"type": "explanation",
|
||
"order": 3,
|
||
"title": "Negative forms",
|
||
"content": "To make negative sentences with 'be', add 'not' after the verb. We often use contractions.",
|
||
"translation": "Pour faire des phrases négatives avec 'être', ajoutez 'not' après le verbe. On utilise souvent des contractions.",
|
||
"examples": [
|
||
{ "original": "I am not tired", "userLanguage": "Je ne suis pas fatigué", "contraction": "I'm not tired" },
|
||
{ "original": "He is not here", "userLanguage": "Il n'est pas ici", "contraction": "He isn't here" },
|
||
{ "original": "We are not ready", "userLanguage": "Nous ne sommes pas prêts", "contraction": "We aren't ready" }
|
||
]
|
||
},
|
||
{
|
||
"type": "exercise",
|
||
"order": 4,
|
||
"exercise_type": "transformation",
|
||
"title": "Make these sentences negative",
|
||
"questions": [
|
||
{
|
||
"original": "I am busy",
|
||
"correct": "I am not busy",
|
||
"alternative_correct": ["I'm not busy"]
|
||
},
|
||
{
|
||
"original": "She is happy",
|
||
"correct": "She is not happy",
|
||
"alternative_correct": ["She isn't happy"]
|
||
},
|
||
{
|
||
"original": "They are at home",
|
||
"correct": "They are not at home",
|
||
"alternative_correct": ["They aren't at home"]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"type": "explanation",
|
||
"order": 5,
|
||
"title": "Questions with 'be'",
|
||
"content": "To make questions, put the 'be' verb before the subject. The word order changes.",
|
||
"translation": "Pour faire des questions, mettez le verbe 'être' avant le sujet. L'ordre des mots change.",
|
||
"pattern": {
|
||
"statement": "Subject + be + complement",
|
||
"question": "Be + subject + complement + ?"
|
||
},
|
||
"examples": [
|
||
{
|
||
"statement": "You are ready",
|
||
"question": "Are you ready?",
|
||
"answer": "Yes, I am / No, I'm not"
|
||
},
|
||
{
|
||
"statement": "He is a doctor",
|
||
"question": "Is he a doctor?",
|
||
"answer": "Yes, he is / No, he isn't"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"type": "exercise",
|
||
"order": 6,
|
||
"exercise_type": "transformation",
|
||
"title": "Transform to questions",
|
||
"questions": [
|
||
{
|
||
"original": "You are tired",
|
||
"correct": "Are you tired?"
|
||
},
|
||
{
|
||
"original": "She is a teacher",
|
||
"correct": "Is she a teacher?"
|
||
},
|
||
{
|
||
"original": "They are students",
|
||
"correct": "Are they students?"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"type": "exercise",
|
||
"order": 7,
|
||
"exercise_type": "fill_blanks",
|
||
"title": "Complete the conversation",
|
||
"context": "A conversation between two people meeting for the first time",
|
||
"questions": [
|
||
{
|
||
"sentence": "Hi! ___ you a new student?",
|
||
"correct": "Are",
|
||
"options": ["Are", "Is", "Am"]
|
||
},
|
||
{
|
||
"sentence": "Yes, I ___. My name ___ Sarah.",
|
||
"correct": ["am", "is"],
|
||
"options": ["am/is", "is/am", "are/are"]
|
||
},
|
||
{
|
||
"sentence": "___ you from France?",
|
||
"correct": "Are",
|
||
"options": ["Are", "Is", "Am"]
|
||
}
|
||
]
|
||
}
|
||
],
|
||
|
||
// Summary and reinforcement
|
||
"summary": {
|
||
"key_points": [
|
||
"I am, you are, he/she/it is, we are, they are",
|
||
"Negative: add 'not' after 'be'",
|
||
"Questions: put 'be' before subject"
|
||
],
|
||
"common_mistakes": [
|
||
{
|
||
"incorrect": "I are happy",
|
||
"correct": "I am happy",
|
||
"explanation": "Use 'am' with 'I'"
|
||
},
|
||
{
|
||
"incorrect": "She am tired",
|
||
"correct": "She is tired",
|
||
"explanation": "Use 'is' with 'she'"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
|
||
"present_simple_verbs": {
|
||
"id": "present_simple_verbs",
|
||
"title": "Present Simple - Regular Verbs",
|
||
"difficulty": 4,
|
||
"prerequisite": "present_simple_be", // Must complete 'be' lesson first
|
||
"estimated_time": 20,
|
||
"learning_objectives": [
|
||
"Use present simple for habits and facts",
|
||
"Add 's' for he/she/it",
|
||
"Form negatives with don't/doesn't"
|
||
],
|
||
|
||
"steps": [
|
||
{
|
||
"type": "explanation",
|
||
"order": 1,
|
||
"title": "Present Simple usage",
|
||
"content": "We use present simple for habits, routines, facts, and things that are always true.",
|
||
"translation": "Nous utilisons le présent simple pour les habitudes, routines, faits, et choses toujours vraies.",
|
||
"examples": [
|
||
{ "original": "I work every day", "userLanguage": "Je travaille tous les jours", "usage": "routine" },
|
||
{ "original": "The sun rises in the east", "userLanguage": "Le soleil se lève à l'est", "usage": "fact" },
|
||
{ "original": "She likes coffee", "userLanguage": "Elle aime le café", "usage": "preference" }
|
||
]
|
||
},
|
||
{
|
||
"type": "exercise",
|
||
"order": 2,
|
||
"exercise_type": "classification",
|
||
"title": "Is it a habit, fact, or preference?",
|
||
"questions": [
|
||
{
|
||
"sentence": "I eat breakfast at 8 AM",
|
||
"correct": "habit",
|
||
"options": ["habit", "fact", "preference"]
|
||
},
|
||
{
|
||
"sentence": "Water boils at 100°C",
|
||
"correct": "fact",
|
||
"options": ["habit", "fact", "preference"]
|
||
},
|
||
{
|
||
"sentence": "He loves music",
|
||
"correct": "preference",
|
||
"options": ["habit", "fact", "preference"]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"type": "explanation",
|
||
"order": 3,
|
||
"title": "Third person singular (he/she/it + s)",
|
||
"content": "With he, she, it, add 's' to the verb. This is very important in English!",
|
||
"translation": "Avec he, she, it, ajoutez 's' au verbe. C'est très important en anglais!",
|
||
"rules": [
|
||
{ "rule": "Normal verbs: add 's'", "example": "work → works, play → plays" },
|
||
{ "rule": "Verbs ending in s,x,ch,sh: add 'es'", "example": "watch → watches, fix → fixes" },
|
||
{ "rule": "Verbs ending in consonant + y: change y to ies", "example": "study → studies, try → tries" }
|
||
],
|
||
"examples": [
|
||
{ "original": "I work in London", "userLanguage": "Je travaille à Londres" },
|
||
{ "original": "She works in London", "userLanguage": "Elle travaille à Londres" }
|
||
]
|
||
},
|
||
{
|
||
"type": "exercise",
|
||
"order": 4,
|
||
"exercise_type": "conjugation",
|
||
"title": "Add 's' when needed",
|
||
"questions": [
|
||
{
|
||
"sentence": "He ___ (play) football",
|
||
"correct": "plays",
|
||
"base_verb": "play"
|
||
},
|
||
{
|
||
"sentence": "She ___ (watch) TV",
|
||
"correct": "watches",
|
||
"base_verb": "watch"
|
||
},
|
||
{
|
||
"sentence": "It ___ (fly) in the sky",
|
||
"correct": "flies",
|
||
"base_verb": "fly"
|
||
}
|
||
]
|
||
}
|
||
],
|
||
|
||
"summary": {
|
||
"key_points": [
|
||
"Present simple = habits, facts, preferences",
|
||
"He/she/it + verb + s",
|
||
"I/you/we/they + base verb"
|
||
],
|
||
"common_mistakes": [
|
||
{
|
||
"incorrect": "She work here",
|
||
"correct": "She works here",
|
||
"explanation": "Add 's' with he/she/it"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
},
|
||
|
||
// === TEXT CONTENT SECTION ===
|
||
// All text-based content with optional question/exercise metadata
|
||
"texts": [
|
||
{
|
||
"title": "My Daily Routine",
|
||
"content": "I wake up at 7 AM every day. First, I brush my teeth and take a shower. Then I have breakfast with my family. After breakfast, I go to work by bus. I work from 9 AM to 5 PM. In the evening, I cook dinner and watch TV. I go to bed at 10 PM.",
|
||
"translation": "Je me réveille à 7h tous les jours. D'abord, je me brosse les dents et prends une douche. Ensuite je prends le petit déjeuner avec ma famille. Après le petit déjeuner, je vais au travail en bus. Je travaille de 9h à 17h. Le soir, je cuisine le dîner et regarde la télé. Je me couche à 22h.",
|
||
// Optional: Add comprehension questions to any text
|
||
"questions": [
|
||
{
|
||
"question": "What time does the person wake up?",
|
||
"type": "multiple_choice",
|
||
"options": ["6 AM", "7 AM", "8 AM", "9 AM"],
|
||
"correctAnswer": "7 AM"
|
||
},
|
||
{
|
||
"question": "Describe the person's evening routine",
|
||
"type": "ai_interpreted",
|
||
"evaluationPrompt": "Check if answer mentions cooking dinner and watching TV"
|
||
}
|
||
]
|
||
},
|
||
|
||
{
|
||
"title": "The Four Seasons",
|
||
"content": "There are four seasons in a year: spring, summer, autumn, and winter. Spring is warm and flowers bloom. Summer is hot and sunny. Autumn is cool and leaves change colors. Winter is cold and it sometimes snows.",
|
||
"translation": "Il y a quatre saisons dans une année: le printemps, l'été, l'automne et l'hiver. Le printemps est chaud et les fleurs fleurissent. L'été est chaud et ensoleillé. L'automne est frais et les feuilles changent de couleur. L'hiver est froid et il neige parfois.",
|
||
// Optional: Add fill-in-the-blank exercises to any text
|
||
"fillInBlanks": [
|
||
{
|
||
"sentence": "There are _____ seasons in a year",
|
||
"options": ["three", "four", "five", "six"],
|
||
"correctAnswer": "four",
|
||
"explanation": "Spring, summer, autumn, and winter make four seasons"
|
||
},
|
||
{
|
||
"sentence": "Spring is _____ and flowers bloom",
|
||
"type": "open_ended",
|
||
"acceptedAnswers": ["warm", "nice", "pleasant", "mild"],
|
||
"aiPrompt": "Check if answer describes spring weather positively"
|
||
}
|
||
]
|
||
}
|
||
],
|
||
|
||
// === AUDIO-ONLY CONTENT ===
|
||
// Pure listening exercises WITHOUT text/transcript (text-based audio goes in texts/dialogues)
|
||
"audio": [
|
||
{
|
||
"title": "Mystery Conversation - Restaurant",
|
||
"audioFile": "audio/listening/restaurant_sounds.mp3",
|
||
"type": "ambient_listening",
|
||
"questions": [
|
||
{
|
||
"question": "Where does this conversation take place?",
|
||
"type": "multiple_choice",
|
||
"options": ["Restaurant", "Office", "School", "Park"],
|
||
"correctAnswer": "Restaurant"
|
||
},
|
||
{
|
||
"question": "How many people are speaking?",
|
||
"type": "ai_interpreted",
|
||
"evaluationPrompt": "Accept numeric answers indicating number of distinct voices"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"title": "Sound Recognition",
|
||
"audioFile": "audio/sounds/morning_routine.mp3",
|
||
"type": "sound_identification",
|
||
"description": "Listen and identify the morning routine sounds",
|
||
"questions": [
|
||
{
|
||
"question": "What sounds did you hear?",
|
||
"type": "ai_interpreted",
|
||
"evaluationPrompt": "Check for mentions of alarm, shower, coffee, breakfast sounds"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"title": "Pronunciation Discrimination",
|
||
"audioFile": "audio/pronunciation/minimal_pairs.mp3",
|
||
"type": "pronunciation_exercise",
|
||
"description": "Listen to similar sounding words and identify differences",
|
||
"word_pairs": [
|
||
["ship", "sheep"],
|
||
["live", "leave"],
|
||
["cat", "cut"]
|
||
]
|
||
}
|
||
],
|
||
|
||
// === CULTURAL CONTENT ===
|
||
// Rich cultural material with context and educational value
|
||
"cultural": {
|
||
// Poetry and literary works
|
||
"poems": [
|
||
{
|
||
"title": "Roses Are Red",
|
||
"content": "Roses are red,\nViolets are blue,\nSugar is sweet,\nAnd so are you.",
|
||
"translation": "Les roses sont rouges,\nLes violettes sont bleues,\nLe sucre est doux,\nEt toi aussi.",
|
||
"audio": "audio/poems/roses.mp3",
|
||
"image": "images/cultural/roses_poem_illustration.jpg",
|
||
"type": "nursery_rhyme",
|
||
"cultural_context": "Traditional English nursery rhyme pattern, often used to teach basic rhyming and poetry structure to children.",
|
||
"learning_focus": ["rhyme_patterns", "basic_vocabulary", "rhythm"]
|
||
}
|
||
],
|
||
|
||
// Proverbs and sayings
|
||
"proverbs": [
|
||
{
|
||
"original": "The early bird catches the worm",
|
||
"userLanguage": "L'avenir appartient à ceux qui se lèvent tôt",
|
||
"meaning": "People who wake up early and start working have better chances of success",
|
||
"image": "images/cultural/early_bird_illustration.jpg",
|
||
"cultural_context": "Common English saying emphasizing the value of being proactive and starting early",
|
||
"equivalent_proverbs": {
|
||
"french": "L'avenir appartient à ceux qui se lèvent tôt",
|
||
"literal": "Le premier oiseau attrape le ver"
|
||
}
|
||
}
|
||
],
|
||
|
||
// Cultural facts - unified system for traditions, holidays, food, etc.
|
||
"culture_facts": [
|
||
{
|
||
"name": "Tea Time",
|
||
"category": "tradition",
|
||
"description": "Traditional British custom of drinking tea in the afternoon, usually around 4 PM",
|
||
"translation": "L'heure du thé - tradition britannique de boire le thé l'après-midi, généralement vers 16h",
|
||
"image": "images/cultural/tea_time.jpg",
|
||
"cultural_significance": "Social ritual that brings people together, often includes biscuits or small cakes",
|
||
"vocabulary_related": ["tea", "biscuit", "afternoon", "tradition", "social"],
|
||
"region": "uk"
|
||
},
|
||
{
|
||
"name": "Christmas",
|
||
"category": "holiday",
|
||
"date": "December 25th",
|
||
"description": "Major Christian holiday celebrating the birth of Jesus Christ",
|
||
"translation": "Noël - grande fête chrétienne célébrant la naissance de Jésus-Christ",
|
||
"image": "images/cultural/christmas_celebration.jpg",
|
||
"customs": ["gift_giving", "family_gatherings", "christmas_tree", "caroling"],
|
||
"vocabulary_related": ["Christmas", "gift", "tree", "family", "celebration"],
|
||
"region": "global"
|
||
},
|
||
{
|
||
"name": "Fish and Chips",
|
||
"category": "food",
|
||
"description": "Traditional British dish of battered fish with fried potatoes",
|
||
"translation": "Poisson-frites - plat britannique traditionnel de poisson en pâte avec des pommes de terre frites",
|
||
"image": "images/cultural/fish_and_chips.jpg",
|
||
"cultural_context": "Popular working-class meal, often served in newspaper wrapping",
|
||
"vocabulary_related": ["fish", "chips", "batter", "traditional", "popular"],
|
||
"region": "uk",
|
||
"ingredients": ["fish", "potatoes", "batter", "oil"],
|
||
"typical_sides": ["mushy_peas", "tartar_sauce", "malt_vinegar"]
|
||
},
|
||
{
|
||
"name": "Thanksgiving",
|
||
"category": "holiday",
|
||
"date": "Fourth Thursday in November",
|
||
"description": "American holiday celebrating gratitude and harvest",
|
||
"translation": "Action de grâce - fête américaine célébrant la gratitude et la récolte",
|
||
"image": "images/cultural/thanksgiving_dinner.jpg",
|
||
"customs": ["family_dinner", "turkey_meal", "gratitude_sharing", "football_watching"],
|
||
"vocabulary_related": ["thanksgiving", "turkey", "grateful", "harvest", "family"],
|
||
"region": "us"
|
||
}
|
||
]
|
||
},
|
||
|
||
// === SENTENCES WITH CORRECTION PARAMETERS ===
|
||
// Generic sentence structure that can be used for various exercises including corrections
|
||
"sentences": [
|
||
{
|
||
"original": "Hello, how are you?",
|
||
"userLanguage": "Bonjour, comment allez-vous?",
|
||
"type": "greeting",
|
||
"formality": "neutral"
|
||
},
|
||
{
|
||
"original": "I like to read books",
|
||
"userLanguage": "J'aime lire des livres",
|
||
"type": "preference_statement",
|
||
"tense": "present_simple"
|
||
},
|
||
{
|
||
"original": "The weather is nice today",
|
||
"userLanguage": "Il fait beau aujourd'hui",
|
||
"type": "observation",
|
||
"topic": "weather"
|
||
},
|
||
// Sentences specifically for correction exercises
|
||
{
|
||
"original": "I am happy today", // Correct version
|
||
"userLanguage": "Je suis heureux aujourd'hui",
|
||
"type": "correction_target",
|
||
"correction_data": {
|
||
"incorrect_versions": [
|
||
{
|
||
"text": "I are happy today",
|
||
"error_type": "subject_verb_agreement",
|
||
"explanation": "Use 'am' with pronoun 'I', not 'are'",
|
||
"difficulty": 2
|
||
},
|
||
{
|
||
"text": "I is happy today",
|
||
"error_type": "subject_verb_agreement",
|
||
"explanation": "Use 'am' with pronoun 'I', not 'is'",
|
||
"difficulty": 1
|
||
}
|
||
],
|
||
"grammar_focus": "be_verb_conjugation",
|
||
"common_mistake": true
|
||
}
|
||
},
|
||
{
|
||
"original": "She doesn't like apples", // Correct version
|
||
"userLanguage": "Elle n'aime pas les pommes",
|
||
"type": "correction_target",
|
||
"correction_data": {
|
||
"incorrect_versions": [
|
||
{
|
||
"text": "She don't like apples",
|
||
"error_type": "subject_verb_agreement",
|
||
"explanation": "Use 'doesn't' with he/she/it, not 'don't'",
|
||
"difficulty": 3
|
||
},
|
||
{
|
||
"text": "She not like apples",
|
||
"error_type": "auxiliary_verb_missing",
|
||
"explanation": "Need auxiliary verb 'doesn't' for negative statements",
|
||
"difficulty": 4
|
||
}
|
||
],
|
||
"grammar_focus": "negative_present_simple",
|
||
"common_mistake": true
|
||
}
|
||
},
|
||
{
|
||
"original": "I can swim", // Correct version
|
||
"userLanguage": "Je sais nager",
|
||
"type": "correction_target",
|
||
"correction_data": {
|
||
"incorrect_versions": [
|
||
{
|
||
"text": "I can to swim",
|
||
"error_type": "infinitive_after_modal",
|
||
"explanation": "After modal verbs like 'can', use base form without 'to'",
|
||
"difficulty": 5
|
||
}
|
||
],
|
||
"grammar_focus": "modal_verbs",
|
||
"common_mistake": true
|
||
}
|
||
}
|
||
],
|
||
|
||
// === MATCHING EXERCISES ===
|
||
// Connect-the-lines style exercises
|
||
"matching": [
|
||
{
|
||
"title": "Match Animals to Their Sounds",
|
||
"type": "two_column_matching",
|
||
"leftColumn": ["Cat", "Dog", "Cow", "Bird"],
|
||
"rightColumn": ["Woof", "Meow", "Tweet", "Moo"],
|
||
"correctPairs": [
|
||
{ "left": "Cat", "right": "Meow" },
|
||
{ "left": "Dog", "right": "Woof" },
|
||
{ "left": "Cow", "right": "Moo" },
|
||
{ "left": "Bird", "right": "Tweet" }
|
||
]
|
||
},
|
||
{
|
||
"title": "Match Colors in English and French",
|
||
"type": "two_column_matching",
|
||
"leftColumn": ["Red", "Blue", "Green", "Yellow"],
|
||
"rightColumn": ["Bleu", "Vert", "Rouge", "Jaune"],
|
||
"correctPairs": [
|
||
{ "left": "Red", "right": "Rouge" },
|
||
{ "left": "Blue", "right": "Bleu" },
|
||
{ "left": "Green", "right": "Vert" },
|
||
{ "left": "Yellow", "right": "Jaune" }
|
||
]
|
||
},
|
||
{
|
||
"title": "Build Correct Sentences",
|
||
"type": "multi_column_matching",
|
||
"columns": [
|
||
{
|
||
"id": 1,
|
||
"name": "Subject",
|
||
"items": ["I", "She", "They", "We"]
|
||
},
|
||
{
|
||
"id": 2,
|
||
"name": "Verb",
|
||
"items": ["am", "is", "are", "are"]
|
||
},
|
||
{
|
||
"id": 3,
|
||
"name": "Complement",
|
||
"items": ["happy", "a teacher", "students", "friends"]
|
||
}
|
||
],
|
||
"valid_combinations": [
|
||
{"1": "I", "2": "am", "3": "happy"},
|
||
{"1": "I", "2": "am", "3": "a teacher"},
|
||
{"1": "She", "2": "is", "3": "happy"},
|
||
{"1": "She", "2": "is", "3": "a teacher"},
|
||
{"1": "They", "2": "are", "3": "students"},
|
||
{"1": "They", "2": "are", "3": "friends"},
|
||
{"1": "We", "2": "are", "3": "students"},
|
||
{"1": "We", "2": "are", "3": "friends"}
|
||
]
|
||
},
|
||
{
|
||
"title": "Match Country Information",
|
||
"type": "multi_column_matching",
|
||
"columns": [
|
||
{
|
||
"id": 1,
|
||
"name": "Country",
|
||
"items": ["France", "Spain", "Italy", "Germany"]
|
||
},
|
||
{
|
||
"id": 2,
|
||
"name": "Capital",
|
||
"items": ["Paris", "Madrid", "Rome", "Berlin"]
|
||
},
|
||
{
|
||
"id": 3,
|
||
"items": ["French", "Spanish", "Italian", "German"]
|
||
}
|
||
],
|
||
"valid_combinations": [
|
||
{"1": "France", "2": "Paris", "3": "French"},
|
||
{"1": "Spain", "2": "Madrid", "3": "Spanish"},
|
||
{"1": "Italy", "2": "Rome", "3": "Italian"},
|
||
{"1": "Germany", "2": "Berlin", "3": "German"}
|
||
]
|
||
}
|
||
],
|
||
|
||
|
||
// === DIALOGUES ===
|
||
// Structured conversations between speakers (text with audio goes here, not in audio section)
|
||
"dialogues": [
|
||
{
|
||
"title": "At the Restaurant",
|
||
"conversation": [
|
||
{
|
||
"speaker": "Waiter",
|
||
"original": "Good evening! Welcome to our restaurant.",
|
||
"userLanguage": "Bonsoir! Bienvenue dans notre restaurant."
|
||
},
|
||
{
|
||
"speaker": "Customer",
|
||
"original": "Thank you. Can I see the menu please?",
|
||
"userLanguage": "Merci. Puis-je voir le menu s'il vous plaît?"
|
||
},
|
||
{
|
||
"speaker": "Waiter",
|
||
"original": "Of course! Here you are. What would you like to drink?",
|
||
"userLanguage": "Bien sûr! Voici. Que voulez-vous boire?"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"title": "Daily Routine Conversation",
|
||
"audio": "audio/conversations/daily_routine.mp3", // Audio WITH text belongs here
|
||
"conversation": [
|
||
{
|
||
"speaker": "A",
|
||
"original": "What time do you wake up?",
|
||
"userLanguage": "À quelle heure te réveilles-tu?",
|
||
"timestamp": 0.5
|
||
},
|
||
{
|
||
"speaker": "B",
|
||
"original": "I usually wake up at 7 AM.",
|
||
"userLanguage": "Je me réveille habituellement à 7h.",
|
||
"timestamp": 3.2
|
||
},
|
||
{
|
||
"speaker": "A",
|
||
"original": "That's early! I wake up at 8:30.",
|
||
"userLanguage": "C'est tôt! Je me réveille à 8h30.",
|
||
"timestamp": 6.8
|
||
},
|
||
{
|
||
"speaker": "B",
|
||
"original": "I like to exercise before work.",
|
||
"userLanguage": "J'aime faire de l'exercice avant le travail.",
|
||
"timestamp": 11.1
|
||
},
|
||
{
|
||
"speaker": "A",
|
||
"original": "That's a good habit!",
|
||
"userLanguage": "C'est une bonne habitude!",
|
||
"timestamp": 14.5
|
||
}
|
||
]
|
||
}
|
||
]
|
||
} |