Projects (May 2014)


This term UCOSP is happy to be partnering with 3 projects for our May 2013 offering:

  • Markus: Web-based grading platform.
  • BB10 Phonegap: Mobile app platform.
  • Review Board: Code review tool.


MarkUs is a web-based grading tool built with Ruby on Rails. The primary goal of MarkUs is to make it easy for graders to read and annotate students’ code. Graders also fill in a marking scheme or rubric created by the instructor.  Annotations may be saved for later reuse.  Students submit their code using either the web interface or using standard Subversion tools, and can form their own groups when allowed by the instructor. As MarkUs grows, we continue to add more useful features including a REST API that allows some operations on MarkUS to be scripted, a remark request system, more reporting, and support for PDF annotations.  We are also working towards integrating a testing infrastructure that would allow students to run instructor created tests on their submission and get realtime feedback.

Students working on MarkUs will learn basic web application development technologies using Ruby and Rails.  MarkUs is hosted on github so students will become familiar with Git and the process we use when working on the code. Because MarkUs is used by several thousand students in more than 4 universities (on 3 continents!), we take code quality seriously.  All code submissions go through a code review, so the first task that students are asked to complete is fixing a trivial bug so that they become familiar with the code review process.

Potential projects for the coming year include:

1) The highest priority is preparing for a release using Rails 3. (Students with prior Rails experience would be a huge asset in working on this problem.)

2) Enhancing and fixing the remark request system. Our first use of the remark request feature uncovered some showstopper bugs, and some significant UI design issues.

3) Enhancing the grade entry table. MarkUs includes a simple table that can be used to entry grades for tests or labs for example.  It works reasonably well, but is missing some features.  For example, it would be nice to be able to group students by tutorial section, or by TA grading their work.

3) Continuing to work towards implementing user preferences. The most heavily used view by instructors is the submissions table which shows which students or groups have submitted work, the date it was submitted, the repository name, the status of the submission, and other details.  In the interests of latency, we display a limited number of rows at a time, but instructors would like the option to display more or fewer rows and even to hide columns of the table.

4) Implementing some of the user requested features that have been on hold while we complete the port to Rails 3.  Many of these are recorded in the issue tracker.

5) Work on the port to Rails 3.1/3.2

More information: and their blog,


PhoneGap/Cordova Plugins for BlackBerry 10

BlackBerry is embracing application development with HTML5 and seeking to push the boundaries of what can be accomplished with web technologies on a mobile device. Our goal is to be the premier platform for the mobile web, with the most compliant, high performance, hardware accelerated engine we can create. We are rounding out the development experience with emulators, simulators, live Web Inspector debugging, support for all major frameworks, and we’re doing all of this in the open on under the Apache 2 license.

This term BlackBerry is focused on PhoneGap/Cordova compatibility and our next version of the WebWorks SDK will be powered by Cordova. With the open source community we will be working on porting native plugins from iOS and Android, and writing new ones for BlackBerry 10. Students should be familiar with C++ or JavaScript development, though they do not need to be experts with both. We will work in pairs and teams to round out the necessary skill set.


Review Board

Review Board is a powerful web-based code review tool that helps developers do peer review as they write code. Review Board is used by thousands of software companies including Twitter, Yahoo, and VMware, as well as many open-source projects like Apache and KDE.
Students working on Review Board will have the opportunity to learn about back-end web development using Python, and Django, as well as front-end development using HTML, CSS, Javascript, jQuery, and Backbone.js. Source control is managed via Git on GitHub. All patches are reviewed using Review Board, and students are expected to contribute to reviews for each other, as well as to other members of the development community.
Some possible projects include:
  • Building a workflow for reviewing images and other binary files that are part of a code change. This involves integrating several existing pieces of functionality and building the glue to turn it into a smooth user experience.
  • Making improvements to Review Board’s extensions infrastructure, which allows third party developers to build features that aren’t generic enough to be part of the product.
  • New kinds of integration with other services, such as deeper bug tracker integration, an adapter for GitHub pull requests, or allowing users to log in using Mozilla Persona.
  • Building a user “trophy case” and adding new kinds of achievements.
For a full list of project suggestions, check out our wiki: Student Project Ideas
Some experience using Python and/or Django, Javascript and jQuery would definitely be a plus. In our experience, Git is usually the largest stumbling block, so students comfortable with Git (or able to quickly get comfortable with Git) will likely have an easier time developing.
For more information, see the project web page at, or our students blog at