Online Course Tool for Adaptive Learning (OCTAL) application code, based on Metacademy.
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 360 commits ahead, 306 commits behind metacademy:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

OCTAL's Source

This source is licensed under GPLv3, see LICENSE.txt (note: metacademy's content is CC BY SA 3.0).

OCTAL is based upon Metacademy: With a live demo at

The following instructions bring up a development version of OCTAL. Look at the production directions for creating a production-level OCTAL server.


Preliminary requirements

  • python 2.7X: NB: install python-devel if you're using a package manager such as apt-get. The following command should print a path (if this command raises an exception, make sure that you have the python-devel version installed):

          python -c 'from distutils.sysconfig import get_makefile_filename as m; print m()'
  • gcc: Install gcc (OSX users: installing the OSX developer tools is probably the easiest way to do this). The following command should not throw an error:

      gcc -v
  • pip Install pip; here are pip's installation instructions. The following command should not throw an error:

      pip -V
  • node.js (needed to run tests): Install node The following command should not throw an error:

      node -v
  • Make sure you have installed the following packages:

      freetype-devel gcc-gfortran (Linux)
      freetype gfortran (Mac OS X, via homebrew)
      easy_install virtualenv (both)
  • On Mac OS X, setup freetype:

      ln -s /usr/local/opt/freetype/include/freetype2 /usr/local/include/freetype

Mac OSX and *nix

  1. create a top-level octal directory in a desired location, e.g. mkdir -p ~/MyProjects/octal

  2. go to the top-level octal directory cd ~/MyProjects/octal

  3. from your top-level octal directory, clone the application repo:

     git clone
  4. go to the octal-application directory

     cd octal-application
  5. install the octal application (note: this project uses a virtual environment for development):


    If you are on OS X and have a version of Xcode >= 5.1, you might need to prefix the above command with this:

     ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future make

Optional: create a superuser

    python app_server/ createsuperuser

Scipy dependency

OCTAL currently depends scipy. Scipy can be tricky to install (pip install scipy won't work unless you have all of the systems-level dependencies), but Google might help here. Once that's done, link its site-packages folder to to your virtual environment's lib/python2.7/site-packages/ folder. One example (you might have to adapt to your install):

    ln -s /usr/local/lib/python2.7/site-packages/scipy lib/python2.7/site-packages/


Mac OSX and *nix

  1. start the virtual environment (you must do this for each new session)

     source ../meta_venv/bin/activate
  2. start the test servers

  3. Open localhost:8080 with a modern javascript-enabled browser

Note: the initial search may take some time to load (the backend must load the graph into memory), but all subsequent pages should load much quicker.

Since this installation is based upon metacademy, if you have problems with the installation please be sure to look at the issues at