AssessmentEngine

AssessmentEngine

Adaptiver Assessment-Test.

Constructor

new AssessmentEngine(catalog)

Source:
Example
const engine = await AssessmentEngine.create();

while (engine.hasNext()) {
    const q = engine.getNextQuestion();
    // ... question UI anzeigen ...
    const result = engine.submitAnswer(selectedIndex);
    // result.correct, result.explanation, result.funFact
}

const scores = engine.getResults();
// { history: 0.75, math: 0.5, ... }
Parameters:
Name Type Description
catalog Object

— Geparste assessment-questions.json

Members

_asked :Set.<string>

Description:
  • Bereits gestellte Frage-IDs

Source:

Bereits gestellte Frage-IDs

Type:
  • Set.<string>

_catalog :Object

Description:
  • Rohdaten

Source:

Rohdaten

Type:
  • Object

_categoryIndex :number

Description:
  • Aktuelle Kategorie (Index in _categoryOrder)

Source:

Aktuelle Kategorie (Index in _categoryOrder)

Type:
  • number

_categoryOrder :Array.<string>

Description:
  • Gemischte Kategorie-Reihenfolge

Source:

Gemischte Kategorie-Reihenfolge

Type:
  • Array.<string>

_currentDifficulty :number

Description:
  • Aktuelle adaptive Schwierigkeit

Source:

Aktuelle adaptive Schwierigkeit

Type:
  • number

_currentOptionMap :Array.<number>

Description:
  • Aktuelle Mapping: shuffledIndex → originalIndex

Source:

Aktuelle Mapping: shuffledIndex → originalIndex

Type:
  • Array.<number>

_currentQuestion :Object|null

Description:
  • Aktuell angezeigte Frage (mit gemischten Optionen)

Source:

Aktuell angezeigte Frage (mit gemischten Optionen)

Type:
  • Object | null

_finished :boolean

Description:
  • Ob der Test beendet ist

Source:

Ob der Test beendet ist

Type:
  • boolean

_pool :Map.<string, Array.<Object>>

Description:
  • Kategorie → verfügbare Fragen (nach Difficulty gruppiert)

Source:

Kategorie → verfügbare Fragen (nach Difficulty gruppiert)

Type:
  • Map.<string, Array.<Object>>

_questionInCategory :number

Description:
  • Fragen-Zähler in aktueller Kategorie

Source:

Fragen-Zähler in aktueller Kategorie

Type:
  • number

_scores :Object.<string, Object>

Description:
  • Kategorie → Tracking-Daten

Source:

Kategorie → Tracking-Daten

Type:
  • Object.<string, Object>

_totalAsked :number

Description:
  • Gesamtanzahl gestellter Fragen

Source:

Gesamtanzahl gestellter Fragen

Type:
  • number

Methods

getDetailedStats() → {Object}

Description:
  • Gibt detaillierte Statistiken zurück.

Source:
Returns:
Type
Object

getLevel() → {'beginner'|'intermediate'|'advanced'}

Description:
  • Berechnet das Gesamtlevel basierend auf den Scores.

Source:
Returns:
Type
'beginner' | 'intermediate' | 'advanced'

getNextQuestion() → {Object|null}

Description:
  • Gibt die nächste Frage zurück (mit gemischten Antwortoptionen).

Source:
Returns:

Frage-Objekt mit:

  • id, question, options (gemischt!), category, difficulty
  • categoryLabel, progress { current, total, categoryProgress }
Type
Object | null

getProgressPercent() → {number}

Description:
  • Aktueller Fortschritt als Prozentwert.

Source:
Returns:

0–100

Type
number

getRecommendedTopics() → {Array.<string>}

Description:
  • Gibt empfohlene Themen zurück (basierend auf guten Scores).

Source:
Returns:

Topic-Tags für die Content-Registry

Type
Array.<string>

getResults() → {Object.<string, number>}

Description:
  • Gibt die Ergebnis-Scores pro Kategorie zurück (0.0–1.0).

    Score-Berechnung berücksichtigt nicht nur Korrektheit, sondern auch die erreichte Schwierigkeitsstufe:

    • Diff 1 richtig = 0.25
    • Diff 2 richtig = 0.50
    • Diff 3 richtig = 0.75
    • Diff 4 richtig = 1.00
    • Falsche Antworten = 0
Source:
Returns:

Kategorie → Score

Type
Object.<string, number>

getTotalEstimate() → {number}

Description:
  • Geschätzte Gesamtanzahl der Fragen.

Source:
Returns:
Type
number

getWeakCategories() → {Array.<string>}

Description:
  • Gibt Kategorien zurück, in denen der Nutzer schwach ist.

Source:
Returns:

Kategorie-Keys mit Score < 0.4

Type
Array.<string>

hasNext() → {boolean}

Description:
  • Gibt zurück, ob noch Fragen übrig sind.

Source:
Returns:
Type
boolean

isFinished() → {boolean}

Description:
  • Ob der Test abgeschlossen ist.

Source:
Returns:
Type
boolean

submitAnswer(selectedIndex) → {Object}

Description:
  • Übermittelt die Antwort des Nutzers.

Source:
Parameters:
Name Type Description
selectedIndex number

— 0-basierter Index der gewählten Option (im gemischten Array)

Returns:

Ergebnis:

  • correct {boolean}
  • correctIndex {number} — Index der richtigen Antwort im gemischten Array
  • explanation {string}
  • funFact {string|null}
  • difficulty {number} — Schwierigkeit der beantworteten Frage
  • nextDifficulty {number} — Nächste adaptive Schwierigkeit
Type
Object

(async, static) create(basePathopt) → {Promise.<AssessmentEngine>}

Description:
  • Erstellt eine neue Engine und lädt den Fragenkatalog.

Source:
Parameters:
Name Type Attributes Default Description
basePath string <optional>
''

— Basis-Pfad für fetch

Returns:
Type
Promise.<AssessmentEngine>

(static) fromCatalog(catalog) → {AssessmentEngine}

Description:
  • Erstellt eine Engine mit bereits geladenem Katalog.

Source:
Parameters:
Name Type Description
catalog Object

— Geparste assessment-questions.json

Returns:
Type
AssessmentEngine