software > Opengrade

OpenGrade is open-source software for teachers to keep track of grades. It runs on Linux, as well as some other operating systems.

screenshot of opengrade


  • online grade reports
  • weighted grading or straight points
  • drop and reinstate students without losing grades
  • extra credit, grades that don't count, and dropping N lowest grades
  • digital watermarks to detect tampering
  • marking periods
  • attendance
  • export to spreadsheet and other formats
  • reconcile inconsistent versions of a file
  • auto-save and automatic backups
  • undo
  • scripting
  • user-defined extensions


softwaresource code
documentation, including instructions
for installing the software

To install OpenGrade, download the software and the documentation, and follow the instructions in section 1, Installing.

You might also want to check out GradeL, Ggradebook and GNota, which are open-source programs along similar lines.

OpenGrade is designed to allow you to post your students' grades online, if you have a server set up with the relevant software. It supports two open-source software packages on the server side: Spotter and Online Grades.

OpenGrade is listed on the Freecode open-source software site. If you go there, you can look at the history of releases, subscribe to e-mail announcements about new releases, and make public comments about the software.


OpenGrade is distributed under the GPL license, version 2. You can pop up the license in OpenGrade by choosing About from the File menu.

Programming Stuff

OpenGrade is written in Perl 5, using the Perl/Tk GUI toolkit. I would welcome participation in the project from other programmers. If you think you might want to contribute, please drop me an email! It's fine if you simply email me patches, but the source code is also available via a public repository using the Git revision control system. To check out a copy, first install git (e.g., with "apt-get install git-core" on Ubuntu), and then do this:

git clone git://
If you change the source code, and want to submit your changes as a patch, do the following in the directory where the source code is:
git commit -a -m "description of your changes"
git format-patch origin/master
Email the resulting .patch file to me.

Operating Systems OpenGrade Runs On


I use OpenGrade on Ubuntu Linux on a day to day basis. The documentation gives instructions for installing OpenGrade on Ubuntu, with its dependencies. I'm hoping that someone with the necessary skills and privileges will step forward to create an actual OpenGrade package for Ubuntu, but installing it on Ubuntu is actually pretty easy if you read the documentation. Debian should work the same as Ubuntu. Mandriva has been doing a nice job of packaging OpenGrade and staying up to date with new versions; you can find the latest version that's been packaged via the database at, and then install it via urpmi.


Should work fine. Sound requires an external "aplay" binary (distributed with ALSA on Linux), which may not be available on FreeBSD.


The documentation explains how to install Opengrade on Windows. I used to put considerable effort into testing and support on Windows because my wife was using OpenGrade on Windows at work, but now she no longer has a Windows machine at work. Since I don't have convenient access to a Windows machine, I no longer actively put any time into testing OpenGrade on Windows. I'll always be grateful for reports of whether the latest version works properly on Windows, and if any Windows incompatibilities have crept in, I would welcome patches from Windows users with the necessary programming skills.


The terminal-based user interface works fine on MacOS X, and in fact that's the system I originally developed it on. The implementation of Perl/Tk on MacOS X has been gradually improving, but I no longer have a Mac that runs any recent version of MacOS X, so I'm unable to try it myself. I believe that Perl/Tk only works on MacOS under X-Windows compatibility, not as a native Aqua GUI. In June 2005, I heard from another user, who said he had it running on MacOS X 10.4, but setting the preferences didn't work (which would be an issue with my code, not Perl/Tk). I would welcome a patch to fix this bug from a MacOS X user with the necessary programming skills.


Robert Jacobson fixed some problems affecting Windows users. Andrew Gainer provided the normalization feature.