Guide

What this site does

Static, offline-first study space for vocabulary, grammar, chunks, readings, and EFSET-style exams. Everything is driven by JSON files inside data/.

Open the app
Tip: Use one language folder per dataset.
Quick Start
  1. Select a language and level.
  2. Press Load Data to load vocabulary.
  3. Switch modes: Grammar, Sentences, Chunks, Reading, Exam.

No build step. Just open index.html.

Modes

Vocabulary shows word, definition, sentences, collocations, and a quiz.

Grammar loads topics with patterns, tips, and mistakes.

Sentences gives topic-filtered examples with translations and notes.

Chunks are common phrases with example + TR.

Reading is a passage plus glossary.

Exam runs EFSET-style multiple-choice sets.

Folder Layout

All content lives in data/<lang>/.

  • vocab_01.json ... vocab_10.json
  • chunks_01.json ...
  • grammar_01.json ...
  • examples_01.json ...
  • readings_01.json ...
  • exam_01.json ...

If you add new files, update the mappings in app.js.

Vocabulary Schema
Field Type Notes
wordstringTarget word
posstringPart of speech
levelstringA2, B1, B2
definitionstringShort meaning
sentencesarrayExample sentences
collocationstringOptional
quizobjectSee below
[
  {
    "word": "aim",
    "pos": "noun",
    "level": "A2",
    "definition": "a thing you want to achieve",
    "sentences": ["My aim is to pass the test."],
    "collocation": "aim for",
    "quiz": {
      "question": "Aim means...",
      "options": ["goal", "promise", "chance"],
      "answer": 0
    }
  }
]

quiz.answer is zero-based index.

Other Schemas
File Fields
chunks_*.json chunk, level, example, tr
examples_*.json topic, level, sentence, tr, note
grammar_*.json topic, level, description, pattern, examples, tips, mistakes, note
readings_*.json title, level, text, glossary
exam_*.json question, options, answer
Add New Content
  • Create or edit JSON files under data/<lang>/.
  • Keep schemas consistent and avoid duplicates.
  • Update file lists in app.js if you add new series.
  • Open index.html to test locally.
Keyboard Shortcuts
  • N Next Word
  • G Grammar
  • S Sentences
  • C Chunks
  • R Reading
  • E Exam
  • L Load Data
  • T Toggle Timer
Data Health

The sidebar shows counts for loaded vocab, grammar, chunks, readings, exams, and duplicate vocab entries.

Troubleshooting
  • "No data loaded" usually means a missing file or invalid JSON.
  • Check file names match the mappings in app.js.
  • Use the browser console to see fetch errors.