Autodidact is simple content-management system (CMS) for creating self-learning activities. It is used at Tilburg University for the "Best Practices in Statistics" (BPS) series of lab sessions, available to Tilburg University students at https://bps.uvt.nl/
Autodidact is written in Python using the Django framework. It is a reusable Django app for use in your own projects. There is also a separate repository called BPS which contains the Django project currently deployed at Tilburg University. You may find it of use as a reference project or as a starting point for your own projects.
Several other projects have spun off from Autodidact. First, there is django-pandocfield that is used by Autodidact compile Markdown and LaTeX markup. Second, there is django-numberedmodel, a simple app to automatically number model instances. These apps will automatically be installed using the installation procedure below.
Tilburg University maintains a Debian repository at
https://non-gnu.uvt.nl/ from which Autodidact can be installed. First,
add the following lines to
deb http://non-gnu.uvt.nl/debian jessie uvt deb-src http://non-gnu.uvt.nl/debian jessie uvt
Second, add the Tilburg University signing key to your apt key store:
curl https://non-gnu.uvt.nl/debian/uvt_key.asc | apt-key add -
Now you can install the
autodidact package with
apt-get install autodidact
Congratulations, the Autodidact Django app has now been installed and is ready to use in your own projects!
Add the following apps to your
INSTALLED_APPS += [ "autodidact", "pandocfield", "numberedmodel", ]
Add the following urls to your URL patterns:
urlpatterns = patterns('', url(r'^admin/', include(admin.site.urls)), url(r'^accounts/login/$', django.contrib.auth.views.login), url(r'^accounts/logout/$', django.contrib.auth.views.logout), url(r'^', include(autodidact.urls)), )
Make sure that
django.core.context_processors.requestis included in your
TEMPLATE_CONTEXT_PROCESSORS = [ 'django.core.context_processors.debug', 'django.core.context_processors.i18n', 'django.core.context_processors.media', 'django.core.context_processors.static', 'django.core.context_processors.tz', 'django.core.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ]
(Or, in newer Django versions using the TEMPLATES setting)
Run the database migrations and create the first Django user if you haven't already:
$ ./manage.py migrate $ ./manage.py createsuperuser
You're all set! Start the development server (
./manage.py runserver) and visit http://localhost:8000/. In the admin you can add Programs, Courses, Sessions, Assignments, and Steps. Have fun! If you have any questions or bug reports, feel free to contact the author or submit a Github issue.