Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

fsrs.js

Package Overview
Dependencies
Maintainers
1
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fsrs.js

FSRS (free spaced repetition scheduler) algorithm, based on the DSR model proposed by Piotr Wozniak, author of SuperMemo

  • 1.2.2
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
662
increased by1.69%
Maintainers
1
Weekly downloads
 
Created
Source

fsrs.js

FSRS version npm version

fsrs.js is a JS Package that implements the Free Spaced Repetition Scheduler algorithm. It helps developers apply FSRS in their flashcard apps.

Getting Started

npm install fsrs.js

Usage

Create a card and review it at a given time:

const fsrsJs = require("fsrs.js")

let fsrs = new fsrsJs.FSRS();
let card = new fsrsJs.Card();
let rating= fsrsJs.Rating;
let state = fsrsJs.State;

//Set algorithm parameters
// fsrs.p.request_retention=0.9
// fsrs.p.maximum_interval=36500
// fsrs.p.w=[0.4, 0.6, 2.4, 5.8, 4.93, 0.94, 0.86, 0.01, 1.49, 0.14, 0.94, 2.18, 0.05, 0.34, 1.26, 0.29, 2.61]

console.log(fsrs.p)

let now = new Date(2022, 10, 29, 12, 30, 0, 0);
let scheduling_cards = fsrs.repeat(card, now);
console.log(scheduling_cards);

There are four ratings:

rating.Again //incorrect response
rating.Hard //recall; correct response recalled with serious difficulty
rating.Good //recall; correct response after a hesitation
rating.Easy // recall; perfect response

There are four states:

state.New //Never been studied
state.Learning //Been studied for the first time recently
state.Review //Graduate from learning state
state.Relearning //Forgotten in review state
//Get the new state of card for each rating:
scheduling_cards[rating.Again].card
scheduling_cards[rating.Hard].card
scheduling_cards[rating.Good].card
scheduling_cards[rating.Easy].card

//Update the card after rating `Good`:
card = scheduling_cards[rating.Good].card

//Get the due date for card:
due = card.due

//Get the state for card:
state = card.state

//Get the review log after rating `Good`:
review_log = scheduling_cards[rating.Good].review_log

License

Distributed under the MIT License. See LICENSE for more information.

Keywords

FAQs

Package last updated on 21 Jan 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc