A smart, customized Ebbinghaus Quizzing / Flash Cards App built with PyQt5.
| Learn Page | Ebbinghaus Statistics Table |
|---|---|
![]() |
![]() |
Frontend designed to work for memorizing words specifically but could be easily modified.
Backend powered by Ebisu. In the current version it contains two Ebisu lists:
Newbie ListNew entres just learned with needs to be reviewed within minutesEb ListLearned entries to be reviewed in longer time periods
The two lists has differently turned Ebisu parameters to serve their purpose. Refer to Ebisu Documentation for the parameters.
An entry will first get into Newbie List and being tested very frequently, until enough correct quiz results, during when it will be transferred into Eb List for longer quizzing intervals in order to achieve long time memory.
First make the knowledge file -- essentially a Pandas DataFrame. pdf2knowledge.py serves this purpose for the document that the developer uses.
First install required packages,
pip install -r requirements.txtIf you want to use Google Sheet sync functionality, set up according to df2gspread documentation
To run the GUI,
python main.py- Function Key with left click Yes, right click No
- User configurable parameters
- Customized mark for entries to be displayed before solution
- Auto backup database at startup
- Trash can Page
- Explore / Table Review Mode (especially adjacent knowledge)
- Eb / Newbie / Star / Triangle only quiz-mode
- TableView hide solution button
- TableView fast review mode
- Google sheet sync
- Handle Ebisu assertion error (maybe reset the word?)
- Different way to present multiple new knowledge entry (table?)
- No more quiz today for a word (Bury)
- Word count more details
- HP Bar for fast recall training
- Half the half-life (Hard -- mouse middle button on Fn)
- Automatic TTS (Text-to-speech)
- Today wrong table
- ToNewbie table button (to start over)
- Undo last action
- Too much consecutive No should downgrade Eb to Newbie
- Search functionality for each table
- Support cloud backup db (maybe google drive?)

