Greetings, My name is Michalis Kilikis and I am senior student in Technical University of Crete in Greece in the department of computer science. For my thesis project, I want to develop an API for Moodle (for starters), that can automatic grade Student's code questions. My API will take as input the student's code and a series of test cases. I wander if it is possible to use your Platform for sandboxing. Sincerely, Michalis Kilikis
Hi Michalis,
On 08/04/2021 18:17, Mike Kilikis wrote:
Greetings, My name is Michalis Kilikis and I am senior student in Technical University of Crete in Greece in the department of computer science. For my thesis project, I want to develop an API for Moodle (for starters), that can automatic grade Student's code questions. My API will take as input the student's code and a series of test cases. I wander if it is possible to use your Platform for sandboxing.
Yes, that should be possible and you're not the first to ask ;-) See for example https://github.com/DOMjudge/domjudge/issues/135 and my answer to https://stackoverflow.com/questions/22885150/online-judge-moodle-plugin.
We have an API that our "judgedaemon" (which handles the compile, run, test cycle) connects to, see https://www.domjudge.org/demoweb/api/doc. So you'd have to implement the server-side of that and then you should just be able to configure and run just the judgedaemon(s) against your implementation of the API. Note that the judgedaemon part of the API is completely overhauled in our not yet released version 8.0.
A more basic alternative is to take just the sandboxing binary "runguard" and build your own solution around that. Then you'd want to look at how we call that at https://github.com/DOMjudge/domjudge/blob/master/judge/testcase_run.sh#L204-... and for compilation at https://github.com/DOMjudge/domjudge/blob/master/judge/compile.sh#L149-L154
Anyways, it might be helpful to first try and set up DOMjudge in a plain setting, to get an idea of how things work. And feel free to ask more questions. FYI, nowadays our slack channel is more active than the emaillist, so you might want to go there too.
Best, Jaap