Sign inSign up

graderx/images

By graderx

Updated over 2 years ago

Dockerized tool for semi-automated grading of plain Java submissions

Image
Languages & frameworks
0

543

graderx/images repository overview

GraderX

Contact and Disclaimer

In case there are questions about this project, contact me through mail: [email protected] Please note that this project is still in development (and might not reach a stable phase). It is provided 'as is' with no guarantee.

Getting started

  • Download Docker on your machine
  • Start Docker (Engine)
  • Execute the following command (replace "<your_mounted_path>" with the desired path containing tests, solutions etc., e.g. "C:\Users\me\Desktop\work" on Windows)
docker run -v <your_mounted_path>:/gx/mounted -it --name gx graderx/images:latest
  • Now you are running GraderX! The next step is to generate a config file. In the container, run
gx generate config
  • This will spawn a "GXconfig.json" file in your mounted directory. Modify it to your needs. Do NOT delete any fields! They may point to invalid directories as long as they are not needed
  • After saving the config file, you are ready to use GraderX. See section "Available Commands"
  • To exit the container, type "exit"
  • Once the initial "docker run" command was executed, you can resume your session by executing the following command:
docker start -i gx
  • You can also execute commands directly from within the "Exec" tab of the "gx" image in Docker Desktop
  • NOTE: The container itself is stateless regarding all gx commands. At any point, you can delete the old image and create a new one:
docker rm gx
docker run -v <your_mounted_path>:/gx/mounted -it --name gx graderx/images:latest
  • NOTE: Docker saves the underlying image locally. To fetch a new image version, delete the old container and image first (and execute the "run" command again):
docker rm gx
docker rmi graderx/images:latest
# docker run -v <your_mounted_path>:/gx/mounted -it --name gx graderx/images:latest

IMPORTANT: How can be the container be stateless?

All data representing the state are saved as json files in the mounted directory and are loaded when needed. Here is a list of them:

  • GXconfig.json in the root of the mounted directory
  • metadata.json in the working directory (directory path specified in the config). Contains reference to the original solution's path and type of load. Therefore, DO NOT copy solutions to the working directory manually. Use the available commands (this will save your time anyway!)
  • report.json in the working directory. Contains the results of the last working directory evaluation (see "gx evaluate workdir")
  • currect_run.json in the results directory (directory path specified in the config). Contains information about all evaluation executions that were saved to the given directory
  • queue.json in the solutions directory (directory path specified in the config). Contains a list of solutions in that path that need attention (could not/were not evaluated automatically). This file can be either generated manually ("gx generate queue") or is generated on evaluation of all solutions in the directory ("gx evaluate all")

Available Commands

The gx-CLI also provides the "-h" flag to show the usage, available subcommands and flags. For more information, read the bachelor thesis: #add link after release

Tag summary

Content type

Image

Digest

sha256:f7e7d09d3

Size

224 MB

Last updated

over 2 years ago

docker pull graderx/images