Rudaux
Welcome to the documentation for rudaux!
Rudaux helps you programmatically administer a course by integrating:
- Canvas - a learning management system
- JupyterHub - a multi-user Jupyter notebook Server
- nbgrader - a Jupyter notebook auto-grader
- nbgitpuller - a JupyterHub extension to pull Jupyter notebooks from git repositories
Rudaux was designed to simplify course management generally, but there are a few operations in particular that would be nearly impossible without rudaux.
- Syncing students and assignments between Canvas and nbgrader.
- Creating assignments in Canvas with JupyterHub/nbgitpuller links.
- Scheduled automated grading of Jupyter notebooks with nbgrader.
Rudaux is named after the French artist and astronomer Lucien Rudaux, a pioneer in space artistry and one of the first artists to paint Jupiter.
For information on the motivation behind and development of rudaux, please read
Designing Rudaux.
For information on how to use Rudaux to integrate Canvas and JupyterHub, please read
Using Rudaux.
Installation
pip install rudaux
Setup
Before setting up rudaux, it is important to have the proper infrastructure in place. Please see the DSCI 100 infrastructure repository for our reproducible infrastructure provisioning workflow.
Note: The infrastructure repository is still under development, and may undergo significant changes before the course's release in January 2019.
Note: rudaux currently requires a fork of nbgrader to work properly (more information):
pip install git+git://github.com/samhinshaw/nbgrader.git
Once your servers are set up and your dependencies installed, rudaux needs a configuration file to operate. Please read the configuration documentation for more information and a sample config file.
- Log in to the server you will be executing rudaux commands on.
- Clone your instructors repository containing your config file and master (source) assignments.
- Initialize rudaux.
Usage
Command-Line Interface
rudaux {init, grade, submit}
Python API
See API.
from rudaux import Course, Assignment