spacememo
Forget to logical process to know when to repeat the information for the optimal learning process of the user
Ideal for quizzes, micro learning, and practical exercises what requires domain
Installation
npm install spacememo
Usage
import { SpacedMemo } from "spacememo"
let spacedRepetition = new SpacedMemo()
// insert new values with the id number or string of the excercise or question
spacedRepetition.insertValue('idQuestion1')
// multiple values
['id1', 'id2', 'id3'].forEach(id => spacedRepetition.insertValue(id))
// optionally you can config a level of previous expertise to decrease initial frecuency instead default 'beginner' value
spacedRepetition.insertValue('idQuestion6', {domain: 'medium'})
spacedRepetition.insertValue('idQuestion6', {domain: 'expert'})
// spacememo gives the question or excersice that you need to resolve
spacedRepetition.getValue() // returns an id
// evaluate the performance in last excersice or question with a boolean result
spacedRepetition.evaluate(false)
// you can extract the data to render the order list for the user
spacedRepetition.getSpaceMap().values_queue // return an array of id elements
// and reorder the queue if user need to
let configValue = spacedRepetition.getSpaceMap().values_map
spacedRepetition = new SpacedMemo({
values_queue: userReorderList,
values_map: configValue
})
// or add in a persistent database and reuse in next sessions
let savedInDb = spacedRepetition.getSpaceMap() // return a config object for persistent saving
const myNewStudySession = new SpacedMemo(savedInDb)
// even you can change the default start position in queue based on your business requirements
spacedRepetition.insertValue('idQuestion6', {initialPositionInQueue: 0})
spacedRepetition.insertValue('idQuestion6', {initialPositionInQueue: 3, domain: 'medium'})