Documentation

Dokumentation

Quiz exchange format

Austauschformat für Quizze

QuizLane imports and exports quizzes as ZIP files containing quizlane.json plus media files – or as a simple CSV table you can edit in Excel, Numbers or Google Sheets.

QuizLane importiert und exportiert Quizze als ZIP-Datei mit quizlane.json und Mediendateien – oder als einfache CSV-Tabelle, die du in Excel, Numbers oder Google Tabellen bearbeiten kannst.

Templates to start with:Vorlagen zum Loslegen: JSON (English) · JSON (Deutsch) · CSV (English) · CSV (Deutsch)

1. ZIP package

1. ZIP-Paket

2. quizlane.json

2. quizlane.json

FieldTypeMeaningBedeutung
formattext"quizlane"
formatVersionnumberCurrently 1. Older versions are upgraded, newer ones rejected.Aktuell 1. Ältere Versionen werden hochgestuft, neuere abgelehnt.
quizQuizThe quiz (required).Das Quiz (Pflicht).
modules[Module]All modules the quiz uses, delivered in full.Alle Bausteine des Quiz, vollständig mitgeliefert.

Quiz

FieldTypeMeaningBedeutung
idtextPermanent unique ID (required), e.g. a UUID.Dauerhafte eindeutige Kennung (Pflicht), z. B. eine UUID.
versionnumberPublished version (default 1).Veröffentlichte Version (Standard 1).
title, descriptiontextTitle (required for publishing) and description.Titel (für die Veröffentlichung Pflicht) und Beschreibung.
languagetextSource language as BCP 47 code, e.g. de, en (default en).Ausgangssprache als BCP-47-Kürzel, z. B. de, en (Standard en).
languages[text]Further content languages with translations.Weitere Inhaltssprachen mit Übersetzungen.
titleI18n, descriptionI18n{lang: text}Translations of title and description.Übersetzungen von Titel und Beschreibung.
covertextPath of the cover image.Pfad des Titelbilds.
categories, tags[text]For classification and search – not content.Zur Einordnung und Suche – keine Inhalte.
modules[ModuleRef]Modules in order: {id, version?}. If empty, all supplied modules are used.Bausteine in Reihenfolge: {id, version?}. Leer = alle mitgelieferten Bausteine.
catalogSearchboolOffer a search field for large answer catalogues (default true).Suchfeld bei großen Antwortkatalogen anbieten (Standard true).
pathLearningPath{type: adaptive|sequence|chapters|random, unlockShare?} – default adaptive; unlockShare (default 0.8) = share of mastered questions that unlocks dependent chapters.Standard adaptive; unlockShare (Standard 0,8) = Anteil beherrschter Fragen, der aufbauende Kapitel freischaltet.
examExamConfig{rules: [{moduleId, count, minCorrect?, chapterIds?}], passPercent?, minutes?} – questions drawn per module, minimum correct per module, overall pass mark in percent, time limit.gezogene Fragen je Baustein, Mindestzahl richtiger Antworten je Baustein, Gesamtbestehensgrenze in Prozent, Zeitlimit.
attributionAttributionAuthor, source and licence (see below).Urheber, Quelle und Lizenz (siehe unten).
media[MediaItem]Media of the quiz itself (cover image).Medien des Quiz selbst (Titelbild).

Module (knowledge module)(Wissensbaustein)

FieldTypeMeaningBedeutung
idtextPermanent unique ID (required).Dauerhafte eindeutige Kennung (Pflicht).
versionnumberModule version (default 1).Bausteinversion (Standard 1).
title, i18ntext, {lang: text}Title and its translations.Titel und seine Übersetzungen.
description, languagetextOptional.Optional.
chapters[Chapter]{id, title, description?, requires: [chapterId], i18n} – requires = chapters that must be mastered first (no cycles).requires = Kapitel, die vorher beherrscht sein müssen (keine Zyklen).
catalogs[Catalog]{id, title, entries: [Choice], i18n} – shared answer catalogue, e.g. all fish species. The app shows all entries, never only four.gemeinsamer Antwortkatalog, z. B. alle Fischarten. Die App zeigt alle Einträge, nie nur vier.
questions[Question]The questions.Die Fragen.
media[MediaItem]All media used in the module.Alle im Baustein genutzten Medien.
attributionAttributionOptional.Optional.
allowReuseboolOthers may include the published module in their own quizzes (default false).Andere dürfen den veröffentlichten Baustein in eigene Quizze einbinden (Standard false).

Question

FieldTypeMeaningBedeutung
idtextPermanent unique ID (required) – learning progress is attached to it, also across quizzes.Dauerhafte eindeutige Kennung (Pflicht) – daran hängt der Lernstand, auch quizübergreifend.
revnumberContent revision (default 1). Increases with essential changes of content or solution; learning progress then needs review.Inhaltsstand (Standard 1). Steigt bei wesentlicher Änderung von Inhalt oder Lösung; der Lernstand gilt dann als überprüfungsbedürftig.
typetextsingle · multiple · catalog · text · open (see section 3)(siehe Abschnitt 3)
promptPrompt{text?, image?, video?, i18n} – text, image, video or a combination; an image without text is allowed.Text, Bild, Video oder eine Kombination; ein Bild ohne Text ist erlaubt.
options[Choice]{id, text?, image?, i18n} – answer options for single/multiple; if all have an image, the app shows an image choice.Antwortmöglichkeiten bei single/multiple; haben alle ein Bild, zeigt die App eine Bildauswahl.
correct[text]IDs of the correct options or catalogue entries.Kennungen der richtigen Antworten bzw. Katalogeinträge.
shuffleboolShuffle options (default true).Antworten mischen (Standard true).
catalogId, catalogMultitext, boolCatalogue question: which catalogue; whether several entries must be chosen.Katalogfrage: welcher Katalog; ob mehrere Einträge zu wählen sind.
textTextRule{accepted: [text], caseSensitive?, ignoreAccents?, typoTolerance?, i18n: {lang: [text]}} – accepted spellings and alternative answers; typoTolerance = tolerated typos for answers of 5+ characters.zulässige Schreibweisen und alternative Antworten; typoTolerance = tolerierte Tippfehler ab 5 Zeichen.
modelAnswerPromptModel solution for free answers (text and/or image).Musterlösung bei freier Antwort (Text und/oder Bild).
explanation, hint, sourcetextShown after answering. Translations: explanationI18n, hintI18n.Werden nach der Beantwortung angezeigt. Übersetzungen: explanationI18n, hintI18n.
chapterId, topics, difficultytext, [text], 1–5Structure, topics and difficulty.Gliederung, Themen und Schwierigkeitsgrad.
nextBranching{onCorrect?, onWrong?, byOption: {optionId: Target}}, Target = {question} | {chapter} | {end: true} – branching in a fixed learning path.Verzweigung im Lernpfad mit fester Reihenfolge.

MediaItem & Attribution

FieldTypeMeaningBedeutung
pathtextRelative path in the ZIP (required).Relativer Pfad im ZIP (Pflicht).
kind, mimetextimage | video, e.g.z. B. image/jpeg
sha256, bytestext, numberChecksum and size (the app checks them).Prüfsumme und Größe (die App prüft sie).
width, height, durationMsnumberOptional.Optional.
rightsConfirmedboolThe creator confirmed holding the rights – required for publishing in the community.Der Ersteller hat die Rechte bestätigt – Pflicht für die Veröffentlichung in der Community.
attributionAttribution{author?, source?, license?, licenseUrl?, notice?} – notice = required credit line, e.g. “Photo: M. Muster, CC BY 4.0”.notice = vorgeschriebene Namensnennung, z. B. „Foto: M. Muster, CC BY 4.0“.

3. Question types

3. Fragetypen

typeAnswerAntwortSolutionLösung
singlechoose one option (or one image)eine Antwort (oder ein Bild) wählencorrect = exactly one option IDcorrect = genau eine Antwort-Kennung
multiplechoose several optionsmehrere Antworten wählenall correct and no wrong option must be chosenalle richtigen und keine falsche müssen gewählt sein
catalogchoose from a large catalogue (scrollable, optional search)aus einem großen Katalog wählen (scrollbar, optional mit Suche)correct = catalogue entry IDs; with several IDs and catalogMulti: false each one counts (synonyms)correct = Katalogeinträge; bei mehreren und catalogMulti: false zählt jeder (Synonyme)
texttype the answerAntwort eintippentext.accepted (+ translations in text.i18n); punctuation and spacing are ignoredtext.accepted (+ Übersetzungen in text.i18n); Satzzeichen und Leerraum zählen nicht
openfree answer: sketch or writefreie Antwort: skizzieren oder schreibenmodelAnswer; judged by yourself, in a duel by the other player, in a race by the hostmodelAnswer; Bewertung selbst, im Duell durch den Mitspieler, im Wettlauf durch den Gastgeber

Example

Beispiel

{
  "format": "quizlane",
  "formatVersion": 1,
  "quiz": {
    "id": "quiz-fishing-nrw",
    "title": "Fischerprüfung NRW",
    "language": "de",
    "languages": ["en"],
    "titleI18n": { "en": "Fishing licence exam NRW" },
    "modules": [{ "id": "module-fish" }],
    "exam": { "rules": [{ "moduleId": "module-fish", "count": 2, "minCorrect": 1 }], "passPercent": 60 }
  },
  "modules": [{
    "id": "module-fish",
    "title": "Fischkunde",
    "catalogs": [{
      "id": "catalog-fish", "title": "Fischarten",
      "entries": [
        { "id": "fish-pike", "text": "Hecht", "i18n": { "en": "Pike" } },
        { "id": "fish-zander", "text": "Zander", "i18n": { "en": "Zander" } }
      ]
    }],
    "questions": [
      { "id": "q1", "type": "catalog", "prompt": { "image": "media/pike.jpg" },
        "catalogId": "catalog-fish", "correct": ["fish-pike"] },
      { "id": "q2", "type": "text",
        "prompt": { "text": "Wie heißt der Raubfisch mit „Entenschnabel“?", "i18n": { "en": "Which predator has a “duck bill”?" } },
        "text": { "accepted": ["Hecht"], "i18n": { "en": ["Pike", "Northern pike"] } },
        "explanation": "Der Hecht hat ein entenschnabelförmiges Maul." }
    ],
    "media": [{ "path": "media/pike.jpg", "kind": "image", "mime": "image/jpeg", "rightsConfirmed": true,
                "attribution": { "author": "M. Muster", "license": "CC BY 4.0" } }]
  }]
}

4. CSV (spreadsheet)

4. CSV (Tabelle)

ColumnSpalteContentInhalt
typesingle · multiple · catalog · text · open · image (also German: einfach, mehrfach, katalog, eingabe, frei, bild). Empty: derived – catalog column → catalog; no options → text (with solution) or open; several correct → multiple; otherwise single.(auch deutsch: einfach, mehrfach, katalog, eingabe, frei, bild). Leer: wird abgeleitet – Spalte catalog → catalog; keine Antworten → text (mit Lösung) bzw. open; mehrere richtige → multiple; sonst single.
module, chapter, topics, difficultyModule name (several modules per file possible), chapter, topics (|-separated), difficulty 1–5.Name des Bausteins (mehrere je Datei möglich), Kapitel, Themen (mit |), Schwierigkeit 1–5.
question, image, videoQuestion text and/or media path.Fragetext und/oder Medienpfad.
optionsAnswer options (|). For catalog questions: additional catalogue entries (distractors).Antwortmöglichkeiten (|). Bei Katalogfragen: weitere Katalogeinträge (Ablenker).
correctsingle/multiple: text of the correct option(s) or their number (1, 2, …); catalog: correct entries; text: accepted answers; open: model answer.single/multiple: Text der richtigen Antwort(en) oder ihre Nummer (1, 2, …); catalog: richtige Einträge; text: zulässige Antworten; open: Musterlösung.
catalogName of the shared answer catalogue (entries are collected from all rows).Name des gemeinsamen Antwortkatalogs (Einträge werden aus allen Zeilen gesammelt).
explanation, hint, sourceShown after answering.Werden nach der Beantwortung angezeigt.
case_sensitive, ignore_accents, typosText answers: case matters (1/yes), ignore accents (1/yes), number of tolerated typos.Texteingabe: Groß/klein beachten (1/ja), Akzente ignorieren (1/ja), Zahl tolerierter Tippfehler.
# title: My first quiz
# language: en
type,chapter,question,image,options,correct,catalog,explanation,question@de,options@de,correct@de
single,Basics,What is the capital of France?,,Paris|Lyon|Marseille,Paris,,Since 987.,Was ist die Hauptstadt von Frankreich?,Paris|Lyon|Marseille,
text,Basics,What is the capital of Iceland?,,,Reykjavík|Reykjavik,,,Wie heißt die Hauptstadt Islands?,,Reykjavík|Reykjavik
catalog,Fish,Which fish is this?,media/pike.jpg,Perch|Carp,Pike,Fish species,,Welcher Fisch ist das?,,Hecht

5. Checks on import

5. Prüfung beim Import

Before a quiz is accepted, the app checks structure, file references and media formats and shows understandable messages. Errors include, among others: missing title (quiz.titleMissing), missing module (quiz.moduleMissing), empty question (question.promptEmpty), fewer than two options (question.tooFewOptions), no or unknown solution (question.noCorrect, question.correctUnknown), single choice with more than one solution (question.singleNeedsOne), missing catalogue (question.catalogMissing), text question without accepted answer (question.textNoAnswer), free answer without model solution (question.modelAnswerMissing), duplicate IDs (id.duplicate), unsupported or missing media (media.unsupported, media.missing), and for publishing unconfirmed media rights (media.rightsUnconfirmed). Incomplete translations are only a warning (translation.incomplete).

Bevor ein Quiz übernommen wird, prüft die App Datenstruktur, Dateiverweise und Medienformate und zeigt verständliche Meldungen. Fehler sind u. a.: fehlender Titel (quiz.titleMissing), fehlender Baustein (quiz.moduleMissing), leere Frage (question.promptEmpty), weniger als zwei Antworten (question.tooFewOptions), keine oder unbekannte Lösung (question.noCorrect, question.correctUnknown), Einfachauswahl mit mehr als einer Lösung (question.singleNeedsOne), fehlender Katalog (question.catalogMissing), Texteingabe ohne zulässige Antwort (question.textNoAnswer), freie Antwort ohne Musterlösung (question.modelAnswerMissing), doppelte Kennungen (id.duplicate), nicht unterstützte oder fehlende Medien (media.unsupported, media.missing) und für die Veröffentlichung unbestätigte Medienrechte (media.rightsUnconfirmed). Unvollständige Übersetzungen sind nur ein Hinweis (translation.incomplete).