Grading data from remote server?

Hi all, I’m trying to determine the best type of grader to use when
loading/grading data from a remote server.

Please let me briefly describe the workflow of learner Bob who is
taking a course on edx about spiders.

Bob’s course has a lab element that involves working at a 3rd party
site: “spiders.edu”. Within the lab unit, Bob clicks a button which
opens a new window in his browser where he works through a Jupyter
Notebook, calculating the strength of spider silk. When Bob is done
with the lab, he returns to the lab unit on edx and presses a submit
button to submit his lab for grading.

I’m confused about what should happen after he presses the submit
button.


What I had in mind, (which may very well not be the right way to go!),
is one of two schemes.

Scheme #1

The submit button does an LTI launch request to spiders.edu where a
process parses Bob’s jupyter notebook, extracts the answers and
responds back to edx with answers.json map, which associates
question-ids to answers.

This is where I’m stuck:

(Back in Bob’s web browser) could client-side javascript use
answers.json to populate some FormFields and then submit for
grading?


Scheme #2

The submit button does an LTI launch request to spiders.edu where a
process parses Bob’s jupyter notebook, extracts the answers … does
something different this time …

spiders.edu does all the grading, and responds back to edx with
result.json that might look like:

{ username: Bob, total_score: 80%, feedback: "the diameter of the spider silk is wrong", }


I think scheme #1 is better because all the grading code already
exists at edx, so it would be good to reuse it!

For what it’s worth, I’m testing on edge.edx.org and as far as I know,
I don’t have shell access.