CSC/ECE 517 Fall 2014/OSS E1461 knn: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
Line 25: Line 25:
==Refactoring of Old Code==
==Refactoring of Old Code==
===Using Routing Helpers===
===Using Routing Helpers===
Modifications were made to StudentTeamsController.rb as well as anywhere that used routes pointing to StudentTeamsController which consisted of  
Modifications were made to routes pointing to student_teams views by adding helpers as well as changing to new bracket initializers. Changes were made inside StudentTeamsController.rb as well as anywhere that used routes pointing to StudentTeamsController which consisted of:
*advertise_for_partner_controller.rb
*invitation_controller.rb
*join_team_requests_controller.rb
*reports_controller.rb
*response_controller.rb
*app\views\advertise_for_partner\show.html.erb
*app\views\student_task\view.html.erb
*app\views\student_teams\view.html.erb
The routes changed were as follows:


passes information and responds to commands from the views displaying
Before Refactoring:
<pre>
redirect_to :controller => 'student_team', :action => 'view' , :id=> @student.id
redirect_to :controller =>'student_team', :action => 'edit', :team_id =>params[:team_id], :student_id => params[:student_id]
</pre>
After Refactoring:
<pre>
redirect_to view_student_teams_path student_id: student.id
redirect_to edit_student_teams_path team_id: params[:team_id], student_id: params[:student_id]
</pre>

Revision as of 20:38, 28 October 2014

'Expertiza - Refactoring StudentTeamController'

Introduction

Expertiza is an open source web application created by NCSU give a interface for team learning and peer review. Expertiza allows students to create and communicate with teams as well as an easy platform for online assignment submission. Another feature of Expertiza is its framework for allowing a peer review system on assignments, creating an easy way to give and receive feedback on assignments, allowing for improvement and re-submission based on classmates constructive feedback.

One part of the OSS project for Fall 2014 was refactoring of different sections of Expertiza. Our team was tasked with refactoring of the StudentTeamController.

StudentTeamController

StudentTeamController is responsible for the methods creation and joining of teams for group projects on Expertiza. Specifically, this controller allows the user to:

  • Create, edit or delete a team (name)
  • Add a teamate to the team
  • Leave a team if they want to move to a new team
  • View received and sent invitations

This controller also provides the student and team instance variables to the corresponding student_team views.

We were tasked with refactoring this controller using DRY principles and more RESTful actions as well as updating our sections using the most current excepted ruby and rails style guidelines. In addition, 6 specific tasks were given:

Refactoring of Old Code

Using Routing Helpers

Modifications were made to routes pointing to student_teams views by adding helpers as well as changing to new bracket initializers. Changes were made inside StudentTeamsController.rb as well as anywhere that used routes pointing to StudentTeamsController which consisted of:

  • advertise_for_partner_controller.rb
  • invitation_controller.rb
  • join_team_requests_controller.rb
  • reports_controller.rb
  • response_controller.rb
  • app\views\advertise_for_partner\show.html.erb
  • app\views\student_task\view.html.erb
  • app\views\student_teams\view.html.erb

The routes changed were as follows:

Before Refactoring:

redirect_to :controller => 'student_team', :action => 'view' , :id=> @student.id
redirect_to :controller =>'student_team', :action => 'edit', :team_id =>params[:team_id], :student_id => params[:student_id]

After Refactoring:

redirect_to view_student_teams_path student_id: student.id
redirect_to edit_student_teams_path team_id: params[:team_id], student_id: params[:student_id]