django-memorize 0.5.1
Memorize your Django project's items with spaced repetition theory
Writing a flashcard application is almost a rite of passage for django users.
You create a simple Card model, you create a quiz view and template and you call
it a day. A simple application and not very useful.
Django-memorize adds a more advanced way of learning your flashcards (or
whatever items you'd like) with the theory of `spaced repetition
<http://en.wikipedia.org/wiki/Spaced_repetition spaced repetition>`_. The
`SuperMemo 2 algorithm <http://www.supermemo.com/english/ol/sm2.htm>`_ is
currently used. Flashcard web apps have just gotten better and easier.
Installation
============
#. Download the `latest version
<http://code.google.com/p/django-memorize/downloads/list>`_.
#. Extract and run ``python setup.py install``.
#. Add ``memorize`` to ``INSTALLED_APPS`` list.
Usage
=====
Add an Item to Practice
-----------------------
Let's assume you have a flashcard web app with a card model::
from django.db import models
from django.contrib.auth.models import User
class Card(models.Model):
front = models.CharField(max_length=255)
back = models.CharField(max_length=255)
user = models.ForeignKey(User)
To begin practicing a new card, save a practice object for your flashcard::
from memorize.models import Practice
card = Card(front="When was Sgt. Pepper released?", back="1967",
user=request.user)
practice = Practice(item=card, user=card.user)
practice.save()
Start Practicing
----------------
The view ``memorize.views.next_practice_item`` does all the work of determining
what the next item a user should practice. You just need to provide a template
file. Add an item to your urls.py file::
urlpatterns += patterns(
'memorize.views',
url(r'^item/next/$', 'next_practice_item', {'template':
'memorize/next.html'}, name='next-song'),
)
Template Variables Provided
~~~~~~~~~~~~~~~~~~~~~~~~~~~
form
A ``memorize.forms.RatingsForm`` instance you use to save the performance on
this practice instance.
item
Your original item. Use this to get your information (e.g., ``card.front``
information)
practice
The practice row.
Saving Feedback
---------------
The key to spaced repetition algorithms is using your past performance to
determine when is the optimal time to reshow an item. If you used the
``next_practice_item`` the template will have a ``form`` object that provides
all the relative information.
The view ``memorize.views.process_rating`` will process the data. Add this view
to your urls.py file.
Example::
<form action="{% url memorize.views.process_rating %}" method="post">
{{ form }}
</form>
| File | Type | Py Version | Uploaded on | Size | # downloads |
|---|---|---|---|---|---|
| django-memorize-0.5.1.tar.gz (md5) | Source | 2010-02-11 | 15KB | 466 | |
| django-memorize-0.5.1.zip (md5) | Source | 2010-02-11 | 20KB | 448 | |
- Author: Cristian Esquivias
- Home Page: http://code.google.com/p/django-memorize/
-
Categories
- Development Status :: 4 - Beta
- Environment :: Web Environment
- Framework :: Django
- Intended Audience :: Developers
- Intended Audience :: Education
- License :: OSI Approved :: GNU General Public License (GPL)
- Natural Language :: English
- Operating System :: OS Independent
- Programming Language :: Python :: 2
- Topic :: Education
- Topic :: Software Development :: Libraries :: Python Modules
- Package Index Owner: Cristian
- DOAP record: django-memorize-0.5.1.xml
