CSC/ECE 517 Fall 2021 - E2151. Allow reviewers to bid on what to review: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
==Topic Overview==
==Topic Overview==
===Statement of Problem===
===Statement of Problem===
Assigning reviews to users is a complicated process. Currently, reviews are still assigned using a first-come-first-served basis. However, reviews could be bid on like how topics are bid on. This would involve matching multiple students to review a submission up to the maximum reviewers for a submission. A similar feature is present in bidding for topics. This current feature will serve us as an example when creating our feature.
Assigning reviews to users is a complicated process. Currently, reviews are still assigned using a first-come-first-served basis. However, reviews could be bid on like how topics are bid on. This would involve matching multiple students to review a submission up to the maximum reviewers for a submission. A similar feature is present in bidding for topics.


===Prior Work===
The goal of this topic is to allow both reviews and topics to be bid on by students following a bidding algorithm, and for both of these features to come from the same root functionality. This will involve refactoring the current bidding functionality of expertiza, as well as incorporating new code to allow this functionality to also be utilized for reviews.
 
==Prior Work==
Before starting, it is vital to note the substantial amount of prior work done on this task. The prior work done in Fall of 2020 (linked here [[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2020_-_E2085._Allow_reviewers_to_bid_on_what_to_review#Design]]) achieved much of the desired functionality for this task, and contains a comprehensive explanation of the underlying design principles behind the algorithm implemented. However, the implementation was rejected due to DRY violations. Thus, the primary goal of this project topic will be to rebuild and refactor this prior work to make it consistent with DRY principles and able to be merged into the expertiza environment.
Before starting, it is vital to note the substantial amount of prior work done on this task. The prior work done in Fall of 2020 (linked here [[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2020_-_E2085._Allow_reviewers_to_bid_on_what_to_review#Design]]) achieved much of the desired functionality for this task, and contains a comprehensive explanation of the underlying design principles behind the algorithm implemented. However, the implementation was rejected due to DRY violations. Thus, the primary goal of this project topic will be to rebuild and refactor this prior work to make it consistent with DRY principles and able to be merged into the expertiza environment.
A brief review will be given of the underlying design for the bidding algorithm. For a more exhaustive explanation, please see the aforementioned link to the prior year's work.


===Goals of this Topic===
===Goals of this Topic===
Line 20: Line 24:
* Inspect implementation structure to refactor out duplicated code
* Inspect implementation structure to refactor out duplicated code
* Review ''def self.reviewer_self_topic'' in ''review_bid'' for refacotring to address DRY violation
* Review ''def self.reviewer_self_topic'' in ''review_bid'' for refacotring to address DRY violation
* Modify ''app/views/review_bids/_all_actions.html.erb'' as fitted to integrate reafacotred controller modules
* Modify ''app/views/review_bids/_all_actions.html.erb'' as fitted to integrate reafactored controller modules
* Update tests to test the refactored DRYed-out methods
* Update tests to test the refactored DRYed-out methods
===Diagrams===


==Github==
==Github==

Revision as of 00:47, 4 November 2021

Topic Overview

Statement of Problem

Assigning reviews to users is a complicated process. Currently, reviews are still assigned using a first-come-first-served basis. However, reviews could be bid on like how topics are bid on. This would involve matching multiple students to review a submission up to the maximum reviewers for a submission. A similar feature is present in bidding for topics.

The goal of this topic is to allow both reviews and topics to be bid on by students following a bidding algorithm, and for both of these features to come from the same root functionality. This will involve refactoring the current bidding functionality of expertiza, as well as incorporating new code to allow this functionality to also be utilized for reviews.

Prior Work

Before starting, it is vital to note the substantial amount of prior work done on this task. The prior work done in Fall of 2020 (linked here [[1]]) achieved much of the desired functionality for this task, and contains a comprehensive explanation of the underlying design principles behind the algorithm implemented. However, the implementation was rejected due to DRY violations. Thus, the primary goal of this project topic will be to rebuild and refactor this prior work to make it consistent with DRY principles and able to be merged into the expertiza environment.

A brief review will be given of the underlying design for the bidding algorithm. For a more exhaustive explanation, please see the aforementioned link to the prior year's work.

Goals of this Topic

  1. Update the prior work for this topic to be in line with the current state of the expertiza beta branch.
  2. DRY out prior implementation's controller methods by creating a single controller which handles bidding for both topics and reviews.
  3. DRY out prior implementation's views by implementing a view from scratch (rather than a code copy of topic bidding view).
  4. Create exhaustive tests for newly DRY-ed methods, including edge cases.
  5. Retain all functionality from prior work.

Feature

In the current state of implementation the reviews are still assigned using a first-come-first-served basis. Current state of the feature implementation contains bad code smell and needs improvement to resolve merge conflict and follow DRY principle in order to finalize the implementation. With the current state in mind, the new implementation will enable the capability that reviews could be bid on like how topics are bid on. Behind the scene, the process would involve matching multiple students to review a submission up to the maximum reviewers for a submission.

Planned Changes

  • Inspect implementation structure to refactor out duplicated code
  • Review def self.reviewer_self_topic in review_bid for refacotring to address DRY violation
  • Modify app/views/review_bids/_all_actions.html.erb as fitted to integrate reafactored controller modules
  • Update tests to test the refactored DRYed-out methods

Github

The Github corresponding to this task is publicly available here: https://github.com/WeiRui-Wang/expertiza

Contributors

This feature was created as part of Dr. Edward Gehringer's "CSC/ECE 517: Object-Oriented Design and Development" class, Fall 2021. The contributors were: WeiRui Wang, Geoff Garrido, and Ayush Luthra. Our project mentor was Luis Delossantos (lgdeloss@ncsu.edu)