All Projects → ucfopen → quiz-extensions

ucfopen / quiz-extensions

Licence: MIT License
A self-service LTI for faculty to easily extend time for multiple users for all quizzes at once.

Programming Languages

python
139335 projects - #7 most used programming language
javascript
184084 projects - #8 most used programming language
HTML
75241 projects
CSS
56736 projects
Mako
254 projects
shell
77523 projects
ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to quiz-extensions

Udoit
The Universal Design Online content Inspection Tool, or UDOIT (pronounced, “You Do It”) enables faculty to identify accessibility issues in Canvas by Instructure. It will scan a course, generate a report, and provide resources on how to address common accessibility issues.
Stars: ✭ 80 (+433.33%)
Mutual labels:  education, accessibility, a11y
use-prefers-color-scheme
🪝 React hook for subscribing to user's color scheme preference.
Stars: ✭ 28 (+86.67%)
Mutual labels:  accessibility, a11y
csvConf2021
Data visualization accessibility talk for csv,conf,v6 (2021)
Stars: ✭ 19 (+26.67%)
Mutual labels:  accessibility, a11y
ckeditor4-plugin-a11ychecker
Accessibility checker for CKEditor 4
Stars: ✭ 17 (+13.33%)
Mutual labels:  accessibility, a11y
jquery-accessible-carrousel-aria
jQuery Accessible Carrousel System, using ARIA
Stars: ✭ 40 (+166.67%)
Mutual labels:  accessibility, a11y
fenrir
An TTY screenreader for Linux.
Stars: ✭ 33 (+120%)
Mutual labels:  accessibility, a11y
evaluatory
Web page evaluation with a focus on accessibility
Stars: ✭ 57 (+280%)
Mutual labels:  accessibility, a11y
a11y breadcrumbs
Accessible breadcrumb pattern
Stars: ✭ 44 (+193.33%)
Mutual labels:  accessibility, a11y
sublime-wai-aria
WAI-ARIA Roles, States and Properties auto-completion for Sublime Text
Stars: ✭ 21 (+40%)
Mutual labels:  accessibility, a11y
a11y-guidelines
アメーバアクセシビリティガイドライン
Stars: ✭ 61 (+306.67%)
Mutual labels:  accessibility, a11y
a11yjson
A11yJSON: A standard to describe the accessibility of the physical world.
Stars: ✭ 58 (+286.67%)
Mutual labels:  accessibility, a11y
alfa
♿ Suite of open and standards-based tools for performing reliable accessibility conformance testing at scale
Stars: ✭ 75 (+400%)
Mutual labels:  accessibility, a11y
aria-collapsible
A lightweight, dependency-free JavaScript module for generating progressively-enhanced collapsible regions using ARIA States and Properties.
Stars: ✭ 25 (+66.67%)
Mutual labels:  accessibility, a11y
platform
Decentralized Education 4.0 platform
Stars: ✭ 22 (+46.67%)
Mutual labels:  education, edtech
svelte-accessible-dialog
An accessible dialog component for Svelte apps
Stars: ✭ 24 (+60%)
Mutual labels:  accessibility, a11y
a11y-components
No description or website provided.
Stars: ✭ 32 (+113.33%)
Mutual labels:  accessibility, a11y
HTML-Lint
A code quality bookmarklet and command-line tool
Stars: ✭ 20 (+33.33%)
Mutual labels:  accessibility, a11y
inclusive-elements
Accessible, lightweight, unstyled implementations of common UI controls.
Stars: ✭ 17 (+13.33%)
Mutual labels:  accessibility, a11y
tinymce-a11y-checker
An accessibility checker plugin for TinyMCE.
Stars: ✭ 20 (+33.33%)
Mutual labels:  a11y, canvas-lms
rapid-router
A Blockly and python based educational game aimed at students age 5-14.
Stars: ✭ 50 (+233.33%)
Mutual labels:  education, edtech

Build Status Coverage Status Join UCF Open Slack Discussions

A self-service LTI for faculty to easily extend time for multiple users for all quizzes at once.

Table of Contents

Installation

Development Installation

git clone [email protected]:ucfopen/quiz-extensions.git

Switch into the new directory

cd quiz-extensions

Create the config file from the template

cp config.py.template config.py

Fill 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 env

Source the environment

source env/bin/activate

Install 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.py

Migrate database

flask db upgrade

Run the server

flask run --with-threads

Ensure Redis is running. If not, start it with

redis-server --daemonize yes

Ensure RQ Worker is running. If not, start it with

rq worker quizext

Production Installation

This 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.conf

Put 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.py

Then:

sudo service apache2 reload

sudo cp config.py.template config.py

sudo nano config.py

Edit 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 reload

Third Party Licenses

This project uses ims_lti_py which is available on GitHub under the MIT license.

Contact Us

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!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].