WHY?
Adressing home schooling challenges, leveraging state of the art learning techniques (see wiki article on SRS) to increase learning efficiency and reduce mental fatigue.
WHAT ?
- Paper-less solution (web centric) for skills and knowledge acquisition through drilling
- Questions frequency inversely proportional to how well the answer is known
- Parent/ Tutor screens different from kids/students
- Taking paper based flash cards concepts to the age of portable screens (smarphone, laptops, ...)
- Fully under parental control (gettingn read of paywall, ...)
HOW?
A self hosted web solution open source
- Self-hosted solution (public hosting considered but not available)
- HTML5 client (jQuery+PWA) / Server (Apache2+Flask) solution for flashcards
- Flashcards written in json/markdown and import/export in json file for easier manual or programmatic edits
- Frequency of question optimised as function of how well answer is remembered (see SRS below). Today SM2+ like, next A/B split testing SM2 vs SM19
after going through installation on your_server (either a VPS IP or a C_NAME)
open in a web-browser http://your_server/drillmaster/
start practicing :)
(venv) >set FLASK_ENV=development
(venv) >python my_app.py
* Serving Flask app "app" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: on
INFO: * Restarting with stat
WARNING: * Debugger is active!
see online tutorials
cd /var/www/
mkdir -p DrillMaster
git clone [email protected]:matt-chv/DrillMaster.git
cd DrillMaster
pip install -r requirements.txt
flask db init
flask db migrate -m "users table"
flask db migrate -m "cards table"
flask db upgrade
flask run
mv drillmaster.wsgi ..
WSGIScriptAlias /drillmaster /var/www/DrillMaster/drillmaster.wsgi
<Directory /var/www/DrillMaster/DrillMaster/>
Order allow,deny
Allow from all
</Directory>
Alias "/DrillMaster/static/" "/var/www/DrillMaster/DrillMaster/static/"
<Directory /var/www/DrillMaster/DrillMaster/static/>
Order allow,deny
Allow from all
</Directory>
Coming (soon?):
- adding support for WebSockets for student / assessor flash card synch
- Algorithm update to SM2
- Flashcards in markdown
- Flashcards rendering with css formatting for code / math / ... ala jupyter notebook
- import/export Anki and Mnemosyne file format for flashcards
- import/export Anki / Mnemosyne learning history
Add here open source licenses
At a very high level SRS is a computer version of Leitner system which is the theoretical underpinning for paper flash cards and multiple decks.
More specifically memorisation is a function of how often a memory has been recalled (see Hermann Ebbinghaus here or wikipedia's summary here )
Thus optimising how often a memory is recalled helps improve how fast new data can be memorised without overloading brain nor agendas.
For algorithmic details, see Here next