progress
Sends the learner's progress for the AU.
Example
import Cmi5 from "@xapi/cmi5";
const cmi5 = new Cmi5();
// initialize etc
cmi5.progress(50);
Parameters
Returns
This returns a Promise
containing an array with the resulting statementId if successful.
interactionTrueFalse
Sends the learner's boolean based answer to an interaction.
Example
import Cmi5 from "@xapi/cmi5";
import { LanguageMap } from "@xapi/xapi";
const cmi5 = new Cmi5();
const testId = "test1";
const questionId = "is-true-true";
const answer = true;
const correctAnswer = true;
const success = answer === correctAnswer;
const name: LanguageMap = {
"en-US": "Is True True"
};
const description: LanguageMap = {
"en-US": "In a boolean context, is true truthy?"
};
cmi5.interactionTrueFalse(testId, questionId, answer, correctAnswer, name, description, success);
Parameters
Returns
This returns a Promise
containing an array with the resulting statementId if successful.
interactionChoice
Sends the learner's choice based answer to an interaction.
Example
import Cmi5 from "@xapi/cmi5";
import { LanguageMap, InteractionComponent } from "@xapi/xapi";
const cmi5 = new Cmi5();
const testId = "test1";
const questionId = "first-two-choices";
const answerIds: string[] = ["choice1", "choice4"];
const correctAnswerIds: string[] = ["choice1", "choice2"];
const success = false;
const choices: InteractionComponent[] = [{
id: "choice1",
description: {
"en-US": "Choice 1"
}
},
{
id: "choice2",
description: {
"en-US": "Choice 2"
}
},
{
id: "choice3",
description: {
"en-US": "Choice 3"
}
},
{
id: "choice4",
description: {
"en-US": "Choice 4"
}
}];
const name: LanguageMap = {
"en-US": "First Two Choices"
};
const description: LanguageMap = {
"en-US": "What are the first two choices?"
};
cmi5.interactionChoice(testId, questionId, answerIds, correctAnswerIds, choices, name, description, success);
Parameters
Returns
This returns a Promise
containing an array with the resulting statementId if successful.
interactionFillIn
Sends the learner's short text based answer to an interaction.
Example
import Cmi5 from "@xapi/cmi5";
import { LanguageMap } from "@xapi/xapi";
const cmi5 = new Cmi5();
const testId = "test1";
const questionId = "hello";
const answers = ["whos there?"];
const correctAnswers = ["world", "World"];
const success = false;
const name: LanguageMap = {
"en-US": "Hello"
};
const description: LanguageMap = {
"en-US": "Hello?"
};
cmi5.interactionFillIn(testId, questionId, answers, correctAnswers, name, description, success);
Parameters
Returns
This returns a Promise
containing an array with the resulting statementId if successful.
interactionLongFillIn
Sends the learner's long text based answer to an interaction.
Example
import Cmi5 from "@xapi/cmi5";
import { LanguageMap } from "@xapi/xapi";
const cmi5 = new Cmi5();
const testId = "test1";
const questionId = "hello-long";
const answers = ["whos there?"];
const correctAnswers = ["world", "World"];
const success = false;
const name: LanguageMap = {
"en-US": "Hello"
};
const description: LanguageMap = {
"en-US": "Hello?"
};
cmi5.interactionFillIn(testId, questionId, answers, correctAnswers, name, description, success);
Parameters
Returns
This returns a Promise
containing an array with the resulting statementId if successful.
interactionLikert
Sends the learner's Likert based answer to an interaction.
Example
import Cmi5 from "@xapi/cmi5";
import { InteractionComponent } from "@xapi/xapi";
const cmi5 = new Cmi5();
const testId = "test1";
const questionId = "highest-value";
const answerId = "likert4";
const correctAnswerId = "likert4";
const scale: InteractionComponent[] = [{
id: "likert0",
description: {
"en-US": "Very Unsatisfied"
}
},
{
id: "likert1",
description: {
"en-US": "Unsatisfied"
}
},
{
id: "likert2",
description: {
"en-US": "Neutral"
}
},
{
id: "likert3",
description: {
"en-US": "Satisfied"
}
},
{
id: "likert4",
description: {
"en-US": "Very Satisfied"
}
}];
const name: LanguageMap = {
"en-US": "Highest Value"
};
const description: LanguageMap = {
"en-US": "What is the highest value on this scale?"
};
cmi5.interactionLikert(testId, questionId, answerId, correctAnswerId, scale, name, description)
Parameters
Returns
This returns a Promise
containing an array with the resulting statementId if successful.
interactionMatching
Sends the learner's matching based answer to an interaction.
Example
import Cmi5 from "@xapi/cmi5";
import { LanguageMap, InteractionComponent } from "@xapi/xapi";
const cmi5 = new Cmi5();
const testId = "test1";
const questionId = "food-groups";
const answers = {
apple: "fruit",
carrot: "vegetable"
};
const correctAnswers = {
apple: "fruit",
carrot: "vegetable"
};
const success = true;
const source: InteractionComponent[] = [{
id: "apple",
description: {
"en-US": "Apple"
}
}, {
id: "carrot",
description: {
"en-US": "Carrot"
}
}];
const target: InteractionComponent[] = [{
id: "fruit",
description: {
"en-US": "Fruit"
}
},
{
id: "vegetable",
description: {
"en-US": "Vegetable"
}
}];
const name: LanguageMap = {
"en-US": "Food Groups"
};
const description: LanguageMap = {
"en-US": "Match the food items to their groups."
};
cmi5.interactionMatching(testId, questionId, answers, correctAnswers, source, target, name, description, success);
Parameters
Returns
This returns a Promise
containing an array with the resulting statementId if successful.
interactionPerformance
Sends the learner's performance based answer to an interaction.
Example
import Cmi5, { Performance, PerformanceCriteria } from "@xapi/cmi5";
import { LanguageMap } from "@xapi/xapi";
const cmi5 = new Cmi5();
const testId = "test1";
const questionId = "trex-runner";
const answers: Performance = {
distance: 500
};
const correctAnswers: PerformanceCriteria[] = [{
id: "distance",
min: 100
}];
const success = true;
const name: LanguageMap = {
"en-US": "T-Rex Runner"
};
const description: LanguageMap = {
"en-US": "Get a score of minimum 100 on T-Rex Runner"
};
cmi5.interactionPerformance(testId, questionId, answers, correctAnswers, name, description, success);
Parameters
Returns
This returns a Promise
containing an array with the resulting statementId if successful.
interactionSequencing
Sends the learner's sequence based answer to an interaction.
Example
import Cmi5 from "@xapi/cmi5";
import { LanguageMap, InteractionComponent } from "@xapi/xapi";
const cmi5 = new Cmi5();
const testId = "test1";
const questionId = "number-order";
const answerIds: string[] = ["one", "three", "two", "four"];
const correctAnswerIds: string[] = ["one", "two", "three", "four"];
const choices = InteractionComponent[] = [{
id: "one",
description: {
"en-US": "One"
}
},
{
id: "two",
description: {
"en-US": "Two"
}
},
{
id: "three",
description: {
"en-US": "Three"
}
},
{
id: "four",
description: {
"en-US": "Four"
}
}];
const success = false;
const name: LanguageMap = {
"en-US": "Number Order"
};
const description: LanguageMap = {
"en-US": "Put the numbers in order"
};
cmi5.interactionSequencing(testId, questionId, answerIds, correctAnswerIds, choices, name, description, success);
Parameters
Returns
This returns a Promise
containing an array with the resulting statementId if successful.
interactionNumeric
Sends the learner's numeric based answer to an interaction.
Example
import Cmi5, { NumericCriteria } from "@xapi/cmi5";
import { LanguageMap } from "@xapi/xapi";
const cmi5 = new Cmi5();
const testId = "test1";
const questionId = "human-legs";
const answer = 2;
const correctAnswer: NumericCriteria = {
exact: 2
};
const success = true;
const name: LanguageMap = {
"en-US": "Human Legs"
};
const description: LanguageMap = {
"en-US": "How many legs does a human have?"
};
cmi5.interactionNumeric(testId, questionId, answer, correctAnswer, name, description, success);
Parameters
Returns
This returns a Promise
containing an array with the resulting statementId if successful.
interactionOther
Sends the learner's "other" based answer to an interaction.
Example
import Cmi5, { NumericCriteria } from "@xapi/cmi5";
import { LanguageMap } from "@xapi/xapi";
const cmi5 = new Cmi5();
const testId = "test1";
const questionId = "plymouth-location";
const answer = "(53.756898, -4.501819)";
const correctAnswer = "(53.756898, -4.501819)";
const success = true;
const name: LanguageMap = {
"en-US": "Plymouth Location"
};
const description: LanguageMap = {
"en-US": "On this map, please mark Plymouth, Devon"
};
cmi5.interactionOther(testId, questionId, answer, correctAnswer, name, description, success);
Parameters
Returns
This returns a Promise
containing an array with the resulting statementId if successful.