CSC/ECE 517 Fall 2016/oss E1651

From Expertiza_Wiki
Revision as of 01:28, 28 October 2016 by Tgoel (talk | contribs) (Basic description of changes done in files.)
Jump to navigation Jump to search

This wiki page is for describing the changes made for E1651 OSS assignment for Fall 2016, CSC/ECE 517.


Peer Review Information

For users intending to view the deployed Expertiza associated with this assignment, the credentials are below:

  • Instructor login: username -> instructor6, password -> password
  • Student login: username -> student4340, password -> password
  • Student login: username -> student4405, password -> password


Expertiza Background

Expertiza is an educational web application created and maintained by the joint efforts of the students and the faculty at NCSU. It’s an open source project developed on Ruby on Rails platform and it’s code is available on Github. It allows students to review each other’s work and improve their work upon this feedback.


Description of the current project

The current project deals with the functionality of managing teams in Expertiza. There are 2 types of teams, Course Teams and Assignment Teams. Course teams stay same for the whole course, while assignment teams can be different for different assignments within a course. An instructor has the functionality to copy an assignment team to make it a course team and vice versa. The objective of the project is to -

  • Write test to check if the current functions work properly.
  • Debug the code for copying teams.
  • Improve the UI.
  • Refactoring the code to leverage polymorphism.

Files Created / Changed in the project

  • Models
    • team.rb
    • course_team.rb
    • assignment_team.rb
    • assignment_node.rb
    • sign_up_sheet.rb
  • Controllers
    • review_mapping_controller.rb
  • Views
    • teams/list.html.erb
    • teams/new.html.erb
    • tree_display/actions/_teams_actions.html.erb
  • Specs
    • models/assignment_team_spec.rb

Team Model

In the team model, we refactored the method create_team_and_node to remove an unnecessary argument teamtype, and inferred the teamtype from the Class. We also created a new method parent_model_for_id to fetch the related Assignment or Course object.

Course Team Model

In the course team model, we created the parent_model_for_id method to return the related Course Object.

Assignment Team Model

In the assignment team model, we created the parent_model_for_id method to return the related Assignment Object. We also fixed the copy method, which earlier had an undefined local variable.

Assignment Node Model

In the Assignment node model, we created a new method to check if the related assignment object has a course associated with it. This is then used in a view.

Sign up sheet, Team, Review Mapping Controller, Assignment Team, Course Team

All of these files called the create_team_and_node method. Since we changed the signature, we changed the respective method calls in these classes.

teams/list.html.erb, teams/new.html.erb

Moved the inherit teams functionality from new.html.erb, an internal page, to list.html.erb. List page, thereby removing 1 user click.

tree_display/actions/_teams_actions.html.erb

This is the partial to show actions related to teams. The option to copy teams from assignments to course should not be visible if there is no course associated with the assignment. Added a condition to the if statement to check for the same.

Assignment Team Spec