Rails and Ember spaced repetition system for memorizing the Ogura Hyakunin Isshu or the one hundred poets/poems used in kyogi karuta.
You can use all of the features of Karuta SRS at https://karutasrs.com/.
- ☑️ Grabber card component
- ☑️ Highlight grabber key characters based on state (learning: blue, review correct: lime green, review incorrect: light red)
- ☑️ Fade in characters when character is added (for typing answers in review)
- ☑️ Lesson component
- ☑️ Info grid (poem info and grabber card)
- ☑️ First verse
- ☑️ Kimariji
- ☑️ 2nd verse key characters
- ☑️ Reading audio
- ☑️ Poem background info
- ☑️ Poem translations
- ☑️ Info grid (poem info and grabber card)
- ☑️ Lesson carousel component
- ☑️ Sliding lesson components
- ☑️ Lesson selector component
- ☑️ Indicate complete lesson
- ☑️ Show button to lesson review when complete
- ☑️ Review component
- ☑️ Hiragana input below grabber
- ☑️ Play reading audio for grabber reviews
- ☑️ Randomize review queue
- ☑️ User's overall queue should be split into segments to ensure related items are fairly close together
- ☑️ Each review queue segment should be a continuous 20 items for 10 poems (i.e. grabber and kimariji for each poem)
- ☑️ After an item leaves the queue (due to correct answer), another poem from the total queue should be added to the segment
- ☑️ Repeat until total queue is empty or user ends the session
- ☑️ A review consists of a kimariji review and a grabber review
- ☑️ Each review portion should also be randomized
- ☑️ User's overall queue should be split into segments to ensure related items are fairly close together
- ☑️ Prompt for kimariji
- ☑️ Show complete grabber card (but no highlighting)
- ☑️ Kimariji portion of review is complete if entered characters exactly match kimariji
- ☑️ Prompt for grabber key characters
- ☑️ Empty grabber card that fills out (or removes) characters as the user types their answer
- ☑️ Highlight right/wrong characters after user presses enter
- ☑️ Grabber portion of review is complete as long as key characters are correct (even if other characters are wrong)
- ☑️ Track when review is complete
- ☑️ For lesson reviews, create a learned item when the review is complete
- ☑️ For regular reviews, post the number of wrong answers to API to update the learned item
- ☑️ Session and security
- ☑️ User is assigned a bearer token upon creation
- ☑️ Relevant user data (id, bearer) should be stored as session data when ember-simple-auth completes, and user should redirect to dashboard
- ☑️ When user logs in
- ☑️ When user registers
- ☑️ All calls to the API should include the current user's bearer in the header
- ☑️ API call should be rejected if the relevant user for the called item does not match the bearer provided
- ☑️ Calls to learned-items should be rejected if the owner of the learned item doesn't match the provided bearer
- ☑️ Calls to users should be rejected if the fetched user's bearer doesn't match the provided bearer
- ☑️ Also applies to custom controller methods such as those that build the lesson/review queues; these need an AJAX prefilter as the calls are not routed through Ember's adapter
- ❌ User stats
- ☑️ Dashboard stats
- ☑️ Next review time
- ☑️ Number of items per level
- ☑️ Best items (by correct answer rate)
- ☑️ Worst items (by incorrect answer rate)
- ❌ Review index stats
- ☑️ Total number of reviews completed (1 poem = 1 review)
- ☑️ Kimariji correct/incorrect percent
- ☑️ 2nd verse correct/incorrect percent
- ☑️ Performance (correct answer rate) by kimariji length
- ☑️ Performance ("") by 2nd verse answer length
- ☑️ Average correct response delay
- ☑️ Average response delay
- ❌ Ability to select time range
- ❌ Unlimited time range will show correct answer rate over time
- ☑️ Dashboard stats
GNU General Public License v3.0 only
Copyright (C) 2019-2020, Patrick Golden. All rights reserved.
Copyrights licensed under GNU General Public License v3.0 only.
See the accompanying LICENSE file for terms.