MarkUs Blog

MarkUs Developers Blog About Their Project

Archive for the ‘Developer Essentials’ Category

Status Report – November 21

without comments

Chris

This Week:

  • Continued work on the drawing system for annotations in the PDF view. Originally I was trying to use as much of the existing image annotation system as possible, unfortunately I have discovered that the way they work are too different and I am not creating a specific annotation manager for the PDF’s.
  • Read through a ton of Javascript and HTML to decipher how the current annotation drawings are done on images.

Next Week:

  • Finish the drawing, saving, and loading of annotations on the PDF.
  • Clean up as much code as possible before the final week.

 

Jakub Subczynski

This Week

  • Migrated testing of the following methods: Assignment#assigned_groups, Assignment#unassigned_groups and Assignment#add_group
  • Updated rspec matchers that checked if two arrays were equal from eq() to match_array() so that order is not considered. This caused intermittent failing when the order of the retrieved records varied with the local array. Order does not matter in the modified cases.
  • Improved readability and slightly optimized Assignment#add_group method. Both tests suites still pass with my modifications.

Next Week

  • More RSpec testing/migrations
  • Publish blog post: “RSpec tips for Markus”

Yusi

This week:

  • Updated and removed some gems
  • Upgraded rails from 4.0 to 4.1
  • Fix errors caused by the upgrade

Next week:

  • Merge master to rails4_new branch

Written by Chris Kellendonk

November 21st, 2014 at 3:58 pm

Status Summary – November 14, 2014

without comments

Jakub Subczynski

This Week

  • Pull Requests:
    • Removal of unused Assignment#no_grouping_students_list method.
    • Renaming of Assignment#graded_submissions method to ‘graded_submission_results’ (as it returns a set of Results)
    • Test migration/improvement of 2 Assignment methods #groups_submitted and #add_csv_group

Next Week

  • Continue migration/improvement of Assignment model tests

Yusi

This Week

  • Added strong parameters of assignment model and update helper file
  • Updated some test cases according to the new rails API
  • Did some manual tests under admin

Next Week

  • Continue working on manual tests

Irene

This Week

  • Merge pull request #1857 (Split view on dashboard)
  • Working on the assignment summary view (according to the wireframe)

Next Week

  • Submit pull request for the revamped assignment summary view
  • Implement logic to display the most “current” assignment

Chris

This Week:

  • Continued work on integrating the annotation system.
  • Removed unnecessary files from pdf.js and optimize the viewer loading time

Roadblocks:

  • Tried to use the current annotation system for the pdf’s. I think it is incompatible with the needs for creating annotations on a pdf. I am still trying to use the existing code for selection of areas to draw annotations and then implement a annotation rendering part on top of that.

Next Week:

  • Finish javascript side of creating annotations.
  • Begin working on the server side saving of annotations.

Written by Jakub Subczynski

November 14th, 2014 at 3:51 pm

Status Report – November 7th

without comments

Chris

This Week:

  • Worked on the text drawing annotations. Currently I am trying to use interface the image annotation system with the pdf viewer so that the same code can be used in both places.
  • Removed unnecessary code in the viewer and added more optimizations.
  • Fixed more display and css bugs.

Next Week:

  • Continue work on the annotation system.
  • Save annotations from the pdf to the database.

Yusi

This Week:

Fixed:
test/functional/grade_entry_forms_controller_test.rb (20 errors)
test/functional/groups_controller_test.rb (1 error)
test/functional/marks_graders_controller_test.rb (3 errors)
test/functional/notes_controller_test.rb (18 errors)
test/functional/main_controller_test.rb (12 errors)
test/functional/role_switching_test.rb (2 failures)
test/functional/groups_controller_csv_upload_test.rb (2 failures)
test/functional/submissions_controller_test.rb (1 warning)
test/functional/results_controller_test.rb (4 errors)

Next Week:

TODO:
test/functional/automated_tests_controller_test.rb (13 tests, 12 assertions, 5 failures, 2 errors, 0 skips)
test/unit/helpers/ensure_config_helper_test.rb (9 tests, 5 assertions, 0 failures, 1 errors, 0 skips)
test/unit/markus_logger_test.rb (20 tests, 20 assertions, 1 failures, 0 errors, 0 skips)
test/unit/submission_collector_test.rb (16 tests, 50 assertions, 1 failures, 0 errors, 0 skips)
spec/models/grade_entry_student_spec.rb (12 examples, 1 failure)
spec/controllers/groups_controller_spec.rb (16 examples, 3 failures)

Jakub Subczynski

This Week

  • Migrated more rspec tests. Assignment rake tests down to 800 lines
  • Identified codebase improvements consisting of removing an unused method and renaming a method
  • Faced issue creating an rspec test to test Assignment#graded_submissions. I did not realize I needed to set `version_used_submission` for Submission in order for it to be picked up as a valid submission so I kept on receiving zero submissions To solve, I removed FactoryGirl and created all of the necessary records manually, using data from development. When that worked, I started removing attributes and swapping in FactoryGirl for each record to narrow down the source of the issue.

Next Week

  • Create more tests for Assignment methods and remove rake tests that relate the to method
  • Remove invalid_override from Markus
  • Remove unused Assignment#submissions_by(user)

Written by Chris Kellendonk

November 7th, 2014 at 3:40 pm

Status Report – November 4

without comments

Tori

This Week:

  • Figured out how to add to student repos with svn
  • Added subdirectories and previous directory link to repo files table
  • Fixed current path/breadcrumbs display (was showing html instead of actual links)
  • Removed some unneeded code/files

Next Week:

  • Fix sorting in repo files table (probably need a custom sort after all; will most likely refactor table.js to make custom sorting definitions work similar to custom filers, as Lawrence Wu suggests)
  • Fix revision selection
  • Start on File Manager table conversion

Roadblocks:

  • Some time spent fixing svn ruby bindings on my desktop
  • Some time spent looking at how the db is seeded. I don’t really get it.
  • Sorting by revised_by and last_modified don’t work. I didn’t notice before modifying the repo since all the files had the same values for those columns.
  • Selecting a revision by number or with the date picker don’t appear to update the files table. With some caveman debugging, I can see that @revision_number is changed temporarily, but seems to go back to the most recent revision after the update pdfs script is used. The page says it’s displaying revision N(timestamp of N) but the table data is still still for the most recent revision every time.
  • Spent a considerable amount of time figuring out the flow of control in the existing FilterTable; it seemed to bounce around between the view and controller a lot. The new flow models the submissions table more, but I wonder if the old flow had something to do with why the revision selection and sorting aren’t updating appropriately.
  • It took some doing to get the file download links to appear, just because I’m not a ruby expert and I wasn’t sure where the links should be formed (it’s in the controller now). Also, I was using the old *_table_row.html.erb for reference and accidentally copy/pasta’d the directory row link info from file manager instead of using the repo browser action.

Nathan
Last Week

  • Open a pull request with the following changes
    • change to tags migration file to capture name and description content
    • addition of assignment_tags migration file to capture many to many association
      • this change came up looking at Bryan’s UI, may need to sync with him if we actually want this
    • when submissions table is loaded, tags for each grouping is being pulled now (not shown in UI yet)
    • Add tags functionality is the tag view and in the individual submission view should create a tag now associated with the assignment, not yet associated to the individual submission/grouping
    • a few other tag operations in tag_controller I anticipate will support other tagging features.
  • created a google doc with Bryan to go sync over what’s needed for each tagging operation

This Week

  • continue going through the list of features and implement the backend operations needed
  • also I want to revisit some of the operations i wrote this week, I think I may need to use params[] to get the to work the way I’m anticipating they’ll be used.  this is a part of ruby im a little hazy about.

Bryan
This Week:

  • Created a blog post to outline all the new view changes in MarkUs. Looking for feedback from other users.
  • Collaborated with Nathan regarding our next steps in connecting the views with the controller.
  • Continued to update the views for the Tags. Added in any features that do not require the controller (ie, word counter, moving tags from assigned to not assigned list, etc).

Next Week:

  • Finalize the views and start working on linking the models and controller to the views!

Irene
Last week:

  • Still trying to implement the functionality for list of assignments to change the assignment details on the right side. Spent 10+ hours on the controller/routing issue but can’t seem to pass the assignment variable. Getting the ‘undefined method `short_identifier’ for nil:NilClass’ error. David is trying to help me but I am still unable to fix the issue at the moment.

Next week:

  • Hopefully move on to implementing the logic to display the ‘current’ assignment.

Written by Victoria Verlysdonk

November 4th, 2014 at 5:34 pm

Status Report – October 31

without comments

Chris

This Week:

  • Completed initial prototype of PDF viewer.
  • Learned how the asset pipeline works so that all the files needed for the viewer can be compiled as one.

Next Week:

  • Fix bug where the viewer javascript is loaded for each new pdf request.
  • Begin adding annotations.

 

 Jakub Subczynski

This Week:

  • Rewrote Assignment#group_assignment?
  • Increased code coverage by creating new test
  • Migrated some rake tests over

Next Week:

  • Continue test migration

Roadblocks:

  • Spent considerable amount of time troubleshooting a failing test I wrote

Yusi

This Week:

  • Ran test one by one /test/unit directory (model tests) and fixed test errors

Next Week:

  • Fix test errors under /test/functional directory (controller)

Errors:

test/functional/automated_tests_controller_test.rb (13 tests, 12 assertions, 5 failures, 2 errors, 0 skips)
test/functional/grade_entry_forms_controller_test.rb (20 errors)
test/functional/groups_controller_csv_upload_test.rb (2 failures)
test/functional/groups_controller_test.rb (1 error)
test/functional/main_controller_test.rb (12 errors)
test/functional/marks_graders_controller_test.rb (3 errors)
test/functional/notes_controller_test.rb (18 errors)
test/functional/results_controller_test.rb (4 errors)
test/functional/role_switching_test.rb (2 failures)
test/functional/submissions_controller_test.rb (1 warning)

Written by Chris Kellendonk

October 31st, 2014 at 2:29 pm

MarkUs Tagging Feature – First Prototype

without comments

After several weeks, the first prototype of the tagging feature has been implemented. While the views for this feature are not final, this gives an idea of what the final product may look like. In the next few weeks, Nathan and I will be hooking the tagging views into the controller and model.

Feedback on the new views is very much encouraged! This is still a work in progress. Without further ado, here are some screenshots of the views.

The Tag View:

The new "Tag Creation" view for the tagging feature. Note the React table and sidebar upload and download buttons. Currently, the tag data being displayed in the table is just dummy data that is hard-coded into the view. Don't worry! This will change soon! MarkUs Tagging Feature - Tag Creation View

As shown in the previous blog post, this is the Tag view. This view is used for creating and managing specific tags for an assignment. The user is able to add, edit or delete tags and see the tag usage across assignments.

The Submissions View:

From here, we now have our Submissions view. Notice the new column in the submissions table for tags. This will hold all tags assigned to that submission.

From here, we now have our Submissions view. Notice the new column in the submissions table for tags. This will hold all tags assigned to that submission.

In the submissions table, when the user puts their mouse over the Tags column, a dropdown appears featuring a search bar to filter by tags and a list of tags that they can filter by. To make the dropdown concise, only the top 5 most used tags will be featured in the list. Others can be accessed by searching for them.

In the submissions table, when the user puts their mouse over the Tags column, a dropdown appears featuring a search bar to filter by tags and a list of tags that they can filter by. To make the dropdown concise, only the five most used tags will be featured in the list. Others can be accessed by searching for them.

Individual Submission View:

In the individual submissions (Review) view, A new tag tab has been added to the right sidebar of the screen. In it, TAs will be able to add and remove tags from a current assignment and also see most used tags. Admins will have the additional ability to add or remove tags as they see fit.

In the individual submissions (Review) view, a new tag tab has been added to the right sidebar of the screen. In it, TAs will be able to add and remove tags from a current assignment and also see most used tags. Admins will have the additional ability to add or remove tags as they see fit.

There you have it. As always, feel free to check out the tagging branch of the MarkUs repo and again, feel free to suggest any improvements that you have on the feature.

Written by Bryan Muscedere

October 30th, 2014 at 7:29 am

Status Report – October 28

without comments

Bryan
This Week:
  • Completed initial prototypes for the Tagging feature views. This includes a new tagging view and additions to the Submissions and Results views to implement the tagging features.
  • Created CSS elements for tags and tagging features.
  • Improved my proficiency in CSS.

Next Week:

  • Getting feedback on the initial prototype and making improvements to it.
  • Cleaning up some of the visual elements to make them conform to the MarkUs standard.
Irene
This Week:
  • Learned about how the controller connects with the models and views
  • Completed dashboard design (sketch and wireframe)
  • Started implementation of the new dashboard. I have split the view into two with the list of assignments and grading spreadsheets on the left but I am still trying to change the view on the right through links in the list. Still trying to figure out how the controller links to the view (getting a nil class error)

Next Week:

  • Continue to implement the dashboard. Next I will need to implement the functionality t hat determines which assignment to display.
Nathan
Last Week
  • finished implementing proof-of-concept to create tags associated with groupings, save in database, and retrieve tags by groupings when loading submissions table
  • minor revisions to migration files as a result of the code I implemented this week
  • opened pull request with migration files and models
Next Week
  • I’m not quite sure what I should do prior to Bryan’s view implementation being merged into the tagging branch.  Once that is merged in, I will implement the code in the correct places to allow creation of tags wherever he has created an UI to do so.  Also I will implement the code to retrieve tags wherever tags are displayed.
Tori
Last Week
  • converting repo browser table to React

Next Week

  • finish converting repo browser table to React

Written by Irene Fung

October 28th, 2014 at 3:49 pm

Status Report – October 24th

without comments

Chris

This Week:

  • UI Fixes with the PDF viewer.
  • Very busy week so not as much work was completed as I would have liked.

Next Week:

  • Complete PDF.JS UI so that the viewer does not interfere with the page.
  • Work on front end annotation system.

Jakub Subczynski

This week:

  • Pushed updated rspec tests from previous week
  • Did not have much time to work on more testing due to other assignments and midterm

Next Week:

  • Move more tests over
  • Make up last weeks work

Written by Chris Kellendonk

October 24th, 2014 at 3:10 pm

Status Reports – Oct 21

without comments

Nathan

Last Week

  • revised the proposed schema for database definitions upon further research/readings
  • implemented two migration files for creating Tags Model and a join table for the has_many_and_belongs_to relationships between tags and groupings
  • implemented some code to retrieve tags for each grouping when the submissions table is loaded (hasn’t been tested yet)

This Week

  • sync up with David/Bryan about my migration files
  • implement code to create tags (need to sync with Bryan exactly what information the user will enter for each tag i.e. name, description) etc.
  • once code to create tags is implemented, test creating tags and retrieving when submissions table loaded

Irene

Last Week

  • revised Dashboard plan based on feedback from Karen and David
  • sketched three versions of Dashboard wireframes and chose one with feedback from David
  • started implementing the changes (phase one: separate the view with list on the left that controls the details on the right)

This Week

  • continue implementation of new design
  • commit phase one

 

Written by Nathan Chow

October 21st, 2014 at 6:22 pm

Status Reports – October 17

without comments

Jakub Subczynski

This week:

  • I posted a couple of issues, #1840 and #1841, that both deal with adding consistency to the application
  • I have been working on converting the rake Assignment tests over. There are many!

Next week:

  • I hope to have the majority of the rake Assignment test both reviewed and ported over by the end of the week.

Chris

This Week:

  • I was able to get the PDF.js viewer is in MarkUs, and can view, and control zoom on PDFs.

Next Week:

  • Finish some implementation details and cleanup code with the viewer.
  • Fix styling problems with the viewer in MarkUs.

Yusi 

This Week:

  • Fix deprecation warning according to server log from running rspec test.(Relation#all, Relation#first warnings etc),
    but there are still many deprecation warnings and errors when I run rake test.
  • Fix the error when log in as admin.

Next Week:

  • Eliminate more deprecation warnings and errors.

Written by Jakub Subczynski

October 17th, 2014 at 1:31 pm