data-8 / gofer_service

Server application to automate receiving and grading notebooks using Gofer
3 stars 3 forks source link

Implementing Gofer suite of components as a third-party #2

Open zednis opened 5 years ago

zednis commented 5 years ago

Hi all,

I am a graduate student at RPI who is evaluating the gofer suite of auto-grading components as a possible architecture for implementing grading of Jupyter notebooks within courses at RPI.

I see this is a new project that hasn't been matured for use by third parties and I wanted to reach out to see if you can help me get this working as a third-party and in return I am willing to help mature the project (documentation, refactoring for generalization, etc.)

In looking through the code I have been able to update the gofer_nb.py script to work on my system, but I hit a wall when trying to figure out how to construct the docker container invoked by grade_lab.py.

Is there any existing documentation on how this docker image is created and how it can be customized for different courses and or labs?

Thanks, Stephan

zednis commented 5 years ago

@yuvipanda @jkuruzovich

choldgraf commented 5 years ago

you probably want to ask @vipasu, who has been doing most of the work on the gofer grader + service!

jkuruzovich commented 5 years ago

@zednis I created a sample directory with a sample Dockerfile and 3 notebooks with various levels of correctness. Check it out and maybe it will be able to clarify some things. The binder directory has the docker file. https://github.com/RPI-DATA/submitty

vipasu commented 5 years ago

Hi! Sorry for joining the party late, here. We actually have an public dockerfile here: https://github.com/data-8/materials-x18/blob/master/Dockerfile

As you can see, it's quite minimal. Apart from listing your packages, there is also a line that copies the tests/etc. for the course (contained in the repo) into the docker image. Because we have all of the assignments in the directory, we only need a single image rather than one per assignment (though this would also be a reasonable approach). Building currently happens manually since it shouldn't need to be rebuilt, but if assignments are changing frequently, then it might be worth automating the rebuild procedure.

Let me know if this helps and if you have additional questions!

franasa commented 2 years ago

Hi @zednis, hi everyone,

Did you get to implement the service for your courses at RPI? We at Leuphana are trying to achieve something in the same direction. I found gofer_service and gofer_submit and thought they sound perfect for integrating them into our JupyterHub deployment.

... and in return I am willing to help mature the project (documentation, refactoring for generalization, etc.)

I would also be happy to contribute in this regard if there are intentions to further develop this extension