Software I make for teaching

In my work at the University, I tend to automatize as many things as I can, which leads me to code lots of small tools for my own purposes. But I try to make them as usable as possible for other people too!

Table of Contents

EvalAssist: batch manage Gitlab projects

A CLI tool to automatically manage large numbers of Gitlab projects. Can be used for instance to automatically download all assignments of a (possibly large) group of students, to run an automated evaluation on each project, and to automatically send feedback to each project (by opening an issue in the project).

The tool can be found in two repositories:

Drawio Docker image

A Docker image to run the tool, eg. to export a .drawio file into .png in a Gitlab-CI pipeline.

AMC docker image (for x11docker)

A Docker image to run the Auto Multiple Choice (AMC) tool as a Docker container. Since this is a graphical tool (GUI), this image must be run using the x11docker tool.

I made this because AMC is not packaged for many systems. Using this image I can use AMC on Fedora.

Stereopticon: a theme for Reveal.js

A full-fledged custom theme for the reveal.js presentation tool, which tries to be as much compatible as possible with the asciidoctor-reveal.js extension.

I also made another small project template to start a project with asciidoctor-reveal.js and with stereopticon:

Eclipse MDE

I teach Model-Driven Engineering (MDE), and for lab sessions we rely on lots of different Eclipse-based tools. Unfortunately, the official “Eclipse for Modeling” distribution does not include everything we require for the course (eg. Xtext, ATL). For this reason I made the following project where a complete Eclipse can be built using Maven with all the dependencies we require for the course.

Ubuntu VM creator

A set of bash scripts to automatically create a Ubuntu VM for Oracle Virtual Box. It relies on the “autoinstall” feature of Ubuntu Server to create a QEMU virtual machine, on which it installs a minimal graphical environnement, and whatever else is required.

I use this project to create VMs that I give my students, for when they struggle too much with configuring their own computers with the required tools. Since everything is automatized, the obtained VM is as clean and as small as possible, and easily re-built with up-to-date tools.

One of the provided scripts can be used to “customize” the created base image, using a provided “configuration”. In the following separated repo can be found a set of configurations I made for my own courses.

AMC LaTeX template for evaluations

A project template to easily make prepare evaluations in LaTeX using Auto Multiple Choice (AMC). It includes lots of macros to simplify the creation of both closed and open questions, without having to struggle with the AMC macros for defining scoring rules.

Celcat EDT extractor

Nantes Université uses the Celcat tool to plan timetables. Often we teachers need to check to amount of hours we have in the system for each course, to check if it matches what is planned in the syllabus.

I made the following web tool to automatically get and parse the ICS files that Celcat publically provides for all courses and teachers, and compute the amount of hours planned for each course so far. The tool is currently specific to the Celcat instance of Nantes Université.

The tool can be directly used online here:

Fleep attachments manager

Lots of colleagues use Fleep to communicate, and we end us opening lots of discussions and sharing lots of attached files. Unfortunately, Fleep basic accounts have very limited storage space for attachments, and it’s easy to lose track regarding what attachments were sent in which discussions.

I made the following CLI tool to automatically go over all Fleep discussions of a given Fleep account, and to backup+delete all attachments it finds.