A self-service LTI for faculty to easily extend time for multiple users for all quizzes at once.
git clone [email protected]:ucfopen/quiz-extensions.gitSwitch into the new directory
cd quiz-extensionsCreate the config file from the template
cp config.py.template config.pyFill in the config file
API_URL = '' # Canvas API URL (e.g. 'http://example.com/api/v1/')
API_KEY = '' # Canvas API Key
# The maximum amount of objects the Canvas API will return per page (usually 100)
MAX_PER_PAGE = 100
# A secret key used by Flask for signing. KEEP THIS SECRET! (e.g. 'Ro0ibrkb4Z4bZmz1f5g1+/16K19GH/pa')
SECRET_KEY = ''
LTI_KEY = '' # Consumer Key
LTI_SECRET = '' # Shared Secret
LTI_TOOL_ID = '' # A unique ID for the tool
SQLALCHEMY_DATABASE_URI = '' # URI for database. (e.g. 'mysql://root:root@localhost/quiz_extensions')
GOOGLE_ANALYTICS = '' # The Google Analytics ID to use.
REDIS_URL = '' # URL for the redis server (e.g. 'redis://localhost:6379')Create a virtual environment
virtualenv envSource the environment
source env/bin/activateInstall required packages
-
If you want to be able to run tests:
pip install -r test_requirements.txt
-
Otherwise,
pip install -r requirements.txt
Set FLASK_APP environment variable
export FLASK_APP=views.pyMigrate database
flask db upgradeRun the server
flask run --with-threadsEnsure Redis is running. If not, start it with
redis-server --daemonize yesEnsure RQ Worker is running. If not, start it with
rq worker quizextThis is for an Ubuntu 16.xx install but should work for other Debian/ubuntu based installs using Apache and mod_wsgi.
sudo apt-get update
sudo apt-get install libapache2-mod-wsgi python-dev apache2 python-setuptools python-pip python-virtualenv libxml2-dev libxslt1-dev zlib1g-dev
sudo a2enmod wsgi
sudo service apache2 restart
cd /var/www/
sudo git clone [email protected]:ucfopen/quiz-extensions.git
cd quiz-extensions/
sudo virtualenv env
source env/bin/activate
sudo env/bin/pip install -r requirements.txt
sudo nano /etc/apache2/sites-available/000-default.confPut this inside 000-default.conf after VirtualHost *:80 And before the ending </VirtualHost>:
#QUIZ EXTENSION CODE
Alias quiz-ext/static /var/www/quiz-extensions/static
<Directory /var/www/quiz-extensions/static>
Require all granted
</Directory>
<Directory /var/www/quiz-extensions>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess quiz-ext
WSGIProcessGroup quiz-ext
WSGIScriptAlias /quiz-ext /var/www/quiz-extensions/wsgi.pyThen:
sudo service apache2 reload
sudo cp config.py.template config.py
sudo nano config.pyEdit your config.py and change the variables to match your server:
DEBUG = False # Leave False on production
API_URL = '' # Canvas API URL (e.g. 'http://example.com/api/v1/')
API_KEY = '' # Canvas API Key
# The default number of objects the Canvas API will return per page (usually 10)
DEFAULT_PER_PAGE = 10
# The maximum amount of objects the Canvas API will return per page (usually 100)
MAX_PER_PAGE = 100
# A secret key used by Flask for signing. KEEP THIS SECRET! (e.g. 'Ro0ibrkb4Z4bZmz1f5g1+/16K19GH/pa')
SECRET_KEY = ''
LTI_KEY = '' # Consumer Key
LTI_SECRET = '' # Shared Secret
LTI_TOOL_ID = '' # A unique ID for the tool
LTI_DOMAIN = '' # Domain hosting the LTI
SQLALCHEMY_DATABASE_URI = '' # URI for database. (e.g. 'mysql://root:root@localhost/quiz_extensions')Finally:
sudo service apache2 reloadThis project uses ims_lti_py which is available on GitHub
under the MIT license.
Need help? Have an idea? Just want to say hi? Come join us on the UCF Open Slack Channel and join the #quiz-extensions channel!