Inspired by e.g. GitHub ClassRoom, Travo is a lightweight Python toolkit that helps you turn your favorite GitLab instance into a flexible assignment management solution. It does so by automating steps in the assignment workflow through Git and GitLab's REST API.
BSD-3-CLAUSE License
Travo
: Distributed GitLab ClassRoomTravo
([t;ʁa'vo]) is a lightweight open source Python toolkit that turns your
favorite GitLab forge
into a flexible management solution for computer assignments, la
GitHub classroom. It does so by
automating steps in the assignment workflow through Git and GitLab's
REST API.
It takes its name from the practice sessions linked to a course, called in French
Travaux Pratiques.
Rationale: Teaching computer science or computational courses is all about collaboration on code. It is thus unsurprising that, with a pinch of salt, software forges like GitLab can provide helpful infrastructure to support and enhance that collaboration.
fetch
and submit
, available from the terminal or aFor more information check the Travo documentation and tutorials.
Fetching and submitting assignments from the terminal:
./course.py fetch Assignment1
./course.py submit Assignment1
The student dashboard for Jupyter users:
Overview of student submissions on GitLab:
Travo requires Python >= 3.8. It can be installed from pypi with:
pip install travo
or from conda forge with:
conda install -c conda-forge travo
To benefit from the Jupyter integration (dashboards), please use instead:
pip install 'travo[jupyter]'
or
conda install -c conda-forge travo-jupyter
The development version can be installed with:
pip install git+https://gitlab.com/travo-cr/travo.git
For more details check the installation instructions.
Pierre Thomas Froidevaux, Alexandre Blondin-Mass, Chiara Marmo, Jrmy Neveu, Jean Privat, Nicolas M. Thiry, with contributions from Nicolas Grenier, Corentin Morice, Viviane Pons, Marco Pasi, and Brian Ravenet.
Feedback, e.g. by posting issues, and contributions are most welcome!
Travo started in Spring 2020 at UQAM as a shell script. See the Legacy User Interface. The user interface was completely refactored in Summer and Fall 2020. Travo was then reimplemented in Python in Winter 2021 and continuously expanded since. Travo is used in production in a dozen large classes at Universit Paris-Saclay and UQAM, and many other smaller classes.