CSC/ECE 517 Fall 2016/oss E1651: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
m (Spec additions)
m (layout changes)
Line 45: Line 45:
** models/assignment_team_spec.rb
** models/assignment_team_spec.rb


'''Team Model'''
===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.
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.
We also created a new method parent_model_for_id to fetch the related Assignment or Course object.


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


'''Assignment Team Model'''
===Assignment Team Model===
In the assignment team model, we created the parent_model_for_id method to return the related Assignment Object.
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.
We also fixed the copy method, which earlier had an undefined local variable.


'''Assignment Node Model'''
===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.
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'''
===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.
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'''
===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.
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'''
===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.
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 Spec'''
===Assignment Spec===
Wrote test cases to check if an assignment belongs to a course.
Wrote test cases to check if an assignment belongs to a course.


'''Assignment Team Spec'''
===Assignment Team Spec===
Wrote test cases to check the method to copy assignment teams to course teams.
Wrote test cases to check the method to copy assignment teams to course teams.




'''Course Team Spec'''
===Course Team Spec===
Wrote test cases to check the method to copy course team to assignment team.
Wrote test cases to check the method to copy course team to assignment team.




'''Team Spec'''
===Team Spec===
Wrote test cases to verify create team and node functionality for course team and assignment team.
Wrote test cases to verify create team and node functionality for course team and assignment team.

Revision as of 01:43, 28 October 2016

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 Spec

Wrote test cases to check if an assignment belongs to a course.

Assignment Team Spec

Wrote test cases to check the method to copy assignment teams to course teams.


Course Team Spec

Wrote test cases to check the method to copy course team to assignment team.


Team Spec

Wrote test cases to verify create team and node functionality for course team and assignment team.