Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Automate and speed up your grading

GradeFast is a Python program (with an HTML/JavaScript UI) that eliminates the repetitive parts of grading programming assignments and lets you focus on what's important: helping students learn from their mistakes. Best of all, it lets you help them without putting much time into it!

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.

GIF demo



GradeFast requires Python 3.5 or later! (We use type hints.)

NOTE: All the command line examples below use python3 as the python executable. Depending on your platform, you may need to use python or python.exe instead (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:

  • Colorama to make the CLI look pretty
  • Mistune to parse Markdown in comments and feedback

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


The GradeBook user interface is browser-based (HTML/JavaScript). If you change any of the JavaScript files, you will need to recompile them.

To install the Node dependencies and compile the JavaScript files, make sure you have a working install of Node.js and NPM, and then run:

npm install
npm run build

If you modify the JavaScript source, make sure you recompile and include your changes in the pull request! This allows people to use GradeFast without having to install Node.js and NPM.


Before running GradeFast, you need to compile the JavaScript components (see the JavaScript dependencies above).

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 LICENSE file.


Questions? Bugs? Concerns? Feedback? Contact Jake Hartz.


Semi-automated grading of programming assignments




No releases published


No packages published
You can’t perform that action at this time.