Automate and speed up your grading
GradeFast has 2 components that work together: a command-line application that runs commands and executes student assignments, and a web-based UI for entering grades and feedback.
GradeFast requires Python 3.5 or later! (We use type hints.)
NOTE: All the command line examples below use
python3as the python executable. Depending on your platform, you may need to use
python.exeinstead (just make sure it's at least Python version 3.5!)
Additionally, these packages are required:
- YAML to... I don't know... parse the input files, or something silly like that
- Flask because... what doesn't ship with a web server these days?
Optional (but recommended) dependencies:
You can install all these dependencies with:
python3 -m pip install pyyaml flask colorama mistune
It's recommended that you do this in a virtualenv, especially if you don't have root privileges.
Additionally, some Python dependencies are included in the repository as git submodules. To get these, after cloning, run:
git submodule update --init
npm install npm run build
Then, to start GradeFast, run:
python3 -m gradefast [OPTIONS] YAML-FILE
or, for more detailed usage:
python3 -m gradefast --help
But... how do I use this thing?
See the GradeFast wiki.
tl;dr: First, you must make a YAML-formatted configuration file the assignment that you want to grade. This file includes the structure of the grades and the commands to run on each submission. For more info, see the YAML Configuration Format page on the GradeFast wiki.
There are also some utility scripts in the utilities folder that may be useful.
Contributing to GradeFast
Want to delve deeper and contribute to GradeFast, or use individual parts of GradeFast as part of your larger, superior project? Check out the Developer Documentation on the wiki for more information on the GradeFast internals.
If you find a bug or want to add a (reasonable) feature, fork the repository and submit a pull request on GitHub. Be sure to follow the code style.
Licensed under the MIT License. For more, see the
Questions? Bugs? Concerns? Feedback? Contact Jake Hartz.