MarkUs Blog

MarkUs Developers Blog About Their Project

Archive for September, 2015

Weekly Status Reports

without comments

Sept. 21 – 28, 2015


1) Merged master into test-framework branch. This is now on my local fork.
2) Couldn’t figure out why the server wouldn’t start after my merge – but David helped me figure this one out!
3) Going more carefully through things that were merged to verify and test existing functionality. Start to look at at what test-framework has to offer. Coordinate with Wilson


Was a little busy this week, so didn’t get a lot done. Mostly worked on fixing the issue regarding tags not showing up. After spending a lot of time figuring out the debugging tools for Ruby on Rails, I figured out that we are storing the memory address for the user instance creating the tag instead of the actual user in the database. It was actually pretty hard to find this error since no exception was raised. I’m a little confused at how this ever worked since it seems like it should’ve always been broken. When the controller goes to try to find the user who created the tag, it encounters an error and 404s. I have fixed this but there’s a schema change I wanted to consult David about before changing that should probably be done.
Next week I will be talking to Jeremy about what we need to do in order to get the existing automated testing code working.


Last week I made a minor fix to the spreadsheets and added a button that lets you rotate JPGs and PDFs. The main issue was that it did not rotate the annotations as well so I’ll be investigating that this week. After I’m done that, I’ll either do another one of the PDF issues or change the UI of the grading interface.


**This Week**:
Investigated rubocop and its usage/config in Markus project
-Added rubocop-git to project to be used as a tool to check for style conflicts before committing
-Created a ruby script (lib/tools/pre-commit) that uses rubocop and rubocop git to automatically check diffs and rake files to make sure they will not cause an issue with Hound when PRs are created.
– Dependencies are not installed on local machine when using sshfs so if I try to use some of the tools in our project, it failed.
**Next week**:
– Add marks for each student in the new seeds for marks spreadsheets.  Going to look at how this is done randomly in the assignment seeding.


1) This week I was playing catch up with school, but managed to finish some things I didn’t get done during the code sprint. I completed generating seed data for remark requests, and fixed a 404 error I found when instructors tried to comment on remark requests.
2) No roadblocks this week.
3) Next week I’m going to start working on my project, removing the last traces of Prototype. The first thing I’m doing is converting the last .rjs files in the views folders into .erb files. So far this has been going pretty smoothly.


I was a little busy catching up on school although i have no idea how i got behind in the first place. I started looking at the code to creating repositories.

Written by William Kwan

September 28th, 2015 at 3:54 pm

Posted in Uncategorized

Projects for Fall 2015

without comments

Here is a list of things we would like to work on.

Group upload and management

Issues: #2237#2180#1560

There are several problems to address here, and anyone working on this should consult closely with us to make sure they understand the issues thoroughly.  Groups and their repos are created either when a student logs in and navigates to an assignment, or when an instructor uploads a group list.

One issue is that the group upload using a csv file ignores the repo name in the csv file and auto-generates the repo name (group_xxxx).  This is done to avoid name collisions, but it would be better if we can check to see if the repo name already exists, and if the membership is already the same.

Another issue is performance.  We get a 502 proxy error when we run it through Apache for large numbers of groups (>400).  The CSV upload deletes existing groups when it does the upload, so we can’t even do it incrementally.  Two possible solutions to this problem are to refactor the code so that we can do the upload incrementally, or refactor the code so that the operation is run as a background task, so that the proxy error does not cause the transaction to abort.

We also want a way to create the repos and/or the directory in the repos in an automated way for individual assignments so that instructors can add starter code.  Issue #2180 describes this in more detail

Complete work on the Git backend

We are nearly completion on a Git backend to allow student submissions to be stored in a Git repository.  The remaining todo list is in #1855.

Remove the last calls to the Prototype library

Issue: #1496

We switched to jQuery some time ago, but there still remain a few places where Prototype code remains.  We would like to finish getting rid of this.

Report on TA activity

It would be nice to see summary data of what TAs have done.  Metrics such as ratio of assignments marked,  average number of annotations per submission, and a distribution of marks for each TA would help instructors identify differences in how the TAs are grading.

4. UI of student interface 

When a student navigates to an assignment, the landing page could use some UI work.  The tab is labeled Assignments which isn’t correctly because it is a particular assignment.  We also need to look at what information is displayed and whether there is a better way to organize it.

We could also look at issues with the results view of the assignment.  Binuri mentioned that the students don’t see the weights in the rubric view.

5. Working on the production setup instructions

We occasionally run into problems that we can’t replicate on our development environment, and we also don’t do a very good job of supporting our system administrators who deploy several instances of MarkUs running under the Apache web server.  We would like to put together a set of instructions for both these purposes.  It would be great to be able to easily configure a virtual server running a production instance (or multiple instances of MarkUs).

UI of grader interface

Change marking status to a “complete” button. Include more info for TAs (x/y submissions complete)

(Relevant issues: #2118)

Auto-testing interface

Dig into and update existing code.  The goal is to reach a proof of concept stage where a single test can be run by clicking a button. There is likely a lot of refactoring to do starting with getting the test-framework branch up to date with master.

The existing design has results being sent back in XML.  At least one of the auto-testers we are working with uses JSON, which seems like a more sensible format, so modifying our design to use JSON is the ultimate goal.

PDF issues

There are a few issues that with PDF annotations that would be worth looking into (#2011#2043#1936#1935#11092042).  A user has also reported a wish list of additional features including: switching between portrait and landscape, moving and resizing annotations.  We also notice some problems with annotations on Chrome that could be investigated.

General issues

There are a number of medium sized issues that really need resolving, but are too big to qualify as an “easy fix”.  Examples include (in no particular order): #2050#2109 #2130#1705, and others.


Written by Markus

September 19th, 2015 at 5:32 pm

Posted in Uncategorized