Git repository of MarkUs
Ruby JavaScript Python Other
Clone or download
Pull request Compare This branch is 9135 commits behind MarkUsProject:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


MarkUs logo

Welcome to MarkUs! Online Marking Made Easy

MarkUs (pronounced "mark us") is an open-source tool which recreates the ease and flexibility of grading assignments with pen on paper, within a web application. It also allows students and instructors to form groups, and collaborate on assignments. Its predecessor OLM (Online Marking) was originally written in Python on top of the TurboGears framework.

The MarkUs project is a re-implementation of the Online Marking system using Ruby on Rails. The goal of this project is to take what we learned from OLM and our forays into Web-CAT, and build a web-based marking tool that includes an early submission and testing system in support of test driven development.

1. Features

  • Graders can easily annotate students' code (overlapping annotations, graded source code remains untouched)
  • Subversion storage back-end
  • Instructors can form teams
  • Students can form groups on their own
  • Supports different course models:
    • Web-based file upload for first-year courses
    • Subversion client commits for upper year courses (disabled Web-upload)
    • Allows students to work on code of other groups from one assignment to the next
  • Web-based course administration
  • One MarkUs application per course (independent databases across courses)

Please see the INSTALL file for installation instructions.

2. Links

3. Sandbox

If you are interested in MarkUs and would like to try it out, there is a MarkUs sandbox installation available ( For information as to how to use the demo instance please see our "How to use the demo server" ( blog post. We hope you will enjoy it and please let us know how you liked it:

4. System Requirements

  • Rails 3/Ruby 1.8.7
  • Mongrel/Passenger
  • PostgreSQL/MySQL
  • Subversion

Note: As of now, the latest stable version is MarkUs 0.10.0. Here is our current deployment/configuration documentation. Please send us email if you have any trouble installing MarkUs---we'd be happy to help you out.

5. Who is Using MarkUs?

  • Department of Computer Science, University of Toronto, Canada
  • School of Computer Science, University of Waterloo, Canada
  • École Centrale de Nantes, France

6. Staying in Touch

Want the latest MarkUs news? It's available several ways:

  • General queries can be sent to
  • The development team has a blog at
  • There is a mailing list for MarkUs users. You can also find us on IRC in the #markus channel on FreeNode.
  • We use Review Board to manage code reviews. You can view our development activity using our event log.

7. Screencasts

Here are are some screencasts of MarkUs (reverse chronological order):

  • Student File Submission: September 2, 2009

    This screencast demonstrates how students can upload, replace and delete files using MarkUs' easy to use Web interface. The nice part is that files really end up in a Subversion repository (without students ever noticing).

  • Student Group Formation: August 17, 2009

    MarkUs supports various course models. One possibility of which is that an instructor can allow students to work in teams. If an Assignment is set up this way, students can go and start form groups on their own using MarkUs.

  • The Grader View: June 6, 2009

    The grader view is one of the core functionalities of MarkUs, which allows graders (usually TAs) to mark a student's/group's work for an assignment. He or she can annotate the submitted source code - which is syntax highlighted - and mark according to rubrics defined by the instructor.

8. Helping Out

Found a bug? Want a feature? Please email

9. Credits

MarkUs grew out of OLM, which was build using the TurboGears framework. We are grateful to everyone who worked on or funded both projects, and to the creators of Ruby on Rails for building such a great framework.

MarkUs' development has been supported by the University of Toronto, École Centrale de Nantes, et. al. Kudos to everyone who turned that support into working code:

Adam Goucher, Amanda Manarin, Andrew Louis, Anthony Le Jallé, Anton Braverman, Benjamin Thorent, Benjamin Vialle, Bertan Guven, Brian Xu, Bryan Shen, Catherine Fawcett, Christian Jacques, Clément Delafargue, Clément Schiano, Danesh Dadachanji, Diane Tam, Dina Sabie, Evan Browning, Farah Juma, Fernando Garces, Gabriel Roy-Lortie, Geoffrey Flores, Horatiu Halmaghi, Ibrahim Shahin, Jérôme Gazel, Jiahui Xu, Joseph Mate, Joseph Maté, Justin Foong, Karel Kahula, Kurtis Schmidt, Mélanie Gaudet, Michael Lumbroso, Mike Conley, Mike Gunderloy, Misa Sakamoto, Neha Kumar, Nelle Varoquaux, Noé Bedetti, Oloruntobi Ogunbiyi, Robert Burke, Samuel Gougeon, Severin Gehwolf, Shion Kashimura, Simon Lavigne-Giroux, Tara Clark, Valentin Roger, Veronica Wong, Victoria Mui, Victor Ivri, Vivien Suen, Yansong Zang

Supervisors: Karen Reid, Morgan Magnin