<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rsethi3</id>
	<title>Expertiza_Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rsethi3"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Rsethi3"/>
	<updated>2026-07-17T19:45:20Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=124879</id>
		<title>CSC/ECE 517 Spring 2019 E1926 Improve self-review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=124879"/>
		<updated>2019-05-06T15:23:45Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E1926. Improve self-review, Link peer review &amp;amp; self-review to derive grades==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based Semester project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Team and Resources===&lt;br /&gt;
&lt;br /&gt;
* Team Members: Shraddha Bhadauria, Akhil Pabba, Rahul Sethi&lt;br /&gt;
* Pull Request: https://github.com/expertiza/expertiza/pull/1462 &lt;br /&gt;
* Screencast Video: https://drive.google.com/file/d/1wnYxQxETkZM0yU83M80QYGNZkJ7lsIEq/view?usp=sharing&lt;br /&gt;
* Code Flow Presentation: https://drive.google.com/file/d/1XE7OK1Vh67WFe0SDAsp3ADJhPA_eu3bA/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
===Problem Statement and Overview===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Expertiza provides an option for students to self-review their submissions. In which, each member of the team gets to evaluate their project on the same criteria as the peer review. However, these scores contribute in no way to calculate the overall score for their assignment. So, we focus on improving the self-review system and to extend its functionality. Some of the objectives we try to achieve for this project are as follows –&lt;br /&gt;
    &lt;br /&gt;
*Provide a formula that takes both the peer review score and self-review score into account for calculating the composite score.&lt;br /&gt;
*The composite score should get higher as the self-review score gets closer to the peer review score.&lt;br /&gt;
*Make sure that the peer review scores are not visible before the self-review submission.&lt;br /&gt;
*Display the composite score on the “View Scores” page.&lt;br /&gt;
*Display the self-review scores in the &amp;quot;View Scores&amp;quot; and heat map of peer-reviews, showing that they are a different type of review.&lt;br /&gt;
&lt;br /&gt;
The need for the self-review section is to know how well the students can judge their work and understand how to evaluate their flaws and rectify them. Also, if they can score themselves close to their peers, then it means that they have good self-assessment skills and they are being honest about what they think of their work. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Code Changes Flow===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_code_flow.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Previous Process===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Previously, Expertiza allowed students to submit an assignment and provides a link for self-review. Once the self-reviewing was done, the submitted score gets stored in the database but was not used in calculating the overall score of the assignment for the student. Because of this, students can score themselves higher than what they should get. This helps students in no way. So, to make productive use of this score and to help students learn self-evaluating, we have made some changes in the review score calculation which is explained in the section below.&lt;br /&gt;
&lt;br /&gt;
===New Process===&lt;br /&gt;
&lt;br /&gt;
We derived a new formula that takes into account the self-review score and calculates a composite score, which will be the student's final score. After we made the changes needed, now the students are able to see their peer review score, Final score and the Final derived peer review score displayed on the “View scores” page.&lt;br /&gt;
 &lt;br /&gt;
[[File:E1926_scr_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
These scores will also be reflected in the &amp;quot;stats&amp;quot; as shown below&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_scr_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
In the same way, we will make some changes to the instructor’s page as well because the instructor should be able to see the self-reviewing score from each member of the team, displayed along with the peer review score for that assignment.&lt;br /&gt;
&lt;br /&gt;
===Application Flow===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_Flow_1.jpg]] [[File:E1926_Flow_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*The above image shows how the instructor will allow users to give a self-review on the work they have done. The instructor has to go to the review strategy tab while assignment creation to enable the self-review option.&lt;br /&gt;
&lt;br /&gt;
*User then can see the self-review option on the assignment to do tasks to give a self-review.&lt;br /&gt;
&lt;br /&gt;
*In the view scores page, a new column showing the self-review scores will be displayed.&lt;br /&gt;
&lt;br /&gt;
===Use case===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_use_case.jpg]] [[File:E1926_use_case_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Actors:&lt;br /&gt;
&lt;br /&gt;
   1. Instructor: This actor is responsible for creating assignments and adding students to the assignment. &lt;br /&gt;
   2. Student:    This actor is responsible for submitting, self-reviewing and viewing the scores. &lt;br /&gt;
&lt;br /&gt;
*Actions&lt;br /&gt;
   1. Instructor: Create Assignment, Enable Self-Review.&lt;br /&gt;
   2. Student: Login, Add work and Submit, Submit Self-Review, View Scores.&lt;br /&gt;
&lt;br /&gt;
===Formula Proposed===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We have to implement a way to combine self-review and peer-review scores to derive a composite score. We have to come up with a formula to derive the composite score as below with the help of research paper: https://www.ojs.unisa.edu.au/index.php/atna/article/viewFile/343/258.&lt;br /&gt;
   &lt;br /&gt;
   SAPA_Factor = sqrt(Self-ratings for individual team member / Average of ratings for the individual by peer team members)&lt;br /&gt;
   derived_score =  SAPA Factor * Average of ratings for the individual by peer team members;&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Now that the set up is done, to test this, you create 6 students and 2 assignments.&lt;br /&gt;
*One assignment has self-review enabled and the other assignment has self-review disabled.&lt;br /&gt;
*Then student should submit the assignments and the self-review should be done for the required assignment.&lt;br /&gt;
*Try giving same peer-review scores for both assignments and you should see the final score differs accordingly with the self-review score for one assignment but stays the same for the other.&lt;br /&gt;
*You should be able to see the final scores for any student matching to the proposed formula.&lt;br /&gt;
*Perform testing using “Cucumber” and “rSpecs”&lt;br /&gt;
&lt;br /&gt;
===Files modified===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*app/controllers/grades_controller.rb&lt;br /&gt;
*app/models/assignment_participant.rb&lt;br /&gt;
*app/models/author_feedback_questionnaire.rb&lt;br /&gt;
*app/models/review_questionnaire.rb&lt;br /&gt;
*app/models/response_map.rb&lt;br /&gt;
*app/models/vm_question_response.rb&lt;br /&gt;
*app/views/grades/_participant.html.erb&lt;br /&gt;
*app/views/grades/_participant_charts.html.erb&lt;br /&gt;
*app/views/grades/_participant_title.html.erb&lt;br /&gt;
*app/views/grades/view_team.html.erb&lt;br /&gt;
*app/views/reports/_self_review_report.html.erb&lt;br /&gt;
*spec/controllers/grades_controller_spec.rb&lt;br /&gt;
*spec/models/assignment_particpant_spec.rb&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*https://github.com/expertiza/expertiza&lt;br /&gt;
*https://ruby-doc.org&lt;br /&gt;
*https://www.softwaretestinghelp.com/cucumber-bdd-tool-selenium-tutorial-30/&lt;br /&gt;
*https://www.tutorialspoint.com/cucumber/cucumber_overview.htm&lt;br /&gt;
*https://www.toolsqa.com/cucumber-tutorial/&lt;br /&gt;
*http://rspec.info&lt;br /&gt;
*https://github.com/rspec/rspec-rails&lt;br /&gt;
*https://www.tutorialspoint.com/rspec/&lt;br /&gt;
*https://blog.teamtreehouse.com/an-introduction-to-rspec&lt;br /&gt;
*https://semaphoreci.com/community/tutorials/getting-started-with-rspec&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=124878</id>
		<title>CSC/ECE 517 Spring 2019 E1926 Improve self-review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=124878"/>
		<updated>2019-05-06T06:10:10Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E1926. Improve self-review, Link peer review &amp;amp; self-review to derive grades==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based Semester project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Team and Resources===&lt;br /&gt;
&lt;br /&gt;
* Team Members: Shraddha Bhadauria, Akhil Pabba, Rahul Sethi&lt;br /&gt;
* Pull Request: https://github.com/expertiza/expertiza/pull/1462 &lt;br /&gt;
* Screencast Video: https://drive.google.com/file/d/1wnYxQxETkZM0yU83M80QYGNZkJ7lsIEq/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
===Problem Statement and Overview===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Expertiza provides an option for students to self-review their submissions. In which, each member of the team gets to evaluate their project on the same criteria as the peer review. However, these scores contribute in no way to calculate the overall score for their assignment. So, we focus on improving the self-review system and to extend its functionality. Some of the objectives we try to achieve for this project are as follows –&lt;br /&gt;
    &lt;br /&gt;
*Provide a formula that takes both the peer review score and self-review score into account for calculating the composite score.&lt;br /&gt;
*The composite score should get higher as the self-review score gets closer to the peer review score.&lt;br /&gt;
*Make sure that the peer review scores are not visible before the self-review submission.&lt;br /&gt;
*Display the composite score on the “View Scores” page.&lt;br /&gt;
*Display the self-review scores in the &amp;quot;View Scores&amp;quot; and heat map of peer-reviews, showing that they are a different type of review.&lt;br /&gt;
&lt;br /&gt;
The need for the self-review section is to know how well the students can judge their work and understand how to evaluate their flaws and rectify them. Also, if they can score themselves close to their peers, then it means that they have good self-assessment skills and they are being honest about what they think of their work. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Code Changes Flow===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_code_flow.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Previous Process===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Previously, Expertiza allowed students to submit an assignment and provides a link for self-review. Once the self-reviewing was done, the submitted score gets stored in the database but was not used in calculating the overall score of the assignment for the student. Because of this, students can score themselves higher than what they should get. This helps students in no way. So, to make productive use of this score and to help students learn self-evaluating, we have made some changes in the review score calculation which is explained in the section below.&lt;br /&gt;
&lt;br /&gt;
===New Process===&lt;br /&gt;
&lt;br /&gt;
We derived a new formula that takes into account the self-review score and calculates a composite score, which will be the student's final score. After we made the changes needed, now the students are able to see their peer review score, Final score and the Final derived peer review score displayed on the “View scores” page.&lt;br /&gt;
 &lt;br /&gt;
[[File:E1926_scr_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
These scores will also be reflected in the &amp;quot;stats&amp;quot; as shown below&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_scr_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
In the same way, we will make some changes to the instructor’s page as well because the instructor should be able to see the self-reviewing score from each member of the team, displayed along with the peer review score for that assignment.&lt;br /&gt;
&lt;br /&gt;
===Application Flow===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_Flow_1.jpg]] [[File:E1926_Flow_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*The above image shows how the instructor will allow users to give a self-review on the work they have done. The instructor has to go to the review strategy tab while assignment creation to enable the self-review option.&lt;br /&gt;
&lt;br /&gt;
*User then can see the self-review option on the assignment to do tasks to give a self-review.&lt;br /&gt;
&lt;br /&gt;
*In the view scores page, a new column showing the self-review scores will be displayed.&lt;br /&gt;
&lt;br /&gt;
===Use case===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_use_case.jpg]] [[File:E1926_use_case_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Actors:&lt;br /&gt;
&lt;br /&gt;
   1. Instructor: This actor is responsible for creating assignments and adding students to the assignment. &lt;br /&gt;
   2. Student:    This actor is responsible for submitting, self-reviewing and viewing the scores. &lt;br /&gt;
&lt;br /&gt;
*Actions&lt;br /&gt;
   1. Instructor: Create Assignment, Enable Self-Review.&lt;br /&gt;
   2. Student: Login, Add work and Submit, Submit Self-Review, View Scores.&lt;br /&gt;
&lt;br /&gt;
===Formula Proposed===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We have to implement a way to combine self-review and peer-review scores to derive a composite score. We have to come up with a formula to derive the composite score as below with the help of research paper: https://www.ojs.unisa.edu.au/index.php/atna/article/viewFile/343/258.&lt;br /&gt;
   &lt;br /&gt;
   SAPA_Factor = sqrt(Self-ratings for individual team member / Average of ratings for the individual by peer team members)&lt;br /&gt;
   derived_score =  SAPA Factor * Average of ratings for the individual by peer team members;&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Now that the set up is done, to test this, you create 6 students and 2 assignments.&lt;br /&gt;
*One assignment has self-review enabled and the other assignment has self-review disabled.&lt;br /&gt;
*Then student should submit the assignments and the self-review should be done for the required assignment.&lt;br /&gt;
*Try giving same peer-review scores for both assignments and you should see the final score differs accordingly with the self-review score for one assignment but stays the same for the other.&lt;br /&gt;
*You should be able to see the final scores for any student matching to the proposed formula.&lt;br /&gt;
*Perform testing using “Cucumber” and “rSpecs”&lt;br /&gt;
&lt;br /&gt;
===Files identified to be modified===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*app/controllers/grades_controller.rb&lt;br /&gt;
*app/models/assignment_participant.rb&lt;br /&gt;
*app/models/author_feedback_questionnaire.rb&lt;br /&gt;
*app/models/review_questionnaire.rb&lt;br /&gt;
*app/models/response_map.rb&lt;br /&gt;
*app/models/vm_question_response.rb&lt;br /&gt;
*app/views/grades/_participant.html.erb&lt;br /&gt;
*app/views/grades/_participant_charts.html.erb&lt;br /&gt;
*app/views/grades/_participant_title.html.erb&lt;br /&gt;
*app/views/grades/view_team.html.erb&lt;br /&gt;
*app/views/reports/_self_review_report.html.erb&lt;br /&gt;
*spec/controllers/grades_controller_spec.rb&lt;br /&gt;
*spec/models/assignment_particpant_spec.rb&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*https://github.com/expertiza/expertiza&lt;br /&gt;
*https://ruby-doc.org&lt;br /&gt;
*https://www.softwaretestinghelp.com/cucumber-bdd-tool-selenium-tutorial-30/&lt;br /&gt;
*https://www.tutorialspoint.com/cucumber/cucumber_overview.htm&lt;br /&gt;
*https://www.toolsqa.com/cucumber-tutorial/&lt;br /&gt;
*http://rspec.info&lt;br /&gt;
*https://github.com/rspec/rspec-rails&lt;br /&gt;
*https://www.tutorialspoint.com/rspec/&lt;br /&gt;
*https://blog.teamtreehouse.com/an-introduction-to-rspec&lt;br /&gt;
*https://semaphoreci.com/community/tutorials/getting-started-with-rspec&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E1926_code_flow.png&amp;diff=124877</id>
		<title>File:E1926 code flow.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E1926_code_flow.png&amp;diff=124877"/>
		<updated>2019-05-06T06:09:50Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=124627</id>
		<title>CSC/ECE 517 Spring 2019 E1926 Improve self-review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=124627"/>
		<updated>2019-04-27T01:52:05Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E1926. Improve self-review, Link peer review &amp;amp; self-review to derive grades==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based Semester project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Team and Resources===&lt;br /&gt;
&lt;br /&gt;
* Team Members: Shraddha Bhadauria, Akhil Pabba, Rahul Sethi&lt;br /&gt;
* Pull Request: https://github.com/expertiza/expertiza/pull/1462 &lt;br /&gt;
* Screencast Video: https://drive.google.com/file/d/1wnYxQxETkZM0yU83M80QYGNZkJ7lsIEq/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
===Problem Statement and Overview===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Expertiza provides an option for students to self-review their submissions. In which, each member of the team gets to evaluate their project on the same criteria as the peer review. However, these scores contribute in no way to calculate the overall score for their assignment. So, we focus on improving the self-review system and to extend its functionality. Some of the objectives we try to achieve for this project are as follows –&lt;br /&gt;
    &lt;br /&gt;
*Provide a formula that takes both the peer review score and self-review score into account for calculating the composite score.&lt;br /&gt;
*The composite score should get higher as the self-review score gets closer to the peer review score.&lt;br /&gt;
*Make sure that the peer review scores are not visible before the self-review submission.&lt;br /&gt;
*Display the composite score on the “View Scores” page.&lt;br /&gt;
*Display the self-review scores in the &amp;quot;View Scores&amp;quot; and heat map of peer-reviews, showing that they are a different type of review.&lt;br /&gt;
&lt;br /&gt;
The need for the self-review section is to know how well the students can judge their work and understand how to evaluate their flaws and rectify them. Also, if they can score themselves close to their peers, then it means that they have good self-assessment skills and they are being honest about what they think of their work. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Previous Process===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Previously, Expertiza allowed students to submit an assignment and provides a link for self-review. Once the self-reviewing was done, the submitted score gets stored in the database but was not used in calculating the overall score of the assignment for the student. Because of this, students can score themselves higher than what they should get. This helps students in no way. So, to make productive use of this score and to help students learn self-evaluating, we have made some changes in the review score calculation which is explained in the section below.&lt;br /&gt;
&lt;br /&gt;
===New Process===&lt;br /&gt;
&lt;br /&gt;
We derived a new formula that takes into account the self-review score and calculates a composite score, which will be the student's final score. After we made the changes needed, now the students are able to see their peer review score, Final score and the Final derived peer review score displayed on the “View scores” page.&lt;br /&gt;
 &lt;br /&gt;
[[File:E1926_scr_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
These scores will also be reflected in the &amp;quot;stats&amp;quot; as shown below&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_scr_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
In the same way, we will make some changes to the instructor’s page as well because the instructor should be able to see the self-reviewing score from each member of the team, displayed along with the peer review score for that assignment.&lt;br /&gt;
&lt;br /&gt;
===Application Flow===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_Flow_1.jpg]] [[File:E1926_Flow_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*The above image shows how the instructor will allow users to give a self-review on the work they have done. The instructor has to go to the review strategy tab while assignment creation to enable the self-review option.&lt;br /&gt;
&lt;br /&gt;
*User then can see the self-review option on the assignment to do tasks to give a self-review.&lt;br /&gt;
&lt;br /&gt;
*In the view scores page, a new column showing the self-review scores will be displayed.&lt;br /&gt;
&lt;br /&gt;
===Use case===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_use_case.jpg]] [[File:E1926_use_case_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Actors:&lt;br /&gt;
&lt;br /&gt;
   1. Instructor: This actor is responsible for creating assignments and adding students to the assignment. &lt;br /&gt;
   2. Student:    This actor is responsible for submitting, self-reviewing and viewing the scores. &lt;br /&gt;
&lt;br /&gt;
*Actions&lt;br /&gt;
   1. Instructor: Create Assignment, Enable Self-Review.&lt;br /&gt;
   2. Student: Login, Add work and Submit, Submit Self-Review, View Scores.&lt;br /&gt;
&lt;br /&gt;
===Formula Proposed===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We have to implement a way to combine self-review and peer-review scores to derive a composite score. We have to come up with a formula to derive the composite score as below with the help of research paper: https://www.ojs.unisa.edu.au/index.php/atna/article/viewFile/343/258.&lt;br /&gt;
   &lt;br /&gt;
   SAPA_Factor = sqrt(Self-ratings for individual team member / Average of ratings for the individual by peer team members)&lt;br /&gt;
   derived_score =  SAPA Factor * Average of ratings for the individual by peer team members;&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Now that the set up is done, to test this, you create 6 students and 2 assignments.&lt;br /&gt;
*One assignment has self-review enabled and the other assignment has self-review disabled.&lt;br /&gt;
*Then student should submit the assignments and the self-review should be done for the required assignment.&lt;br /&gt;
*Try giving same peer-review scores for both assignments and you should see the final score differs accordingly with the self-review score for one assignment but stays the same for the other.&lt;br /&gt;
*You should be able to see the final scores for any student matching to the proposed formula.&lt;br /&gt;
*Perform testing using “Cucumber” and “rSpecs”&lt;br /&gt;
&lt;br /&gt;
===Files identified to be modified===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*app/controllers/grades_controller.rb&lt;br /&gt;
*app/models/assignment_participant.rb&lt;br /&gt;
*app/models/author_feedback_questionnaire.rb&lt;br /&gt;
*app/models/review_questionnaire.rb&lt;br /&gt;
*app/models/response_map.rb&lt;br /&gt;
*app/models/vm_question_response.rb&lt;br /&gt;
*app/views/grades/_participant.html.erb&lt;br /&gt;
*app/views/grades/_participant_charts.html.erb&lt;br /&gt;
*app/views/grades/_participant_title.html.erb&lt;br /&gt;
*app/views/grades/view_team.html.erb&lt;br /&gt;
*app/views/reports/_self_review_report.html.erb&lt;br /&gt;
*spec/controllers/grades_controller_spec.rb&lt;br /&gt;
*spec/models/assignment_particpant_spec.rb&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*https://github.com/expertiza/expertiza&lt;br /&gt;
*https://ruby-doc.org&lt;br /&gt;
*https://www.softwaretestinghelp.com/cucumber-bdd-tool-selenium-tutorial-30/&lt;br /&gt;
*https://www.tutorialspoint.com/cucumber/cucumber_overview.htm&lt;br /&gt;
*https://www.toolsqa.com/cucumber-tutorial/&lt;br /&gt;
*http://rspec.info&lt;br /&gt;
*https://github.com/rspec/rspec-rails&lt;br /&gt;
*https://www.tutorialspoint.com/rspec/&lt;br /&gt;
*https://blog.teamtreehouse.com/an-introduction-to-rspec&lt;br /&gt;
*https://semaphoreci.com/community/tutorials/getting-started-with-rspec&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=124614</id>
		<title>CSC/ECE 517 Spring 2019 E1926 Improve self-review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=124614"/>
		<updated>2019-04-27T00:42:58Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E1926. Improve self-review, Link peer review &amp;amp; self-review to derive grades==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based Semester project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Team and Resources===&lt;br /&gt;
&lt;br /&gt;
* Team Members: Shraddha Bhadauria, Akhil Pabba, Rahul Sethi&lt;br /&gt;
* Pull Request: https://github.com/expertiza/expertiza/pull/1462 &lt;br /&gt;
* Screencast Video: &lt;br /&gt;
&lt;br /&gt;
===Problem Statement and Overview===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Expertiza provides an option for students to self-review their submissions. In which, each member of the team gets to evaluate their project on the same criteria as the peer review. However, these scores contribute in no way to calculate the overall score for their assignment. So, we focus on improving the self-review system and to extend its functionality. Some of the objectives we try to achieve for this project are as follows –&lt;br /&gt;
    &lt;br /&gt;
*Provide a formula that takes both the peer review score and self-review score into account for calculating the composite score.&lt;br /&gt;
*The composite score should get higher as the self-review score gets closer to the peer review score.&lt;br /&gt;
*Make sure that the peer review scores are not visible before the self-review submission.&lt;br /&gt;
*Display the composite score on the “View Scores” page.&lt;br /&gt;
*Display the self-review scores in the &amp;quot;View Scores&amp;quot; and heat map of peer-reviews, showing that they are a different type of review.&lt;br /&gt;
&lt;br /&gt;
The need for the self-review section is to know how well the students can judge their work and understand how to evaluate their flaws and rectify them. Also, if they can score themselves close to their peers, then it means that they have good self-assessment skills and they are being honest about what they think of their work. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Previous Process===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Previously, Expertiza allowed students to submit an assignment and provides a link for self-review. Once the self-reviewing was done, the submitted score gets stored in the database but was not used in calculating the overall score of the assignment for the student. Because of this, students can score themselves higher than what they should get. This helps students in no way. So, to make productive use of this score and to help students learn self-evaluating, we have made some changes in the review score calculation which is explained in the section below.&lt;br /&gt;
&lt;br /&gt;
===New Process===&lt;br /&gt;
&lt;br /&gt;
We derived a new formula that takes into account the self-review score and calculates a composite score, which will be the student's final score. After we made the changes needed, now the students are able to see their peer review score, Final score and the Final derived peer review score displayed on the “View scores” page.&lt;br /&gt;
 &lt;br /&gt;
[[File:E1926_scr_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
These scores will also be reflected in the &amp;quot;stats&amp;quot; as shown below&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_scr_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
In the same way, we will make some changes to the instructor’s page as well because the instructor should be able to see the self-reviewing score from each member of the team, displayed along with the peer review score for that assignment.&lt;br /&gt;
&lt;br /&gt;
===Application Flow===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_Flow_1.jpg]] [[File:E1926_Flow_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*The above image shows how the instructor will allow users to give a self-review on the work they have done. The instructor has to go to the review strategy tab while assignment creation to enable the self-review option.&lt;br /&gt;
&lt;br /&gt;
*User then can see the self-review option on the assignment to do tasks to give a self-review.&lt;br /&gt;
&lt;br /&gt;
*In the view scores page, a new column showing the self-review scores will be displayed.&lt;br /&gt;
&lt;br /&gt;
===Use case===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_use_case.jpg]] [[File:E1926_use_case_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Actors:&lt;br /&gt;
&lt;br /&gt;
   1. Instructor: This actor is responsible for creating assignments and adding students to the assignment. &lt;br /&gt;
   2. Student:    This actor is responsible for submitting, self-reviewing and viewing the scores. &lt;br /&gt;
&lt;br /&gt;
*Actions&lt;br /&gt;
   1. Instructor: Create Assignment, Enable Self-Review.&lt;br /&gt;
   2. Student: Login, Add work and Submit, Submit Self-Review, View Scores.&lt;br /&gt;
&lt;br /&gt;
===Formula Proposed===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We have to implement a way to combine self-review and peer-review scores to derive a composite score. We have to come up with a formula to derive the composite score as below with the help of research paper: https://www.ojs.unisa.edu.au/index.php/atna/article/viewFile/343/258.&lt;br /&gt;
   &lt;br /&gt;
   SAPA_Factor = sqrt(Self-ratings for individual team member / Average of ratings for the individual by peer team members)&lt;br /&gt;
   derived_score =  SAPA Factor * Average of ratings for the individual by peer team members;&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Now that the set up is done, to test this, you create 6 students and 2 assignments.&lt;br /&gt;
*One assignment has self-review enabled and the other assignment has self-review disabled.&lt;br /&gt;
*Then student should submit the assignments and the self-review should be done for the required assignment.&lt;br /&gt;
*Try giving same peer-review scores for both assignments and you should see the final score differs accordingly with the self-review score for one assignment but stays the same for the other.&lt;br /&gt;
*You should be able to see the final scores for any student matching to the proposed formula.&lt;br /&gt;
*Perform testing using “Cucumber” and “rSpecs”&lt;br /&gt;
&lt;br /&gt;
===Files identified to be modified===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*app/controllers/grades_controller.rb&lt;br /&gt;
*app/models/assignment_participant.rb&lt;br /&gt;
*app/models/author_feedback_questionnaire.rb&lt;br /&gt;
*app/models/review_questionnaire.rb&lt;br /&gt;
*app/models/response_map.rb&lt;br /&gt;
*app/models/vm_question_response.rb&lt;br /&gt;
*app/views/grades/_participant.html.erb&lt;br /&gt;
*app/views/grades/_participant_charts.html.erb&lt;br /&gt;
*app/views/grades/_participant_title.html.erb&lt;br /&gt;
*app/views/grades/view_team.html.erb&lt;br /&gt;
*app/views/reports/_self_review_report.html.erb&lt;br /&gt;
*spec/controllers/grades_controller_spec.rb&lt;br /&gt;
*spec/models/assignment_particpant_spec.rb&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*https://github.com/expertiza/expertiza&lt;br /&gt;
*https://ruby-doc.org&lt;br /&gt;
*https://www.softwaretestinghelp.com/cucumber-bdd-tool-selenium-tutorial-30/&lt;br /&gt;
*https://www.tutorialspoint.com/cucumber/cucumber_overview.htm&lt;br /&gt;
*https://www.toolsqa.com/cucumber-tutorial/&lt;br /&gt;
*http://rspec.info&lt;br /&gt;
*https://github.com/rspec/rspec-rails&lt;br /&gt;
*https://www.tutorialspoint.com/rspec/&lt;br /&gt;
*https://blog.teamtreehouse.com/an-introduction-to-rspec&lt;br /&gt;
*https://semaphoreci.com/community/tutorials/getting-started-with-rspec&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=124613</id>
		<title>CSC/ECE 517 Spring 2019 E1926 Improve self-review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=124613"/>
		<updated>2019-04-27T00:42:38Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E1926. Improve self-review, Link peer review &amp;amp; self-review to derive grades==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based Semester project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Team and Resources===&lt;br /&gt;
&lt;br /&gt;
* Team Members: Shraddha Bhadauria, Akhil Pabba, Rahul Sethi&lt;br /&gt;
* Pull Request: https://github.com/expertiza/expertiza/pull/1462 &lt;br /&gt;
* Screencast Video: https://drive.google.com/file/d/1OpafKjXhIkL_BOdxlWK0hfe2VOAhOuIc/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
===Problem Statement and Overview===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Expertiza provides an option for students to self-review their submissions. In which, each member of the team gets to evaluate their project on the same criteria as the peer review. However, these scores contribute in no way to calculate the overall score for their assignment. So, we focus on improving the self-review system and to extend its functionality. Some of the objectives we try to achieve for this project are as follows –&lt;br /&gt;
    &lt;br /&gt;
*Provide a formula that takes both the peer review score and self-review score into account for calculating the composite score.&lt;br /&gt;
*The composite score should get higher as the self-review score gets closer to the peer review score.&lt;br /&gt;
*Make sure that the peer review scores are not visible before the self-review submission.&lt;br /&gt;
*Display the composite score on the “View Scores” page.&lt;br /&gt;
*Display the self-review scores in the &amp;quot;View Scores&amp;quot; and heat map of peer-reviews, showing that they are a different type of review.&lt;br /&gt;
&lt;br /&gt;
The need for the self-review section is to know how well the students can judge their work and understand how to evaluate their flaws and rectify them. Also, if they can score themselves close to their peers, then it means that they have good self-assessment skills and they are being honest about what they think of their work. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Previous Process===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Previously, Expertiza allowed students to submit an assignment and provides a link for self-review. Once the self-reviewing was done, the submitted score gets stored in the database but was not used in calculating the overall score of the assignment for the student. Because of this, students can score themselves higher than what they should get. This helps students in no way. So, to make productive use of this score and to help students learn self-evaluating, we have made some changes in the review score calculation which is explained in the section below.&lt;br /&gt;
&lt;br /&gt;
===New Process===&lt;br /&gt;
&lt;br /&gt;
We derived a new formula that takes into account the self-review score and calculates a composite score, which will be the student's final score. After we made the changes needed, now the students are able to see their peer review score, Final score and the Final derived peer review score displayed on the “View scores” page.&lt;br /&gt;
 &lt;br /&gt;
[[File:E1926_scr_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
These scores will also be reflected in the &amp;quot;stats&amp;quot; as shown below&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_scr_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
In the same way, we will make some changes to the instructor’s page as well because the instructor should be able to see the self-reviewing score from each member of the team, displayed along with the peer review score for that assignment.&lt;br /&gt;
&lt;br /&gt;
===Application Flow===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_Flow_1.jpg]] [[File:E1926_Flow_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*The above image shows how the instructor will allow users to give a self-review on the work they have done. The instructor has to go to the review strategy tab while assignment creation to enable the self-review option.&lt;br /&gt;
&lt;br /&gt;
*User then can see the self-review option on the assignment to do tasks to give a self-review.&lt;br /&gt;
&lt;br /&gt;
*In the view scores page, a new column showing the self-review scores will be displayed.&lt;br /&gt;
&lt;br /&gt;
===Use case===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_use_case.jpg]] [[File:E1926_use_case_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Actors:&lt;br /&gt;
&lt;br /&gt;
   1. Instructor: This actor is responsible for creating assignments and adding students to the assignment. &lt;br /&gt;
   2. Student:    This actor is responsible for submitting, self-reviewing and viewing the scores. &lt;br /&gt;
&lt;br /&gt;
*Actions&lt;br /&gt;
   1. Instructor: Create Assignment, Enable Self-Review.&lt;br /&gt;
   2. Student: Login, Add work and Submit, Submit Self-Review, View Scores.&lt;br /&gt;
&lt;br /&gt;
===Formula Proposed===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We have to implement a way to combine self-review and peer-review scores to derive a composite score. We have to come up with a formula to derive the composite score as below with the help of research paper: https://www.ojs.unisa.edu.au/index.php/atna/article/viewFile/343/258.&lt;br /&gt;
   &lt;br /&gt;
   SAPA_Factor = sqrt(Self-ratings for individual team member / Average of ratings for the individual by peer team members)&lt;br /&gt;
   derived_score =  SAPA Factor * Average of ratings for the individual by peer team members;&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Now that the set up is done, to test this, you create 6 students and 2 assignments.&lt;br /&gt;
*One assignment has self-review enabled and the other assignment has self-review disabled.&lt;br /&gt;
*Then student should submit the assignments and the self-review should be done for the required assignment.&lt;br /&gt;
*Try giving same peer-review scores for both assignments and you should see the final score differs accordingly with the self-review score for one assignment but stays the same for the other.&lt;br /&gt;
*You should be able to see the final scores for any student matching to the proposed formula.&lt;br /&gt;
*Perform testing using “Cucumber” and “rSpecs”&lt;br /&gt;
&lt;br /&gt;
===Files identified to be modified===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*app/controllers/grades_controller.rb&lt;br /&gt;
*app/models/assignment_participant.rb&lt;br /&gt;
*app/models/author_feedback_questionnaire.rb&lt;br /&gt;
*app/models/review_questionnaire.rb&lt;br /&gt;
*app/models/response_map.rb&lt;br /&gt;
*app/models/vm_question_response.rb&lt;br /&gt;
*app/views/grades/_participant.html.erb&lt;br /&gt;
*app/views/grades/_participant_charts.html.erb&lt;br /&gt;
*app/views/grades/_participant_title.html.erb&lt;br /&gt;
*app/views/grades/view_team.html.erb&lt;br /&gt;
*app/views/reports/_self_review_report.html.erb&lt;br /&gt;
*spec/controllers/grades_controller_spec.rb&lt;br /&gt;
*spec/models/assignment_particpant_spec.rb&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*https://github.com/expertiza/expertiza&lt;br /&gt;
*https://ruby-doc.org&lt;br /&gt;
*https://www.softwaretestinghelp.com/cucumber-bdd-tool-selenium-tutorial-30/&lt;br /&gt;
*https://www.tutorialspoint.com/cucumber/cucumber_overview.htm&lt;br /&gt;
*https://www.toolsqa.com/cucumber-tutorial/&lt;br /&gt;
*http://rspec.info&lt;br /&gt;
*https://github.com/rspec/rspec-rails&lt;br /&gt;
*https://www.tutorialspoint.com/rspec/&lt;br /&gt;
*https://blog.teamtreehouse.com/an-introduction-to-rspec&lt;br /&gt;
*https://semaphoreci.com/community/tutorials/getting-started-with-rspec&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=124611</id>
		<title>CSC/ECE 517 Spring 2019 E1926 Improve self-review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=124611"/>
		<updated>2019-04-27T00:41:02Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E1926. Improve self-review, Link peer review &amp;amp; self-review to derive grades==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based Semester project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Team and Resources===&lt;br /&gt;
&lt;br /&gt;
* Team Members: Shraddha Bhadauria, Akhil Pabba, Rahul Sethi&lt;br /&gt;
* Pull Request: https://github.com/expertiza/expertiza/pull/1462 &lt;br /&gt;
* Screencast Video: &lt;br /&gt;
&lt;br /&gt;
===Problem Statement and Overview===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Expertiza provides an option for students to self-review their submissions. In which, each member of the team gets to evaluate their project on the same criteria as the peer review. However, these scores contribute in no way to calculate the overall score for their assignment. So, we focus on improving the self-review system and to extend its functionality. Some of the objectives we try to achieve for this project are as follows –&lt;br /&gt;
    &lt;br /&gt;
*Provide a formula that takes both the peer review score and self-review score into account for calculating the composite score.&lt;br /&gt;
*The composite score should get higher as the self-review score gets closer to the peer review score.&lt;br /&gt;
*Make sure that the peer review scores are not visible before the self-review submission.&lt;br /&gt;
*Display the composite score on the “View Scores” page.&lt;br /&gt;
*Display the self-review scores in the &amp;quot;View Scores&amp;quot; and heat map of peer-reviews, showing that they are a different type of review.&lt;br /&gt;
&lt;br /&gt;
The need for the self-review section is to know how well the students can judge their work and understand how to evaluate their flaws and rectify them. Also, if they can score themselves close to their peers, then it means that they have good self-assessment skills and they are being honest about what they think of their work. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Previous Process===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Previously, Expertiza allowed students to submit an assignment and provides a link for self-review. Once the self-reviewing was done, the submitted score gets stored in the database but was not used in calculating the overall score of the assignment for the student. Because of this, students can score themselves higher than what they should get. This helps students in no way. So, to make productive use of this score and to help students learn self-evaluating, we have made some changes in the review score calculation which is explained in the section below.&lt;br /&gt;
&lt;br /&gt;
===New Process===&lt;br /&gt;
&lt;br /&gt;
We derived a new formula that takes into account the self-review score and calculates a composite score, which will be the student's final score. After we made the changes needed, now the students are able to see their peer review score, Final score and the Final derived peer review score displayed on the “View scores” page.&lt;br /&gt;
 &lt;br /&gt;
[[File:E1926_scr_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
These scores will also be reflected in the &amp;quot;stats&amp;quot; as shown below&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_scr_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
In the same way, we will make some changes to the instructor’s page as well because the instructor should be able to see the self-reviewing score from each member of the team, displayed along with the peer review score for that assignment.&lt;br /&gt;
&lt;br /&gt;
===Application Flow===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_Flow_1.jpg]] [[File:E1926_Flow_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*The above image shows how the instructor will allow users to give a self-review on the work they have done. The instructor has to go to the review strategy tab while assignment creation to enable the self-review option.&lt;br /&gt;
&lt;br /&gt;
*User then can see the self-review option on the assignment to do tasks to give a self-review.&lt;br /&gt;
&lt;br /&gt;
*In the view scores page, a new column showing the self-review scores will be displayed.&lt;br /&gt;
&lt;br /&gt;
===Use case===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_use_case.jpg]] [[File:E1926_use_case_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Actors:&lt;br /&gt;
&lt;br /&gt;
   1. Instructor: This actor is responsible for creating assignments and adding students to the assignment. &lt;br /&gt;
   2. Student:    This actor is responsible for submitting, self-reviewing and viewing the scores. &lt;br /&gt;
&lt;br /&gt;
*Actions&lt;br /&gt;
   1. Instructor: Create Assignment, Enable Self-Review.&lt;br /&gt;
   2. Student: Login, Add work and Submit, Submit Self-Review, View Scores.&lt;br /&gt;
&lt;br /&gt;
===Formula Proposed===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We have to implement a way to combine self-review and peer-review scores to derive a composite score. We have to come up with a formula to derive the composite score as below with the help of research paper: https://www.ojs.unisa.edu.au/index.php/atna/article/viewFile/343/258.&lt;br /&gt;
   &lt;br /&gt;
   SAPA_Factor = sqrt(Self-ratings for individual team member / Average of ratings for the individual by peer team members)&lt;br /&gt;
   derived_score =  SAPA Factor * Average of ratings for the individual by peer team members;&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Now that the set up is done, to test this, you create 6 students and 2 assignments.&lt;br /&gt;
*One assignment has self-review enabled and the other assignment has self-review disabled.&lt;br /&gt;
*Then student should submit the assignments and the self-review should be done for the required assignment.&lt;br /&gt;
*Try giving same peer-review scores for both assignments and you should see the final score differs accordingly with the self-review score for one assignment but stays the same for the other.&lt;br /&gt;
*You should be able to see the final scores for any student matching to the proposed formula.&lt;br /&gt;
*Perform testing using “Cucumber” and “rSpecs”&lt;br /&gt;
&lt;br /&gt;
===Files identified to be modified===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*app/controllers/grades_controller.rb&lt;br /&gt;
*app/models/assignment_participant.rb&lt;br /&gt;
*app/models/author_feedback_questionnaire.rb&lt;br /&gt;
*app/models/review_questionnaire.rb&lt;br /&gt;
*app/models/response_map.rb&lt;br /&gt;
*app/models/vm_question_response.rb&lt;br /&gt;
*app/views/grades/_participant.html.erb&lt;br /&gt;
*app/views/grades/_participant_charts.html.erb&lt;br /&gt;
*app/views/grades/_participant_title.html.erb&lt;br /&gt;
*app/views/grades/view_team.html.erb&lt;br /&gt;
*app/views/reports/_self_review_report.html.erb&lt;br /&gt;
*spec/controllers/grades_controller_spec.rb&lt;br /&gt;
*spec/models/assignment_particpant_spec.rb&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*https://github.com/expertiza/expertiza&lt;br /&gt;
*https://ruby-doc.org&lt;br /&gt;
*https://www.softwaretestinghelp.com/cucumber-bdd-tool-selenium-tutorial-30/&lt;br /&gt;
*https://www.tutorialspoint.com/cucumber/cucumber_overview.htm&lt;br /&gt;
*https://www.toolsqa.com/cucumber-tutorial/&lt;br /&gt;
*http://rspec.info&lt;br /&gt;
*https://github.com/rspec/rspec-rails&lt;br /&gt;
*https://www.tutorialspoint.com/rspec/&lt;br /&gt;
*https://blog.teamtreehouse.com/an-introduction-to-rspec&lt;br /&gt;
*https://semaphoreci.com/community/tutorials/getting-started-with-rspec&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=124610</id>
		<title>CSC/ECE 517 Spring 2019 E1926 Improve self-review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=124610"/>
		<updated>2019-04-27T00:40:39Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E1926. Improve self-review, Link peer review &amp;amp; self-review to derive grades==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based Semester project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Team and Resources===&lt;br /&gt;
1. Team Members: Shraddha Bhadauria, Akhil Pabba, Rahul Sethi&lt;br /&gt;
2. Pull Request: https://github.com/expertiza/expertiza/pull/1462 &lt;br /&gt;
3. Screencast Video: &lt;br /&gt;
&lt;br /&gt;
===Problem Statement and Overview===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Expertiza provides an option for students to self-review their submissions. In which, each member of the team gets to evaluate their project on the same criteria as the peer review. However, these scores contribute in no way to calculate the overall score for their assignment. So, we focus on improving the self-review system and to extend its functionality. Some of the objectives we try to achieve for this project are as follows –&lt;br /&gt;
    &lt;br /&gt;
*Provide a formula that takes both the peer review score and self-review score into account for calculating the composite score.&lt;br /&gt;
*The composite score should get higher as the self-review score gets closer to the peer review score.&lt;br /&gt;
*Make sure that the peer review scores are not visible before the self-review submission.&lt;br /&gt;
*Display the composite score on the “View Scores” page.&lt;br /&gt;
*Display the self-review scores in the &amp;quot;View Scores&amp;quot; and heat map of peer-reviews, showing that they are a different type of review.&lt;br /&gt;
&lt;br /&gt;
The need for the self-review section is to know how well the students can judge their work and understand how to evaluate their flaws and rectify them. Also, if they can score themselves close to their peers, then it means that they have good self-assessment skills and they are being honest about what they think of their work. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Previous Process===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Previously, Expertiza allowed students to submit an assignment and provides a link for self-review. Once the self-reviewing was done, the submitted score gets stored in the database but was not used in calculating the overall score of the assignment for the student. Because of this, students can score themselves higher than what they should get. This helps students in no way. So, to make productive use of this score and to help students learn self-evaluating, we have made some changes in the review score calculation which is explained in the section below.&lt;br /&gt;
&lt;br /&gt;
===New Process===&lt;br /&gt;
&lt;br /&gt;
We derived a new formula that takes into account the self-review score and calculates a composite score, which will be the student's final score. After we made the changes needed, now the students are able to see their peer review score, Final score and the Final derived peer review score displayed on the “View scores” page.&lt;br /&gt;
 &lt;br /&gt;
[[File:E1926_scr_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
These scores will also be reflected in the &amp;quot;stats&amp;quot; as shown below&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_scr_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
In the same way, we will make some changes to the instructor’s page as well because the instructor should be able to see the self-reviewing score from each member of the team, displayed along with the peer review score for that assignment.&lt;br /&gt;
&lt;br /&gt;
===Application Flow===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_Flow_1.jpg]] [[File:E1926_Flow_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*The above image shows how the instructor will allow users to give a self-review on the work they have done. The instructor has to go to the review strategy tab while assignment creation to enable the self-review option.&lt;br /&gt;
&lt;br /&gt;
*User then can see the self-review option on the assignment to do tasks to give a self-review.&lt;br /&gt;
&lt;br /&gt;
*In the view scores page, a new column showing the self-review scores will be displayed.&lt;br /&gt;
&lt;br /&gt;
===Use case===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_use_case.jpg]] [[File:E1926_use_case_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Actors:&lt;br /&gt;
&lt;br /&gt;
   1. Instructor: This actor is responsible for creating assignments and adding students to the assignment. &lt;br /&gt;
   2. Student:    This actor is responsible for submitting, self-reviewing and viewing the scores. &lt;br /&gt;
&lt;br /&gt;
*Actions&lt;br /&gt;
   1. Instructor: Create Assignment, Enable Self-Review.&lt;br /&gt;
   2. Student: Login, Add work and Submit, Submit Self-Review, View Scores.&lt;br /&gt;
&lt;br /&gt;
===Formula Proposed===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We have to implement a way to combine self-review and peer-review scores to derive a composite score. We have to come up with a formula to derive the composite score as below with the help of research paper: https://www.ojs.unisa.edu.au/index.php/atna/article/viewFile/343/258.&lt;br /&gt;
   &lt;br /&gt;
   SAPA_Factor = sqrt(Self-ratings for individual team member / Average of ratings for the individual by peer team members)&lt;br /&gt;
   derived_score =  SAPA Factor * Average of ratings for the individual by peer team members;&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Now that the set up is done, to test this, you create 6 students and 2 assignments.&lt;br /&gt;
*One assignment has self-review enabled and the other assignment has self-review disabled.&lt;br /&gt;
*Then student should submit the assignments and the self-review should be done for the required assignment.&lt;br /&gt;
*Try giving same peer-review scores for both assignments and you should see the final score differs accordingly with the self-review score for one assignment but stays the same for the other.&lt;br /&gt;
*You should be able to see the final scores for any student matching to the proposed formula.&lt;br /&gt;
*Perform testing using “Cucumber” and “rSpecs”&lt;br /&gt;
&lt;br /&gt;
===Files identified to be modified===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*app/controllers/grades_controller.rb&lt;br /&gt;
*app/models/assignment_participant.rb&lt;br /&gt;
*app/models/author_feedback_questionnaire.rb&lt;br /&gt;
*app/models/review_questionnaire.rb&lt;br /&gt;
*app/models/response_map.rb&lt;br /&gt;
*app/models/vm_question_response.rb&lt;br /&gt;
*app/views/grades/_participant.html.erb&lt;br /&gt;
*app/views/grades/_participant_charts.html.erb&lt;br /&gt;
*app/views/grades/_participant_title.html.erb&lt;br /&gt;
*app/views/grades/view_team.html.erb&lt;br /&gt;
*app/views/reports/_self_review_report.html.erb&lt;br /&gt;
*spec/controllers/grades_controller_spec.rb&lt;br /&gt;
*spec/models/assignment_particpant_spec.rb&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*https://github.com/expertiza/expertiza&lt;br /&gt;
*https://ruby-doc.org&lt;br /&gt;
*https://www.softwaretestinghelp.com/cucumber-bdd-tool-selenium-tutorial-30/&lt;br /&gt;
*https://www.tutorialspoint.com/cucumber/cucumber_overview.htm&lt;br /&gt;
*https://www.toolsqa.com/cucumber-tutorial/&lt;br /&gt;
*http://rspec.info&lt;br /&gt;
*https://github.com/rspec/rspec-rails&lt;br /&gt;
*https://www.tutorialspoint.com/rspec/&lt;br /&gt;
*https://blog.teamtreehouse.com/an-introduction-to-rspec&lt;br /&gt;
*https://semaphoreci.com/community/tutorials/getting-started-with-rspec&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=124602</id>
		<title>CSC/ECE 517 Spring 2019 E1926 Improve self-review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=124602"/>
		<updated>2019-04-27T00:24:11Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: /* Files identified to be modified */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E1926. Improve self-review, Link peer review &amp;amp; self-review to derive grades==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based Semester project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Problem Statement and Overview===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Expertiza provides an option for students to self-review their submissions. In which, each member of the team gets to evaluate their project on the same criteria as the peer review. However, these scores contribute in no way to calculate the overall score for their assignment. So, we focus on improving the self-review system and to extend its functionality. Some of the objectives we try to achieve for this project are as follows –&lt;br /&gt;
    &lt;br /&gt;
*Provide a formula that takes both the peer review score and self-review score into account for calculating the composite score.&lt;br /&gt;
*The composite score should get higher as the self-review score gets closer to the peer review score.&lt;br /&gt;
*Make sure that the peer review scores are not visible before the self-review submission.&lt;br /&gt;
*Display the composite score on the “View Scores” page.&lt;br /&gt;
*Display the self-review scores in the &amp;quot;View Scores&amp;quot; and heat map of peer-reviews, showing that they are a different type of review.&lt;br /&gt;
&lt;br /&gt;
The need for the self-review section is to know how well the students can judge their work and understand how to evaluate their flaws and rectify them. Also, if they can score themselves close to their peers, then it means that they have good self-assessment skills and they are being honest about what they think of their work. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Previous Process===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Previously, Expertiza allowed students to submit an assignment and provides a link for self-review. Once the self-reviewing was done, the submitted score gets stored in the database but was not used in calculating the overall score of the assignment for the student. Because of this, students can score themselves higher than what they should get. This helps students in no way. So, to make productive use of this score and to help students learn self-evaluating, we have made some changes in the review score calculation which is explained in the section below.&lt;br /&gt;
&lt;br /&gt;
===New Process===&lt;br /&gt;
&lt;br /&gt;
We derived a new formula that takes into account the self-review score and calculates a composite score, which will be the student's final score. After we made the changes needed, now the students are able to see their peer review score, Final score and the Final derived peer review score displayed on the “View scores” page.&lt;br /&gt;
 &lt;br /&gt;
[[File:E1926_scr_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
These scores will also be reflected in the &amp;quot;stats&amp;quot; as shown below&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_scr_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
In the same way, we will make some changes to the instructor’s page as well because the instructor should be able to see the self-reviewing score from each member of the team, displayed along with the peer review score for that assignment.&lt;br /&gt;
&lt;br /&gt;
===Application Flow===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_Flow_1.jpg]] [[File:E1926_Flow_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*The above image shows how the instructor will allow users to give a self-review on the work they have done. The instructor has to go to the review strategy tab while assignment creation to enable the self-review option.&lt;br /&gt;
&lt;br /&gt;
*User then can see the self-review option on the assignment to do tasks to give a self-review.&lt;br /&gt;
&lt;br /&gt;
*In the view scores page, a new column showing the self-review scores will be displayed.&lt;br /&gt;
&lt;br /&gt;
===Use case===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_use_case.jpg]] [[File:E1926_use_case_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Actors:&lt;br /&gt;
&lt;br /&gt;
   1. Instructor: This actor is responsible for creating assignments and adding students to the assignment. &lt;br /&gt;
   2. Student:    This actor is responsible for submitting, self-reviewing and viewing the scores. &lt;br /&gt;
&lt;br /&gt;
*Actions&lt;br /&gt;
   1. Instructor: Create Assignment, Enable Self-Review.&lt;br /&gt;
   2. Student: Login, Add work and Submit, Submit Self-Review, View Scores.&lt;br /&gt;
&lt;br /&gt;
===Formula Proposed===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We have to implement a way to combine self-review and peer-review scores to derive a composite score. We have to come up with a formula to derive the composite score as below with the help of research paper: https://www.ojs.unisa.edu.au/index.php/atna/article/viewFile/343/258.&lt;br /&gt;
   &lt;br /&gt;
   SAPA_Factor = sqrt(Self-ratings for individual team member / Average of ratings for the individual by peer team members)&lt;br /&gt;
   derived_score =  SAPA Factor * Average of ratings for the individual by peer team members;&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Now that the set up is done, to test this, you create 6 students and 2 assignments.&lt;br /&gt;
*One assignment has self-review enabled and the other assignment has self-review disabled.&lt;br /&gt;
*Then student should submit the assignments and the self-review should be done for the required assignment.&lt;br /&gt;
*Try giving same peer-review scores for both assignments and you should see the final score differs accordingly with the self-review score for one assignment but stays the same for the other.&lt;br /&gt;
*You should be able to see the final scores for any student matching to the proposed formula.&lt;br /&gt;
*Perform testing using “Cucumber” and “rSpecs”&lt;br /&gt;
&lt;br /&gt;
===Files identified to be modified===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*app/controllers/grades_controller.rb&lt;br /&gt;
*app/models/assignment_participant.rb&lt;br /&gt;
*app/models/author_feedback_questionnaire.rb&lt;br /&gt;
*app/models/review_questionnaire.rb&lt;br /&gt;
*app/models/response_map.rb&lt;br /&gt;
*app/models/vm_question_response.rb&lt;br /&gt;
*app/views/grades/_participant.html.erb&lt;br /&gt;
*app/views/grades/_participant_charts.html.erb&lt;br /&gt;
*app/views/grades/_participant_title.html.erb&lt;br /&gt;
*app/views/grades/view_team.html.erb&lt;br /&gt;
*app/views/reports/_self_review_report.html.erb&lt;br /&gt;
*spec/controllers/grades_controller_spec.rb&lt;br /&gt;
*spec/models/assignment_particpant_spec.rb&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*https://github.com/expertiza/expertiza&lt;br /&gt;
*https://ruby-doc.org&lt;br /&gt;
*https://www.softwaretestinghelp.com/cucumber-bdd-tool-selenium-tutorial-30/&lt;br /&gt;
*https://www.tutorialspoint.com/cucumber/cucumber_overview.htm&lt;br /&gt;
*https://www.toolsqa.com/cucumber-tutorial/&lt;br /&gt;
*http://rspec.info&lt;br /&gt;
*https://github.com/rspec/rspec-rails&lt;br /&gt;
*https://www.tutorialspoint.com/rspec/&lt;br /&gt;
*https://blog.teamtreehouse.com/an-introduction-to-rspec&lt;br /&gt;
*https://semaphoreci.com/community/tutorials/getting-started-with-rspec&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=124601</id>
		<title>CSC/ECE 517 Spring 2019 E1926 Improve self-review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=124601"/>
		<updated>2019-04-27T00:23:25Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: /* Formula Proposed */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E1926. Improve self-review, Link peer review &amp;amp; self-review to derive grades==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based Semester project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Problem Statement and Overview===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Expertiza provides an option for students to self-review their submissions. In which, each member of the team gets to evaluate their project on the same criteria as the peer review. However, these scores contribute in no way to calculate the overall score for their assignment. So, we focus on improving the self-review system and to extend its functionality. Some of the objectives we try to achieve for this project are as follows –&lt;br /&gt;
    &lt;br /&gt;
*Provide a formula that takes both the peer review score and self-review score into account for calculating the composite score.&lt;br /&gt;
*The composite score should get higher as the self-review score gets closer to the peer review score.&lt;br /&gt;
*Make sure that the peer review scores are not visible before the self-review submission.&lt;br /&gt;
*Display the composite score on the “View Scores” page.&lt;br /&gt;
*Display the self-review scores in the &amp;quot;View Scores&amp;quot; and heat map of peer-reviews, showing that they are a different type of review.&lt;br /&gt;
&lt;br /&gt;
The need for the self-review section is to know how well the students can judge their work and understand how to evaluate their flaws and rectify them. Also, if they can score themselves close to their peers, then it means that they have good self-assessment skills and they are being honest about what they think of their work. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Previous Process===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Previously, Expertiza allowed students to submit an assignment and provides a link for self-review. Once the self-reviewing was done, the submitted score gets stored in the database but was not used in calculating the overall score of the assignment for the student. Because of this, students can score themselves higher than what they should get. This helps students in no way. So, to make productive use of this score and to help students learn self-evaluating, we have made some changes in the review score calculation which is explained in the section below.&lt;br /&gt;
&lt;br /&gt;
===New Process===&lt;br /&gt;
&lt;br /&gt;
We derived a new formula that takes into account the self-review score and calculates a composite score, which will be the student's final score. After we made the changes needed, now the students are able to see their peer review score, Final score and the Final derived peer review score displayed on the “View scores” page.&lt;br /&gt;
 &lt;br /&gt;
[[File:E1926_scr_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
These scores will also be reflected in the &amp;quot;stats&amp;quot; as shown below&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_scr_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
In the same way, we will make some changes to the instructor’s page as well because the instructor should be able to see the self-reviewing score from each member of the team, displayed along with the peer review score for that assignment.&lt;br /&gt;
&lt;br /&gt;
===Application Flow===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_Flow_1.jpg]] [[File:E1926_Flow_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*The above image shows how the instructor will allow users to give a self-review on the work they have done. The instructor has to go to the review strategy tab while assignment creation to enable the self-review option.&lt;br /&gt;
&lt;br /&gt;
*User then can see the self-review option on the assignment to do tasks to give a self-review.&lt;br /&gt;
&lt;br /&gt;
*In the view scores page, a new column showing the self-review scores will be displayed.&lt;br /&gt;
&lt;br /&gt;
===Use case===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_use_case.jpg]] [[File:E1926_use_case_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Actors:&lt;br /&gt;
&lt;br /&gt;
   1. Instructor: This actor is responsible for creating assignments and adding students to the assignment. &lt;br /&gt;
   2. Student:    This actor is responsible for submitting, self-reviewing and viewing the scores. &lt;br /&gt;
&lt;br /&gt;
*Actions&lt;br /&gt;
   1. Instructor: Create Assignment, Enable Self-Review.&lt;br /&gt;
   2. Student: Login, Add work and Submit, Submit Self-Review, View Scores.&lt;br /&gt;
&lt;br /&gt;
===Formula Proposed===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We have to implement a way to combine self-review and peer-review scores to derive a composite score. We have to come up with a formula to derive the composite score as below with the help of research paper: https://www.ojs.unisa.edu.au/index.php/atna/article/viewFile/343/258.&lt;br /&gt;
   &lt;br /&gt;
   SAPA_Factor = sqrt(Self-ratings for individual team member / Average of ratings for the individual by peer team members)&lt;br /&gt;
   derived_score =  SAPA Factor * Average of ratings for the individual by peer team members;&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Now that the set up is done, to test this, you create 6 students and 2 assignments.&lt;br /&gt;
*One assignment has self-review enabled and the other assignment has self-review disabled.&lt;br /&gt;
*Then student should submit the assignments and the self-review should be done for the required assignment.&lt;br /&gt;
*Try giving same peer-review scores for both assignments and you should see the final score differs accordingly with the self-review score for one assignment but stays the same for the other.&lt;br /&gt;
*You should be able to see the final scores for any student matching to the proposed formula.&lt;br /&gt;
*Perform testing using “Cucumber” and “rSpecs”&lt;br /&gt;
&lt;br /&gt;
===Files identified to be modified===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*app/controllers/grades_controller.rb&lt;br /&gt;
*app/models/assignment_participant.rb&lt;br /&gt;
*app/models/response_map.rb&lt;br /&gt;
*app/models/vm_question_response.rb&lt;br /&gt;
*app/models/vm_question_response_row.rb&lt;br /&gt;
*app/views/grades/_participant.html.erb&lt;br /&gt;
*app/views/grades/_participant_charts.html.erb&lt;br /&gt;
*app/views/grades/_participant_title.html.erb&lt;br /&gt;
*app/views/grades/view_team.html.erb&lt;br /&gt;
*app/views/reports/_self_review_report.html.erb&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*https://github.com/expertiza/expertiza&lt;br /&gt;
*https://ruby-doc.org&lt;br /&gt;
*https://www.softwaretestinghelp.com/cucumber-bdd-tool-selenium-tutorial-30/&lt;br /&gt;
*https://www.tutorialspoint.com/cucumber/cucumber_overview.htm&lt;br /&gt;
*https://www.toolsqa.com/cucumber-tutorial/&lt;br /&gt;
*http://rspec.info&lt;br /&gt;
*https://github.com/rspec/rspec-rails&lt;br /&gt;
*https://www.tutorialspoint.com/rspec/&lt;br /&gt;
*https://blog.teamtreehouse.com/an-introduction-to-rspec&lt;br /&gt;
*https://semaphoreci.com/community/tutorials/getting-started-with-rspec&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=124599</id>
		<title>CSC/ECE 517 Spring 2019 E1926 Improve self-review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=124599"/>
		<updated>2019-04-27T00:20:16Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E1926. Improve self-review, Link peer review &amp;amp; self-review to derive grades==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based Semester project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Problem Statement and Overview===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Expertiza provides an option for students to self-review their submissions. In which, each member of the team gets to evaluate their project on the same criteria as the peer review. However, these scores contribute in no way to calculate the overall score for their assignment. So, we focus on improving the self-review system and to extend its functionality. Some of the objectives we try to achieve for this project are as follows –&lt;br /&gt;
    &lt;br /&gt;
*Provide a formula that takes both the peer review score and self-review score into account for calculating the composite score.&lt;br /&gt;
*The composite score should get higher as the self-review score gets closer to the peer review score.&lt;br /&gt;
*Make sure that the peer review scores are not visible before the self-review submission.&lt;br /&gt;
*Display the composite score on the “View Scores” page.&lt;br /&gt;
*Display the self-review scores in the &amp;quot;View Scores&amp;quot; and heat map of peer-reviews, showing that they are a different type of review.&lt;br /&gt;
&lt;br /&gt;
The need for the self-review section is to know how well the students can judge their work and understand how to evaluate their flaws and rectify them. Also, if they can score themselves close to their peers, then it means that they have good self-assessment skills and they are being honest about what they think of their work. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Previous Process===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Previously, Expertiza allowed students to submit an assignment and provides a link for self-review. Once the self-reviewing was done, the submitted score gets stored in the database but was not used in calculating the overall score of the assignment for the student. Because of this, students can score themselves higher than what they should get. This helps students in no way. So, to make productive use of this score and to help students learn self-evaluating, we have made some changes in the review score calculation which is explained in the section below.&lt;br /&gt;
&lt;br /&gt;
===New Process===&lt;br /&gt;
&lt;br /&gt;
We derived a new formula that takes into account the self-review score and calculates a composite score, which will be the student's final score. After we made the changes needed, now the students are able to see their peer review score, Final score and the Final derived peer review score displayed on the “View scores” page.&lt;br /&gt;
 &lt;br /&gt;
[[File:E1926_scr_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
These scores will also be reflected in the &amp;quot;stats&amp;quot; as shown below&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_scr_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
In the same way, we will make some changes to the instructor’s page as well because the instructor should be able to see the self-reviewing score from each member of the team, displayed along with the peer review score for that assignment.&lt;br /&gt;
&lt;br /&gt;
===Application Flow===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_Flow_1.jpg]] [[File:E1926_Flow_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*The above image shows how the instructor will allow users to give a self-review on the work they have done. The instructor has to go to the review strategy tab while assignment creation to enable the self-review option.&lt;br /&gt;
&lt;br /&gt;
*User then can see the self-review option on the assignment to do tasks to give a self-review.&lt;br /&gt;
&lt;br /&gt;
*In the view scores page, a new column showing the self-review scores will be displayed.&lt;br /&gt;
&lt;br /&gt;
===Use case===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_use_case.jpg]] [[File:E1926_use_case_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Actors:&lt;br /&gt;
&lt;br /&gt;
   1. Instructor: This actor is responsible for creating assignments and adding students to the assignment. &lt;br /&gt;
   2. Student:    This actor is responsible for submitting, self-reviewing and viewing the scores. &lt;br /&gt;
&lt;br /&gt;
*Actions&lt;br /&gt;
   1. Instructor: Create Assignment, Enable Self-Review.&lt;br /&gt;
   2. Student: Login, Add work and Submit, Submit Self-Review, View Scores.&lt;br /&gt;
&lt;br /&gt;
===Formula Proposed===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We have to implement a way to combine self-review and peer-review scores to derive a composite score. We have to come up with a formula to derive the composite score as below.&lt;br /&gt;
   &lt;br /&gt;
   deviated_score_scale = (100 - abs(self_review_score - mean(all_peer_review_scores)))/100;&lt;br /&gt;
   derived_score =  deviated_score_scale * peer review score;&lt;br /&gt;
&lt;br /&gt;
The proposed formula first calculate by how much scale the self-review has deviated from the average peer-review score, the participant got.&lt;br /&gt;
&lt;br /&gt;
Then the derived score can be calculated by multiplying that scale with the actual peer-review score the participant got.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Now that the set up is done, to test this, you create 6 students and 2 assignments.&lt;br /&gt;
*One assignment has self-review enabled and the other assignment has self-review disabled.&lt;br /&gt;
*Then student should submit the assignments and the self-review should be done for the required assignment.&lt;br /&gt;
*Try giving same peer-review scores for both assignments and you should see the final score differs accordingly with the self-review score for one assignment but stays the same for the other.&lt;br /&gt;
*You should be able to see the final scores for any student matching to the proposed formula.&lt;br /&gt;
*Perform testing using “Cucumber” and “rSpecs”&lt;br /&gt;
&lt;br /&gt;
===Files identified to be modified===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*app/controllers/grades_controller.rb&lt;br /&gt;
*app/models/assignment_participant.rb&lt;br /&gt;
*app/models/response_map.rb&lt;br /&gt;
*app/models/vm_question_response.rb&lt;br /&gt;
*app/models/vm_question_response_row.rb&lt;br /&gt;
*app/views/grades/_participant.html.erb&lt;br /&gt;
*app/views/grades/_participant_charts.html.erb&lt;br /&gt;
*app/views/grades/_participant_title.html.erb&lt;br /&gt;
*app/views/grades/view_team.html.erb&lt;br /&gt;
*app/views/reports/_self_review_report.html.erb&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*https://github.com/expertiza/expertiza&lt;br /&gt;
*https://ruby-doc.org&lt;br /&gt;
*https://www.softwaretestinghelp.com/cucumber-bdd-tool-selenium-tutorial-30/&lt;br /&gt;
*https://www.tutorialspoint.com/cucumber/cucumber_overview.htm&lt;br /&gt;
*https://www.toolsqa.com/cucumber-tutorial/&lt;br /&gt;
*http://rspec.info&lt;br /&gt;
*https://github.com/rspec/rspec-rails&lt;br /&gt;
*https://www.tutorialspoint.com/rspec/&lt;br /&gt;
*https://blog.teamtreehouse.com/an-introduction-to-rspec&lt;br /&gt;
*https://semaphoreci.com/community/tutorials/getting-started-with-rspec&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E1926_scr_2.jpg&amp;diff=124598</id>
		<title>File:E1926 scr 2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E1926_scr_2.jpg&amp;diff=124598"/>
		<updated>2019-04-27T00:19:42Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E1926_scr_1.jpg&amp;diff=124597</id>
		<title>File:E1926 scr 1.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E1926_scr_1.jpg&amp;diff=124597"/>
		<updated>2019-04-27T00:16:58Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: uploaded a new version of &amp;amp;quot;File:E1926 scr 1.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E1926_scr_1.jpg&amp;diff=124596</id>
		<title>File:E1926 scr 1.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E1926_scr_1.jpg&amp;diff=124596"/>
		<updated>2019-04-27T00:16:57Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: uploaded a new version of &amp;amp;quot;File:E1926 scr 1.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E1926_scr_1.jpg&amp;diff=124595</id>
		<title>File:E1926 scr 1.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E1926_scr_1.jpg&amp;diff=124595"/>
		<updated>2019-04-27T00:15:26Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E1926_1.jpg&amp;diff=124593</id>
		<title>File:E1926 1.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E1926_1.jpg&amp;diff=124593"/>
		<updated>2019-04-27T00:12:57Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: uploaded a new version of &amp;amp;quot;File:E1926 1.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E1926_1.jpg&amp;diff=124592</id>
		<title>File:E1926 1.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E1926_1.jpg&amp;diff=124592"/>
		<updated>2019-04-27T00:12:15Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: uploaded a new version of &amp;amp;quot;File:E1926 1.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E1926_1.jpg&amp;diff=124591</id>
		<title>File:E1926 1.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E1926_1.jpg&amp;diff=124591"/>
		<updated>2019-04-27T00:11:26Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=123836</id>
		<title>CSC/ECE 517 Spring 2019 E1926 Improve self-review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=123836"/>
		<updated>2019-04-12T18:24:05Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: /* Test Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E1926. Improve self-review, Link peer review &amp;amp; self-review to derive grades==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based Semester project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Problem Statement and Overview===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Expertiza provides an option for students to self-review their submissions. In which, each member of the team gets to evaluate their project on the same criteria as the peer review. However, these scores contribute in no way to calculate the overall score for their assignment. So, we focus on improving the self-review system and to extend its functionality. Some of the objectives we try to achieve for this project are as follows –&lt;br /&gt;
    &lt;br /&gt;
*Provide a formula that takes both the peer review score and self-review score into account for calculating the composite score.&lt;br /&gt;
*The composite score should get higher as the self-review score gets closer to the peer review score.&lt;br /&gt;
*Make sure that the peer review scores are not visible before the self-review submission.&lt;br /&gt;
*Display the composite score on the “View Scores” page.&lt;br /&gt;
*Display the self-review scores in the &amp;quot;View Scores&amp;quot; and heat map of peer-reviews, showing that they are a different type of review.&lt;br /&gt;
&lt;br /&gt;
The need for the self-review section is to know how well the students can judge their work and understand how to evaluate their flaws and rectify them. Also, if they can score themselves close to their peers, then it means that they have good self-assessment skills and they are being honest about what they think of their work. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Current Process===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Currently, Expertiza allows students to submit an assignment and provides a link for self-review. Once the self-reviewing is done, the submitted score gets stored in the database but is not used in calculating the overall score of the assignment for the student. Because of this, students can score themselves higher than what they should get. This helps students in no way. So, to make productive use of this score and to help students learn self-evaluating, we have proposed to make some changes in the review score calculation which is explained in the below section.&lt;br /&gt;
&lt;br /&gt;
===Proposed Process===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The new formula will be devised on the basis of which a new composite grade will be derived. After we made the changes needed, the students will be able to see their self-review score, peer review score and the composite score displayed on the “View scores” page.&lt;br /&gt;
&lt;br /&gt;
After we make the changes needed, we will have a new column for the self-review score along with the peer review score and the calculated composite score.&lt;br /&gt;
In the same way, we will make some changes to the instructor’s page as well because the instructor should be able to see the self-reviewing score from each member of the team, displayed along with the peer review score for that assignment.&lt;br /&gt;
&lt;br /&gt;
===Application Flow===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_Flow_1.jpg]] [[File:E1926_Flow_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*The above image shows how the instructor will allow users to give a self-review on the work they have done. The instructor has to go to the review strategy tab while assignment creation to enable the self-review option.&lt;br /&gt;
&lt;br /&gt;
*User then can see the self-review option on the assignment to do tasks to give a self-review.&lt;br /&gt;
&lt;br /&gt;
*In the view scores page, a new column showing the self-review scores will be displayed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Use case===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_use_case.jpg]] [[File:E1926_use_case_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Actors:&lt;br /&gt;
&lt;br /&gt;
   1. Instructor: This actor is responsible for creating assignments and adding students to the assignment. &lt;br /&gt;
   2. Student:    This actor is responsible for submitting, self-reviewing and viewing the scores. &lt;br /&gt;
&lt;br /&gt;
*Actions&lt;br /&gt;
   1. Instructor: Create Assignment, Enable Self-Review.&lt;br /&gt;
   2. Student:    Login, Add work and Submit, Submit Self-Review, View Scores.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Formula Proposed===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We have to implement a way to combine self-review and peer-review scores to derive a composite score. We have to come up with a formula to derive the composite score as below.&lt;br /&gt;
   &lt;br /&gt;
   deviated_score_scale = (100 - abs(self_review_score - mean(all_peer_review_scores)))/100;&lt;br /&gt;
   derived_score =  deviated_score_scale * peer review score;&lt;br /&gt;
&lt;br /&gt;
The proposed formula first calculate by how much scale the self-review has deviated from the average peer-review score, the participant got.&lt;br /&gt;
&lt;br /&gt;
Then the derived score can be calculated by multiplying that scale with the actual peer-review score the participant got.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
*Once set up is done, figure out the flow of code and files which would be modified to implement the proposed solution.&lt;br /&gt;
*We shall Design a way to show them in the regular “View Scores” page and the alternate (heat-map) view.&lt;br /&gt;
*Then implement a way to combine self-review and peer-review scores to derive a composite score&lt;br /&gt;
*Implement the functionality in a way that the author(s) should be required to submit their self-evaluation(s) before seeing the results of their peer evaluations.&lt;br /&gt;
*Perform testing using “Cucumber” and “rSpecs”&lt;br /&gt;
&lt;br /&gt;
===Files identified to be modified===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*app/controllers/grades_controller.rb&lt;br /&gt;
*app/models/author_feedback_questionnaire.rb&lt;br /&gt;
*app/models/vm_question_response.rb&lt;br /&gt;
*app/models/review_questionnaire.rb&lt;br /&gt;
*app/models/teammate_review_questionnaire.rb&lt;br /&gt;
*spec/controllers/grades_controller_spec.rb&lt;br /&gt;
*spec/models/assignment_particpant_spec.rb&lt;br /&gt;
*app/models/assignment_participant.rb&lt;br /&gt;
*app/models/vm_question_response_row.rb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*https://github.com/expertiza/expertiza&lt;br /&gt;
*https://ruby-doc.org&lt;br /&gt;
*https://www.softwaretestinghelp.com/cucumber-bdd-tool-selenium-tutorial-30/&lt;br /&gt;
*https://www.tutorialspoint.com/cucumber/cucumber_overview.htm&lt;br /&gt;
*https://www.toolsqa.com/cucumber-tutorial/&lt;br /&gt;
*http://rspec.info&lt;br /&gt;
*https://github.com/rspec/rspec-rails&lt;br /&gt;
*https://www.tutorialspoint.com/rspec/&lt;br /&gt;
*https://blog.teamtreehouse.com/an-introduction-to-rspec&lt;br /&gt;
*https://semaphoreci.com/community/tutorials/getting-started-with-rspec&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=123456</id>
		<title>CSC/ECE 517 Spring 2019 E1926 Improve self-review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=123456"/>
		<updated>2019-04-08T00:17:17Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E1926. Improve self-review, Link peer review &amp;amp; self-review to derive grades==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based Semester project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Problem Statement and Overview===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Expertiza provides an option for students to self-review their submissions. In which, each member of the team gets to evaluate their project on the same criteria as the peer review. However, these scores contribute in no way to calculate the overall score for their assignment. So, we focus on improving the self-review system and to extend its functionality. Some of the objectives we try to achieve for this project are as follows –&lt;br /&gt;
    &lt;br /&gt;
*Provide a formula that takes both the peer review score and self-review score into account for calculating the composite score.&lt;br /&gt;
*The composite score should get higher as the self-review score gets closer to the peer review score.&lt;br /&gt;
*Make sure that the peer review scores are not visible before the self-review submission.&lt;br /&gt;
*Display the composite score on the “View Scores” page.&lt;br /&gt;
*Display the self-review scores in the &amp;quot;View Scores&amp;quot; and heat map of peer-reviews, showing that they are a different type of review.&lt;br /&gt;
&lt;br /&gt;
The need for the self-review section is to know how well the students can judge their work and understand how to evaluate their flaws and rectify them. Also, if they can score themselves close to their peers, then it means that they have good self-assessment skills and they are being honest about what they think of their work. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Current Process===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Currently, Expertiza allows students to submit an assignment and provides a link for self-review. The self-reviewing page looks like the picture below-&lt;br /&gt;
&lt;br /&gt;
   INSERT PICTURE&lt;br /&gt;
&lt;br /&gt;
Once the self-reviewing is done, the submitted score gets stored in the database but is not used in calculating the overall score of the assignment for the student. Because of this, students can score themselves higher than what they should get. This helps students in no way. So, to make productive use of this score and to help students learn self-evaluating, we have proposed to make some changes in the review score calculation which is explained in the below section. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Proposed Process===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The new formula will be devised on the basis of which a new composite grade will be derived. After we made the changes needed, the students will be able to see their self-review score, peer review score and the composite score displayed on the “View scores” page as shown below –&lt;br /&gt;
&lt;br /&gt;
   INSERT PICTURE&lt;br /&gt;
&lt;br /&gt;
As you can see from the picture above, we have a new column for the self-review score along with the peer review score and the calculated composite score.&lt;br /&gt;
In the same way, we made some changes to the instructor’s page as well because the instructor should be able to see the self-reviewing score from each member of the team, displayed along with the peer review score for that assignment. &lt;br /&gt;
&lt;br /&gt;
The figure below shows the changes –&lt;br /&gt;
&lt;br /&gt;
   INSERT PICTURE&lt;br /&gt;
   Add some lines describing image.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Application Flow===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_Flow_1.jpg]] [[File:E1926_Flow_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*The above image shows how the instructor will allow users to give a self-review on the work they have done. The instructor has to go to the review strategy tab while assignment creation to enable the self-review option.&lt;br /&gt;
&lt;br /&gt;
*User then can see the self-review option on the assignment to do tasks to give a self-review.&lt;br /&gt;
&lt;br /&gt;
*In the view scores page, a new column showing the self-review scores will be displayed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Use case===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_use_case.jpg]] [[File:E1926_use_case_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Actors:&lt;br /&gt;
&lt;br /&gt;
   1. Instructor: This actor is responsible for creating assignments and adding students to the assignment. &lt;br /&gt;
   2. Student:    This actor is responsible for submitting, self-reviewing and viewing the scores. &lt;br /&gt;
&lt;br /&gt;
*Actions&lt;br /&gt;
   1. Instructor: Create Assignment, Enable Self-Review.&lt;br /&gt;
   2. Student:    Login, Add work and Submit, Submit Self-Review, View Scores.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Formula Proposed===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We have to implement a way to combine self-review and peer-review scores to derive a composite score. We have to come up with a formula to derive the composite score as below.&lt;br /&gt;
   &lt;br /&gt;
   deviated_score_scale = (100 - abs(self_review_score - mean(all_peer_review_scores)))/100;&lt;br /&gt;
   derived_score =  deviated_score_scale * peer review score;&lt;br /&gt;
&lt;br /&gt;
The proposed formula first calculate by how much scale the self-review has deviated from the average peer-review score, the participant got.&lt;br /&gt;
&lt;br /&gt;
Then the derived score can be calculated by multiplying that scale with the actual peer-review score the participant got.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Set up expertiza locally on your system. Expertiza repository on Github: https://github.com/expertiza/expertiza&lt;br /&gt;
*Create yourself a Github account and fork the Expertiza repo. Fork the beta branch. &lt;br /&gt;
*Further steps to be followed from the below link. https://docs.google.com/document/d/1Ozw2Bj2u_LyeKUdDqAyQtz1stEIKrxkmRnwmNyUgmzw/edit#&lt;br /&gt;
*Once set up is done, figure out the flow of code and files which would be modified to implement the proposed solution.&lt;br /&gt;
*We shall Design a way to show them in the regular “View Scores” page and the alternate (heat-map) view.&lt;br /&gt;
*Then implement a way to combine self-review and peer-review scores to derive a composite score&lt;br /&gt;
*Implement the functionality in a way that the author(s) should be required to submit their self-evaluation(s) before seeing the results of their peer evaluations.&lt;br /&gt;
*Perform testing using “Cucumber” and “rSpecs”&lt;br /&gt;
*We shall be using “Cucumber” to perform acceptance testing.&lt;br /&gt;
*Cucumber is a tool based on Behavior Driven Development framework and is used to write acceptance tests for web application. It lets us automate functional testing in an easily readable and understandable format for Developers, Testers, etc.&lt;br /&gt;
*We shall be using “Rspecs” as well along with “Cucumber”.  The approach being followed in rspecs is to test applications is to test behavior rather than only specific methods. RSpec is composed of multiple libraries, which can be used independently with other testing tools like Cucumber.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Files identified to be modified===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*app/controllers/grades_controller.rb&lt;br /&gt;
*app/models/author_feedback_questionnaire.rb&lt;br /&gt;
*app/models/vm_question_response.rb&lt;br /&gt;
*app/models/review_questionnaire.rb&lt;br /&gt;
*app/models/teammate_review_questionnaire.rb&lt;br /&gt;
*spec/controllers/grades_controller_spec.rb&lt;br /&gt;
*spec/models/assignment_particpant_spec.rb&lt;br /&gt;
*app/models/assignment_participant.rb&lt;br /&gt;
*app/models/vm_question_response_row.rb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*https://github.com/expertiza/expertiza&lt;br /&gt;
*https://ruby-doc.org&lt;br /&gt;
*https://www.softwaretestinghelp.com/cucumber-bdd-tool-selenium-tutorial-30/&lt;br /&gt;
*https://www.tutorialspoint.com/cucumber/cucumber_overview.htm&lt;br /&gt;
*https://www.toolsqa.com/cucumber-tutorial/&lt;br /&gt;
*http://rspec.info&lt;br /&gt;
*https://github.com/rspec/rspec-rails&lt;br /&gt;
*https://www.tutorialspoint.com/rspec/&lt;br /&gt;
*https://blog.teamtreehouse.com/an-introduction-to-rspec&lt;br /&gt;
*https://semaphoreci.com/community/tutorials/getting-started-with-rspec&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=123455</id>
		<title>CSC/ECE 517 Spring 2019 E1926 Improve self-review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=123455"/>
		<updated>2019-04-08T00:15:42Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E1926. Improve self-review, Link peer review &amp;amp; self-review to derive grades==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based Semester project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Problem Statement and Overview===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Expertiza provides an option for students to self-review their submissions. In which, each member of the team gets to evaluate their project on the same criteria as the peer review. However, these scores contribute in no way to calculate the overall score for their assignment. So, we focus on improving the self-review system and to extend its functionality. Some of the objectives we try to achieve for this project are as follows –&lt;br /&gt;
    1) Provide a formula that takes both the peer review score and self-review score into account for calculating the composite score.&lt;br /&gt;
    2) The composite score should get higher as the self-review score gets closer to the peer review score.&lt;br /&gt;
    3) Make sure that the peer review scores are not visible before the self-review submission.&lt;br /&gt;
    4) Display the composite score on the “View Scores” page.&lt;br /&gt;
    5) Display the self-review scores in the &amp;quot;View Scores&amp;quot; and heat map of peer-reviews, showing that they are a different type of review.&lt;br /&gt;
&lt;br /&gt;
The need for the self-review section is to know how well the students can judge their work and understand how to evaluate their flaws and rectify them. Also, if they can score themselves close to their peers, then it means that they have good self-assessment skills and they are being honest about what they think of their work. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Current Process===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Currently, Expertiza allows students to submit an assignment and provides a link for self-review. The self-reviewing page looks like the picture below-&lt;br /&gt;
&lt;br /&gt;
   INSERT PICTURE&lt;br /&gt;
&lt;br /&gt;
Once the self-reviewing is done, the submitted score gets stored in the database but is not used in calculating the overall score of the assignment for the student. Because of this, students can score themselves higher than what they should get. This helps students in no way. So, to make productive use of this score and to help students learn self-evaluating, we have proposed to make some changes in the review score calculation which is explained in the below section. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Proposed Process===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The new formula will be devised on the basis of which a new composite grade will be derived. After we made the changes needed, the students will be able to see their self-review score, peer review score and the composite score displayed on the “View scores” page as shown below –&lt;br /&gt;
&lt;br /&gt;
   INSERT PICTURE&lt;br /&gt;
&lt;br /&gt;
As you can see from the picture above, we have a new column for the self-review score along with the peer review score and the calculated composite score.&lt;br /&gt;
In the same way, we made some changes to the instructor’s page as well because the instructor should be able to see the self-reviewing score from each member of the team, displayed along with the peer review score for that assignment. &lt;br /&gt;
&lt;br /&gt;
The figure below shows the changes –&lt;br /&gt;
&lt;br /&gt;
   INSERT PICTURE&lt;br /&gt;
   Add some lines describing image.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Application Flow===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_Flow_1.jpg]] [[File:E1926_Flow_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*The above image shows how the instructor will allow users to give a self-review on the work they have done. The instructor has to go to the review strategy tab while assignment creation to enable the self-review option.&lt;br /&gt;
&lt;br /&gt;
*User then can see the self-review option on the assignment to do tasks to give a self-review.&lt;br /&gt;
&lt;br /&gt;
*In the view scores page, a new column showing the self-review scores will be displayed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Use case===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_use_case.jpg]] [[File:E1926_use_case_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Actors:&lt;br /&gt;
&lt;br /&gt;
   1. Instructor: This actor is responsible for creating assignments and adding students to the assignment. &lt;br /&gt;
   2. Student:    This actor is responsible for submitting, self-reviewing and viewing the scores. &lt;br /&gt;
&lt;br /&gt;
*Actions&lt;br /&gt;
   1. Instructor: Create Assignment, Enable Self-Review.&lt;br /&gt;
   2. Student:    Login, Add work and Submit, Submit Self-Review, View Scores.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Formula Proposed===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We have to implement a way to combine self-review and peer-review scores to derive a composite score. We have to come up with a formula to derive the composite score as below.&lt;br /&gt;
   &lt;br /&gt;
   deviated_score_scale = (100 - abs(self_review_score - mean(all_peer_review_scores)))/100;&lt;br /&gt;
   derived_score =  deviated_score_scale * peer review score;&lt;br /&gt;
&lt;br /&gt;
The proposed formula first calculate by how much scale the self-review has deviated from the average peer-review score, the participant got.&lt;br /&gt;
&lt;br /&gt;
Then the derived score can be calculated by multiplying that scale with the actual peer-review score the participant got.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Set up expertiza locally on your system. Expertiza repository on Github: https://github.com/expertiza/expertiza&lt;br /&gt;
*Create yourself a Github account and fork the Expertiza repo. Fork the beta branch. &lt;br /&gt;
*Further steps to be followed from the below link. https://docs.google.com/document/d/1Ozw2Bj2u_LyeKUdDqAyQtz1stEIKrxkmRnwmNyUgmzw/edit#&lt;br /&gt;
*Once set up is done, figure out the flow of code and files which would be modified to implement the proposed solution.&lt;br /&gt;
*We shall Design a way to show them in the regular “View Scores” page and the alternate (heat-map) view.&lt;br /&gt;
*Then implement a way to combine self-review and peer-review scores to derive a composite score&lt;br /&gt;
*Implement the functionality in a way that the author(s) should be required to submit their self-evaluation(s) before seeing the results of their peer evaluations.&lt;br /&gt;
*Perform testing using “Cucumber” and “rSpecs”&lt;br /&gt;
*We shall be using “Cucumber” to perform acceptance testing.&lt;br /&gt;
*Cucumber is a tool based on Behavior Driven Development framework and is used to write acceptance tests for web application. It lets us automate functional testing in an easily readable and understandable format for Developers, Testers, etc.&lt;br /&gt;
*We shall be using “Rspecs” as well along with “Cucumber”.  The approach being followed in rspecs is to test applications is to test behavior rather than only specific methods. RSpec is composed of multiple libraries, which can be used independently with other testing tools like Cucumber.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Files identified to be modified===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*app/controllers/grades_controller.rb&lt;br /&gt;
*app/models/author_feedback_questionnaire.rb&lt;br /&gt;
*app/models/vm_question_response.rb&lt;br /&gt;
*app/models/review_questionnaire.rb&lt;br /&gt;
*app/models/teammate_review_questionnaire.rb&lt;br /&gt;
*spec/controllers/grades_controller_spec.rb&lt;br /&gt;
*spec/models/assignment_particpant_spec.rb&lt;br /&gt;
*app/models/assignment_participant.rb&lt;br /&gt;
*app/models/vm_question_response_row.rb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*https://github.com/expertiza/expertiza&lt;br /&gt;
*https://ruby-doc.org&lt;br /&gt;
*https://www.softwaretestinghelp.com/cucumber-bdd-tool-selenium-tutorial-30/&lt;br /&gt;
*https://www.tutorialspoint.com/cucumber/cucumber_overview.htm&lt;br /&gt;
*https://www.toolsqa.com/cucumber-tutorial/&lt;br /&gt;
*http://rspec.info&lt;br /&gt;
*https://github.com/rspec/rspec-rails&lt;br /&gt;
*https://www.tutorialspoint.com/rspec/&lt;br /&gt;
*https://blog.teamtreehouse.com/an-introduction-to-rspec&lt;br /&gt;
*https://semaphoreci.com/community/tutorials/getting-started-with-rspec&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=123454</id>
		<title>CSC/ECE 517 Spring 2019 E1926 Improve self-review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=123454"/>
		<updated>2019-04-08T00:12:41Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E1926. Improve self-review, Link peer review &amp;amp; self-review to derive grades==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based Semester project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
===Problem Statement and Overview===&lt;br /&gt;
&lt;br /&gt;
The Expertiza provides an option for students to self-review their submissions. In which, each member of the team gets to evaluate their project on the same criteria as the peer review. However, these scores contribute in no way to calculate the overall score for their assignment. So, we focus on improving the self-review system and to extend its functionality. Some of the objectives we try to achieve for this project are as follows –&lt;br /&gt;
    1) Provide a formula that takes both the peer review score and self-review score into account for calculating the composite score.&lt;br /&gt;
    2) The composite score should get higher as the self-review score gets closer to the peer review score.&lt;br /&gt;
    3) Make sure that the peer review scores are not visible before the self-review submission.&lt;br /&gt;
    4) Display the composite score on the “View Scores” page.&lt;br /&gt;
    5) Display the self-review scores in the &amp;quot;View Scores&amp;quot; and heat map of peer-reviews, showing that they are a different type of review.&lt;br /&gt;
&lt;br /&gt;
The need for the self-review section is to know how well the students can judge their work and understand how to evaluate their flaws and rectify them. Also, if they can score themselves close to their peers, then it means that they have good self-assessment skills and they are being honest about what they think of their work. &lt;br /&gt;
&lt;br /&gt;
===Current Process===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Currently, Expertiza allows students to submit an assignment and provides a link for self-review. The self-reviewing page looks like the picture below-&lt;br /&gt;
&lt;br /&gt;
   INSERT PICTURE&lt;br /&gt;
&lt;br /&gt;
Once the self-reviewing is done, the submitted score gets stored in the database but is not used in calculating the overall score of the assignment for the student. Because of this, students can score themselves higher than what they should get. This helps students in no way. So, to make productive use of this score and to help students learn self-evaluating, we have proposed to make some changes in the review score calculation which is explained in the below section. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Proposed Process===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The new formula will be devised on the basis of which a new composite grade will be derived. After we made the changes needed, the students will be able to see their self-review score, peer review score and the composite score displayed on the “View scores” page as shown below –&lt;br /&gt;
&lt;br /&gt;
   INSERT PICTURE&lt;br /&gt;
&lt;br /&gt;
As you can see from the picture above, we have a new column for the self-review score along with the peer review score and the calculated composite score.&lt;br /&gt;
In the same way, we made some changes to the instructor’s page as well because the instructor should be able to see the self-reviewing score from each member of the team, displayed along with the peer review score for that assignment. &lt;br /&gt;
&lt;br /&gt;
The figure below shows the changes –&lt;br /&gt;
&lt;br /&gt;
   INSERT PICTURE&lt;br /&gt;
   Add some lines describing image.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Application Flow===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_Flow_1.jpg]] [[File:E1926_Flow_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*The above image shows how the instructor will allow users to give a self-review on the work they have done. The instructor has to go to the review strategy tab while assignment creation to enable the self-review option.&lt;br /&gt;
&lt;br /&gt;
*User then can see the self-review option on the assignment to do tasks to give a self-review.&lt;br /&gt;
&lt;br /&gt;
*In the view scores page, a new column showing the self-review scores will be displayed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Use case===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_use_case.jpg]] [[File:E1926_use_case_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Actors:&lt;br /&gt;
&lt;br /&gt;
   1. Instructor: This actor is responsible for creating assignments and adding students to the assignment. &lt;br /&gt;
   2. Student:    This actor is responsible for submitting, self-reviewing and viewing the scores. &lt;br /&gt;
&lt;br /&gt;
*Actions&lt;br /&gt;
   1. Instructor: Create Assignment, Enable Self-Review.&lt;br /&gt;
   2. Student:    Login, Add work and Submit, Submit Self-Review, View Scores.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Formula Proposed===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We have to implement a way to combine self-review and peer-review scores to derive a composite score. We have to come up with a formula to derive the composite score as below.&lt;br /&gt;
   &lt;br /&gt;
   deviated_score_scale = (100 - abs(self_review_score - mean(all_peer_review_scores)))/100;&lt;br /&gt;
   derived_score =  deviated_score_scale * peer review score;&lt;br /&gt;
&lt;br /&gt;
The proposed formula first calculate by how much scale the self-review has deviated from the average peer-review score, the participant got.&lt;br /&gt;
&lt;br /&gt;
Then the derived score can be calculated by multiplying that scale with the actual peer-review score the participant got.&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Set up expertiza locally on your system. Expertiza repository on Github: https://github.com/expertiza/expertiza&lt;br /&gt;
*Create yourself a Github account and fork the Expertiza repo. Fork the beta branch. &lt;br /&gt;
*Further steps to be followed from the below link. https://docs.google.com/document/d/1Ozw2Bj2u_LyeKUdDqAyQtz1stEIKrxkmRnwmNyUgmzw/edit#&lt;br /&gt;
*Once set up is done, figure out the flow of code and files which would be modified to implement the proposed solution.&lt;br /&gt;
*We shall Design a way to show them in the regular “View Scores” page and the alternate (heat-map) view.&lt;br /&gt;
*Then implement a way to combine self-review and peer-review scores to derive a composite score&lt;br /&gt;
*Implement the functionality in a way that the author(s) should be required to submit their self-evaluation(s) before seeing the results of their peer evaluations.&lt;br /&gt;
*Perform testing using “Cucumber” and “rSpecs”&lt;br /&gt;
*We shall be using “Cucumber” to perform acceptance testing.&lt;br /&gt;
*Cucumber is a tool based on Behavior Driven Development framework and is used to write acceptance tests for web application. It lets us automate functional testing in an easily readable and understandable format for Developers, Testers, etc.&lt;br /&gt;
*We shall be using “Rspecs” as well along with “Cucumber”.  The approach being followed in rspecs is to test applications is to test behavior rather than only specific methods. RSpec is composed of multiple libraries, which can be used independently with other testing tools like Cucumber.&lt;br /&gt;
&lt;br /&gt;
===Files identified to be modified===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*app/controllers/grades_controller.rb&lt;br /&gt;
*app/models/author_feedback_questionnaire.rb&lt;br /&gt;
*app/models/vm_question_response.rb&lt;br /&gt;
*app/models/review_questionnaire.rb&lt;br /&gt;
*app/models/teammate_review_questionnaire.rb&lt;br /&gt;
*spec/controllers/grades_controller_spec.rb&lt;br /&gt;
*spec/models/assignment_particpant_spec.rb&lt;br /&gt;
*app/models/assignment_participant.rb&lt;br /&gt;
*app/models/vm_question_response_row.rb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
*https://github.com/expertiza/expertiza&lt;br /&gt;
*https://ruby-doc.org&lt;br /&gt;
*https://www.softwaretestinghelp.com/cucumber-bdd-tool-selenium-tutorial-30/&lt;br /&gt;
*https://www.tutorialspoint.com/cucumber/cucumber_overview.htm&lt;br /&gt;
*https://www.toolsqa.com/cucumber-tutorial/&lt;br /&gt;
*http://rspec.info&lt;br /&gt;
*https://github.com/rspec/rspec-rails&lt;br /&gt;
*https://www.tutorialspoint.com/rspec/&lt;br /&gt;
*https://blog.teamtreehouse.com/an-introduction-to-rspec&lt;br /&gt;
*https://semaphoreci.com/community/tutorials/getting-started-with-rspec&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=123451</id>
		<title>CSC/ECE 517 Spring 2019 E1926 Improve self-review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=123451"/>
		<updated>2019-04-07T23:57:46Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E1926. Improve self-review, Link peer review &amp;amp; self-review to derive grades==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based Semester project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Application Flow===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_Flow_1.jpg]] [[File:E1926_Flow_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*The above image shows how the instructor will allow users to give a self-review on the work they have done. The instructor has to go to the review strategy tab while assignment creation to enable the self-review option.&lt;br /&gt;
&lt;br /&gt;
*User then can see the self-review option on the assignment to do tasks to give a self-review.&lt;br /&gt;
&lt;br /&gt;
*In the view scores page, a new column showing the self-review scores will be displayed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Use case===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1926_use_case.jpg]] [[File:E1926_use_case_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Actors:&lt;br /&gt;
&lt;br /&gt;
   1. Instructor: This actor is responsible for creating assignments and adding students to the assignment. &lt;br /&gt;
   2. Student:    This actor is responsible for submitting, self-reviewing and viewing the scores. &lt;br /&gt;
&lt;br /&gt;
*Actions&lt;br /&gt;
   1. Instructor: Create Assignment, Enable Self-Review.&lt;br /&gt;
   2. Student:    Login, Add work and Submit, Submit Self-Review, View Scores.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Formula Proposed===&lt;br /&gt;
&lt;br /&gt;
We have to implement a way to combine self-review and peer-review scores to derive a composite score. We have to come up with a formula to derive the composite score as below.&lt;br /&gt;
   &lt;br /&gt;
   deviated_score_scale = (100 - abs(self_review_score - mean(all_peer_review_scores)))/100;&lt;br /&gt;
   derived_score =  deviated_score_scale * peer review score;&lt;br /&gt;
&lt;br /&gt;
The proposed formula first calculate by how much scale the self-review has deviated from the average peer-review score, the participant got.&lt;br /&gt;
&lt;br /&gt;
Then the derived score can be calculated by multiplying that scale with the actual peer-review score the participant got.&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E1926_Flow_2.jpg&amp;diff=123450</id>
		<title>File:E1926 Flow 2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E1926_Flow_2.jpg&amp;diff=123450"/>
		<updated>2019-04-07T23:57:03Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E1926_Flow_1.jpg&amp;diff=123449</id>
		<title>File:E1926 Flow 1.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E1926_Flow_1.jpg&amp;diff=123449"/>
		<updated>2019-04-07T23:56:47Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E1926_use_case_2.jpg&amp;diff=123448</id>
		<title>File:E1926 use case 2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E1926_use_case_2.jpg&amp;diff=123448"/>
		<updated>2019-04-07T23:48:47Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E1926_use_case.jpg&amp;diff=123447</id>
		<title>File:E1926 use case.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E1926_use_case.jpg&amp;diff=123447"/>
		<updated>2019-04-07T23:45:43Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=123446</id>
		<title>CSC/ECE 517 Spring 2019 E1926 Improve self-review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=123446"/>
		<updated>2019-04-07T23:36:34Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E1926. Improve self-review, Link peer review &amp;amp; self-review to derive grades==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based Semester project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Application Flow===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1799_design_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
*The above image shows how the instructor will allow users to give a self-review on the work they have done. The instructor has to go to the review strategy tab while assignment creation to enable the self-review option.&lt;br /&gt;
&lt;br /&gt;
*User then can see the self-review option on the assignment to do tasks to give a self-review.&lt;br /&gt;
&lt;br /&gt;
*In the view scores page, a new column showing the self-review scores will be displayed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Use case===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1799_design_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Actors:&lt;br /&gt;
&lt;br /&gt;
   1. Instructor: This actor is responsible for creating assignments and adding students to the assignment. &lt;br /&gt;
   2. Student:    This actor is responsible for submitting, self-reviewing and viewing the scores. &lt;br /&gt;
&lt;br /&gt;
*Actions&lt;br /&gt;
   1. Instructor: Create Assignment, Enable Self-Review.&lt;br /&gt;
   2. Student:    Login, Add work and Submit, Submit Self-Review, View Scores.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Formula Proposed===&lt;br /&gt;
&lt;br /&gt;
We have to implement a way to combine self-review and peer-review scores to derive a composite score. We have to come up with a formula to derive the composite score as below.&lt;br /&gt;
   &lt;br /&gt;
   deviated_score_scale = (100 - abs(self_review_score - mean(all_peer_review_scores)))/100;&lt;br /&gt;
   derived_score =  deviated_score_scale * peer review score;&lt;br /&gt;
&lt;br /&gt;
The proposed formula first calculate by how much scale the self-review has deviated from the average peer-review score, the participant got.&lt;br /&gt;
&lt;br /&gt;
Then the derived score can be calculated by multiplying that scale with the actual peer-review score the participant got.&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=123445</id>
		<title>CSC/ECE 517 Spring 2019 E1926 Improve self-review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=123445"/>
		<updated>2019-04-07T23:27:02Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E1926. Improve self-review, Link peer review &amp;amp; self-review to derive grades==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based Semester project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
===Application Flow===&lt;br /&gt;
&lt;br /&gt;
[[File:E1799_design_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
*The above image shows how the instructor will allow users to give a self-review on the work they have done. The instructor has to go to the review strategy tab while assignment creation to enable the self-review option.&lt;br /&gt;
&lt;br /&gt;
*User then can see the self-review option on the assignment to do tasks to give a self-review.&lt;br /&gt;
&lt;br /&gt;
*In the view scores page, a new column showing the self-review scores will be displayed.&lt;br /&gt;
&lt;br /&gt;
===Use case===&lt;br /&gt;
&lt;br /&gt;
[[File:E1799_design_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Actors:&lt;br /&gt;
&lt;br /&gt;
   1. Instructor: This actor is responsible for creating assignments and adding students to the assignment. &lt;br /&gt;
   2. Student:    This actor is responsible for submitting, self-reviewing and viewing the scores. &lt;br /&gt;
&lt;br /&gt;
*Actions&lt;br /&gt;
   1. Instructor: Create Assignment, Enable Self-Review.&lt;br /&gt;
   2. Student:    Login, Add work and Submit, Submit Self-Review, View Scores.&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=123443</id>
		<title>CSC/ECE 517 Spring 2019 E1926 Improve self-review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=123443"/>
		<updated>2019-04-07T23:21:58Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E1926. Improve self-review, Link peer review &amp;amp; self-review to derive grades==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based Semester project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
===Application Flow===&lt;br /&gt;
&lt;br /&gt;
[[File:E1799_design_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
The above image shows how instructor will allow users to give a self review on the work they have done. Instructor have to go to the review strategy tab while assignment creation to enable the self review option.&lt;br /&gt;
&lt;br /&gt;
User then can see the self review option on the assignment to do tasks to give a self-review.&lt;br /&gt;
&lt;br /&gt;
In the view scores page a new collumn showing the self review scores will be displayed.&lt;br /&gt;
&lt;br /&gt;
===Use case===&lt;br /&gt;
&lt;br /&gt;
[[File:E1799_design_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Actors:&lt;br /&gt;
&lt;br /&gt;
    Instructor: This actor is responsible for creating assignments and adding students to the assignment. &lt;br /&gt;
    Student: This actor is responsible for submitting, self-reviewing and viewing the scores. &lt;br /&gt;
&lt;br /&gt;
All the other use cases are implemented except “View Scores with self-review column and composite score”&lt;br /&gt;
&lt;br /&gt;
'''Use Case: View score with self-review column and composite score'''&lt;br /&gt;
&lt;br /&gt;
Preconditions:&lt;br /&gt;
&lt;br /&gt;
   1.The Instructor creates Assignments and checks the Allow Self Review check box in the Assignment&lt;br /&gt;
   2.The Student should submit the assignment and self-review.&lt;br /&gt;
   3.The other students should submit the reviews of the work submitted.&lt;br /&gt;
&lt;br /&gt;
Student Sequence:&lt;br /&gt;
&lt;br /&gt;
   The student should login.&lt;br /&gt;
   The student should browse and upload the assignment.&lt;br /&gt;
   The student should submit the assignment.&lt;br /&gt;
   The student should submit the self-review.&lt;br /&gt;
   The student should choose your scores to view the score.&lt;br /&gt;
   The student should be able to see the peer-review score with the self-review scores and composite score.&lt;br /&gt;
&lt;br /&gt;
Post Conditions:&lt;br /&gt;
&lt;br /&gt;
   The self-review and composite score will be visible on the page.&lt;br /&gt;
&lt;br /&gt;
===Formula Proposed===&lt;br /&gt;
&lt;br /&gt;
The composite score is calculated using both self-review score and peer-review score (both are graded over 5 points for each criteria). &lt;br /&gt;
The composite score is calculated as follows:&lt;br /&gt;
&lt;br /&gt;
   composite score = [10 - abs(self-review score - peer review score)] * peer review score / 10&lt;br /&gt;
&lt;br /&gt;
By using this formula for calculating composite score we are discouraging students from either exaggerating or underrating their performance. The composite score model assigns more weight to the peer review score since the peer review score being used is the average of all peer review scores assigned and hence tends to be more appropriate than a single self-review.&lt;br /&gt;
&lt;br /&gt;
Also this composite score formula gives the score on a scale which is identical to the scale of the self and peer review score. Thus this formula is not dependent on the scale of the self-review and peer-review score as it will also return the composite score on the same scale.&lt;br /&gt;
&lt;br /&gt;
For example: If someone gets an average peer review score of 3.5/5 and he gives 3.5/5  (self-review score) while reviewing his project, then he will get a composite score of 3.5/5. And instead if the student reviews his project for 2/5 then the student will get a composite score of 2.975/5.&lt;br /&gt;
&lt;br /&gt;
===Implementation===&lt;br /&gt;
&lt;br /&gt;
As stated above the ability to do self-reviews has already been implemented. This can be seen from the image shown below. The instructor has this ability to enable self-reviews&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
[[File:Oodd abhisu.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In our project, we were successful in displaying both the self-review score and composite review score on the view scores page. Shown below is an example of the output in the student profile. As we can see the self-review icon has a blue background to indicate that it is different from other peer reviews.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:student view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The alternate view was also modified to accommodate a pictorial representation of the self-review scores. The modified alternate view scores page is shown below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:alternate view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The same was achieved in the instructor profile too. In the current implementation of expertiza when self-review was not assigned, the instructor would view the scores of the first student in each team (it wouldn't matter much because without self-review all students in a team would have the same scores). But this would be a problem when self-review was enabled so we decided to display all the self-review scores of all students in the team for instructor view. As it can be seen below self-reviews of all students in the team (distinguished by their usernames) are indicated by blue background to differentiate them from peer review scores.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Instructor view.PNG]]&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=123442</id>
		<title>CSC/ECE 517 Spring 2019 E1926 Improve self-review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=123442"/>
		<updated>2019-04-07T23:18:37Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E1926. Improve self-review, Link peer review &amp;amp; self-review to derive grades==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based Semester project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
===Application Flow===&lt;br /&gt;
&lt;br /&gt;
[[File:E1799_design_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
The instructor has to login and create an assignment by checking allow self-review option. The instructor has to add the topic and assign students to the topic. Now, the student has to login and submit the assignment. The self-review link is visible in the page. The student should give the self-review. After giving the self-review, the student should be able to see the peer review, self-review and the composite score.\&lt;br /&gt;
&lt;br /&gt;
===Use case===&lt;br /&gt;
[[File:E1799_design_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Actors:&lt;br /&gt;
&lt;br /&gt;
    Instructor: This actor is responsible for creating assignments and adding students to the assignment. &lt;br /&gt;
    Student: This actor is responsible for submitting, self-reviewing and viewing the scores. &lt;br /&gt;
&lt;br /&gt;
All the other use cases are implemented except “View Scores with self-review column and composite score”&lt;br /&gt;
&lt;br /&gt;
'''Use Case: View score with self-review column and composite score'''&lt;br /&gt;
&lt;br /&gt;
Preconditions:&lt;br /&gt;
&lt;br /&gt;
   1.The Instructor creates Assignments and checks the Allow Self Review check box in the Assignment&lt;br /&gt;
   2.The Student should submit the assignment and self-review.&lt;br /&gt;
   3.The other students should submit the reviews of the work submitted.&lt;br /&gt;
&lt;br /&gt;
Student Sequence:&lt;br /&gt;
&lt;br /&gt;
   The student should login.&lt;br /&gt;
   The student should browse and upload the assignment.&lt;br /&gt;
   The student should submit the assignment.&lt;br /&gt;
   The student should submit the self-review.&lt;br /&gt;
   The student should choose your scores to view the score.&lt;br /&gt;
   The student should be able to see the peer-review score with the self-review scores and composite score.&lt;br /&gt;
&lt;br /&gt;
Post Conditions:&lt;br /&gt;
&lt;br /&gt;
   The self-review and composite score will be visible on the page.&lt;br /&gt;
&lt;br /&gt;
===Formula Proposed===&lt;br /&gt;
The composite score is calculated using both self-review score and peer-review score (both are graded over 5 points for each criteria). &lt;br /&gt;
The composite score is calculated as follows:&lt;br /&gt;
&lt;br /&gt;
   composite score = [10 - abs(self-review score - peer review score)] * peer review score / 10&lt;br /&gt;
&lt;br /&gt;
By using this formula for calculating composite score we are discouraging students from either exaggerating or underrating their performance. The composite score model assigns more weight to the peer review score since the peer review score being used is the average of all peer review scores assigned and hence tends to be more appropriate than a single self-review.&lt;br /&gt;
&lt;br /&gt;
Also this composite score formula gives the score on a scale which is identical to the scale of the self and peer review score. Thus this formula is not dependent on the scale of the self-review and peer-review score as it will also return the composite score on the same scale.&lt;br /&gt;
&lt;br /&gt;
For example: If someone gets an average peer review score of 3.5/5 and he gives 3.5/5  (self-review score) while reviewing his project, then he will get a composite score of 3.5/5. And instead if the student reviews his project for 2/5 then the student will get a composite score of 2.975/5.&lt;br /&gt;
&lt;br /&gt;
===Implementation===&lt;br /&gt;
&lt;br /&gt;
As stated above the ability to do self-reviews has already been implemented. This can be seen from the image shown below. The instructor has this ability to enable self-reviews&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
[[File:Oodd abhisu.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In our project, we were successful in displaying both the self-review score and composite review score on the view scores page. Shown below is an example of the output in the student profile. As we can see the self-review icon has a blue background to indicate that it is different from other peer reviews.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:student view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The alternate view was also modified to accommodate a pictorial representation of the self-review scores. The modified alternate view scores page is shown below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:alternate view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The same was achieved in the instructor profile too. In the current implementation of expertiza when self-review was not assigned, the instructor would view the scores of the first student in each team (it wouldn't matter much because without self-review all students in a team would have the same scores). But this would be a problem when self-review was enabled so we decided to display all the self-review scores of all students in the team for instructor view. As it can be seen below self-reviews of all students in the team (distinguished by their usernames) are indicated by blue background to differentiate them from peer review scores.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Instructor view.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
Test cases are as follows:&lt;br /&gt;
* Peer-reviews cannot be viewed before a self-review is completed.&lt;br /&gt;
This ensures that the student is not able to see his peer-review score before writing his self-review as the composite score takes into account the difference between the student peer-review and self-review score.&lt;br /&gt;
* Self-review scores are displayed with peer-review scores.&lt;br /&gt;
This enables the student and instructor to view all his scores in one place.&lt;br /&gt;
* The composite score must be properly calculated.&lt;br /&gt;
The composite score must be calculated so as to give students more points if their self-review score is closer to the peer review score.&lt;br /&gt;
* Composite score must be visible in both view scores page and Alternate view.&lt;br /&gt;
The scores must be displayed in both the views.&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=123441</id>
		<title>CSC/ECE 517 Spring 2019 E1926 Improve self-review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=123441"/>
		<updated>2019-04-07T22:52:37Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/CSC_517_Spring_2019_E1926_Improve_self-review&amp;diff=123440</id>
		<title>CSC/CSC 517 Spring 2019 E1926 Improve self-review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/CSC_517_Spring_2019_E1926_Improve_self-review&amp;diff=123440"/>
		<updated>2019-04-07T22:51:59Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=123431</id>
		<title>CSC/ECE 517 Spring 2019 E1926 Improve self-review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_E1926_Improve_self-review&amp;diff=123431"/>
		<updated>2019-04-07T19:28:37Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: Created page with &amp;quot;==E1854. Improve self-review, Link peer review &amp;amp; self-review to derive grades==  This page provides a description of the Expertiza based Semester project.   __TOC__  ===About Exp...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E1854. Improve self-review, Link peer review &amp;amp; self-review to derive grades==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based Semester project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
&lt;br /&gt;
Expertiza has the ability to require self-reviews on projects, self-review is basically asking each team member in the group to evaluate their project on the same criteria as peer review, these self-review scores do not have much functionality currently. This project seeks to improve upon the self-review system, and extend its functionality. The main points of this project are as follows:&lt;br /&gt;
*Create a method to calculate a derived score (composite score) between self and peer-reviews. The closer the self-review is to the peer-review, the greater the score. Display this score on the &amp;quot;View Scores&amp;quot; page.&lt;br /&gt;
*Make sure that the peer-reviews should not be visible before self-review completion. Display the correct review scores accordingly.&lt;br /&gt;
*Display the self-review scores in the &amp;quot;View Scores&amp;quot; and heat map of peer-reviews, denoting that they are a different type of review.&lt;br /&gt;
&lt;br /&gt;
===Application Flow===&lt;br /&gt;
&lt;br /&gt;
[[File:E1799_design_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
The instructor has to login and create an assignment by checking allow self-review option. The instructor has to add the topic and assign students to the topic. Now, the student has to login and submit the assignment. The self-review link is visible in the page. The student should give the self-review. After giving the self-review, the student should be able to see the peer review, self-review and the composite score.\&lt;br /&gt;
&lt;br /&gt;
===Use case Diagram===&lt;br /&gt;
[[File:E1799_design_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Actors:&lt;br /&gt;
&lt;br /&gt;
    Instructor: This actor is responsible for creating assignments and adding students to the assignment. &lt;br /&gt;
    Student: This actor is responsible for submitting, self-reviewing and viewing the scores. &lt;br /&gt;
&lt;br /&gt;
All the other use cases are implemented except “View Scores with self-review column and composite score”&lt;br /&gt;
&lt;br /&gt;
'''Use Case: View score with self-review column and composite score'''&lt;br /&gt;
&lt;br /&gt;
Preconditions:&lt;br /&gt;
&lt;br /&gt;
   1.The Instructor creates Assignments and checks the Allow Self Review check box in the Assignment&lt;br /&gt;
   2.The Student should submit the assignment and self-review.&lt;br /&gt;
   3.The other students should submit the reviews of the work submitted.&lt;br /&gt;
&lt;br /&gt;
Student Sequence:&lt;br /&gt;
&lt;br /&gt;
   The student should login.&lt;br /&gt;
   The student should browse and upload the assignment.&lt;br /&gt;
   The student should submit the assignment.&lt;br /&gt;
   The student should submit the self-review.&lt;br /&gt;
   The student should choose your scores to view the score.&lt;br /&gt;
   The student should be able to see the peer-review score with the self-review scores and composite score.&lt;br /&gt;
&lt;br /&gt;
Post Conditions:&lt;br /&gt;
&lt;br /&gt;
   The self-review and composite score will be visible on the page.&lt;br /&gt;
&lt;br /&gt;
===Method to calculate Composite Score===&lt;br /&gt;
The composite score is calculated using both self-review score and peer-review score (both are graded over 5 points for each criteria). &lt;br /&gt;
The composite score is calculated as follows:&lt;br /&gt;
&lt;br /&gt;
   composite score = [10 - abs(self-review score - peer review score)] * peer review score / 10&lt;br /&gt;
&lt;br /&gt;
By using this formula for calculating composite score we are discouraging students from either exaggerating or underrating their performance. The composite score model assigns more weight to the peer review score since the peer review score being used is the average of all peer review scores assigned and hence tends to be more appropriate than a single self-review.&lt;br /&gt;
&lt;br /&gt;
Also this composite score formula gives the score on a scale which is identical to the scale of the self and peer review score. Thus this formula is not dependent on the scale of the self-review and peer-review score as it will also return the composite score on the same scale.&lt;br /&gt;
&lt;br /&gt;
For example: If someone gets an average peer review score of 3.5/5 and he gives 3.5/5  (self-review score) while reviewing his project, then he will get a composite score of 3.5/5. And instead if the student reviews his project for 2/5 then the student will get a composite score of 2.975/5.&lt;br /&gt;
&lt;br /&gt;
===Implementation===&lt;br /&gt;
&lt;br /&gt;
As stated above the ability to do self-reviews has already been implemented. This can be seen from the image shown below. The instructor has this ability to enable self-reviews&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
[[File:Oodd abhisu.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In our project, we were successful in displaying both the self-review score and composite review score on the view scores page. Shown below is an example of the output in the student profile. As we can see the self-review icon has a blue background to indicate that it is different from other peer reviews.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:student view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The alternate view was also modified to accommodate a pictorial representation of the self-review scores. The modified alternate view scores page is shown below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:alternate view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The same was achieved in the instructor profile too. In the current implementation of expertiza when self-review was not assigned, the instructor would view the scores of the first student in each team (it wouldn't matter much because without self-review all students in a team would have the same scores). But this would be a problem when self-review was enabled so we decided to display all the self-review scores of all students in the team for instructor view. As it can be seen below self-reviews of all students in the team (distinguished by their usernames) are indicated by blue background to differentiate them from peer review scores.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Instructor view.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
Test cases are as follows:&lt;br /&gt;
* Peer-reviews cannot be viewed before a self-review is completed.&lt;br /&gt;
This ensures that the student is not able to see his peer-review score before writing his self-review as the composite score takes into account the difference between the student peer-review and self-review score.&lt;br /&gt;
* Self-review scores are displayed with peer-review scores.&lt;br /&gt;
This enables the student and instructor to view all his scores in one place.&lt;br /&gt;
* The composite score must be properly calculated.&lt;br /&gt;
The composite score must be calculated so as to give students more points if their self-review score is closer to the peer review score.&lt;br /&gt;
* Composite score must be visible in both view scores page and Alternate view.&lt;br /&gt;
The scores must be displayed in both the views.&lt;br /&gt;
&lt;br /&gt;
===Files Changed===&lt;br /&gt;
*app/controllers/grades_controller.rb&lt;br /&gt;
*app/models/assignment_participant.rb&lt;br /&gt;
*app/models/author_feedback_questionnaire.rb&lt;br /&gt;
*app/models/response_map.rb&lt;br /&gt;
*app/models/vm_question_response.rb&lt;br /&gt;
*app/models/review_questionnaire.rb&lt;br /&gt;
*app/models/teammate_review_questionnaire.rb&lt;br /&gt;
*app/views/grades/_participant.html.erb&lt;br /&gt;
*app/views/grades/_participant_charts.html.erb&lt;br /&gt;
*app/views/grades/_participant_title.html.erb&lt;br /&gt;
*app/models/vm_question_response_row.rb&lt;br /&gt;
*app/views/grades/view_team.html.erb&lt;br /&gt;
*spec/controllers/grades_controller_spec.rb&lt;br /&gt;
*spec/models/assignment_particpant_spec.rb&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1326 Pull Request]&lt;br /&gt;
#[https://www.youtube.com/watch?v=TBStYgnWiUI&amp;amp;feature=youtu.be Screencast video]&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/CSC_517_Spring_2019_E1926_Improve_self-review&amp;diff=123430</id>
		<title>CSC/CSC 517 Spring 2019 E1926 Improve self-review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/CSC_517_Spring_2019_E1926_Improve_self-review&amp;diff=123430"/>
		<updated>2019-04-07T19:25:43Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: Created page with &amp;quot;==E1854. Improve self-review, Link peer review &amp;amp; self-review to derive grades==  This page provides a description of the Expertiza based Semester project.   __TOC__  ===About Exp...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E1854. Improve self-review, Link peer review &amp;amp; self-review to derive grades==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based Semester project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
&lt;br /&gt;
Expertiza has the ability to require self-reviews on projects, self-review is basically asking each team member in the group to evaluate their project on the same criteria as peer review, these self-review scores do not have much functionality currently. This project seeks to improve upon the self-review system, and extend its functionality. The main points of this project are as follows:&lt;br /&gt;
*Create a method to calculate a derived score (composite score) between self and peer-reviews. The closer the self-review is to the peer-review, the greater the score. Display this score on the &amp;quot;View Scores&amp;quot; page.&lt;br /&gt;
*Make sure that the peer-reviews should not be visible before self-review completion. Display the correct review scores accordingly.&lt;br /&gt;
*Display the self-review scores in the &amp;quot;View Scores&amp;quot; and heat map of peer-reviews, denoting that they are a different type of review.&lt;br /&gt;
&lt;br /&gt;
===Application Flow===&lt;br /&gt;
&lt;br /&gt;
[[File:E1799_design_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
The instructor has to login and create an assignment by checking allow self-review option. The instructor has to add the topic and assign students to the topic. Now, the student has to login and submit the assignment. The self-review link is visible in the page. The student should give the self-review. After giving the self-review, the student should be able to see the peer review, self-review and the composite score.\&lt;br /&gt;
&lt;br /&gt;
===Use case Diagram===&lt;br /&gt;
[[File:E1799_design_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Actors:&lt;br /&gt;
&lt;br /&gt;
    Instructor: This actor is responsible for creating assignments and adding students to the assignment. &lt;br /&gt;
    Student: This actor is responsible for submitting, self-reviewing and viewing the scores. &lt;br /&gt;
&lt;br /&gt;
All the other use cases are implemented except “View Scores with self-review column and composite score”&lt;br /&gt;
&lt;br /&gt;
'''Use Case: View score with self-review column and composite score'''&lt;br /&gt;
&lt;br /&gt;
Preconditions:&lt;br /&gt;
&lt;br /&gt;
   1.The Instructor creates Assignments and checks the Allow Self Review check box in the Assignment&lt;br /&gt;
   2.The Student should submit the assignment and self-review.&lt;br /&gt;
   3.The other students should submit the reviews of the work submitted.&lt;br /&gt;
&lt;br /&gt;
Student Sequence:&lt;br /&gt;
&lt;br /&gt;
   The student should login.&lt;br /&gt;
   The student should browse and upload the assignment.&lt;br /&gt;
   The student should submit the assignment.&lt;br /&gt;
   The student should submit the self-review.&lt;br /&gt;
   The student should choose your scores to view the score.&lt;br /&gt;
   The student should be able to see the peer-review score with the self-review scores and composite score.&lt;br /&gt;
&lt;br /&gt;
Post Conditions:&lt;br /&gt;
&lt;br /&gt;
   The self-review and composite score will be visible on the page.&lt;br /&gt;
&lt;br /&gt;
===Method to calculate Composite Score===&lt;br /&gt;
The composite score is calculated using both self-review score and peer-review score (both are graded over 5 points for each criteria). &lt;br /&gt;
The composite score is calculated as follows:&lt;br /&gt;
&lt;br /&gt;
   composite score = [10 - abs(self-review score - peer review score)] * peer review score / 10&lt;br /&gt;
&lt;br /&gt;
By using this formula for calculating composite score we are discouraging students from either exaggerating or underrating their performance. The composite score model assigns more weight to the peer review score since the peer review score being used is the average of all peer review scores assigned and hence tends to be more appropriate than a single self-review.&lt;br /&gt;
&lt;br /&gt;
Also this composite score formula gives the score on a scale which is identical to the scale of the self and peer review score. Thus this formula is not dependent on the scale of the self-review and peer-review score as it will also return the composite score on the same scale.&lt;br /&gt;
&lt;br /&gt;
For example: If someone gets an average peer review score of 3.5/5 and he gives 3.5/5  (self-review score) while reviewing his project, then he will get a composite score of 3.5/5. And instead if the student reviews his project for 2/5 then the student will get a composite score of 2.975/5.&lt;br /&gt;
&lt;br /&gt;
===Implementation===&lt;br /&gt;
&lt;br /&gt;
As stated above the ability to do self-reviews has already been implemented. This can be seen from the image shown below. The instructor has this ability to enable self-reviews&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
[[File:Oodd abhisu.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In our project, we were successful in displaying both the self-review score and composite review score on the view scores page. Shown below is an example of the output in the student profile. As we can see the self-review icon has a blue background to indicate that it is different from other peer reviews.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:student view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The alternate view was also modified to accommodate a pictorial representation of the self-review scores. The modified alternate view scores page is shown below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:alternate view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The same was achieved in the instructor profile too. In the current implementation of expertiza when self-review was not assigned, the instructor would view the scores of the first student in each team (it wouldn't matter much because without self-review all students in a team would have the same scores). But this would be a problem when self-review was enabled so we decided to display all the self-review scores of all students in the team for instructor view. As it can be seen below self-reviews of all students in the team (distinguished by their usernames) are indicated by blue background to differentiate them from peer review scores.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Instructor view.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
Test cases are as follows:&lt;br /&gt;
* Peer-reviews cannot be viewed before a self-review is completed.&lt;br /&gt;
This ensures that the student is not able to see his peer-review score before writing his self-review as the composite score takes into account the difference between the student peer-review and self-review score.&lt;br /&gt;
* Self-review scores are displayed with peer-review scores.&lt;br /&gt;
This enables the student and instructor to view all his scores in one place.&lt;br /&gt;
* The composite score must be properly calculated.&lt;br /&gt;
The composite score must be calculated so as to give students more points if their self-review score is closer to the peer review score.&lt;br /&gt;
* Composite score must be visible in both view scores page and Alternate view.&lt;br /&gt;
The scores must be displayed in both the views.&lt;br /&gt;
&lt;br /&gt;
===Files Changed===&lt;br /&gt;
*app/controllers/grades_controller.rb&lt;br /&gt;
*app/models/assignment_participant.rb&lt;br /&gt;
*app/models/author_feedback_questionnaire.rb&lt;br /&gt;
*app/models/response_map.rb&lt;br /&gt;
*app/models/vm_question_response.rb&lt;br /&gt;
*app/models/review_questionnaire.rb&lt;br /&gt;
*app/models/teammate_review_questionnaire.rb&lt;br /&gt;
*app/views/grades/_participant.html.erb&lt;br /&gt;
*app/views/grades/_participant_charts.html.erb&lt;br /&gt;
*app/views/grades/_participant_title.html.erb&lt;br /&gt;
*app/models/vm_question_response_row.rb&lt;br /&gt;
*app/views/grades/view_team.html.erb&lt;br /&gt;
*spec/controllers/grades_controller_spec.rb&lt;br /&gt;
*spec/models/assignment_particpant_spec.rb&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1326 Pull Request]&lt;br /&gt;
#[https://www.youtube.com/watch?v=TBStYgnWiUI&amp;amp;feature=youtu.be Screencast video]&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_-_E1919_CodeClimate_Issues&amp;diff=122855</id>
		<title>CSC/ECE 517 Spring 2019 - E1919 CodeClimate Issues</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_-_E1919_CodeClimate_Issues&amp;diff=122855"/>
		<updated>2019-04-01T19:56:27Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made according to the specification of E1919, OSS project - Fix Code Climate issues in models with names beginning with 'H' thru 'Sc'.&lt;br /&gt;
&lt;br /&gt;
== About Expertiza ==&lt;br /&gt;
Expertiza is a platform where assignments and related quizzes are managed. On this portal instructor  upload assignments/questionnaires, create list of topics for students and edit the existing assignments. Students can form teams, work on projects and submit their assignments as URL or files. It also helps in improving the work quality by allowing students to provide anonymous reviews. It is an Open source platform which is based on Ruby with Rails.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The existing code of &amp;quot;Expertiza&amp;quot; has many code smells which are not in compliance with the best practices of Ruby Rails.&lt;br /&gt;
These smells were detected by CodeClimate.&lt;br /&gt;
&lt;br /&gt;
Code climate is a command line interface for the Code Climate analysis platform. It allows you to run Code Climate engines on your local machine inside of Docker containers.&lt;br /&gt;
It provides automated code review for test coverage and maintainability.&lt;br /&gt;
&lt;br /&gt;
==Objective==&lt;br /&gt;
We were assigned the task to resolve code climate issues in models with names beginning with ‘H’ thru ‘Sc’.&lt;br /&gt;
&lt;br /&gt;
As per instructions, we were to fix all the issues detected by code climate except for below. &lt;br /&gt;
Fix all code smells except&lt;br /&gt;
*  Assignment Branch Condition size for [method name] is too high&lt;br /&gt;
*  Perceived complexity for [method name] is too high.&lt;br /&gt;
*  Cyclomatic complexity for [method name] is too high.&lt;br /&gt;
*  Method [method name] has a Cognitive Complexity of XX (exceeds 5 allowed). Consider refactoring.&lt;br /&gt;
*  File [file name] has XXX  lines of code (exceeds 250 allowed). Consider refactoring.&lt;br /&gt;
*  Class [class name] has XX methods (exceeds 20 allowed). Consider refactoring.&lt;br /&gt;
*  Method [method name] has XX lines of code (exceeds 25 allowed). Consider refactoring.&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
1. Set up CodeClimate locally on our systems by using the following guide.&lt;br /&gt;
&lt;br /&gt;
     https://docs.google.com/document/d/1ZmYdjJ4CeXyBc8-7EFslmCzHw8FF6hsSg3EjL0Vlr8w/edit&lt;br /&gt;
&lt;br /&gt;
2. Use &amp;quot;analyze&amp;quot; command.&lt;br /&gt;
&lt;br /&gt;
We have used &amp;quot;analyze&amp;quot; command of Code Climate to find out the code smells.&lt;br /&gt;
&lt;br /&gt;
Analyze command lets you pass file paths as arguments to the codeclimate and also lets you specify engine options with -e or --engine.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;codeclimate analyze -e rubocop &amp;lt;file_Name&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. We have also used Rubocop documentation for resolving issues. &lt;br /&gt;
&lt;br /&gt;
RuboCop is a Ruby static code analyzer (a.k.a. linter) and code formatter. &lt;br /&gt;
&lt;br /&gt;
It enforces the guidelines outlined in the community Ruby Style Guide for its best practices.&lt;br /&gt;
&lt;br /&gt;
4. Issue related to method names starting with get_ are ignored because it requires refactoring across multiple files in the project, which would in turn break existing functionalities.&lt;br /&gt;
&lt;br /&gt;
5. some issues are ignored as they were breaking the rspec tests.&lt;br /&gt;
	e.g.&lt;br /&gt;
		*  mass assignment : It is used to create an instance using multiple parameters&lt;br /&gt;
		*  In some test files instance were created with multiple parameter along with the primary id.&lt;br /&gt;
		*  but in mass assignment primary id is dangerous if allowed in mass assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
* '''mass assignment'''&lt;br /&gt;
 Mass assignment refers to the act of constructing your object with a parameters hash. &lt;br /&gt;
&lt;br /&gt;
We assign multiple values to attributes via a single assignment operator.&lt;br /&gt;
&lt;br /&gt;
It is implemented using attr_accessible method. It takes a list of attributes that will be accessible. All other attributes will be protected. &lt;br /&gt;
&lt;br /&gt;
[[File:Mass_Assignment_1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mass_Assignment_2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*  '''Active Record Associations : Adding &amp;quot;inverse_of&amp;quot; option.'''&lt;br /&gt;
&lt;br /&gt;
Associated objects do not point to the same in-memory objects by default.&lt;br /&gt;
&lt;br /&gt;
When you have two models in a has_many, has_one or belongs_to association, the :inverse_of option in Rails tells ActiveRecord that they're two sides of the same association.&lt;br /&gt;
&lt;br /&gt;
Knowing the other side of the same association Rails can optimize object loading. It lets you reference the same object in memory, instead of loading another copy of the same record.&lt;br /&gt;
&lt;br /&gt;
[[File:Use_Inverse_Of.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Add dependent property'''&lt;br /&gt;
&lt;br /&gt;
In the file roles.rb we have &lt;br /&gt;
has_many :users&lt;br /&gt;
&lt;br /&gt;
We need to specify &amp;quot;dependent&amp;quot; option here.&lt;br /&gt;
&lt;br /&gt;
With associations of Active Record , we can make transitions smooth of  such operations(relationships) by telling Rails that there is a connection between the two models. &lt;br /&gt;
It would make more sense here if we add &amp;quot;dependent :destroy&amp;quot; option for users. If a particular role is deleted, all the users under that role must also disappear.&lt;br /&gt;
&amp;lt;pre&amp;gt;dependent :destroy&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;dependent :nullify&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dependent_Property.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''useless assignment of a variable'''&lt;br /&gt;
&lt;br /&gt;
In the file role.rb, we have &lt;br /&gt;
&lt;br /&gt;
The variable e is not being used anywhere. Such values are assigned to &amp;quot;_&amp;quot;  or rather do not assign them to any variable, so that it doesn't get assigned to a variable and uses space. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rescue StandardError &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Useless_Assignment.png]]&lt;br /&gt;
&lt;br /&gt;
*  '''Using snake case for method names''' &lt;br /&gt;
&lt;br /&gt;
In file roles.rb, we have &lt;br /&gt;
&lt;br /&gt;
[[File:Using_Snake_Case.png]]&lt;br /&gt;
&lt;br /&gt;
A standard good practice is to follow snake cases for naming methods. &lt;br /&gt;
&lt;br /&gt;
* '''Use find_by instead of where.first'''&lt;br /&gt;
&lt;br /&gt;
In file scored_question.rb, we have&lt;br /&gt;
&lt;br /&gt;
[[File:Use_Find_By.png]]&lt;br /&gt;
&lt;br /&gt;
Rails prefers &amp;quot;find_by&amp;quot; over &amp;quot;where&amp;quot; as &amp;quot;find_by&amp;quot; returns a single record as result, whereas &amp;quot;where&amp;quot; returns an array of record, to which we need to append &amp;quot;first&amp;quot; or &amp;quot;each&amp;quot; to get single record out of it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;answer = Answer.find_by(question_id: self.id, response_id: response_id) &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Nested ternary operators''' &lt;br /&gt;
Ternary operators must not be nested. Rather we should prefer ''' if-else'''.&lt;br /&gt;
&lt;br /&gt;
[[File:Ternary_Operator.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And, there were many more code smells which needed a fix.&lt;br /&gt;
&lt;br /&gt;
==Results==&lt;br /&gt;
&lt;br /&gt;
*  162 issues resolved&lt;br /&gt;
*  42 Files changed&lt;br /&gt;
*  215 additions&lt;br /&gt;
*  163 Deletions&lt;br /&gt;
*  Travis CI build passed&lt;br /&gt;
*  No merge conflicts&lt;br /&gt;
*  coveralls : &lt;br /&gt;
        *  Coverage increased (+10.1%) to 50.97%.&lt;br /&gt;
*  codeclimate bot&lt;br /&gt;
        * Code Climate has analyzed commit 050fa7d and detected 0 issues on this pull request.&lt;br /&gt;
        * The test coverage on the diff in this pull request is 42.3% (50% is the threshold).&lt;br /&gt;
        * This pull request will bring the total coverage in the repository to 29.0% (-21.9% change).&lt;br /&gt;
*  travis-ci&lt;br /&gt;
        * Your changes look good to me! tada&lt;br /&gt;
        * The Travis CI build passed&lt;br /&gt;
&lt;br /&gt;
== Files Modified for  this requirement == &lt;br /&gt;
&lt;br /&gt;
* app/models/http_request.rb &lt;br /&gt;
* app/models/import_error.rb &lt;br /&gt;
* app/models/institution.rb &lt;br /&gt;
* app/models/instructor.rb &lt;br /&gt;
* app/models/invitation.rb &lt;br /&gt;
* app/models/join_team_request.rb &lt;br /&gt;
* app/models/language.rb &lt;br /&gt;
* app/models/late_policy.rb &lt;br /&gt;
* app/models/logger_message.rb &lt;br /&gt;
* app/models/markup_style.rb &lt;br /&gt;
* app/models/menu_item.rb &lt;br /&gt;
* app/models/menu.rb &lt;br /&gt;
* app/models/metareview_questionnaire.rb &lt;br /&gt;
* app/models/metareview_response_map.rb &lt;br /&gt;
* app/models/missing_object_id_error.rb &lt;br /&gt;
* app/models/multiple_choice_checkbox.rb &lt;br /&gt;
* app/models/multiple_choice_radio.rb &lt;br /&gt;
* app/models/node.rb &lt;br /&gt;
* app/models/notification.rb &lt;br /&gt;
* app/models/on_the_fly_calc.rb &lt;br /&gt;
* app/models/participant.rb &lt;br /&gt;
* app/models/password_reset.rb  &lt;br /&gt;
* app/models/path_error.rb&lt;br /&gt;
* app/models/permission.rb &lt;br /&gt;
* app/models/plagiarism_checker_assignment_submission.rb  &lt;br /&gt;
* app/models/plagiarism_checker_comparison.rb  &lt;br /&gt;
* app/models/question_advice.rb   &lt;br /&gt;
* app/models/questionnaire_header.rb &lt;br /&gt;
* app/models/questionnaire_node.rb &lt;br /&gt;
* app/models/questionnaire.rb  &lt;br /&gt;
* app/models/questionnaire_type_node.rb &lt;br /&gt;
* app/models/question.rb &lt;br /&gt;
* app/models/quiz_assignment.rb  &lt;br /&gt;
* app/models/quiz_question_choice.rb &lt;br /&gt;
* app/models/quiz_questionnaire.rb  &lt;br /&gt;
* app/models/quiz_question.rb  &lt;br /&gt;
* app/models/quiz_response_map.rb   &lt;br /&gt;
* app/models/quiz_response.rb  &lt;br /&gt;
* app/models/requested_user.rb  &lt;br /&gt;
* app/models/response_map.rb &lt;br /&gt;
* app/models/response.rb  &lt;br /&gt;
* app/models/review_assignment.rb&lt;br /&gt;
* app/models/review_comment_paste_bin.rb  &lt;br /&gt;
* app/models/review_grade.rb  &lt;br /&gt;
* app/models/review_questionnaire.rb   &lt;br /&gt;
* app/models/review_response_map.rb &lt;br /&gt;
* app/models/role.rb  &lt;br /&gt;
* app/models/rscore.rb &lt;br /&gt;
* app/models/rubric.rb   &lt;br /&gt;
* app/models/scale.rb  &lt;br /&gt;
* app/models/scored_question.rb  &lt;br /&gt;
* app/models/score_view.rb&lt;br /&gt;
&lt;br /&gt;
In additions to above files, we have edited the following files as well as they were dependency on those.&lt;br /&gt;
&lt;br /&gt;
* '''ta.rb'''&lt;br /&gt;
&lt;br /&gt;
[[File:ta.png]]&lt;br /&gt;
&lt;br /&gt;
* '''response.html.erb'''&lt;br /&gt;
&lt;br /&gt;
[[File:response.png]]&lt;br /&gt;
&lt;br /&gt;
* '''spec/models/scale_spec.rb'''&lt;br /&gt;
&lt;br /&gt;
[[File:scale_spec.png]]&lt;br /&gt;
&lt;br /&gt;
== Total Modifications ==&lt;br /&gt;
&lt;br /&gt;
42 Files changed&lt;br /&gt;
&lt;br /&gt;
215 additions&lt;br /&gt;
&lt;br /&gt;
163 Deletions&lt;br /&gt;
&lt;br /&gt;
==Important Links ==&lt;br /&gt;
&lt;br /&gt;
*  Pull Request: https://github.com/expertiza/expertiza/pull/1416&lt;br /&gt;
*  Files: https://github.com/expertiza/expertiza/pull/1416/files&lt;br /&gt;
*  Codeclimate analysis: https://codeclimate.com/github/expertiza/expertiza/pull/1416&lt;br /&gt;
*  Travis CI: https://travis-ci.org/expertiza/expertiza/builds/514206631?utm_source=github_status&amp;amp;utm_medium=notification&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_-_E1919_CodeClimate_Issues&amp;diff=122854</id>
		<title>CSC/ECE 517 Spring 2019 - E1919 CodeClimate Issues</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_-_E1919_CodeClimate_Issues&amp;diff=122854"/>
		<updated>2019-04-01T19:55:25Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: /* Files Modified for  this requirement */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made according to the specification of E1919, OSS project.&lt;br /&gt;
&lt;br /&gt;
== About Expertiza ==&lt;br /&gt;
Expertiza is a platform where assignments and related quizzes are managed. On this portal instructor  upload assignments/questionnaires, create list of topics for students and edit the existing assignments. Students can form teams, work on projects and submit their assignments as URL or files. It also helps in improving the work quality by allowing students to provide anonymous reviews. It is an Open source platform which is based on Ruby with Rails.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The existing code of &amp;quot;Expertiza&amp;quot; has many code smells which are not in compliance with the best practices of Ruby Rails.&lt;br /&gt;
These smells were detected by CodeClimate.&lt;br /&gt;
&lt;br /&gt;
Code climate is a command line interface for the Code Climate analysis platform. It allows you to run Code Climate engines on your local machine inside of Docker containers.&lt;br /&gt;
It provides automated code review for test coverage and maintainability.&lt;br /&gt;
&lt;br /&gt;
==Objective==&lt;br /&gt;
We were assigned the task to resolve code climate issues in models with names beginning with ‘H’ thru ‘Sc’.&lt;br /&gt;
&lt;br /&gt;
As per instructions, we were to fix all the issues detected by code climate except for below. &lt;br /&gt;
Fix all code smells except&lt;br /&gt;
*  Assignment Branch Condition size for [method name] is too high&lt;br /&gt;
*  Perceived complexity for [method name] is too high.&lt;br /&gt;
*  Cyclomatic complexity for [method name] is too high.&lt;br /&gt;
*  Method [method name] has a Cognitive Complexity of XX (exceeds 5 allowed). Consider refactoring.&lt;br /&gt;
*  File [file name] has XXX  lines of code (exceeds 250 allowed). Consider refactoring.&lt;br /&gt;
*  Class [class name] has XX methods (exceeds 20 allowed). Consider refactoring.&lt;br /&gt;
*  Method [method name] has XX lines of code (exceeds 25 allowed). Consider refactoring.&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
1. Set up CodeClimate locally on our systems by using the following guide.&lt;br /&gt;
&lt;br /&gt;
     https://docs.google.com/document/d/1ZmYdjJ4CeXyBc8-7EFslmCzHw8FF6hsSg3EjL0Vlr8w/edit&lt;br /&gt;
&lt;br /&gt;
2. Use &amp;quot;analyze&amp;quot; command.&lt;br /&gt;
&lt;br /&gt;
We have used &amp;quot;analyze&amp;quot; command of Code Climate to find out the code smells.&lt;br /&gt;
&lt;br /&gt;
Analyze command lets you pass file paths as arguments to the codeclimate and also lets you specify engine options with -e or --engine.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;codeclimate analyze -e rubocop &amp;lt;file_Name&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. We have also used Rubocop documentation for resolving issues. &lt;br /&gt;
&lt;br /&gt;
RuboCop is a Ruby static code analyzer (a.k.a. linter) and code formatter. &lt;br /&gt;
&lt;br /&gt;
It enforces the guidelines outlined in the community Ruby Style Guide for its best practices.&lt;br /&gt;
&lt;br /&gt;
4. Issue related to method names starting with get_ are ignored because it requires refactoring across multiple files in the project, which would in turn break existing functionalities.&lt;br /&gt;
&lt;br /&gt;
5. some issues are ignored as they were breaking the rspec tests.&lt;br /&gt;
	e.g.&lt;br /&gt;
		*  mass assignment : It is used to create an instance using multiple parameters&lt;br /&gt;
		*  In some test files instance were created with multiple parameter along with the primary id.&lt;br /&gt;
		*  but in mass assignment primary id is dangerous if allowed in mass assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
* '''mass assignment'''&lt;br /&gt;
 Mass assignment refers to the act of constructing your object with a parameters hash. &lt;br /&gt;
&lt;br /&gt;
We assign multiple values to attributes via a single assignment operator.&lt;br /&gt;
&lt;br /&gt;
It is implemented using attr_accessible method. It takes a list of attributes that will be accessible. All other attributes will be protected. &lt;br /&gt;
&lt;br /&gt;
[[File:Mass_Assignment_1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mass_Assignment_2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*  '''Active Record Associations : Adding &amp;quot;inverse_of&amp;quot; option.'''&lt;br /&gt;
&lt;br /&gt;
Associated objects do not point to the same in-memory objects by default.&lt;br /&gt;
&lt;br /&gt;
When you have two models in a has_many, has_one or belongs_to association, the :inverse_of option in Rails tells ActiveRecord that they're two sides of the same association.&lt;br /&gt;
&lt;br /&gt;
Knowing the other side of the same association Rails can optimize object loading. It lets you reference the same object in memory, instead of loading another copy of the same record.&lt;br /&gt;
&lt;br /&gt;
[[File:Use_Inverse_Of.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Add dependent property'''&lt;br /&gt;
&lt;br /&gt;
In the file roles.rb we have &lt;br /&gt;
has_many :users&lt;br /&gt;
&lt;br /&gt;
We need to specify &amp;quot;dependent&amp;quot; option here.&lt;br /&gt;
&lt;br /&gt;
With associations of Active Record , we can make transitions smooth of  such operations(relationships) by telling Rails that there is a connection between the two models. &lt;br /&gt;
It would make more sense here if we add &amp;quot;dependent :destroy&amp;quot; option for users. If a particular role is deleted, all the users under that role must also disappear.&lt;br /&gt;
&amp;lt;pre&amp;gt;dependent :destroy&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;dependent :nullify&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dependent_Property.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''useless assignment of a variable'''&lt;br /&gt;
&lt;br /&gt;
In the file role.rb, we have &lt;br /&gt;
&lt;br /&gt;
The variable e is not being used anywhere. Such values are assigned to &amp;quot;_&amp;quot;  or rather do not assign them to any variable, so that it doesn't get assigned to a variable and uses space. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rescue StandardError &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Useless_Assignment.png]]&lt;br /&gt;
&lt;br /&gt;
*  '''Using snake case for method names''' &lt;br /&gt;
&lt;br /&gt;
In file roles.rb, we have &lt;br /&gt;
&lt;br /&gt;
[[File:Using_Snake_Case.png]]&lt;br /&gt;
&lt;br /&gt;
A standard good practice is to follow snake cases for naming methods. &lt;br /&gt;
&lt;br /&gt;
* '''Use find_by instead of where.first'''&lt;br /&gt;
&lt;br /&gt;
In file scored_question.rb, we have&lt;br /&gt;
&lt;br /&gt;
[[File:Use_Find_By.png]]&lt;br /&gt;
&lt;br /&gt;
Rails prefers &amp;quot;find_by&amp;quot; over &amp;quot;where&amp;quot; as &amp;quot;find_by&amp;quot; returns a single record as result, whereas &amp;quot;where&amp;quot; returns an array of record, to which we need to append &amp;quot;first&amp;quot; or &amp;quot;each&amp;quot; to get single record out of it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;answer = Answer.find_by(question_id: self.id, response_id: response_id) &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Nested ternary operators''' &lt;br /&gt;
Ternary operators must not be nested. Rather we should prefer ''' if-else'''.&lt;br /&gt;
&lt;br /&gt;
[[File:Ternary_Operator.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And, there were many more code smells which needed a fix.&lt;br /&gt;
&lt;br /&gt;
==Results==&lt;br /&gt;
&lt;br /&gt;
*  162 issues resolved&lt;br /&gt;
*  42 Files changed&lt;br /&gt;
*  215 additions&lt;br /&gt;
*  163 Deletions&lt;br /&gt;
*  Travis CI build passed&lt;br /&gt;
*  No merge conflicts&lt;br /&gt;
*  coveralls : &lt;br /&gt;
        *  Coverage increased (+10.1%) to 50.97%.&lt;br /&gt;
*  codeclimate bot&lt;br /&gt;
        * Code Climate has analyzed commit 050fa7d and detected 0 issues on this pull request.&lt;br /&gt;
        * The test coverage on the diff in this pull request is 42.3% (50% is the threshold).&lt;br /&gt;
        * This pull request will bring the total coverage in the repository to 29.0% (-21.9% change).&lt;br /&gt;
*  travis-ci&lt;br /&gt;
        * Your changes look good to me! tada&lt;br /&gt;
        * The Travis CI build passed&lt;br /&gt;
&lt;br /&gt;
== Files Modified for  this requirement == &lt;br /&gt;
&lt;br /&gt;
* app/models/http_request.rb &lt;br /&gt;
* app/models/import_error.rb &lt;br /&gt;
* app/models/institution.rb &lt;br /&gt;
* app/models/instructor.rb &lt;br /&gt;
* app/models/invitation.rb &lt;br /&gt;
* app/models/join_team_request.rb &lt;br /&gt;
* app/models/language.rb &lt;br /&gt;
* app/models/late_policy.rb &lt;br /&gt;
* app/models/logger_message.rb &lt;br /&gt;
* app/models/markup_style.rb &lt;br /&gt;
* app/models/menu_item.rb &lt;br /&gt;
* app/models/menu.rb &lt;br /&gt;
* app/models/metareview_questionnaire.rb &lt;br /&gt;
* app/models/metareview_response_map.rb &lt;br /&gt;
* app/models/missing_object_id_error.rb &lt;br /&gt;
* app/models/multiple_choice_checkbox.rb &lt;br /&gt;
* app/models/multiple_choice_radio.rb &lt;br /&gt;
* app/models/node.rb &lt;br /&gt;
* app/models/notification.rb &lt;br /&gt;
* app/models/on_the_fly_calc.rb &lt;br /&gt;
* app/models/participant.rb &lt;br /&gt;
* app/models/password_reset.rb  &lt;br /&gt;
* app/models/path_error.rb&lt;br /&gt;
* app/models/permission.rb &lt;br /&gt;
* app/models/plagiarism_checker_assignment_submission.rb  &lt;br /&gt;
* app/models/plagiarism_checker_comparison.rb  &lt;br /&gt;
* app/models/question_advice.rb   &lt;br /&gt;
* app/models/questionnaire_header.rb &lt;br /&gt;
* app/models/questionnaire_node.rb &lt;br /&gt;
* app/models/questionnaire.rb  &lt;br /&gt;
* app/models/questionnaire_type_node.rb &lt;br /&gt;
* app/models/question.rb &lt;br /&gt;
* app/models/quiz_assignment.rb  &lt;br /&gt;
* app/models/quiz_question_choice.rb &lt;br /&gt;
* app/models/quiz_questionnaire.rb  &lt;br /&gt;
* app/models/quiz_question.rb  &lt;br /&gt;
* app/models/quiz_response_map.rb   &lt;br /&gt;
* app/models/quiz_response.rb  &lt;br /&gt;
* app/models/requested_user.rb  &lt;br /&gt;
* app/models/response_map.rb &lt;br /&gt;
* app/models/response.rb  &lt;br /&gt;
* app/models/review_assignment.rb&lt;br /&gt;
* app/models/review_comment_paste_bin.rb  &lt;br /&gt;
* app/models/review_grade.rb  &lt;br /&gt;
* app/models/review_questionnaire.rb   &lt;br /&gt;
* app/models/review_response_map.rb &lt;br /&gt;
* app/models/role.rb  &lt;br /&gt;
* app/models/rscore.rb &lt;br /&gt;
* app/models/rubric.rb   &lt;br /&gt;
* app/models/scale.rb  &lt;br /&gt;
* app/models/scored_question.rb  &lt;br /&gt;
* app/models/score_view.rb&lt;br /&gt;
&lt;br /&gt;
In additions to above files, we have edited the following files as well as they were dependency on those.&lt;br /&gt;
&lt;br /&gt;
* '''ta.rb'''&lt;br /&gt;
&lt;br /&gt;
[[File:ta.png]]&lt;br /&gt;
&lt;br /&gt;
* '''response.html.erb'''&lt;br /&gt;
&lt;br /&gt;
[[File:response.png]]&lt;br /&gt;
&lt;br /&gt;
* '''spec/models/scale_spec.rb'''&lt;br /&gt;
&lt;br /&gt;
[[File:scale_spec.png]]&lt;br /&gt;
&lt;br /&gt;
== Total Modifications ==&lt;br /&gt;
&lt;br /&gt;
42 Files changed&lt;br /&gt;
&lt;br /&gt;
215 additions&lt;br /&gt;
&lt;br /&gt;
163 Deletions&lt;br /&gt;
&lt;br /&gt;
==Important Links ==&lt;br /&gt;
&lt;br /&gt;
*  Pull Request: https://github.com/expertiza/expertiza/pull/1416&lt;br /&gt;
*  Files: https://github.com/expertiza/expertiza/pull/1416/files&lt;br /&gt;
*  Codeclimate analysis: https://codeclimate.com/github/expertiza/expertiza/pull/1416&lt;br /&gt;
*  Travis CI: https://travis-ci.org/expertiza/expertiza/builds/514206631?utm_source=github_status&amp;amp;utm_medium=notification&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_-_E1919_CodeClimate_Issues&amp;diff=122853</id>
		<title>CSC/ECE 517 Spring 2019 - E1919 CodeClimate Issues</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2019_-_E1919_CodeClimate_Issues&amp;diff=122853"/>
		<updated>2019-04-01T19:54:06Z</updated>

		<summary type="html">&lt;p&gt;Rsethi3: /* Results */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made according to the specification of E1919, OSS project.&lt;br /&gt;
&lt;br /&gt;
== About Expertiza ==&lt;br /&gt;
Expertiza is a platform where assignments and related quizzes are managed. On this portal instructor  upload assignments/questionnaires, create list of topics for students and edit the existing assignments. Students can form teams, work on projects and submit their assignments as URL or files. It also helps in improving the work quality by allowing students to provide anonymous reviews. It is an Open source platform which is based on Ruby with Rails.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The existing code of &amp;quot;Expertiza&amp;quot; has many code smells which are not in compliance with the best practices of Ruby Rails.&lt;br /&gt;
These smells were detected by CodeClimate.&lt;br /&gt;
&lt;br /&gt;
Code climate is a command line interface for the Code Climate analysis platform. It allows you to run Code Climate engines on your local machine inside of Docker containers.&lt;br /&gt;
It provides automated code review for test coverage and maintainability.&lt;br /&gt;
&lt;br /&gt;
==Objective==&lt;br /&gt;
We were assigned the task to resolve code climate issues in models with names beginning with ‘H’ thru ‘Sc’.&lt;br /&gt;
&lt;br /&gt;
As per instructions, we were to fix all the issues detected by code climate except for below. &lt;br /&gt;
Fix all code smells except&lt;br /&gt;
*  Assignment Branch Condition size for [method name] is too high&lt;br /&gt;
*  Perceived complexity for [method name] is too high.&lt;br /&gt;
*  Cyclomatic complexity for [method name] is too high.&lt;br /&gt;
*  Method [method name] has a Cognitive Complexity of XX (exceeds 5 allowed). Consider refactoring.&lt;br /&gt;
*  File [file name] has XXX  lines of code (exceeds 250 allowed). Consider refactoring.&lt;br /&gt;
*  Class [class name] has XX methods (exceeds 20 allowed). Consider refactoring.&lt;br /&gt;
*  Method [method name] has XX lines of code (exceeds 25 allowed). Consider refactoring.&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
1. Set up CodeClimate locally on our systems by using the following guide.&lt;br /&gt;
&lt;br /&gt;
     https://docs.google.com/document/d/1ZmYdjJ4CeXyBc8-7EFslmCzHw8FF6hsSg3EjL0Vlr8w/edit&lt;br /&gt;
&lt;br /&gt;
2. Use &amp;quot;analyze&amp;quot; command.&lt;br /&gt;
&lt;br /&gt;
We have used &amp;quot;analyze&amp;quot; command of Code Climate to find out the code smells.&lt;br /&gt;
&lt;br /&gt;
Analyze command lets you pass file paths as arguments to the codeclimate and also lets you specify engine options with -e or --engine.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;codeclimate analyze -e rubocop &amp;lt;file_Name&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. We have also used Rubocop documentation for resolving issues. &lt;br /&gt;
&lt;br /&gt;
RuboCop is a Ruby static code analyzer (a.k.a. linter) and code formatter. &lt;br /&gt;
&lt;br /&gt;
It enforces the guidelines outlined in the community Ruby Style Guide for its best practices.&lt;br /&gt;
&lt;br /&gt;
4. Issue related to method names starting with get_ are ignored because it requires refactoring across multiple files in the project, which would in turn break existing functionalities.&lt;br /&gt;
&lt;br /&gt;
5. some issues are ignored as they were breaking the rspec tests.&lt;br /&gt;
	e.g.&lt;br /&gt;
		*  mass assignment : It is used to create an instance using multiple parameters&lt;br /&gt;
		*  In some test files instance were created with multiple parameter along with the primary id.&lt;br /&gt;
		*  but in mass assignment primary id is dangerous if allowed in mass assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
* '''mass assignment'''&lt;br /&gt;
 Mass assignment refers to the act of constructing your object with a parameters hash. &lt;br /&gt;
&lt;br /&gt;
We assign multiple values to attributes via a single assignment operator.&lt;br /&gt;
&lt;br /&gt;
It is implemented using attr_accessible method. It takes a list of attributes that will be accessible. All other attributes will be protected. &lt;br /&gt;
&lt;br /&gt;
[[File:Mass_Assignment_1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mass_Assignment_2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*  '''Active Record Associations : Adding &amp;quot;inverse_of&amp;quot; option.'''&lt;br /&gt;
&lt;br /&gt;
Associated objects do not point to the same in-memory objects by default.&lt;br /&gt;
&lt;br /&gt;
When you have two models in a has_many, has_one or belongs_to association, the :inverse_of option in Rails tells ActiveRecord that they're two sides of the same association.&lt;br /&gt;
&lt;br /&gt;
Knowing the other side of the same association Rails can optimize object loading. It lets you reference the same object in memory, instead of loading another copy of the same record.&lt;br /&gt;
&lt;br /&gt;
[[File:Use_Inverse_Of.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Add dependent property'''&lt;br /&gt;
&lt;br /&gt;
In the file roles.rb we have &lt;br /&gt;
has_many :users&lt;br /&gt;
&lt;br /&gt;
We need to specify &amp;quot;dependent&amp;quot; option here.&lt;br /&gt;
&lt;br /&gt;
With associations of Active Record , we can make transitions smooth of  such operations(relationships) by telling Rails that there is a connection between the two models. &lt;br /&gt;
It would make more sense here if we add &amp;quot;dependent :destroy&amp;quot; option for users. If a particular role is deleted, all the users under that role must also disappear.&lt;br /&gt;
&amp;lt;pre&amp;gt;dependent :destroy&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;dependent :nullify&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Dependent_Property.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''useless assignment of a variable'''&lt;br /&gt;
&lt;br /&gt;
In the file role.rb, we have &lt;br /&gt;
&lt;br /&gt;
The variable e is not being used anywhere. Such values are assigned to &amp;quot;_&amp;quot;  or rather do not assign them to any variable, so that it doesn't get assigned to a variable and uses space. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rescue StandardError &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Useless_Assignment.png]]&lt;br /&gt;
&lt;br /&gt;
*  '''Using snake case for method names''' &lt;br /&gt;
&lt;br /&gt;
In file roles.rb, we have &lt;br /&gt;
&lt;br /&gt;
[[File:Using_Snake_Case.png]]&lt;br /&gt;
&lt;br /&gt;
A standard good practice is to follow snake cases for naming methods. &lt;br /&gt;
&lt;br /&gt;
* '''Use find_by instead of where.first'''&lt;br /&gt;
&lt;br /&gt;
In file scored_question.rb, we have&lt;br /&gt;
&lt;br /&gt;
[[File:Use_Find_By.png]]&lt;br /&gt;
&lt;br /&gt;
Rails prefers &amp;quot;find_by&amp;quot; over &amp;quot;where&amp;quot; as &amp;quot;find_by&amp;quot; returns a single record as result, whereas &amp;quot;where&amp;quot; returns an array of record, to which we need to append &amp;quot;first&amp;quot; or &amp;quot;each&amp;quot; to get single record out of it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;answer = Answer.find_by(question_id: self.id, response_id: response_id) &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Nested ternary operators''' &lt;br /&gt;
Ternary operators must not be nested. Rather we should prefer ''' if-else'''.&lt;br /&gt;
&lt;br /&gt;
[[File:Ternary_Operator.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And, there were many more code smells which needed a fix.&lt;br /&gt;
&lt;br /&gt;
==Results==&lt;br /&gt;
&lt;br /&gt;
*  162 issues resolved&lt;br /&gt;
*  42 Files changed&lt;br /&gt;
*  215 additions&lt;br /&gt;
*  163 Deletions&lt;br /&gt;
*  Travis CI build passed&lt;br /&gt;
*  No merge conflicts&lt;br /&gt;
*  coveralls : &lt;br /&gt;
        *  Coverage increased (+10.1%) to 50.97%.&lt;br /&gt;
*  codeclimate bot&lt;br /&gt;
        * Code Climate has analyzed commit 050fa7d and detected 0 issues on this pull request.&lt;br /&gt;
        * The test coverage on the diff in this pull request is 42.3% (50% is the threshold).&lt;br /&gt;
        * This pull request will bring the total coverage in the repository to 29.0% (-21.9% change).&lt;br /&gt;
*  travis-ci&lt;br /&gt;
        * Your changes look good to me! tada&lt;br /&gt;
        * The Travis CI build passed&lt;br /&gt;
&lt;br /&gt;
== Files Modified for  this requirement == &lt;br /&gt;
&lt;br /&gt;
* app/models/http_request.rb &lt;br /&gt;
* app/models/Import_error.rb &lt;br /&gt;
* app/models/Institution.rb &lt;br /&gt;
* app/models/Instructor.rb &lt;br /&gt;
* app/models/Invitation.rb &lt;br /&gt;
* app/models/Join_team_request.rb &lt;br /&gt;
* app/models/Language.rb &lt;br /&gt;
* app/models/Late_policy.rb &lt;br /&gt;
* app/models/Logger_message.rb &lt;br /&gt;
*  app/models/Markup_style.rb &lt;br /&gt;
*  app/models/Menu_item.rb &lt;br /&gt;
* app/models/Menu.rb &lt;br /&gt;
* app/models/Metareview_questionnaire.rb &lt;br /&gt;
* app/models/Metareview_response_map.rb &lt;br /&gt;
* app/models/Missing_object_id_error.rb &lt;br /&gt;
* app/models/Multiple_choice_checkbox.rb &lt;br /&gt;
* app/models/Multiple_choice_radio.rb &lt;br /&gt;
* app/models/Node.rb &lt;br /&gt;
* app/models/Notification.rb &lt;br /&gt;
* app/models/On_the_fly_calc.rb &lt;br /&gt;
* app/models/Participant.rb &lt;br /&gt;
* app/models/Password_reset.rb  &lt;br /&gt;
* app/models/Path_error.rb&lt;br /&gt;
* app/models/Permission.rb &lt;br /&gt;
*. app/models/Plagiarism_checker_assignment_submission.rb  &lt;br /&gt;
* app/models/Plagiarism_checker_comparison.rb  &lt;br /&gt;
* app/models/question_advice.rb   &lt;br /&gt;
* app/models/Questionnaire_header.rb &lt;br /&gt;
* app/models/Questionnaire_node.rb &lt;br /&gt;
* app/models/Questionnaire.rb  &lt;br /&gt;
* app/models/Questionnaire_type_node.rb &lt;br /&gt;
* app/models/Question.rb &lt;br /&gt;
* app/models/Quiz_assignment.rb  &lt;br /&gt;
* app/models/Quiz_question_choice.rb &lt;br /&gt;
* app/models/Quiz_questionnaire.rb  &lt;br /&gt;
* app/models/Quiz_question.rb  &lt;br /&gt;
* app/models/Quiz_response_map.rb   &lt;br /&gt;
* app/models/Quiz_response.rb  &lt;br /&gt;
* app/models/Requested_user.rb  &lt;br /&gt;
* app/models/Response_map.rb &lt;br /&gt;
* app/models/Response.rb  &lt;br /&gt;
* app/models/review_assignment.rb&lt;br /&gt;
* app/models/Review_comment_paste_bin.rb  &lt;br /&gt;
* app/models/Review_grade.rb  &lt;br /&gt;
* app/models/Review_questionnaire.rb   &lt;br /&gt;
* app/models/Review_response_map.rb &lt;br /&gt;
* app/models/Role.rb  &lt;br /&gt;
* app/models/Rscore.rb &lt;br /&gt;
* app/models/rubric.rb   &lt;br /&gt;
* app/models/Scale.rb  &lt;br /&gt;
* app/models/Scored_question.rb  &lt;br /&gt;
* app/models/Score_view.rb&lt;br /&gt;
&lt;br /&gt;
In additions to above files, we have edited the following files as well as they were dependency on those.&lt;br /&gt;
&lt;br /&gt;
* '''ta.rb'''&lt;br /&gt;
&lt;br /&gt;
[[File:ta.png]]&lt;br /&gt;
&lt;br /&gt;
* '''response.html.erb'''&lt;br /&gt;
&lt;br /&gt;
[[File:response.png]]&lt;br /&gt;
&lt;br /&gt;
* '''spec/models/scale_spec.rb'''&lt;br /&gt;
&lt;br /&gt;
[[File:scale_spec.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Total Modifications ==&lt;br /&gt;
&lt;br /&gt;
42 Files changed&lt;br /&gt;
&lt;br /&gt;
215 additions&lt;br /&gt;
&lt;br /&gt;
163 Deletions&lt;br /&gt;
&lt;br /&gt;
==Important Links ==&lt;br /&gt;
&lt;br /&gt;
*  Pull Request: https://github.com/expertiza/expertiza/pull/1416&lt;br /&gt;
*  Files: https://github.com/expertiza/expertiza/pull/1416/files&lt;br /&gt;
*  Codeclimate analysis: https://codeclimate.com/github/expertiza/expertiza/pull/1416&lt;br /&gt;
*  Travis CI: https://travis-ci.org/expertiza/expertiza/builds/514206631?utm_source=github_status&amp;amp;utm_medium=notification&lt;/div&gt;</summary>
		<author><name>Rsethi3</name></author>
	</entry>
</feed>