Metadata-Version: 1.0
Name: django-memorize
Version: 0.5.1
Summary: Memorize your Django project's items with spaced repetition theory
Home-page: http://code.google.com/p/django-memorize/
Author: Cristian Esquivias
Author-email: cristian.esquivias@gmail.com
License: UNKNOWN
Description: 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 [http://en.wikipedia.org/wiki/Spaced_repetition spaced repetition]. The [http://www.supermemo.com/english/ol/sm2.htm SuperMemo 2 algorithm] is currently used. Flashcard web apps have just gotten better and easier.
        
        =Installation=
        # Download the [http://code.google.com/p/django-memorize/downloads/list latest version].
        # 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===
        <dl>
        <dt>form</dt>
        <dd>A `memorize.forms.RatingsForm` instance you use to save the performance on this practice instance.</dd>
        
        <dt>item</dt>
        <dd>Your original item. Use this to get your information (e.g., `card.front` information)</dd>
        
        <dt>practice</dt>
        <dd>The practice row.</dd>
        </dl>
        
        ==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>
        }}}
        
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: License :: OSI Approved :: GNU General Public License (GPL)
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2
Classifier: Topic :: Education
Classifier: Topic :: Software Development :: Libraries :: Python Modules
