{"id":15017311,"url":"https://github.com/flasd/spaced-repetition","last_synced_at":"2025-04-12T11:43:31.479Z","repository":{"id":96503892,"uuid":"309493815","full_name":"flasd/spaced-repetition","owner":"flasd","description":"Simple spaced repetition algorithm","archived":false,"fork":false,"pushed_at":"2020-11-02T21:09:21.000Z","size":115,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-10T02:08:35.269Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flasd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-02T21:00:05.000Z","updated_at":"2024-01-28T13:11:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"dbd44a7b-8d48-422a-a655-97fd3b6483af","html_url":"https://github.com/flasd/spaced-repetition","commit_stats":{"total_commits":6,"total_committers":1,"mean_commits":6.0,"dds":0.0,"last_synced_commit":"e845e08a29619095718b1c9790bbff4bbb17fa4b"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flasd%2Fspaced-repetition","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flasd%2Fspaced-repetition/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flasd%2Fspaced-repetition/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flasd%2Fspaced-repetition/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flasd","download_url":"https://codeload.github.com/flasd/spaced-repetition/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248564041,"owners_count":21125404,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-09-24T19:50:17.616Z","updated_at":"2025-04-12T11:43:31.458Z","avatar_url":"https://github.com/flasd.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# spaced-repetition\n\nSimple spaced-repetition algorithm based on supermemo 2.\n\n[![Build Status](https://travis-ci.org/flasd/spaced-repetition.svg?branch=master)](https://travis-ci.org/flasd/spaced-repetition)\n[![Coverage Status](https://coveralls.io/repos/github/flasd/spaced-repetition/badge.svg?branch=master)](https://coveralls.io/github/flasd/spaced-repetition?branch=master)\n[![npm version](https://badge.fury.io/js/spaced-repetition.svg)](https://www.npmjs.com/package/@flasd/spaced-repetition)\n[![npm downloads per month](https://img.shields.io/npm/dm/spaced-repetition.svg)](https://www.npmjs.com/package/@flasd/spaced-repetition)\n\n## Installation\n\nInstall the latest version of spaced-repetition:\n\n```\nyarn add @flasd/spaced-repetition\n\n// or\n\nnpm install @flasd/spaced-repetition --save\n```\n\nNow you can use it in your index.html\n\n```html\n\u003cscript\n  type=\"text/javascript\"\n  src=\"./node_modules/@flasd/spaced-repetition/dist/index.umd.js\"\n\u003e\u003c/script\u003e\n\nconst { SpacedRepetition, getDueCards } = window.SpacedRepetition;\n```\n\nOr import it as a module.\n\n```javascript\nconst { SpacedRepetition } = require('@flasd/spaced-repetition');\n\n// or, in ES6+\n\nimport { SpacedRepetition } from '@flasd/spaced-repetition';\n```\n\nThis module is [UMD](https://github.com/umdjs/umd) compliant, therefore it's compatible with RequireJs, AMD, CommonJs 1 \u0026 2, etc.\n\n## API \u0026 Usage.\n\n#### SpacedRepetition class\n\nMethod signature:\n\n```typescript\nnew SpacedRepetition(): SpacedRepetition;\n```\n\n```javascript\nimport { SpacedRepetition } from '@flasd/spaced-repetition';\n\nconst sr = new SpacedRepetition();\n\n// or\n\nconst sr = new SpacedRepetition({\n  debug: false,\n  nowFn: () =\u003e Date.now(),\n});\n```\n\n`nowFunction` should be a function that returns a number in milliseconds. `debug`\nflag will enable console.logs with extra information.\n\n#### getDueCards();\n\nMethod signature:\n\n```typescript\ngetDueCards(\n  cards: ISpacedRepetitionCard[],\n  reviews: ISpacedRepetitionReview[],\n): Array\u003c[ISpacedRepetitionCard, TRepetition]\u003e;\n```\n\nThis method returns a list of cards that are due (or overdue) for review:\n\n```javascript\nimport { SpacedRepetition, getDueCards } from '@flasd/spaced-repetition';\n\nconst cards = [{ id: '1' }, { id: '2' }, { id: '3' }];\n\nconst reviews = [\n  { card: '1', timestamp: Date.now(), difficulty: 1 },\n  { card: '2', timestamp: Date.now(), difficulty: 2 },\n  { card: '3', timestamp: Date.now(), difficulty: 3 },\n];\n\nnew SpacedRepetition().getDueCards(cards, reviews);\n// « [[{ id: '1' }, 18568], { id: '2' }, 18565]\n\ngetDueCards(cards, reviews);\n// « [[{ id: '1' }, 18568], { id: '2' }, 18565]\n```\n\nThe return value is a tupple `[ISpacedRepetitionCard, TRepetition]`, where TRepetition is the next day (counting since date epoch, as a integer) that this card should be repeated. Only cards with TRepetition \u003c= today will be returned.\n\n### Copyright \u0026 License\n\nCopyright (c) 2020 [Marcel de Oliveira Coelho](https://github.com/flasd) under the [MIT License](https://github.com/flasd/spaced-repetition/blob/master/LICENSE.md). Go Crazy. :rocket:\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflasd%2Fspaced-repetition","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflasd%2Fspaced-repetition","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflasd%2Fspaced-repetition/lists"}