Skip to content
Code grading made intuitive. CodeGrade is a blended learning application designed especially for programming education, making reviewing and handing in programming exercises more insightful and effective for students and more efficient for teachers.
Branch: master
Clone or download
libre-man and olmokramer Add moodle support (#873)
Similar to Blackboard, some features are not available in Moodle, such as synchronized deadlines and Points Possible, due to Blackboard not passing such information in its LTI launch parameters.
Latest commit a96aa59 Mar 21, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
config Make it possible to login and out from js Jun 11, 2017
psef Add moodle support (#873) Mar 21, 2019
resources Add PMD and Checkstyle (#734) Jan 16, 2019
seed_data Add Blackboard support (#820) Mar 13, 2019
src Add moodle support (#873) Mar 21, 2019
static Fix dark special holiday logo (#711) Dec 5, 2018
test_data Improve UI/UX for running linters (#814) Mar 6, 2019
.codeclimate.yml Fix broken matchFiles function (#528) Sep 27, 2018
.editorconfig Add Flask to the architecture setup Jun 7, 2017
.eslintrc.js Add Blackboard support (#820) Mar 13, 2019
.gitignore Add Blackboard support (#820) Mar 13, 2019
.postcssrc.js Add Flask to the architecture setup Jun 7, 2017
.travis.yml Add PMD and Checkstyle (#734) Jan 16, 2019 Add contribution guidelines (#51) Jul 10, 2017
Makefile Start using enum to store permissions in the backend (#571) Oct 15, 2018
app.db Add Flask to the architecture setup Jun 7, 2017
config.ini.example Enable use of multiple LTI providers (#811) Feb 21, 2019
index.html Make it possible to resize the filetree (#804) Feb 20, 2019
requirements.txt Reduce the amount of queries and request (#566) Oct 10, 2018
setup.cfg Scheduled weekly dependency update for week 08 (#815) Mar 1, 2019 Improve license clarity (#577) Oct 9, 2018

Build Status Coverage Status Coverage Status Source Lines of Code 10.0 Python updates Python 3.7+ ready Made with ❤ & ️🍻 Website: Latest git tag Latest release Semantic Version: ✓ Open GitHub Issues Closed GitHub Issues Open GitHub Pull Requests Closed GitHub Pull Requests Repository size License AGPL-3.0-only

Metrics on


CodeGrade is a blended learning application designed especially for programming education. It makes grading and handing in programming exercises more insightful and effective for students and more efficient for teachers. Where programming exercises are currently reviewed in a classical and counter-intuitive way, resulting in only little and vague feedback, CodeGrade creates the missing intuitive environment for reviewing programming exercises.

This is achieved using some of the key-features CodeGrade provides:

  • Line by line feedback making it possible to specifically write feedback for a specific part of the code.
  • Rubrics per assignment to aid with grading.
  • Built-in code plagiarism detection system using JPlag.
  • CodeGrade Filesystem enabling both students and teachers to access and hand in files on the CodeGrade system locally without any overhead.
  • CodeGrade editor plugins allowing the teacher to locally review programming assignments and fill in rubrics using the editor of choice.

Getting Started

A local installation of CodeGrade can be created using the running instructions in the CodeGrade documentation. CodeGrade can be run in both development mode and production mode, both are explained in the documentation.

CodeGrade filesystem

The CodeGrade filesystem (or CodeGra.fs) can be used to mount a local CodeGrade instance on your computer to browse the assignments and files on the server. The filesystem can be used for students to locally work on the CodeGrade mount and thus automatically hand in the assignment with each save. For teachers the filesystem can be used to grade work without any overhead locally using a preferred supported editor.

More information on installing and using the CodeGrade filesystem can be found on

CodeGrade editor plugins

Accompanying the CodeGrade filesystem are editor plugins. These plugins allow for easy and intuitive grading of work locally in your favourite editor. By using the combination of the filesystem and an editor plugin, overhead during grading can be reduced to a bare minimum and all focus can be on the actual grading of the work.

As of writing, there are editor plugins for the following editors:

Technologies used

  • Vue.js - A front-end JavaScript UI framework used to create CodeGrade's front-end.
  • Flask - A python back-end WSGI framework used to create CodeGrade's back-end.
  • PostgreSQL - The database used for CodeGrade.
  • Celery - Celery is used to provide a non blocking background queue.


By contributing to this product you agree that all code you write will be released under the AGPL license, version 3 (AGPL-3.0-only). See LICENSE for details.

Please consult for further details on contributing to CodeGrade.


CodeGrade is currently maintained and actively developed by Devin Hillenius (@DevinHillenius), Olmo Kramer (@olmokramer), Thomas Schaper (@libre-man) and Youri Voet (@yourivoet).

Please feel free to contact us at for more information on innovating your programming education by using CodeGrade at your institute.


CodeGrade originated as project, called, in the Project Software Engineering course at the University of Amsterdam in June 2017. The project emerged from our own frustrations as both students and teaching assistants in computer science at the UvA. As students we lacked meaningful feedback to give us insight in our grade for programming assignments. And as teaching assistants the amount of overhead required to actually grade programming assignments in the traditional way, in addition to the lack of providing useful feedback in a counter-intuitive environment made the work very frustrating at times. This still drives us to create a product that can revolutionise programming education to this date.


The initial version of CodeGrade was created for a course at the University of Amsterdam and was developed by Leon Bartelsman, Ewoud Bouman, Harm van Eekeren, Wicher Heldring, Devin Hillenius, Niek Kabel, Erik Kooistra, Olmo Kramer, Sebastian Melzer, Thomas Schaper, Bram Snijders and Youri Voet.

Furthermore, we want to thank the University of Amsterdam for their support of this project during its first year of development.

Full Documentation

The full documentation of CodeGrade can be found on our website:


CodeGrade as a whole is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0-only). For more information about copying see COPYING. All license identifiers used in this product are SPDX license identifiers.

You can’t perform that action at this time.