User:Avarote: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
(Created page with "== About Expertiza == Expertiza is a Ruby on Rails based Open Source project. It is a collaboration tool which lets users with different roles (student, instructor, teaching ass...")
 
(E1756 OSS Project)
Line 9: Line 9:
'''Wiki link'''
'''Wiki link'''


     http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation  
     http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation
 


== Problem Statement ==
== Problem Statement ==

Revision as of 21:45, 25 October 2017

About Expertiza

Expertiza is a Ruby on Rails based Open Source project. It is a collaboration tool which lets users with different roles (student, instructor, teaching assistant) to collaborate on a course in an institution. A collaboration could be for an assignment where students teams up for an assignment and instructors grades them on the basis of their submission. Students could review other's works and give feedbacks as well.

Github link

   https://github.com/expertiza/expertiza 

Wiki link

   http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation

Problem Statement

Background

response.rb is the default class to interact with the responses table, which stores all answers of each questionnaire.

What’s wrong with it?

response.rb is a fairly complex file. It contains a lot of methods that are long and hard to understand. These methods need to be broken down into simpler and more specific methods that are easier to read/understand. Also, the few instances of code duplication that exist should be removed.

Problems


Problem 1:Refactor display_as_html method

Write failing tests first

Split into several simpler methods and assign reasonable names

Extract duplicated code into separate methods

Problem 2:Refactor self.get_volume_of_review_comments method

Write failing tests first

Convert duplicated code into loop

Problem 3:Rename method and change all other places it is used

Write failing tests first

get_total_score → total_score

get_average_score → average_score

get_maximum_score → maximum_score

Problem 4:Use sort_by(&:seq) instead of sort { |a, b| a.seq <=> b.seq }

Write failing tests first

Problem 5:Use find_by instead of where.first

Write failing tests first

Problem 6:Complete the pending tests in grades_controller_spec.rb, and write integration tests for newly-created methods. Refactor corresponding methods, and only then finish pending tests.


Issue links (external)

   https://github.com/expertiza/expertiza/issues/720
   https://github.com/expertiza/expertiza/issues/732