Learning Events
Learning Events from Web Components
Algebrakit's web components emit events to notify your system of key moments in the student learning process. These events cover:
- Lifecycle events (e.g. component creation and activation)
- Student actions (e.g. submitting an answer, requesting a hint)
You can listen to these events using the addExerciseListener()
method.
addExerciseListener()
Listen for learning events globally or for a specific session.
AlgebraKIT.addExerciseListener((eventData) => {
// handle event
});
// listen to events related to a session
AlgebraKIT.addExerciseListener("my-session-id", (eventData) => {
// handle session-specific event
});
Event Reference
exercise-created
Triggered when an <akit-exercise>
component is initialized and all interactions are loaded.
Payload:
{
event: 'exercise-created',
sessionId: string,
data: {
element: Element,
interactions: InteractionDescription[]
}
}
InteractionDescription = {
refId: string,
scorable: boolean,
type: string
}
Property | Description |
---|---|
element |
DOM element of the exercise component. |
interactions |
List of interactions in the exercise. |
refId |
Unique ID of the interaction. |
scorable |
Indicates whether the interaction is scored or display-only. |
type |
Type of interaction (multistep , geometry , fill-in-the-blanks , etc.). |
interaction-created
Triggered when an <akit-interaction>
component is initialized and ready.
Payload:
{
event: 'interaction-created',
sessionId: string,
refId: string,
data: {
element: Element,
interaction: string
}
}
Property | Description |
---|---|
element |
DOM element of the interaction component. |
refId |
ID of the interaction within the exercise. |
interaction |
Type of interaction (e.g. multistep , geometry ). |
interaction-activated
Triggered the first time a student activates an interaction (e.g. by clicking on it).
No payload.
interaction-hint
Triggered when the student requests a hint.
No payload.
interaction-evaluate
Triggered when a student submits an answer for evaluation.
Payload:
Property | Type | Description |
---|---|---|
exerciseFinished |
boolean | Whether the full exercise is now finished. |
interactionType |
string | Type of the interaction (e.g. choice , multistep ). |
progress |
number | Progress in the range [0, 1] for multi-part questions. |
replay |
boolean | true if this is part of a replay (e.g. in review mode). |
scoring |
object | Scoring info (if a model was configured). See Scoring. |
interaction-finished
Triggered when a student completes an interaction.
Payload:
Same as interaction-evaluate
.
question-finished
Triggered when all interactions in a specific question are complete.
Payload:
Property | Type | Description |
---|---|---|
scoring |
object | Aggregated score for all interactions in the question. |
replay |
boolean | true if submitted during replay or review mode. |
exercise-finished
Triggered when all interactions in the entire exercise are finished.
Payload:
Property | Type | Description |
---|---|---|
scoring |
object | Final scoring for the entire exercise. |
replay |
boolean | true if submitted during replay or review mode. |
Exposed API
After loading the script, the following functions become available:
Function | Description |
---|---|
addExerciseListener |
Register to listen to learning events. |
getWidgets |
Returns metadata for all rendered widgets. |
render |
Renders inline LaTeX and MathML in the DOM. |
waitUntilReady |
Await full widget initialization. |