jupyter / nbgrader

A system for assigning and grading notebooks
https://nbgrader.readthedocs.io/
BSD 3-Clause "New" or "Revised" License
1.28k stars 316 forks source link

GitLab as exchange service #1345

Open nthiery opened 4 years ago

nthiery commented 4 years ago

For the record, in case others would be interested: with colleagues, I am experimenting with using gitlab as exchange service. This inspired by the GitHub classroom workflow for autograding assignments through CI.

The point is that many institutions host their own gitlab instance, and gitlab provides much of the required infrastructure for an exchange service:

The strategy is in three steps:

Details to come. At some point. Busy now with the experimentation and remote teaching these days ... But wanted to let you know.

Some pointers:

BertR commented 4 years ago

Sounds really interesting @nthiery Keep us in the loop!

rkdarst commented 4 years ago

I'm very much for this idea, but unfortunately don't expect me to have much time to do much. I see a lot of re-inventing of things with Jupyter{,Hub}, when we are building on top of an operating system that already has all the things we need (file sharing with git, shared data directories via groups, permission management, etc). I was also thinking how I would like to build a system based on standard tech (git, python, jupyter) that makes sense alone, and then JupyterHub/nbgrader-new is easy-to-use way of accessing it. But the data is free and portable, and no one is constricted into using it.

I would be happy to hear about it and try it out, and hopefully I would have time to test and debug early on.

nthiery commented 4 years ago

Thanks for the feedback!

I'll start working on it next week with hopefully a first prototype early September (I need it!) I'll keep this ticket updated and ask in case alpha-testing can help.

rkdarst commented 4 years ago

By the way, does anyone have a reference reviewing all the different ways that git/github/gitlab is used for submitting assignments in various courses? I've seen various examples over the years, and I'm sure there are many more examples and ways people do things, and I guess some of them could already be adapted to other courses almost without much extra work. For a course whose objectives include "learn git practical skills", it could be enough.

nthiery commented 3 years ago

Update: the project is moving forward steadily. It's being used at different stages by half a dozen courses, most of which with 200 students at lower undergraduate level. It takes the form of a python library with an nbgrader-style command line UI to do the usual operations: fetch, submit, fetch_feedback, collect, ... or variants thereof.

Almost all of the workflow is implemented, including autograding with nbgrader through continuous integration on GitLab (runs naturally in an isolated environment; can be triggered by the student to self-evaluate before the final submission). This week-end, I have finished the aggregation of the results of autograding so that multiple instructors can proceed to use nbgrader locally to grade manually the submissions from the students of their respective groups. There remains to explore how to make the manual feedback available to students. For now, we will just upload the grades manually into our local LMS.

https://gitlab.info.uqam.ca/info/travo/

Feedback most welcome!

Caveat: it's certainly usable, but documentation on how to deploy is rather minimal. Happy to help any adventurous soul and write the doc as a side effect of it.

BertR commented 3 years ago

@nthiery this looks really good, I'm looking forward to playing with it!

Stephan-Brandt commented 3 years ago

This looks amazing! I set up nbgrader with submodules etc. on the university gitlab myself and wrote shell scripts for distribution of exercises, feedback etc. (It works, but it's a few scripts, not a solution) I don't have time now, but if the project is still alive in 6 months, I'd be happy to help however I can.

nthiery commented 3 years ago

Great! I am looking forward future collaboration. The project will be alive: we now completely depend on it!

nthiery commented 3 years ago

Now is a busy time, but in June e.g. things should be quieter; I'd be happy to help you through the process of deploying travo (and improve the doc at that occasion) to see how it fits your environment.