<?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=Lpobrien</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=Lpobrien"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Lpobrien"/>
	<updated>2026-06-29T12:02:19Z</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_2022_-_E2232:_Revision_planning_tool&amp;diff=145378</id>
		<title>CSC/ECE 517 Spring 2022 - E2232: Revision planning tool</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2232:_Revision_planning_tool&amp;diff=145378"/>
		<updated>2022-04-26T02:57:57Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Project Goal==&lt;br /&gt;
The primary objective for this project is to create a tool that can be used for the revision of projects at a time after their original submission upon the delivery of constructive feedback from their peers or instructors. The revision planning tool is an important device that will be used to give students the ability to learn from the mistakes of their submissions, and improve the quality of their work prior to the due date. This will be done by completing the existing implementation for revision planning using the following project plan. &lt;br /&gt;
&lt;br /&gt;
==Project Plan==&lt;br /&gt;
Merge code for revision planning into current beta&lt;br /&gt;
&lt;br /&gt;
The functionality of E2152 works well but it was developed based on the previous beta and cannot be merged into the current beta. We will first merge the modification in the following files to the current beta and solve the conflicts.&lt;br /&gt;
 &lt;br /&gt;
===Files to be merged===&lt;br /&gt;
* app/controllers/revision_plan_questionnaires_controller.rb&lt;br /&gt;
* app/models/team.rb&lt;br /&gt;
* app/controllers/grades_controller.rb&lt;br /&gt;
* app/helpers/grades_helper.rb&lt;br /&gt;
* app/models/assignment_participant.rb&lt;br /&gt;
* app/models/response_map.rb&lt;br /&gt;
* app/views/grades/_participant_charts.html.erb&lt;br /&gt;
* app/views/grades/view_team.html.erb&lt;br /&gt;
* app/views/student_task/view.html.erb&lt;br /&gt;
* app/controllers/response_controller.rb&lt;br /&gt;
* app/views/response/response.html.erb&lt;br /&gt;
* config/routes.rb&lt;br /&gt;
* db/schema.rb&lt;br /&gt;
* spec/models/response_spec.rb&lt;br /&gt;
* spec/models/review_response_map_spec.rb&lt;br /&gt;
* spec/features/assignment_creation_general_tab_spec.rb&lt;br /&gt;
* app/models/revision_plan_team_map.rb&lt;br /&gt;
&lt;br /&gt;
Merge code for revision planning with code for role based reviewing and topic specific rubrics&lt;br /&gt;
 &lt;br /&gt;
The functionality of E2261 works well and has been merged into the current beta. By merging revision planning tool and topic specific rubrics, in the peer review process,&lt;br /&gt;
In the first round of review, the rubric is designed by the instructor and varies by topic &lt;br /&gt;
In the second round of review,  the rubric includes two parts: part 1 is designed by the instructor and varies by topic, part 2 is designed by the team based on the comments of the first round of review.&lt;br /&gt;
&lt;br /&gt;
[[File:E2232_diagram.png]]&lt;br /&gt;
&lt;br /&gt;
==Current Project Implementation==&lt;br /&gt;
&lt;br /&gt;
The implementation of this now fits within the framework created by E2161 (Fall 2021). &lt;br /&gt;
&lt;br /&gt;
What it does: In the first round of Expertiza reviews, we ask reviewers to give authors some guidance on how to improve their work. Then in the second round, reviewers rate how well authors have followed their suggestions. Authors are now able to leave a plan of work attached to their reviews in order to indicate their plan to move forward with the criticism given by the peer reviews. This is done by utilizing controller classes for advice and response that are tasked with creating the objects, as implemented in the advice and response model classes respectively, saving them to the database and displaying them in the html files. We also ensure that response can only be performed by the appropriate members by indicating that actions are only permitted by those with instructor privilege (teaching assistants, admins, and instructors) as well as the student who has been assigned the review can alter them (seen here).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def action_allowed?&lt;br /&gt;
  questionnaire = Questionnaire.find(params[:id])&lt;br /&gt;
  if(user_logged_in? &amp;amp;&amp;amp; questionnaire.owner?(session[:user].id))&lt;br /&gt;
    return true&lt;br /&gt;
  end&lt;br /&gt;
  current_user_has_ta_privileges?&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
Helper methods such as summary_helper.rb are used in order to receive values from existing objects, for example receiving the sentences as broken up into seperate array entries as is needed for the comments of the answers in the reviews.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def get_sentences(answer)&lt;br /&gt;
  if answer.nil?&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
  sentences = answer.comments.split(/[.,?,!]/) &lt;br /&gt;
  sentences.each{ |sentence| sentence.strip! }&lt;br /&gt;
&lt;br /&gt;
  sentences&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Rationale===&lt;br /&gt;
The general workflow will be maintained from the previous iterations working on this project. The workflow used by past semesters is as follows.&lt;br /&gt;
&lt;br /&gt;
[[File:E2152_Rationale.png|410px|center|Image from previous write up]]&lt;br /&gt;
&lt;br /&gt;
===Previous implementation===&lt;br /&gt;
This project was last done in Fall 2021 (E2152). However, related merged code from E2161 (link above) means the implementation this semester may need to be changed from how E2152 did it.&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2131 Primary Pull Request for E2152]&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2152 Second Pull Request for Revision Planning]&lt;br /&gt;
* [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2152._Revision_planning_tool Previous write up for E2152]&lt;br /&gt;
&lt;br /&gt;
====Current Flow====&lt;br /&gt;
Current flow is dictated by previous iterations. The following content and images are created using those previous write ups.&lt;br /&gt;
&lt;br /&gt;
Prior to the round 2 submission, you can look into your work, but the revision plan.&lt;br /&gt;
[[File:211129-2.png|700px|thumb|center]]&lt;br /&gt;
If there is a round 2 submission, and we did not deal with the &amp;quot;Revision Planning&amp;quot;, then the &amp;quot;Your work&amp;quot; part becomes gray.&lt;br /&gt;
[[File:211129-5.png|700px|thumb|center]]&lt;br /&gt;
After editing the &amp;quot;Revision Planning&amp;quot;, we can submit our work.&lt;br /&gt;
[[File:211129-6.png|700px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
=====Current User Interface=====&lt;br /&gt;
Current user interface has been put in place by the previous iterations, the following interface image is from those iterations.&lt;br /&gt;
&lt;br /&gt;
[[File:after1.png|700px|thumb|center|Reviews cannot be done during the submission phase]]&lt;br /&gt;
&lt;br /&gt;
====Design Changes====&lt;br /&gt;
Because the changes to the current implementation is limited to specific implementation, the UML design of the project will remain the same as the previous implementation.&lt;br /&gt;
&lt;br /&gt;
[[File:E2152_Design.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
===Merge existing RSpec tests for revision planning into current beta===&lt;br /&gt;
We will first merge the existing RSpec tests of E2152 to the current beta, then run and pass these tests. More comments can be made in rspec tests as well. Observe the coverage of the individual tests. &lt;br /&gt;
Existing RSpec tests to be merged&lt;br /&gt;
* Controllers&lt;br /&gt;
** rspec spec/controllers/grades_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/questionnaires_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/questions_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/student_teams_controller_spec.rb&lt;br /&gt;
** spec/controllers/response_controller_spec.rb&lt;br /&gt;
** spec/controllers/revision_plan_questionnaires_controller_spec.rb&lt;br /&gt;
** spec/factories/revision_plan_factory.rb&lt;br /&gt;
* Models&lt;br /&gt;
** spec/models/response_spec.rb.&lt;br /&gt;
** spec/models/review_response_map_spec.rb&lt;br /&gt;
* Helpers&lt;br /&gt;
** rspec spec/heplers/grades_helper.rb&lt;br /&gt;
&lt;br /&gt;
===Develop New RSpec Tests===&lt;br /&gt;
The RSpec tests are written to test both controllers and models. RSpec testing will be added in order to increase coverage. To do this we will test the flows associated with different user types. Currently the only passing tests are related to student flows and tests may be added that work with instructors. These may include editing the reviews once they are created, and ensuring that an instructor has the ability to make edits.&lt;br /&gt;
&lt;br /&gt;
Testing is done for ensuring actions are allowed for teachers as well as the assigned student:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
describe '#action_allowed?' do&lt;br /&gt;
  let(:questionnaire) { build(:questionnaire, id: 1) }&lt;br /&gt;
  context 'when the role of current user is Super-Admin' do&lt;br /&gt;
    # Checking for Super-Admin&lt;br /&gt;
    it 'allows certain action' do&lt;br /&gt;
      controller.params = { id: '1' }&lt;br /&gt;
      stub_current_user(super_admin, super_admin.role.name, super_admin.role)&lt;br /&gt;
      expect(controller.send(:action_allowed?)).to be_truthy&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  context 'when the role of current user is Instructor' do&lt;br /&gt;
    # Checking for Instructor&lt;br /&gt;
    it 'allows certain action' do&lt;br /&gt;
      controller.params = { id: '1' }&lt;br /&gt;
      stub_current_user(instructor1, instructor1.role.name, instructor1.role)&lt;br /&gt;
      expect(controller.send(:action_allowed?)).to be_truthy&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  context 'when the role of current user is Student' do&lt;br /&gt;
    # Checking for Student&lt;br /&gt;
    it 'refuses certain action' do&lt;br /&gt;
      controller.params = { id: '1' }&lt;br /&gt;
      stub_current_user(student1, student1.role.name, student1.role)&lt;br /&gt;
      expect(controller.send(:action_allowed?)).to be_falsey&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Testing is also done in order ensure this in response controllers, and questionnaire controllers. Testing is done for model objects such as displaying as html (below) and ensuring fields are correctly returned&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
context 'when prefix is not nil, which means view_score page in instructor end' do&lt;br /&gt;
 it 'returns corresponding html code' do&lt;br /&gt;
    allow(response).to receive(:questionnaire_by_answer).with(answer).and_return(questionnaire)&lt;br /&gt;
    allow(questionnaire).to receive(:max_question_score).and_return(5)&lt;br /&gt;
    allow(questionnaire).to receive(:id).and_return(1)&lt;br /&gt;
    allow(assignment).to receive(:id).and_return(1)&lt;br /&gt;
    allow(question).to receive(:view_completed_question).with(1, answer, 5, nil, nil).and_return('Question HTML code')&lt;br /&gt;
    expect(response.display_as_html('Instructor end', 0)).to eq('&amp;lt;h4&amp;gt;&amp;lt;B&amp;gt;Review 0&amp;lt;/B&amp;gt;&amp;lt;/h4&amp;gt;&amp;lt;B&amp;gt;Reviewer: &amp;lt;/B&amp;gt;no one (no name)&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'\&lt;br /&gt;
      &amp;quot;&amp;lt;a href=\&amp;quot;#\&amp;quot; name= \&amp;quot;review_Instructor end_1Link\&amp;quot; onClick=\&amp;quot;toggleElement('review_Instructor end_1','review');return false;\&amp;quot;&amp;gt;&amp;quot;\&lt;br /&gt;
      &amp;quot;hide review&amp;lt;/a&amp;gt;&amp;lt;BR/&amp;gt;&amp;lt;h5&amp;gt;Review Responses&amp;lt;/h5&amp;gt;&amp;lt;table id=\&amp;quot;review_Instructor end_1\&amp;quot; class=\&amp;quot;table table-bordered\&amp;quot;&amp;gt;&amp;quot;\&lt;br /&gt;
      &amp;quot;&amp;lt;tr class=\&amp;quot;warning\&amp;quot;&amp;gt;&amp;lt;td&amp;gt;Question HTML code&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;h5&amp;gt;Additional Comment&amp;lt;/h5&amp;gt;&amp;quot;\&lt;br /&gt;
      &amp;quot;&amp;lt;table id=\&amp;quot;review_Instructor end_1\&amp;quot; class=\&amp;quot;table table-bordered\&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
rspec tests are also needed for validing saves for controller classes, and ensuring model functionality in response objects.&lt;br /&gt;
&lt;br /&gt;
===Manual Testing===&lt;br /&gt;
&lt;br /&gt;
* Instructor &lt;br /&gt;
** Can Review rubric varied by topic be enabled?&lt;br /&gt;
** Can different roles be chosen for each questionnaire? &lt;br /&gt;
** Can an assignment with revision planning enabled be created?&lt;br /&gt;
** Can an assignment with 2 rounds of review be set up?&lt;br /&gt;
&lt;br /&gt;
* Assignment participant &lt;br /&gt;
** If the revision-planning rubric can be edited or not?&lt;br /&gt;
** Are participants allowed to create/edit revision plan when round 1+ (1 or greater than 1) reviews have finished?&lt;br /&gt;
** Is revision plan editing disabled when the assignment is in review stage?&lt;br /&gt;
** Does participants show a summary of score for revision plan after review deadline has expired?&lt;br /&gt;
&lt;br /&gt;
* Assignment reviewer &lt;br /&gt;
** Does the rubric page show the topic-specific rubric?&lt;br /&gt;
** Does the rubric page show the revision plan rubric?&lt;br /&gt;
&lt;br /&gt;
==Team Information==&lt;br /&gt;
* Lawrence O'Brien (lpobrien)&lt;br /&gt;
* Joshua Lin (jlin36)&lt;br /&gt;
* Weiqi Sun (wsun23)&lt;br /&gt;
* Wyatt Plaga (wgplaga)&lt;br /&gt;
* '''Mentor:''' Nicholas Himes (nnhimes)&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* Pull request: https://github.com/expertiza/expertiza/pull/2395&lt;br /&gt;
* Github repo: https://github.com/wsun23/expertiza/tree/E2232&lt;br /&gt;
* VCL: http://152.7.99.215:8080/&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2232:_Revision_planning_tool&amp;diff=145377</id>
		<title>CSC/ECE 517 Spring 2022 - E2232: Revision planning tool</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2232:_Revision_planning_tool&amp;diff=145377"/>
		<updated>2022-04-26T02:54:46Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: /* Implementation By Team */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Project Goal==&lt;br /&gt;
The primary objective for this project is to create a tool that can be used for the revision of projects at a time after their original submission upon the delivery of constructive feedback from their peers or instructors. The revision planning tool is an important device that will be used to give students the ability to learn from the mistakes of their submissions, and improve the quality of their work prior to the due date. This will be done by completing the existing implementation for revision planning using the following project plan. &lt;br /&gt;
&lt;br /&gt;
==Project Plan==&lt;br /&gt;
Merge code for revision planning into current beta&lt;br /&gt;
&lt;br /&gt;
The functionality of E2152 works well but it was developed based on the previous beta and cannot be merged into the current beta. We will first merge the modification in the following files to the current beta and solve the conflicts.&lt;br /&gt;
 &lt;br /&gt;
===Files to be merged===&lt;br /&gt;
* app/controllers/revision_plan_questionnaires_controller.rb&lt;br /&gt;
* app/models/team.rb&lt;br /&gt;
* app/controllers/grades_controller.rb&lt;br /&gt;
* app/helpers/grades_helper.rb&lt;br /&gt;
* app/models/assignment_participant.rb&lt;br /&gt;
* app/models/response_map.rb&lt;br /&gt;
* app/views/grades/_participant_charts.html.erb&lt;br /&gt;
* app/views/grades/view_team.html.erb&lt;br /&gt;
* app/views/student_task/view.html.erb&lt;br /&gt;
* app/controllers/response_controller.rb&lt;br /&gt;
* app/views/response/response.html.erb&lt;br /&gt;
* config/routes.rb&lt;br /&gt;
* db/schema.rb&lt;br /&gt;
* spec/models/response_spec.rb&lt;br /&gt;
* spec/models/review_response_map_spec.rb&lt;br /&gt;
* spec/features/assignment_creation_general_tab_spec.rb&lt;br /&gt;
* app/models/revision_plan_team_map.rb&lt;br /&gt;
&lt;br /&gt;
Merge code for revision planning with code for role based reviewing and topic specific rubrics&lt;br /&gt;
 &lt;br /&gt;
The functionality of E2261 works well and has been merged into the current beta. By merging revision planning tool and topic specific rubrics, in the peer review process,&lt;br /&gt;
In the first round of review, the rubric is designed by the instructor and varies by topic &lt;br /&gt;
In the second round of review,  the rubric includes two parts: part 1 is designed by the instructor and varies by topic, part 2 is designed by the team based on the comments of the first round of review.&lt;br /&gt;
&lt;br /&gt;
[[File:E2232_diagram.png]]&lt;br /&gt;
&lt;br /&gt;
==Current Project Implementation==&lt;br /&gt;
&lt;br /&gt;
The implementation of this now fits within the framework created by E2161 (Fall 2021). &lt;br /&gt;
&lt;br /&gt;
What it does: In the first round of Expertiza reviews, we ask reviewers to give authors some guidance on how to improve their work. Then in the second round, reviewers rate how well authors have followed their suggestions. Authors are now able to leave a plan of work attached to their reviews in order to indicate their plan to move forward with the criticism given by the peer reviews. This is done by utilizing controller classes for advice and response that are tasked with creating the objects, as implemented in the advice and response model classes respectively, saving them to the database and displaying them in the html files. We also ensure that response can only be performed by the appropriate members by indicating that actions are only permitted by those with instructor privilege (teaching assistants, admins, and instructors) as well as the student who has been assigned the review can alter them (seen here).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def action_allowed?&lt;br /&gt;
  questionnaire = Questionnaire.find(params[:id])&lt;br /&gt;
  if(user_logged_in? &amp;amp;&amp;amp; questionnaire.owner?(session[:user].id))&lt;br /&gt;
    return true&lt;br /&gt;
  end&lt;br /&gt;
  current_user_has_ta_privileges?&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
Helper methods such as summary_helper.rb are used in order to receive values from existing objects, for example receiving the sentences as broken up into seperate array entries as is needed for the comments of the answers in the reviews.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def get_sentences(answer)&lt;br /&gt;
  if answer.nil?&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
  sentences = answer.comments.split(/[.,?,!]/) &lt;br /&gt;
  sentences.each{ |sentence| sentence.strip! }&lt;br /&gt;
&lt;br /&gt;
  sentences&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Rationale===&lt;br /&gt;
The general workflow will be maintained from the previous iterations working on this project. The workflow used by past semesters is as follows.&lt;br /&gt;
&lt;br /&gt;
[[File:E2152_Rationale.png|410px|center|Image from previous write up]]&lt;br /&gt;
&lt;br /&gt;
===Previous implementation===&lt;br /&gt;
This project was last done in Fall 2021 (E2152). However, related merged code from E2161 (link above) means the implementation this semester may need to be changed from how E2152 did it.&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2131 Primary Pull Request for E2152]&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2152 Second Pull Request for Revision Planning]&lt;br /&gt;
* [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2152._Revision_planning_tool Previous write up for E2152]&lt;br /&gt;
&lt;br /&gt;
====Current Flow====&lt;br /&gt;
Current flow is dictated by previous iterations. The following content and images are created using those previous write ups.&lt;br /&gt;
&lt;br /&gt;
Prior to the round 2 submission, you can look into your work, but the revision plan.&lt;br /&gt;
[[File:211129-2.png|700px|thumb|center]]&lt;br /&gt;
If there is a round 2 submission, and we did not deal with the &amp;quot;Revision Planning&amp;quot;, then the &amp;quot;Your work&amp;quot; part becomes gray.&lt;br /&gt;
[[File:211129-5.png|700px|thumb|center]]&lt;br /&gt;
After editing the &amp;quot;Revision Planning&amp;quot;, we can submit our work.&lt;br /&gt;
[[File:211129-6.png|700px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
=====Current User Interface=====&lt;br /&gt;
Current user interface has been put in place by the previous iterations, the following interface image is from those iterations.&lt;br /&gt;
&lt;br /&gt;
[[File:after1.png|700px|thumb|center|Reviews cannot be done during the submission phase]]&lt;br /&gt;
&lt;br /&gt;
====Design Changes====&lt;br /&gt;
Because the changes to the current implementation is limited to specific implementation, the UML design of the project will remain the same as the previous implementation.&lt;br /&gt;
&lt;br /&gt;
[[File:E2152_Design.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
===Merge existing RSpec tests for revision planning into current beta===&lt;br /&gt;
We will first merge the existing RSpec tests of E2152 to the current beta, then run and pass these tests. More comments can be made in rspec tests as well. Observe the coverage of the individual tests. &lt;br /&gt;
Existing RSpec tests to be merged&lt;br /&gt;
* Controllers&lt;br /&gt;
** rspec spec/controllers/grades_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/questionnaires_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/questions_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/student_teams_controller_spec.rb&lt;br /&gt;
** spec/controllers/response_controller_spec.rb&lt;br /&gt;
** spec/controllers/revision_plan_questionnaires_controller_spec.rb&lt;br /&gt;
** spec/factories/revision_plan_factory.rb&lt;br /&gt;
* Models&lt;br /&gt;
** spec/models/response_spec.rb.&lt;br /&gt;
** spec/models/review_response_map_spec.rb&lt;br /&gt;
* Helpers&lt;br /&gt;
** rspec spec/heplers/grades_helper.rb&lt;br /&gt;
&lt;br /&gt;
===Develop New RSpec Tests===&lt;br /&gt;
The RSpec tests are written to test both controllers and models. RSpec testing will be added in order to increase coverage. To do this we will test the flows associated with different user types. Currently the only passing tests are related to student flows and tests may be added that work with instructors. These may include editing the reviews once they are created, and ensuring that an instructor has the ability to make edits.&lt;br /&gt;
&lt;br /&gt;
Testing is done for ensuring actions are allowed for teachers as well as the assigned student:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
describe '#action_allowed?' do&lt;br /&gt;
  let(:questionnaire) { build(:questionnaire, id: 1) }&lt;br /&gt;
  context 'when the role of current user is Super-Admin' do&lt;br /&gt;
    # Checking for Super-Admin&lt;br /&gt;
    it 'allows certain action' do&lt;br /&gt;
      controller.params = { id: '1' }&lt;br /&gt;
      stub_current_user(super_admin, super_admin.role.name, super_admin.role)&lt;br /&gt;
      expect(controller.send(:action_allowed?)).to be_truthy&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  context 'when the role of current user is Instructor' do&lt;br /&gt;
    # Checking for Instructor&lt;br /&gt;
    it 'allows certain action' do&lt;br /&gt;
      controller.params = { id: '1' }&lt;br /&gt;
      stub_current_user(instructor1, instructor1.role.name, instructor1.role)&lt;br /&gt;
      expect(controller.send(:action_allowed?)).to be_truthy&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  context 'when the role of current user is Student' do&lt;br /&gt;
    # Checking for Student&lt;br /&gt;
    it 'refuses certain action' do&lt;br /&gt;
      controller.params = { id: '1' }&lt;br /&gt;
      stub_current_user(student1, student1.role.name, student1.role)&lt;br /&gt;
      expect(controller.send(:action_allowed?)).to be_falsey&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Testing is also done in order ensure this in response controllers, and questionnaire controllers. Testing is done for model objects such as displaying as html (below) and ensuring fields are correctly returned&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
context 'when prefix is not nil, which means view_score page in instructor end' do&lt;br /&gt;
 it 'returns corresponding html code' do&lt;br /&gt;
    allow(response).to receive(:questionnaire_by_answer).with(answer).and_return(questionnaire)&lt;br /&gt;
    allow(questionnaire).to receive(:max_question_score).and_return(5)&lt;br /&gt;
    allow(questionnaire).to receive(:id).and_return(1)&lt;br /&gt;
    allow(assignment).to receive(:id).and_return(1)&lt;br /&gt;
    allow(question).to receive(:view_completed_question).with(1, answer, 5, nil, nil).and_return('Question HTML code')&lt;br /&gt;
    expect(response.display_as_html('Instructor end', 0)).to eq('&amp;lt;h4&amp;gt;&amp;lt;B&amp;gt;Review 0&amp;lt;/B&amp;gt;&amp;lt;/h4&amp;gt;&amp;lt;B&amp;gt;Reviewer: &amp;lt;/B&amp;gt;no one (no name)&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'\&lt;br /&gt;
      &amp;quot;&amp;lt;a href=\&amp;quot;#\&amp;quot; name= \&amp;quot;review_Instructor end_1Link\&amp;quot; onClick=\&amp;quot;toggleElement('review_Instructor end_1','review');return false;\&amp;quot;&amp;gt;&amp;quot;\&lt;br /&gt;
      &amp;quot;hide review&amp;lt;/a&amp;gt;&amp;lt;BR/&amp;gt;&amp;lt;h5&amp;gt;Review Responses&amp;lt;/h5&amp;gt;&amp;lt;table id=\&amp;quot;review_Instructor end_1\&amp;quot; class=\&amp;quot;table table-bordered\&amp;quot;&amp;gt;&amp;quot;\&lt;br /&gt;
      &amp;quot;&amp;lt;tr class=\&amp;quot;warning\&amp;quot;&amp;gt;&amp;lt;td&amp;gt;Question HTML code&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;h5&amp;gt;Additional Comment&amp;lt;/h5&amp;gt;&amp;quot;\&lt;br /&gt;
      &amp;quot;&amp;lt;table id=\&amp;quot;review_Instructor end_1\&amp;quot; class=\&amp;quot;table table-bordered\&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
rspec tests are also needed for validing saves for controller classes, and ensuring model functionality in response objects.&lt;br /&gt;
&lt;br /&gt;
===Manual Testing===&lt;br /&gt;
&lt;br /&gt;
* Instructor &lt;br /&gt;
** Can Review rubric varied by topic be enabled?&lt;br /&gt;
** Can different roles be chosen for each questionnaire? &lt;br /&gt;
** Can an assignment with revision planning enabled be created?&lt;br /&gt;
** Can an assignment with 2 rounds of review be set up?&lt;br /&gt;
&lt;br /&gt;
* Assignment participant &lt;br /&gt;
** If the revision-planning rubric can be edited or not?&lt;br /&gt;
** Are participants allowed to create/edit revision plan when round 1+ (1 or greater than 1) reviews have finished?&lt;br /&gt;
** Is revision plan editing disabled when the assignment is in review stage?&lt;br /&gt;
** Does participants show a summary of score for revision plan after review deadline has expired?&lt;br /&gt;
&lt;br /&gt;
* Assignment reviewer &lt;br /&gt;
** Does the rubric page show the topic-specific rubric?&lt;br /&gt;
** Does the rubric page show the revision plan rubric?&lt;br /&gt;
&lt;br /&gt;
==Team Information==&lt;br /&gt;
* Lawrence O'Brien (lpobrien)&lt;br /&gt;
* Joshua Lin (jlin36)&lt;br /&gt;
* Weiqi Sun (wsun23)&lt;br /&gt;
* Wyatt Plaga (wgplaga)&lt;br /&gt;
* '''Mentor:''' Nicholas Himes (nnhimes)&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2232:_Revision_planning_tool&amp;diff=145376</id>
		<title>CSC/ECE 517 Spring 2022 - E2232: Revision planning tool</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2232:_Revision_planning_tool&amp;diff=145376"/>
		<updated>2022-04-26T02:54:26Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: /* Develop New RSpec Tests */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Project Goal==&lt;br /&gt;
The primary objective for this project is to create a tool that can be used for the revision of projects at a time after their original submission upon the delivery of constructive feedback from their peers or instructors. The revision planning tool is an important device that will be used to give students the ability to learn from the mistakes of their submissions, and improve the quality of their work prior to the due date. This will be done by completing the existing implementation for revision planning using the following project plan. &lt;br /&gt;
&lt;br /&gt;
==Project Plan==&lt;br /&gt;
Merge code for revision planning into current beta&lt;br /&gt;
&lt;br /&gt;
The functionality of E2152 works well but it was developed based on the previous beta and cannot be merged into the current beta. We will first merge the modification in the following files to the current beta and solve the conflicts.&lt;br /&gt;
 &lt;br /&gt;
===Files to be merged===&lt;br /&gt;
* app/controllers/revision_plan_questionnaires_controller.rb&lt;br /&gt;
* app/models/team.rb&lt;br /&gt;
* app/controllers/grades_controller.rb&lt;br /&gt;
* app/helpers/grades_helper.rb&lt;br /&gt;
* app/models/assignment_participant.rb&lt;br /&gt;
* app/models/response_map.rb&lt;br /&gt;
* app/views/grades/_participant_charts.html.erb&lt;br /&gt;
* app/views/grades/view_team.html.erb&lt;br /&gt;
* app/views/student_task/view.html.erb&lt;br /&gt;
* app/controllers/response_controller.rb&lt;br /&gt;
* app/views/response/response.html.erb&lt;br /&gt;
* config/routes.rb&lt;br /&gt;
* db/schema.rb&lt;br /&gt;
* spec/models/response_spec.rb&lt;br /&gt;
* spec/models/review_response_map_spec.rb&lt;br /&gt;
* spec/features/assignment_creation_general_tab_spec.rb&lt;br /&gt;
* app/models/revision_plan_team_map.rb&lt;br /&gt;
&lt;br /&gt;
Merge code for revision planning with code for role based reviewing and topic specific rubrics&lt;br /&gt;
 &lt;br /&gt;
The functionality of E2261 works well and has been merged into the current beta. By merging revision planning tool and topic specific rubrics, in the peer review process,&lt;br /&gt;
In the first round of review, the rubric is designed by the instructor and varies by topic &lt;br /&gt;
In the second round of review,  the rubric includes two parts: part 1 is designed by the instructor and varies by topic, part 2 is designed by the team based on the comments of the first round of review.&lt;br /&gt;
&lt;br /&gt;
[[File:E2232_diagram.png]]&lt;br /&gt;
&lt;br /&gt;
==Current Project Implementation==&lt;br /&gt;
&lt;br /&gt;
The implementation of this now fits within the framework created by E2161 (Fall 2021). &lt;br /&gt;
&lt;br /&gt;
What it does: In the first round of Expertiza reviews, we ask reviewers to give authors some guidance on how to improve their work. Then in the second round, reviewers rate how well authors have followed their suggestions. Authors are now able to leave a plan of work attached to their reviews in order to indicate their plan to move forward with the criticism given by the peer reviews. This is done by utilizing controller classes for advice and response that are tasked with creating the objects, as implemented in the advice and response model classes respectively, saving them to the database and displaying them in the html files. We also ensure that response can only be performed by the appropriate members by indicating that actions are only permitted by those with instructor privilege (teaching assistants, admins, and instructors) as well as the student who has been assigned the review can alter them (seen here).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def action_allowed?&lt;br /&gt;
  questionnaire = Questionnaire.find(params[:id])&lt;br /&gt;
  if(user_logged_in? &amp;amp;&amp;amp; questionnaire.owner?(session[:user].id))&lt;br /&gt;
    return true&lt;br /&gt;
  end&lt;br /&gt;
  current_user_has_ta_privileges?&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
Helper methods such as summary_helper.rb are used in order to receive values from existing objects, for example receiving the sentences as broken up into seperate array entries as is needed for the comments of the answers in the reviews.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def get_sentences(answer)&lt;br /&gt;
  if answer.nil?&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
  sentences = answer.comments.split(/[.,?,!]/) &lt;br /&gt;
  sentences.each{ |sentence| sentence.strip! }&lt;br /&gt;
&lt;br /&gt;
  sentences&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Rationale===&lt;br /&gt;
The general workflow will be maintained from the previous iterations working on this project. The workflow used by past semesters is as follows.&lt;br /&gt;
&lt;br /&gt;
[[File:E2152_Rationale.png|410px|center|Image from previous write up]]&lt;br /&gt;
&lt;br /&gt;
===Previous implementation===&lt;br /&gt;
This project was last done in Fall 2021 (E2152). However, related merged code from E2161 (link above) means the implementation this semester may need to be changed from how E2152 did it.&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2131 Primary Pull Request for E2152]&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2152 Second Pull Request for Revision Planning]&lt;br /&gt;
* [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2152._Revision_planning_tool Previous write up for E2152]&lt;br /&gt;
&lt;br /&gt;
====Current Flow====&lt;br /&gt;
Current flow is dictated by previous iterations. The following content and images are created using those previous write ups.&lt;br /&gt;
&lt;br /&gt;
Prior to the round 2 submission, you can look into your work, but the revision plan.&lt;br /&gt;
[[File:211129-2.png|700px|thumb|center]]&lt;br /&gt;
If there is a round 2 submission, and we did not deal with the &amp;quot;Revision Planning&amp;quot;, then the &amp;quot;Your work&amp;quot; part becomes gray.&lt;br /&gt;
[[File:211129-5.png|700px|thumb|center]]&lt;br /&gt;
After editing the &amp;quot;Revision Planning&amp;quot;, we can submit our work.&lt;br /&gt;
[[File:211129-6.png|700px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
=====Current User Interface=====&lt;br /&gt;
Current user interface has been put in place by the previous iterations, the following interface image is from those iterations.&lt;br /&gt;
&lt;br /&gt;
[[File:after1.png|700px|thumb|center|Reviews cannot be done during the submission phase]]&lt;br /&gt;
&lt;br /&gt;
====Design Changes====&lt;br /&gt;
Because the changes to the current implementation is limited to specific implementation, the UML design of the project will remain the same as the previous implementation.&lt;br /&gt;
&lt;br /&gt;
[[File:E2152_Design.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
===Merge existing RSpec tests for revision planning into current beta===&lt;br /&gt;
We will first merge the existing RSpec tests of E2152 to the current beta, then run and pass these tests. More comments can be made in rspec tests as well. Observe the coverage of the individual tests. &lt;br /&gt;
Existing RSpec tests to be merged&lt;br /&gt;
* Controllers&lt;br /&gt;
** rspec spec/controllers/grades_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/questionnaires_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/questions_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/student_teams_controller_spec.rb&lt;br /&gt;
** spec/controllers/response_controller_spec.rb&lt;br /&gt;
** spec/controllers/revision_plan_questionnaires_controller_spec.rb&lt;br /&gt;
** spec/factories/revision_plan_factory.rb&lt;br /&gt;
* Models&lt;br /&gt;
** spec/models/response_spec.rb.&lt;br /&gt;
** spec/models/review_response_map_spec.rb&lt;br /&gt;
* Helpers&lt;br /&gt;
** rspec spec/heplers/grades_helper.rb&lt;br /&gt;
&lt;br /&gt;
===Develop New RSpec Tests===&lt;br /&gt;
The RSpec tests are written to test both controllers and models. RSpec testing will be added in order to increase coverage. To do this we will test the flows associated with different user types. Currently the only passing tests are related to student flows and tests may be added that work with instructors. These may include editing the reviews once they are created, and ensuring that an instructor has the ability to make edits.&lt;br /&gt;
&lt;br /&gt;
Testing is done for ensuring actions are allowed for teachers as well as the assigned student:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
describe '#action_allowed?' do&lt;br /&gt;
  let(:questionnaire) { build(:questionnaire, id: 1) }&lt;br /&gt;
  context 'when the role of current user is Super-Admin' do&lt;br /&gt;
    # Checking for Super-Admin&lt;br /&gt;
    it 'allows certain action' do&lt;br /&gt;
      controller.params = { id: '1' }&lt;br /&gt;
      stub_current_user(super_admin, super_admin.role.name, super_admin.role)&lt;br /&gt;
      expect(controller.send(:action_allowed?)).to be_truthy&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  context 'when the role of current user is Instructor' do&lt;br /&gt;
    # Checking for Instructor&lt;br /&gt;
    it 'allows certain action' do&lt;br /&gt;
      controller.params = { id: '1' }&lt;br /&gt;
      stub_current_user(instructor1, instructor1.role.name, instructor1.role)&lt;br /&gt;
      expect(controller.send(:action_allowed?)).to be_truthy&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  context 'when the role of current user is Student' do&lt;br /&gt;
    # Checking for Student&lt;br /&gt;
    it 'refuses certain action' do&lt;br /&gt;
      controller.params = { id: '1' }&lt;br /&gt;
      stub_current_user(student1, student1.role.name, student1.role)&lt;br /&gt;
      expect(controller.send(:action_allowed?)).to be_falsey&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Testing is also done in order ensure this in response controllers, and questionnaire controllers. Testing is done for model objects such as displaying as html (below) and ensuring fields are correctly returned&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
context 'when prefix is not nil, which means view_score page in instructor end' do&lt;br /&gt;
 it 'returns corresponding html code' do&lt;br /&gt;
    allow(response).to receive(:questionnaire_by_answer).with(answer).and_return(questionnaire)&lt;br /&gt;
    allow(questionnaire).to receive(:max_question_score).and_return(5)&lt;br /&gt;
    allow(questionnaire).to receive(:id).and_return(1)&lt;br /&gt;
    allow(assignment).to receive(:id).and_return(1)&lt;br /&gt;
    allow(question).to receive(:view_completed_question).with(1, answer, 5, nil, nil).and_return('Question HTML code')&lt;br /&gt;
    expect(response.display_as_html('Instructor end', 0)).to eq('&amp;lt;h4&amp;gt;&amp;lt;B&amp;gt;Review 0&amp;lt;/B&amp;gt;&amp;lt;/h4&amp;gt;&amp;lt;B&amp;gt;Reviewer: &amp;lt;/B&amp;gt;no one (no name)&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'\&lt;br /&gt;
      &amp;quot;&amp;lt;a href=\&amp;quot;#\&amp;quot; name= \&amp;quot;review_Instructor end_1Link\&amp;quot; onClick=\&amp;quot;toggleElement('review_Instructor end_1','review');return false;\&amp;quot;&amp;gt;&amp;quot;\&lt;br /&gt;
      &amp;quot;hide review&amp;lt;/a&amp;gt;&amp;lt;BR/&amp;gt;&amp;lt;h5&amp;gt;Review Responses&amp;lt;/h5&amp;gt;&amp;lt;table id=\&amp;quot;review_Instructor end_1\&amp;quot; class=\&amp;quot;table table-bordered\&amp;quot;&amp;gt;&amp;quot;\&lt;br /&gt;
      &amp;quot;&amp;lt;tr class=\&amp;quot;warning\&amp;quot;&amp;gt;&amp;lt;td&amp;gt;Question HTML code&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;h5&amp;gt;Additional Comment&amp;lt;/h5&amp;gt;&amp;quot;\&lt;br /&gt;
      &amp;quot;&amp;lt;table id=\&amp;quot;review_Instructor end_1\&amp;quot; class=\&amp;quot;table table-bordered\&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
rspec tests are also needed for validing saves for controller classes, and ensuring model functionality in response objects.&lt;br /&gt;
&lt;br /&gt;
===Manual Testing===&lt;br /&gt;
&lt;br /&gt;
* Instructor &lt;br /&gt;
** Can Review rubric varied by topic be enabled?&lt;br /&gt;
** Can different roles be chosen for each questionnaire? &lt;br /&gt;
** Can an assignment with revision planning enabled be created?&lt;br /&gt;
** Can an assignment with 2 rounds of review be set up?&lt;br /&gt;
&lt;br /&gt;
* Assignment participant &lt;br /&gt;
** If the revision-planning rubric can be edited or not?&lt;br /&gt;
** Are participants allowed to create/edit revision plan when round 1+ (1 or greater than 1) reviews have finished?&lt;br /&gt;
** Is revision plan editing disabled when the assignment is in review stage?&lt;br /&gt;
** Does participants show a summary of score for revision plan after review deadline has expired?&lt;br /&gt;
&lt;br /&gt;
* Assignment reviewer &lt;br /&gt;
** Does the rubric page show the topic-specific rubric?&lt;br /&gt;
** Does the rubric page show the revision plan rubric?&lt;br /&gt;
&lt;br /&gt;
==Implementation By Team==&lt;br /&gt;
Halfway through the project deadline, there were new changes that were merged into Expertiza's beta branch. With these new changes in place, our code that was based off the old version of the beta branch started failing tests and causing errors. We fixed these changes that mainly occurred in advice_controller.rb. Some of these failures were also rolled over from the last team's implementation of this same project. Most of these errors occurred in response.rb&lt;br /&gt;
&lt;br /&gt;
==Team Information==&lt;br /&gt;
* Lawrence O'Brien (lpobrien)&lt;br /&gt;
* Joshua Lin (jlin36)&lt;br /&gt;
* Weiqi Sun (wsun23)&lt;br /&gt;
* Wyatt Plaga (wgplaga)&lt;br /&gt;
* '''Mentor:''' Nicholas Himes (nnhimes)&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2232:_Revision_planning_tool&amp;diff=145375</id>
		<title>CSC/ECE 517 Spring 2022 - E2232: Revision planning tool</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2232:_Revision_planning_tool&amp;diff=145375"/>
		<updated>2022-04-26T02:52:08Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: /* Test Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Project Goal==&lt;br /&gt;
The primary objective for this project is to create a tool that can be used for the revision of projects at a time after their original submission upon the delivery of constructive feedback from their peers or instructors. The revision planning tool is an important device that will be used to give students the ability to learn from the mistakes of their submissions, and improve the quality of their work prior to the due date. This will be done by completing the existing implementation for revision planning using the following project plan. &lt;br /&gt;
&lt;br /&gt;
==Project Plan==&lt;br /&gt;
Merge code for revision planning into current beta&lt;br /&gt;
&lt;br /&gt;
The functionality of E2152 works well but it was developed based on the previous beta and cannot be merged into the current beta. We will first merge the modification in the following files to the current beta and solve the conflicts.&lt;br /&gt;
 &lt;br /&gt;
===Files to be merged===&lt;br /&gt;
* app/controllers/revision_plan_questionnaires_controller.rb&lt;br /&gt;
* app/models/team.rb&lt;br /&gt;
* app/controllers/grades_controller.rb&lt;br /&gt;
* app/helpers/grades_helper.rb&lt;br /&gt;
* app/models/assignment_participant.rb&lt;br /&gt;
* app/models/response_map.rb&lt;br /&gt;
* app/views/grades/_participant_charts.html.erb&lt;br /&gt;
* app/views/grades/view_team.html.erb&lt;br /&gt;
* app/views/student_task/view.html.erb&lt;br /&gt;
* app/controllers/response_controller.rb&lt;br /&gt;
* app/views/response/response.html.erb&lt;br /&gt;
* config/routes.rb&lt;br /&gt;
* db/schema.rb&lt;br /&gt;
* spec/models/response_spec.rb&lt;br /&gt;
* spec/models/review_response_map_spec.rb&lt;br /&gt;
* spec/features/assignment_creation_general_tab_spec.rb&lt;br /&gt;
* app/models/revision_plan_team_map.rb&lt;br /&gt;
&lt;br /&gt;
Merge code for revision planning with code for role based reviewing and topic specific rubrics&lt;br /&gt;
 &lt;br /&gt;
The functionality of E2261 works well and has been merged into the current beta. By merging revision planning tool and topic specific rubrics, in the peer review process,&lt;br /&gt;
In the first round of review, the rubric is designed by the instructor and varies by topic &lt;br /&gt;
In the second round of review,  the rubric includes two parts: part 1 is designed by the instructor and varies by topic, part 2 is designed by the team based on the comments of the first round of review.&lt;br /&gt;
&lt;br /&gt;
[[File:E2232_diagram.png]]&lt;br /&gt;
&lt;br /&gt;
==Current Project Implementation==&lt;br /&gt;
&lt;br /&gt;
The implementation of this now fits within the framework created by E2161 (Fall 2021). &lt;br /&gt;
&lt;br /&gt;
What it does: In the first round of Expertiza reviews, we ask reviewers to give authors some guidance on how to improve their work. Then in the second round, reviewers rate how well authors have followed their suggestions. Authors are now able to leave a plan of work attached to their reviews in order to indicate their plan to move forward with the criticism given by the peer reviews. This is done by utilizing controller classes for advice and response that are tasked with creating the objects, as implemented in the advice and response model classes respectively, saving them to the database and displaying them in the html files. We also ensure that response can only be performed by the appropriate members by indicating that actions are only permitted by those with instructor privilege (teaching assistants, admins, and instructors) as well as the student who has been assigned the review can alter them (seen here).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def action_allowed?&lt;br /&gt;
  questionnaire = Questionnaire.find(params[:id])&lt;br /&gt;
  if(user_logged_in? &amp;amp;&amp;amp; questionnaire.owner?(session[:user].id))&lt;br /&gt;
    return true&lt;br /&gt;
  end&lt;br /&gt;
  current_user_has_ta_privileges?&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
Helper methods such as summary_helper.rb are used in order to receive values from existing objects, for example receiving the sentences as broken up into seperate array entries as is needed for the comments of the answers in the reviews.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def get_sentences(answer)&lt;br /&gt;
  if answer.nil?&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
  sentences = answer.comments.split(/[.,?,!]/) &lt;br /&gt;
  sentences.each{ |sentence| sentence.strip! }&lt;br /&gt;
&lt;br /&gt;
  sentences&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Rationale===&lt;br /&gt;
The general workflow will be maintained from the previous iterations working on this project. The workflow used by past semesters is as follows.&lt;br /&gt;
&lt;br /&gt;
[[File:E2152_Rationale.png|410px|center|Image from previous write up]]&lt;br /&gt;
&lt;br /&gt;
===Previous implementation===&lt;br /&gt;
This project was last done in Fall 2021 (E2152). However, related merged code from E2161 (link above) means the implementation this semester may need to be changed from how E2152 did it.&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2131 Primary Pull Request for E2152]&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2152 Second Pull Request for Revision Planning]&lt;br /&gt;
* [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2152._Revision_planning_tool Previous write up for E2152]&lt;br /&gt;
&lt;br /&gt;
====Current Flow====&lt;br /&gt;
Current flow is dictated by previous iterations. The following content and images are created using those previous write ups.&lt;br /&gt;
&lt;br /&gt;
Prior to the round 2 submission, you can look into your work, but the revision plan.&lt;br /&gt;
[[File:211129-2.png|700px|thumb|center]]&lt;br /&gt;
If there is a round 2 submission, and we did not deal with the &amp;quot;Revision Planning&amp;quot;, then the &amp;quot;Your work&amp;quot; part becomes gray.&lt;br /&gt;
[[File:211129-5.png|700px|thumb|center]]&lt;br /&gt;
After editing the &amp;quot;Revision Planning&amp;quot;, we can submit our work.&lt;br /&gt;
[[File:211129-6.png|700px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
=====Current User Interface=====&lt;br /&gt;
Current user interface has been put in place by the previous iterations, the following interface image is from those iterations.&lt;br /&gt;
&lt;br /&gt;
[[File:after1.png|700px|thumb|center|Reviews cannot be done during the submission phase]]&lt;br /&gt;
&lt;br /&gt;
====Design Changes====&lt;br /&gt;
Because the changes to the current implementation is limited to specific implementation, the UML design of the project will remain the same as the previous implementation.&lt;br /&gt;
&lt;br /&gt;
[[File:E2152_Design.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
===Merge existing RSpec tests for revision planning into current beta===&lt;br /&gt;
We will first merge the existing RSpec tests of E2152 to the current beta, then run and pass these tests. More comments can be made in rspec tests as well. Observe the coverage of the individual tests. &lt;br /&gt;
Existing RSpec tests to be merged&lt;br /&gt;
* Controllers&lt;br /&gt;
** rspec spec/controllers/grades_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/questionnaires_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/questions_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/student_teams_controller_spec.rb&lt;br /&gt;
** spec/controllers/response_controller_spec.rb&lt;br /&gt;
** spec/controllers/revision_plan_questionnaires_controller_spec.rb&lt;br /&gt;
** spec/factories/revision_plan_factory.rb&lt;br /&gt;
* Models&lt;br /&gt;
** spec/models/response_spec.rb.&lt;br /&gt;
** spec/models/review_response_map_spec.rb&lt;br /&gt;
* Helpers&lt;br /&gt;
** rspec spec/heplers/grades_helper.rb&lt;br /&gt;
&lt;br /&gt;
===Develop New RSpec Tests===&lt;br /&gt;
The RSpec tests are written to test both controllers and models. RSpec testing will be added in order to increase coverage. To do this we will test the flows associated with different user types. Currently the only passing tests are related to student flows and tests may be added that work with instructors. These may include editing the reviews once they are created, and ensuring that an instructor has the ability to make edits.&lt;br /&gt;
&lt;br /&gt;
Testing is done for ensuring actions are allowed for teachers as well as the assigned student:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
describe '#action_allowed?' do&lt;br /&gt;
  let(:questionnaire) { build(:questionnaire, id: 1) }&lt;br /&gt;
  context 'when the role of current user is Super-Admin' do&lt;br /&gt;
    # Checking for Super-Admin&lt;br /&gt;
    it 'allows certain action' do&lt;br /&gt;
      controller.params = { id: '1' }&lt;br /&gt;
      stub_current_user(super_admin, super_admin.role.name, super_admin.role)&lt;br /&gt;
      expect(controller.send(:action_allowed?)).to be_truthy&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  context 'when the role of current user is Instructor' do&lt;br /&gt;
    # Checking for Instructor&lt;br /&gt;
    it 'allows certain action' do&lt;br /&gt;
      controller.params = { id: '1' }&lt;br /&gt;
      stub_current_user(instructor1, instructor1.role.name, instructor1.role)&lt;br /&gt;
      expect(controller.send(:action_allowed?)).to be_truthy&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  context 'when the role of current user is Student' do&lt;br /&gt;
    # Checking for Student&lt;br /&gt;
    it 'refuses certain action' do&lt;br /&gt;
      controller.params = { id: '1' }&lt;br /&gt;
      stub_current_user(student1, student1.role.name, student1.role)&lt;br /&gt;
      expect(controller.send(:action_allowed?)).to be_falsey&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Testing is also done in order ensure this in response controllers, and questionnaire controllers. Testing is done for model objects such as displaying as html (below) and ensuring fields are correctly returned&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
context 'when prefix is not nil, which means view_score page in instructor end' do&lt;br /&gt;
 it 'returns corresponding html code' do&lt;br /&gt;
    allow(response).to receive(:questionnaire_by_answer).with(answer).and_return(questionnaire)&lt;br /&gt;
    allow(questionnaire).to receive(:max_question_score).and_return(5)&lt;br /&gt;
    allow(questionnaire).to receive(:id).and_return(1)&lt;br /&gt;
    allow(assignment).to receive(:id).and_return(1)&lt;br /&gt;
    allow(question).to receive(:view_completed_question).with(1, answer, 5, nil, nil).and_return('Question HTML code')&lt;br /&gt;
    expect(response.display_as_html('Instructor end', 0)).to eq('&amp;lt;h4&amp;gt;&amp;lt;B&amp;gt;Review 0&amp;lt;/B&amp;gt;&amp;lt;/h4&amp;gt;&amp;lt;B&amp;gt;Reviewer: &amp;lt;/B&amp;gt;no one (no name)&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'\&lt;br /&gt;
      &amp;quot;&amp;lt;a href=\&amp;quot;#\&amp;quot; name= \&amp;quot;review_Instructor end_1Link\&amp;quot; onClick=\&amp;quot;toggleElement('review_Instructor end_1','review');return false;\&amp;quot;&amp;gt;&amp;quot;\&lt;br /&gt;
      &amp;quot;hide review&amp;lt;/a&amp;gt;&amp;lt;BR/&amp;gt;&amp;lt;h5&amp;gt;Review Responses&amp;lt;/h5&amp;gt;&amp;lt;table id=\&amp;quot;review_Instructor end_1\&amp;quot; class=\&amp;quot;table table-bordered\&amp;quot;&amp;gt;&amp;quot;\&lt;br /&gt;
      &amp;quot;&amp;lt;tr class=\&amp;quot;warning\&amp;quot;&amp;gt;&amp;lt;td&amp;gt;Question HTML code&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;h5&amp;gt;Additional Comment&amp;lt;/h5&amp;gt;&amp;quot;\&lt;br /&gt;
      &amp;quot;&amp;lt;table id=\&amp;quot;review_Instructor end_1\&amp;quot; class=\&amp;quot;table table-bordered\&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Manual Testing===&lt;br /&gt;
&lt;br /&gt;
* Instructor &lt;br /&gt;
** Can Review rubric varied by topic be enabled?&lt;br /&gt;
** Can different roles be chosen for each questionnaire? &lt;br /&gt;
** Can an assignment with revision planning enabled be created?&lt;br /&gt;
** Can an assignment with 2 rounds of review be set up?&lt;br /&gt;
&lt;br /&gt;
* Assignment participant &lt;br /&gt;
** If the revision-planning rubric can be edited or not?&lt;br /&gt;
** Are participants allowed to create/edit revision plan when round 1+ (1 or greater than 1) reviews have finished?&lt;br /&gt;
** Is revision plan editing disabled when the assignment is in review stage?&lt;br /&gt;
** Does participants show a summary of score for revision plan after review deadline has expired?&lt;br /&gt;
&lt;br /&gt;
* Assignment reviewer &lt;br /&gt;
** Does the rubric page show the topic-specific rubric?&lt;br /&gt;
** Does the rubric page show the revision plan rubric?&lt;br /&gt;
&lt;br /&gt;
==Implementation By Team==&lt;br /&gt;
Halfway through the project deadline, there were new changes that were merged into Expertiza's beta branch. With these new changes in place, our code that was based off the old version of the beta branch started failing tests and causing errors. We fixed these changes that mainly occurred in advice_controller.rb. Some of these failures were also rolled over from the last team's implementation of this same project. Most of these errors occurred in response.rb&lt;br /&gt;
&lt;br /&gt;
==Team Information==&lt;br /&gt;
* Lawrence O'Brien (lpobrien)&lt;br /&gt;
* Joshua Lin (jlin36)&lt;br /&gt;
* Weiqi Sun (wsun23)&lt;br /&gt;
* Wyatt Plaga (wgplaga)&lt;br /&gt;
* '''Mentor:''' Nicholas Himes (nnhimes)&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2232:_Revision_planning_tool&amp;diff=145374</id>
		<title>CSC/ECE 517 Spring 2022 - E2232: Revision planning tool</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2232:_Revision_planning_tool&amp;diff=145374"/>
		<updated>2022-04-26T02:47:51Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: /* Current Project Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Project Goal==&lt;br /&gt;
The primary objective for this project is to create a tool that can be used for the revision of projects at a time after their original submission upon the delivery of constructive feedback from their peers or instructors. The revision planning tool is an important device that will be used to give students the ability to learn from the mistakes of their submissions, and improve the quality of their work prior to the due date. This will be done by completing the existing implementation for revision planning using the following project plan. &lt;br /&gt;
&lt;br /&gt;
==Project Plan==&lt;br /&gt;
Merge code for revision planning into current beta&lt;br /&gt;
&lt;br /&gt;
The functionality of E2152 works well but it was developed based on the previous beta and cannot be merged into the current beta. We will first merge the modification in the following files to the current beta and solve the conflicts.&lt;br /&gt;
 &lt;br /&gt;
===Files to be merged===&lt;br /&gt;
* app/controllers/revision_plan_questionnaires_controller.rb&lt;br /&gt;
* app/models/team.rb&lt;br /&gt;
* app/controllers/grades_controller.rb&lt;br /&gt;
* app/helpers/grades_helper.rb&lt;br /&gt;
* app/models/assignment_participant.rb&lt;br /&gt;
* app/models/response_map.rb&lt;br /&gt;
* app/views/grades/_participant_charts.html.erb&lt;br /&gt;
* app/views/grades/view_team.html.erb&lt;br /&gt;
* app/views/student_task/view.html.erb&lt;br /&gt;
* app/controllers/response_controller.rb&lt;br /&gt;
* app/views/response/response.html.erb&lt;br /&gt;
* config/routes.rb&lt;br /&gt;
* db/schema.rb&lt;br /&gt;
* spec/models/response_spec.rb&lt;br /&gt;
* spec/models/review_response_map_spec.rb&lt;br /&gt;
* spec/features/assignment_creation_general_tab_spec.rb&lt;br /&gt;
* app/models/revision_plan_team_map.rb&lt;br /&gt;
&lt;br /&gt;
Merge code for revision planning with code for role based reviewing and topic specific rubrics&lt;br /&gt;
 &lt;br /&gt;
The functionality of E2261 works well and has been merged into the current beta. By merging revision planning tool and topic specific rubrics, in the peer review process,&lt;br /&gt;
In the first round of review, the rubric is designed by the instructor and varies by topic &lt;br /&gt;
In the second round of review,  the rubric includes two parts: part 1 is designed by the instructor and varies by topic, part 2 is designed by the team based on the comments of the first round of review.&lt;br /&gt;
&lt;br /&gt;
[[File:E2232_diagram.png]]&lt;br /&gt;
&lt;br /&gt;
==Current Project Implementation==&lt;br /&gt;
&lt;br /&gt;
The implementation of this now fits within the framework created by E2161 (Fall 2021). &lt;br /&gt;
&lt;br /&gt;
What it does: In the first round of Expertiza reviews, we ask reviewers to give authors some guidance on how to improve their work. Then in the second round, reviewers rate how well authors have followed their suggestions. Authors are now able to leave a plan of work attached to their reviews in order to indicate their plan to move forward with the criticism given by the peer reviews. This is done by utilizing controller classes for advice and response that are tasked with creating the objects, as implemented in the advice and response model classes respectively, saving them to the database and displaying them in the html files. We also ensure that response can only be performed by the appropriate members by indicating that actions are only permitted by those with instructor privilege (teaching assistants, admins, and instructors) as well as the student who has been assigned the review can alter them (seen here).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def action_allowed?&lt;br /&gt;
  questionnaire = Questionnaire.find(params[:id])&lt;br /&gt;
  if(user_logged_in? &amp;amp;&amp;amp; questionnaire.owner?(session[:user].id))&lt;br /&gt;
    return true&lt;br /&gt;
  end&lt;br /&gt;
  current_user_has_ta_privileges?&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
Helper methods such as summary_helper.rb are used in order to receive values from existing objects, for example receiving the sentences as broken up into seperate array entries as is needed for the comments of the answers in the reviews.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def get_sentences(answer)&lt;br /&gt;
  if answer.nil?&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
  sentences = answer.comments.split(/[.,?,!]/) &lt;br /&gt;
  sentences.each{ |sentence| sentence.strip! }&lt;br /&gt;
&lt;br /&gt;
  sentences&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Rationale===&lt;br /&gt;
The general workflow will be maintained from the previous iterations working on this project. The workflow used by past semesters is as follows.&lt;br /&gt;
&lt;br /&gt;
[[File:E2152_Rationale.png|410px|center|Image from previous write up]]&lt;br /&gt;
&lt;br /&gt;
===Previous implementation===&lt;br /&gt;
This project was last done in Fall 2021 (E2152). However, related merged code from E2161 (link above) means the implementation this semester may need to be changed from how E2152 did it.&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2131 Primary Pull Request for E2152]&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2152 Second Pull Request for Revision Planning]&lt;br /&gt;
* [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2152._Revision_planning_tool Previous write up for E2152]&lt;br /&gt;
&lt;br /&gt;
====Current Flow====&lt;br /&gt;
Current flow is dictated by previous iterations. The following content and images are created using those previous write ups.&lt;br /&gt;
&lt;br /&gt;
Prior to the round 2 submission, you can look into your work, but the revision plan.&lt;br /&gt;
[[File:211129-2.png|700px|thumb|center]]&lt;br /&gt;
If there is a round 2 submission, and we did not deal with the &amp;quot;Revision Planning&amp;quot;, then the &amp;quot;Your work&amp;quot; part becomes gray.&lt;br /&gt;
[[File:211129-5.png|700px|thumb|center]]&lt;br /&gt;
After editing the &amp;quot;Revision Planning&amp;quot;, we can submit our work.&lt;br /&gt;
[[File:211129-6.png|700px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
=====Current User Interface=====&lt;br /&gt;
Current user interface has been put in place by the previous iterations, the following interface image is from those iterations.&lt;br /&gt;
&lt;br /&gt;
[[File:after1.png|700px|thumb|center|Reviews cannot be done during the submission phase]]&lt;br /&gt;
&lt;br /&gt;
====Design Changes====&lt;br /&gt;
Because the changes to the current implementation is limited to specific implementation, the UML design of the project will remain the same as the previous implementation.&lt;br /&gt;
&lt;br /&gt;
[[File:E2152_Design.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
===Merge existing RSpec tests for revision planning into current beta===&lt;br /&gt;
We will first merge the existing RSpec tests of E2152 to the current beta, then run and pass these tests. More comments can be made in rspec tests as well. Observe the coverage of the individual tests. &lt;br /&gt;
Existing RSpec tests to be merged&lt;br /&gt;
* Controllers&lt;br /&gt;
** rspec spec/controllers/grades_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/questionnaires_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/questions_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/student_teams_controller_spec.rb&lt;br /&gt;
** spec/controllers/response_controller_spec.rb&lt;br /&gt;
** spec/controllers/revision_plan_questionnaires_controller_spec.rb&lt;br /&gt;
** spec/factories/revision_plan_factory.rb&lt;br /&gt;
* Models&lt;br /&gt;
** spec/models/response_spec.rb.&lt;br /&gt;
** spec/models/review_response_map_spec.rb&lt;br /&gt;
* Helpers&lt;br /&gt;
** rspec spec/heplers/grades_helper.rb&lt;br /&gt;
&lt;br /&gt;
===Develop New RSpec Tests===&lt;br /&gt;
The RSpec tests are written to test both controllers and models. RSpec testing will be added in order to increase coverage. To do this we will test the flows associated with different user types. Currently the only passing tests are related to student flows and tests may be added that work with instructors. These may include editing the reviews once they are created, and ensuring that an instructor has the ability to make edits.&lt;br /&gt;
&lt;br /&gt;
===Manual Testing===&lt;br /&gt;
&lt;br /&gt;
* Instructor &lt;br /&gt;
** Can Review rubric varied by topic be enabled?&lt;br /&gt;
** Can different roles be chosen for each questionnaire? &lt;br /&gt;
** Can an assignment with revision planning enabled be created?&lt;br /&gt;
** Can an assignment with 2 rounds of review be set up?&lt;br /&gt;
&lt;br /&gt;
* Assignment participant &lt;br /&gt;
** If the revision-planning rubric can be edited or not?&lt;br /&gt;
** Are participants allowed to create/edit revision plan when round 1+ (1 or greater than 1) reviews have finished?&lt;br /&gt;
** Is revision plan editing disabled when the assignment is in review stage?&lt;br /&gt;
** Does participants show a summary of score for revision plan after review deadline has expired?&lt;br /&gt;
&lt;br /&gt;
* Assignment reviewer &lt;br /&gt;
** Does the rubric page show the topic-specific rubric?&lt;br /&gt;
** Does the rubric page show the revision plan rubric?&lt;br /&gt;
&lt;br /&gt;
==Implementation By Team==&lt;br /&gt;
Halfway through the project deadline, there were new changes that were merged into Expertiza's beta branch. With these new changes in place, our code that was based off the old version of the beta branch started failing tests and causing errors. We fixed these changes that mainly occurred in advice_controller.rb. Some of these failures were also rolled over from the last team's implementation of this same project. Most of these errors occurred in response.rb&lt;br /&gt;
&lt;br /&gt;
==Team Information==&lt;br /&gt;
* Lawrence O'Brien (lpobrien)&lt;br /&gt;
* Joshua Lin (jlin36)&lt;br /&gt;
* Weiqi Sun (wsun23)&lt;br /&gt;
* Wyatt Plaga (wgplaga)&lt;br /&gt;
* '''Mentor:''' Nicholas Himes (nnhimes)&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2232:_Revision_planning_tool&amp;diff=144843</id>
		<title>CSC/ECE 517 Spring 2022 - E2232: Revision planning tool</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2232:_Revision_planning_tool&amp;diff=144843"/>
		<updated>2022-04-12T01:33:57Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Project Goal==&lt;br /&gt;
The primary objective for this project is to create a tool that can be used for the revision of projects at a time after their original submission upon the delivery of constructive feedback from their peers or instructors. The revision planning tool is an important device that will be used to give students the ability to learn from the mistakes of their submissions, and improve the quality of their work prior to the due date. This will be done by completing the existing implementation for revision planning using the following project plan. &lt;br /&gt;
&lt;br /&gt;
==Project Plan==&lt;br /&gt;
Merge code for revision planning into current beta&lt;br /&gt;
&lt;br /&gt;
The functionality of E2152 works well but it was developed based on the previous beta and cannot be merged into the current beta. We will first merge the modification in the following files to the current beta and solve the conflicts.&lt;br /&gt;
 &lt;br /&gt;
===Files to be merged===&lt;br /&gt;
* app/controllers/revision_plan_questionnaires_controller.rb&lt;br /&gt;
* app/models/team.rb&lt;br /&gt;
* app/controllers/grades_controller.rb&lt;br /&gt;
* app/helpers/grades_helper.rb&lt;br /&gt;
* app/models/assignment_participant.rb&lt;br /&gt;
* app/models/response_map.rb&lt;br /&gt;
* app/views/grades/_participant_charts.html.erb&lt;br /&gt;
* app/views/grades/view_team.html.erb&lt;br /&gt;
* app/views/student_task/view.html.erb&lt;br /&gt;
* app/controllers/response_controller.rb&lt;br /&gt;
* app/views/response/response.html.erb&lt;br /&gt;
* config/routes.rb&lt;br /&gt;
* db/schema.rb&lt;br /&gt;
* spec/models/response_spec.rb&lt;br /&gt;
* spec/models/review_response_map_spec.rb&lt;br /&gt;
* spec/features/assignment_creation_general_tab_spec.rb&lt;br /&gt;
* app/models/revision_plan_team_map.rb&lt;br /&gt;
&lt;br /&gt;
Merge code for revision planning with code for role based reviewing and topic specific rubrics&lt;br /&gt;
 &lt;br /&gt;
The functionality of E2261 works well and has been merged into the current beta. By merging revision planning tool and topic specific rubrics, in the peer review process,&lt;br /&gt;
In the first round of review, the rubric is designed by the instructor and varies by topic &lt;br /&gt;
In the second round of review,  the rubric includes two parts: part 1 is designed by the instructor and varies by topic, part 2 is designed by the team based on the comments of the first round of review.&lt;br /&gt;
&lt;br /&gt;
[[File:E2232_diagram.png]]&lt;br /&gt;
&lt;br /&gt;
==Current Project Implementation==&lt;br /&gt;
&lt;br /&gt;
The implementation of this needs to fit within the framework created by E2161 (Fall 2021). &lt;br /&gt;
&lt;br /&gt;
What it does: In the first round of Expertiza reviews, we ask reviewers to give authors some guidance on how to improve their work. Then in the second round, reviewers rate how well authors have followed their suggestions. We could carry the interaction one step further if we asked authors to make up a revision plan based on the first-round reviews. That is, authors would say what they were planning to do to improve their work. Then second-round reviewers would assess how well they did it. In essence, this means that authors would be adding criteria to the second-round rubric that applied only to their submission. We are interested in having this implemented and used in a class so that we can study its effect.&lt;br /&gt;
&lt;br /&gt;
===Rationale===&lt;br /&gt;
The general workflow will be maintained from the previous iterations working on this project. The workflow used by past semesters is as follows.&lt;br /&gt;
&lt;br /&gt;
[[File:E2152_Rationale.png|410px|center|Image from previous write up]]&lt;br /&gt;
&lt;br /&gt;
===Previous implementation===&lt;br /&gt;
This project was last done in Fall 2021 (E2152). However, related merged code from E2161 (link above) means the implementation this semester may need to be changed from how E2152 did it.&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2131 Primary Pull Request for E2152]&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2152 Second Pull Request for Revision Planning]&lt;br /&gt;
* [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2152._Revision_planning_tool Previous write up for E2152]&lt;br /&gt;
&lt;br /&gt;
====Current Flow====&lt;br /&gt;
Current flow is dictated by previous iterations. The following content and images are created using those previous write ups.&lt;br /&gt;
&lt;br /&gt;
Prior to the round 2 submission, you can look into your work, but the revision plan.&lt;br /&gt;
[[File:211129-2.png|700px|thumb|center]]&lt;br /&gt;
If there is a round 2 submission, and we did not deal with the &amp;quot;Revision Planning&amp;quot;, then the &amp;quot;Your work&amp;quot; part becomes gray.&lt;br /&gt;
[[File:211129-5.png|700px|thumb|center]]&lt;br /&gt;
After editing the &amp;quot;Revision Planning&amp;quot;, we can submit our work.&lt;br /&gt;
[[File:211129-6.png|700px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
=====Current User Interface=====&lt;br /&gt;
Current user interface has been put in place by the previous iterations, the following interface image is from those iterations.&lt;br /&gt;
&lt;br /&gt;
[[File:after1.png|700px|thumb|center|Reviews cannot be done during the submission phase]]&lt;br /&gt;
&lt;br /&gt;
===Implementation to be completed===&lt;br /&gt;
There are actually two E2152 pull requests in Expertiza right now - the PR we saw in the demo has less recent commits than the other. And the PR we did not see has less files changed as well. They started with last year's project, so the beta they started with was the beta from last year. The changes since then will show up as merge conflicts if this project is merged.&lt;br /&gt;
&lt;br /&gt;
The functionality of this project seems to work well and would be a valuable addition to Expertiza, but it cannot be merged in its current state. There are many artifacts in their PR from an old version of beta. This is because the team merged the previous teams' code into current beta, but did not remove the differences unrelated to their project. The team knew of these problems before the demo, but did not fix them.&lt;br /&gt;
&lt;br /&gt;
Because the existing functionality encompasses the intended instructions fairly clearly the work that needs to be done for our purposes would be to pass rspec tests that currently cause the build to fail. This functionality would involve us causing different flows based upon the type of user completing the review. Shown below. HTML changes must also be made in order to pass, specifically needing a change to the display_as_html, done_by_staff_participant and participant_scores methods to return the correct html values. Currently display_as_html is returning an unknown error causing a msitake in the html delivered. The done_by_staff_participant is not present in the code and therefore returns a method not found error. particpant_scores is returning an error that is the result of an incorrect calculation for total_scores. More work will need to be done for each of these bugs to investigate the root cause and establish a solution.&lt;br /&gt;
&lt;br /&gt;
Pull request E2131 is failing rspec tests in ReviewMappingHelper due to a currently unknown OpenSSL error. More work will be needed to determine the specific cause and nature of this error.&lt;br /&gt;
&lt;br /&gt;
More comments can be made in rspec tests as well. It is unclear what the coverage is of the individual tests. The file revision_plan_team_map_test.rb has nothing substantial in it.&lt;br /&gt;
&lt;br /&gt;
[[File:Failing_rspec.PNG|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
====Design Changes====&lt;br /&gt;
Because the changes to the current implementation is limited to specific implementation, the UML design of the project will remain the same as the previous implementation.&lt;br /&gt;
&lt;br /&gt;
[[File:E2152_Design.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
===Merge existing RSpec tests for revision planning into current beta===&lt;br /&gt;
We will first merge the existing RSpec tests of E2152 to the current beta, then run and pass these tests. More comments can be made in rspec tests as well. Observe the coverage of the individual tests. &lt;br /&gt;
Existing RSpec tests to be merged&lt;br /&gt;
* Controllers&lt;br /&gt;
** rspec spec/controllers/grades_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/questionnaires_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/questions_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/student_teams_controller_spec.rb&lt;br /&gt;
** spec/controllers/response_controller_spec.rb&lt;br /&gt;
** spec/controllers/revision_plan_questionnaires_controller_spec.rb&lt;br /&gt;
** spec/factories/revision_plan_factory.rb&lt;br /&gt;
* Models&lt;br /&gt;
** spec/models/response_spec.rb.&lt;br /&gt;
** spec/models/review_response_map_spec.rb&lt;br /&gt;
* Helpers&lt;br /&gt;
** rspec spec/heplers/grades_helper.rb&lt;br /&gt;
&lt;br /&gt;
===Develop New RSpec Tests===&lt;br /&gt;
The RSpec tests are written to test both controllers and models. RSpec testing will be added in order to increase coverage. To do this we will test the flows associated with different user types. Currently the only passing tests are related to student flows and tests may be added that work with instructors. These may include editing the reviews once they are created, and ensuring that an instructor has the ability to make edits.&lt;br /&gt;
&lt;br /&gt;
===Manual Testing===&lt;br /&gt;
&lt;br /&gt;
* Instructor &lt;br /&gt;
** Can Review rubric varied by topic be enabled?&lt;br /&gt;
** Can different roles be chosen for each questionnaire? &lt;br /&gt;
** Can an assignment with revision planning enabled be created?&lt;br /&gt;
** Can an assignment with 2 rounds of review be set up?&lt;br /&gt;
&lt;br /&gt;
* Assignment participant &lt;br /&gt;
** If the revision-planning rubric can be edited or not?&lt;br /&gt;
** Are participants allowed to create/edit revision plan when round 1+ (1 or greater than 1) reviews have finished?&lt;br /&gt;
** Is revision plan editing disabled when the assignment is in review stage?&lt;br /&gt;
** Does participants show a summary of score for revision plan after review deadline has expired?&lt;br /&gt;
&lt;br /&gt;
* Assignment reviewer &lt;br /&gt;
** Does the rubric page show the topic-specific rubric?&lt;br /&gt;
** Does the rubric page show the revision plan rubric?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Team Information==&lt;br /&gt;
* Lawrence O'Brien (lpobrien)&lt;br /&gt;
* Joshua Lin (jlin36)&lt;br /&gt;
* Weiqi Sun (wsun23)&lt;br /&gt;
* Wyatt Plaga (wgplaga)&lt;br /&gt;
* '''Mentor:''' Nicholas Himes (nnhimes)&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2232:_Revision_planning_tool&amp;diff=144706</id>
		<title>CSC/ECE 517 Spring 2022 - E2232: Revision planning tool</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2232:_Revision_planning_tool&amp;diff=144706"/>
		<updated>2022-04-11T21:17:03Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Project Goal==&lt;br /&gt;
The primary objective for this project is to create a tool that can be used for the revision of projects at a time after their original submission upon the delivery of constructive feedback from their peers or instructors.&lt;br /&gt;
&lt;br /&gt;
==Project Plan==&lt;br /&gt;
Merge code for revision planning into current beta&lt;br /&gt;
&lt;br /&gt;
The functionality of E2152 works well but it was developed based on the previous beta and cannot be merged into the current beta. We will first merge the modification in the following files to the current beta and solve the conflicts.&lt;br /&gt;
 &lt;br /&gt;
===Files to be merged===&lt;br /&gt;
* app/controllers/revision_plan_questionnaires_controller.rb&lt;br /&gt;
* app/models/team.rb&lt;br /&gt;
* app/controllers/grades_controller.rb&lt;br /&gt;
* app/helpers/grades_helper.rb&lt;br /&gt;
* app/models/assignment_participant.rb&lt;br /&gt;
* app/models/response_map.rb&lt;br /&gt;
* app/views/grades/_participant_charts.html.erb&lt;br /&gt;
* app/views/grades/view_team.html.erb&lt;br /&gt;
* app/views/student_task/view.html.erb&lt;br /&gt;
* app/controllers/response_controller.rb&lt;br /&gt;
* app/views/response/response.html.erb&lt;br /&gt;
* config/routes.rb&lt;br /&gt;
* db/schema.rb&lt;br /&gt;
* spec/models/response_spec.rb&lt;br /&gt;
* spec/models/review_response_map_spec.rb&lt;br /&gt;
* spec/features/assignment_creation_general_tab_spec.rb&lt;br /&gt;
* app/models/revision_plan_team_map.rb&lt;br /&gt;
&lt;br /&gt;
Merge code for revision planning with code for role based reviewing and topic specific rubrics&lt;br /&gt;
 &lt;br /&gt;
The functionality of E2261 works well and has been merged into the current beta. By merging revision planning tool and topic specific rubrics, in the peer review process,&lt;br /&gt;
In the first round of review, the rubric is designed by the instructor and varies by topic &lt;br /&gt;
In the second round of review,  the rubric includes two parts: part 1 is designed by the instructor and varies by topic, par2 2 is designed by the team based on the comments of the first round of review.&lt;br /&gt;
&lt;br /&gt;
[[File:E2232_diagram.png]]&lt;br /&gt;
&lt;br /&gt;
==Current Project Implementation==&lt;br /&gt;
&lt;br /&gt;
The implementation of this needs to fit within the framework created by E2161 (Fall 2021). &lt;br /&gt;
&lt;br /&gt;
What it does: In the first round of Expertiza reviews, we ask reviewers to give authors some guidance on how to improve their work. Then in the second round, reviewers rate how well authors have followed their suggestions. We could carry the interaction one step further if we asked authors to make up a revision plan based on the first-round reviews. That is, authors would say what they were planning to do to improve their work. Then second-round reviewers would assess how well they did it. In essence, this means that authors would be adding criteria to the second-round rubric that applied only to their submission. We are interested in having this implemented and used in a class so that we can study its effect.&lt;br /&gt;
&lt;br /&gt;
===Rationale===&lt;br /&gt;
The general workflow will be maintained from the previous iterations working on this project&lt;br /&gt;
&lt;br /&gt;
[[File:E2152_Rationale.png|410px|center]]&lt;br /&gt;
&lt;br /&gt;
===Previous implementation===&lt;br /&gt;
This project was last done in Fall 2021 (E2152). However, related merged code from E2161 (link above) means the implementation this semester may need to be changed from how E2152 did it.&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2131 Primary Pull Request for E2152]&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2152 Second Pull Request for Revision Planning]&lt;br /&gt;
* [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2152._Revision_planning_tool Previous write up for E2152]&lt;br /&gt;
&lt;br /&gt;
====Current Flow====&lt;br /&gt;
Firstly, before the round 2 submission, you can look into your work, but the revision plan.&lt;br /&gt;
[[File:211129-2.png|700px|thumb|center]]&lt;br /&gt;
And then, when it comes to the round 2 submission, if we didn't deal with the &amp;quot;Revision Planning&amp;quot;, then the &amp;quot;Your work&amp;quot; part becomes gray.&lt;br /&gt;
[[File:211129-5.png|700px|thumb|center]]&lt;br /&gt;
After editing the &amp;quot;Revision Planning&amp;quot;, we can submit our work.&lt;br /&gt;
[[File:211129-6.png|700px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
=====Current User Interface=====&lt;br /&gt;
[[File:after1.png|700px|thumb|center|Reviews cannot be done during the submission phase]]&lt;br /&gt;
&lt;br /&gt;
===Implementation to be completed===&lt;br /&gt;
There are actually two E2152 pull requests in Expertiza right now - the PR we saw in the demo has less recent commits than the other. And the PR we did not see has less files changed as well. They started with last year's project, so the beta they started with was the beta from last year. The changes since then will show up as merge conflicts if this project is merged.&lt;br /&gt;
&lt;br /&gt;
The functionality of this project seems to work well and would be a valuable addition to Expertiza, but it cannot be merged in its current state. There are many artifacts in their PR from an old version of beta. This is because the team merged the previous teams' code into current beta, but did not remove the differences unrelated to their project. The team knew of these problems before the demo, but did not fix them.&lt;br /&gt;
&lt;br /&gt;
Because the existing functionality encompasses the intended instructions fairly clearly the work that needs to be done for our purposes would be to pass rspec tests that currently cause the build to fail. This functionality would involve us causing different flows based upon the type of user completing the review. Shown below. HTML changes must also be made in order to pass, specifically needing a change to the display_as_html and participant_scores methods to return the correct html values.&lt;br /&gt;
&lt;br /&gt;
More comments can be made in rspec tests as well. It is unclear what the coverage is of the individual tests. The file revision_plan_team_map_test.rb has nothing substantial in it.&lt;br /&gt;
&lt;br /&gt;
[[File:Failing_rspec.PNG|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
====Design Changes====&lt;br /&gt;
Because the changes to the current implementation is limited to specific implementation, the UML design of the project will remain the same as the previous implementation.&lt;br /&gt;
&lt;br /&gt;
[[File:E2152_Design.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
===Merge existing RSpec tests for revision planning into current beta===&lt;br /&gt;
We will first merge the existing RSpec tests of E2152 to the current beta, then run and pass these tests. More comments can be made in rspec tests as well. Observe the coverage of the individual tests. &lt;br /&gt;
Existing RSpec tests to be merged&lt;br /&gt;
* Controllers&lt;br /&gt;
** rspec spec/controllers/grades_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/questionnaires_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/questions_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/student_teams_controller_spec.rb&lt;br /&gt;
** spec/controllers/response_controller_spec.rb&lt;br /&gt;
** spec/controllers/revision_plan_questionnaires_controller_spec.rb&lt;br /&gt;
** spec/factories/revision_plan_factory.rb&lt;br /&gt;
* Models&lt;br /&gt;
** spec/models/response_spec.rb.&lt;br /&gt;
** spec/models/review_response_map_spec.rb&lt;br /&gt;
* Helpers&lt;br /&gt;
** rspec spec/heplers/grades_helper.rb&lt;br /&gt;
&lt;br /&gt;
===Develop New RSpec Tests===&lt;br /&gt;
The RSpec tests are written to test both controllers and models. RSpec testing will be added in order to increase coverage. To do this we will test the flows associated with different user types. Currently the only passing tests are related to student flows and tests may be added that work with instructors. These may include editing the reviews once they are created, and ensuring that an instructor has the ability to make edits.&lt;br /&gt;
&lt;br /&gt;
===Manual Testing===&lt;br /&gt;
&lt;br /&gt;
* Instructor &lt;br /&gt;
** Can Review rubric varied by topic be enabled?&lt;br /&gt;
** Can different roles be chosen for each questionnaire? &lt;br /&gt;
** Can an assignment with revision planning enabled be created?&lt;br /&gt;
** Can an assignment with 2 rounds of review be set up?&lt;br /&gt;
&lt;br /&gt;
* Assignment participant &lt;br /&gt;
** If the revision-planning rubric can be edited or not?&lt;br /&gt;
** Are participants allowed to create/edit revision plan when round 1+ (1 or greater than 1) reviews have finished?&lt;br /&gt;
** Is revision plan editing disabled when the assignment is in review stage?&lt;br /&gt;
** Does participants show a summary of score for revision plan after review deadline has expired?&lt;br /&gt;
&lt;br /&gt;
* Assignment reviewer &lt;br /&gt;
** Does the rubric page show the topic-specific rubric?&lt;br /&gt;
** Does the rubric page show the revision plan rubric?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Team Information==&lt;br /&gt;
* Lawrence O'Brien (lpobrien)&lt;br /&gt;
* Joshua Lin (jlin36)&lt;br /&gt;
* Weiqi Sun (wsun23)&lt;br /&gt;
* Wyatt Plaga (wgplaga)&lt;br /&gt;
* '''Mentor:''' Nicholas Himes (nnhimes)&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2232:_Revision_planning_tool&amp;diff=144705</id>
		<title>CSC/ECE 517 Spring 2022 - E2232: Revision planning tool</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2232:_Revision_planning_tool&amp;diff=144705"/>
		<updated>2022-04-11T21:12:07Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Project Goal==&lt;br /&gt;
The primary objective for this project is to create a tool that can be used for the revision of projects at a time after their original submission upon the delivery of constructive feedback from their peers or instructors.&lt;br /&gt;
&lt;br /&gt;
==Project Plan==&lt;br /&gt;
Merge code for revision planning into current beta&lt;br /&gt;
&lt;br /&gt;
The functionality of E2152 works well but it was developed based on the previous beta and cannot be merged into the current beta. We will first merge the modification in the following files to the current beta and solve the conflicts.&lt;br /&gt;
 &lt;br /&gt;
===Files to be merged===&lt;br /&gt;
* app/controllers/revision_plan_questionnaires_controller.rb&lt;br /&gt;
* app/models/team.rb&lt;br /&gt;
* app/controllers/grades_controller.rb&lt;br /&gt;
* app/helpers/grades_helper.rb&lt;br /&gt;
* app/models/assignment_participant.rb&lt;br /&gt;
* app/models/response_map.rb&lt;br /&gt;
* app/views/grades/_participant_charts.html.erb&lt;br /&gt;
* app/views/grades/view_team.html.erb&lt;br /&gt;
* app/views/student_task/view.html.erb&lt;br /&gt;
* app/controllers/response_controller.rb&lt;br /&gt;
* app/views/response/response.html.erb&lt;br /&gt;
* config/routes.rb&lt;br /&gt;
* db/schema.rb&lt;br /&gt;
* spec/models/response_spec.rb&lt;br /&gt;
* spec/models/review_response_map_spec.rb&lt;br /&gt;
* spec/features/assignment_creation_general_tab_spec.rb&lt;br /&gt;
* app/models/revision_plan_team_map.rb&lt;br /&gt;
&lt;br /&gt;
Merge code for revision planning with code for role based reviewing and topic specific rubrics&lt;br /&gt;
 &lt;br /&gt;
The functionality of E2261 works well and has been merged into the current beta. By merging revision planning tool and topic specific rubrics, in the peer review process,&lt;br /&gt;
In the first round of review, the rubric is designed by the instructor and varies by topic &lt;br /&gt;
In the second round of review,  the rubric includes two parts: part 1 is designed by the instructor and varies by topic, par2 2 is designed by the team based on the comments of the first round of review.&lt;br /&gt;
&lt;br /&gt;
[[File:E2232_diagram.png]]&lt;br /&gt;
&lt;br /&gt;
==Current Project Implementation==&lt;br /&gt;
&lt;br /&gt;
The implementation of this needs to fit within the framework created by E2161 (Fall 2021). &lt;br /&gt;
&lt;br /&gt;
What it does: In the first round of Expertiza reviews, we ask reviewers to give authors some guidance on how to improve their work. Then in the second round, reviewers rate how well authors have followed their suggestions. We could carry the interaction one step further if we asked authors to make up a revision plan based on the first-round reviews. That is, authors would say what they were planning to do to improve their work. Then second-round reviewers would assess how well they did it. In essence, this means that authors would be adding criteria to the second-round rubric that applied only to their submission. We are interested in having this implemented and used in a class so that we can study its effect.&lt;br /&gt;
&lt;br /&gt;
===Rationale===&lt;br /&gt;
The general workflow will be maintained from the previous iterations working on this project&lt;br /&gt;
&lt;br /&gt;
[[File:E2152_Rationale.png|410px|center]]&lt;br /&gt;
&lt;br /&gt;
===Previous implementation===&lt;br /&gt;
This project was last done in Fall 2021 (E2152). However, related merged code from E2161 (link above) means the implementation this semester may need to be changed from how E2152 did it.&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2131 Primary Pull Request for E2152]&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2152 Second Pull Request for Revision Planning]&lt;br /&gt;
* [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2152._Revision_planning_tool Previous write up for E2152]&lt;br /&gt;
&lt;br /&gt;
====Current Flow====&lt;br /&gt;
Firstly, before the round 2 submission, you can look into your work, but the revision plan.&lt;br /&gt;
[[File:211129-2.png|700px|thumb|center]]&lt;br /&gt;
And then, when it comes to the round 2 submission, if we didn't deal with the &amp;quot;Revision Planning&amp;quot;, then the &amp;quot;Your work&amp;quot; part becomes gray.&lt;br /&gt;
[[File:211129-5.png|700px|thumb|center]]&lt;br /&gt;
After editing the &amp;quot;Revision Planning&amp;quot;, we can submit our work.&lt;br /&gt;
[[File:211129-6.png|700px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
=====Current User Interface=====&lt;br /&gt;
[[File:after1.png|700px|thumb|center|Reviews cannot be done during the submission phase]]&lt;br /&gt;
&lt;br /&gt;
===Implementation to be completed===&lt;br /&gt;
There are actually two E2152 pull requests in Expertiza right now - the PR we saw in the demo has less recent commits than the other. And the PR we did not see has less files changed as well. They started with last year's project, so the beta they started with was the beta from last year. The changes since then will show up as merge conflicts if this project is merged.&lt;br /&gt;
&lt;br /&gt;
The functionality of this project seems to work well and would be a valuable addition to Expertiza, but it cannot be merged in its current state. There are many artifacts in their PR from an old version of beta. This is because the team merged the previous teams' code into current beta, but did not remove the differences unrelated to their project. The team knew of these problems before the demo, but did not fix them.&lt;br /&gt;
&lt;br /&gt;
Because the existing functionality encompasses the intended instructions fairly clearly the work that needs to be done for our purposes would be to pass rspec tests that currently cause the build to fail. This functionality would involve us causing different flows based upon the type of user completing the review. Shown below. HTML changes must also be made in order to pass, specifically needing a change to the display_as_html and participant_scores methods to return the correct html values.&lt;br /&gt;
&lt;br /&gt;
More comments can be made in rspec tests as well. It is unclear what the coverage is of the individual tests. The file revision_plan_team_map_test.rb has nothing substantial in it.&lt;br /&gt;
&lt;br /&gt;
[[File:Failing_rspec.PNG|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
====Design Changes====&lt;br /&gt;
Because the changes to the current implementation is limited to specific implementation, the UML design of the project will remain the same as the previous implementation.&lt;br /&gt;
&lt;br /&gt;
[[File:E2152_Design.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
===Merge existing RSpec tests for revision planning into current beta===&lt;br /&gt;
We will first merge the existing RSpec tests of E2152 to the current beta, then run and pass these tests. More comments can be made in rspec tests as well. Observe the coverage of the individual tests. &lt;br /&gt;
Existing RSpec tests to be merged&lt;br /&gt;
* Controllers&lt;br /&gt;
** rspec spec/controllers/grades_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/questionnaires_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/questions_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/student_teams_controller_spec.rb&lt;br /&gt;
** spec/controllers/response_controller_spec.rb&lt;br /&gt;
** spec/controllers/revision_plan_questionnaires_controller_spec.rb&lt;br /&gt;
** spec/factories/revision_plan_factory.rb&lt;br /&gt;
* Models&lt;br /&gt;
** spec/models/response_spec.rb.&lt;br /&gt;
** spec/models/review_response_map_spec.rb&lt;br /&gt;
* Helpers&lt;br /&gt;
** rspec spec/heplers/grades_helper.rb&lt;br /&gt;
&lt;br /&gt;
===Develop New RSpec Tests===&lt;br /&gt;
The RSpec tests are written to test both controllers and models. RSpec testing will be added in order to increase coverage. To do this we will test the flows associated with different user types. Currently the only passing tests are related to student flows and tests may be added that work with instructors. These may include editing the reviews once they are created, and ensuring that an instructor has the ability to make edits.&lt;br /&gt;
&lt;br /&gt;
===Manual Testing===&lt;br /&gt;
&lt;br /&gt;
* Instructor &lt;br /&gt;
** Can Review rubric varied by topic be enabled?&lt;br /&gt;
** Can different roles be chosen for each questionnaire? &lt;br /&gt;
** Can an assignment with revision planning enabled be created?&lt;br /&gt;
** Can an assignment with 2 rounds of review be set up?&lt;br /&gt;
&lt;br /&gt;
* Assignment participant &lt;br /&gt;
** If the revision-planning rubric can be edited or not?&lt;br /&gt;
** Are participants allowed to create/edit revision plan when round 1+ (1 or greater than 1) reviews have finished?&lt;br /&gt;
** Is revision plan editing disabled when the assignment is in review stage?&lt;br /&gt;
** Does participants show a summary of score for revision plan after review deadline has expired?&lt;br /&gt;
&lt;br /&gt;
* Assignment reviewer &lt;br /&gt;
** Does the rubric page show the topic-specific rubric?&lt;br /&gt;
** Does the rubric page show the revision plan rubric?&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2232:_Revision_planning_tool&amp;diff=144697</id>
		<title>CSC/ECE 517 Spring 2022 - E2232: Revision planning tool</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2232:_Revision_planning_tool&amp;diff=144697"/>
		<updated>2022-04-11T21:07:09Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Project Goal==&lt;br /&gt;
The primary objective for this project is to create a tool that can be used for the revision of projects at a time after their original submission upon the delivery of constructive feedback from their peers or instructors.&lt;br /&gt;
&lt;br /&gt;
==Project Plan==&lt;br /&gt;
Merge code for revision planning into current beta&lt;br /&gt;
&lt;br /&gt;
The functionality of E2152 works well but it was developed based on the previous beta and cannot be merged into the current beta. We will first merge the modification in the following files to the current beta and solve the conflicts.&lt;br /&gt;
 &lt;br /&gt;
===Files to be merged===&lt;br /&gt;
* app/controllers/revision_plan_questionnaires_controller.rb&lt;br /&gt;
* app/models/team.rb&lt;br /&gt;
* app/controllers/grades_controller.rb&lt;br /&gt;
* app/helpers/grades_helper.rb&lt;br /&gt;
* app/models/assignment_participant.rb&lt;br /&gt;
* app/models/response_map.rb&lt;br /&gt;
* app/views/grades/_participant_charts.html.erb&lt;br /&gt;
* app/views/grades/view_team.html.erb&lt;br /&gt;
* app/views/student_task/view.html.erb&lt;br /&gt;
* app/controllers/response_controller.rb&lt;br /&gt;
* app/views/response/response.html.erb&lt;br /&gt;
* config/routes.rb&lt;br /&gt;
* db/schema.rb&lt;br /&gt;
* spec/models/response_spec.rb&lt;br /&gt;
* spec/models/review_response_map_spec.rb&lt;br /&gt;
* spec/features/assignment_creation_general_tab_spec.rb&lt;br /&gt;
* app/models/revision_plan_team_map.rb&lt;br /&gt;
&lt;br /&gt;
Merge code for revision planning with code for role based reviewing and topic specific rubrics&lt;br /&gt;
 &lt;br /&gt;
The functionality of E2261 works well and has been merged into the current beta. By merging revision planning tool and topic specific rubrics, in the peer review process,&lt;br /&gt;
In the first round of review, the rubric is designed by the instructor and varies by topic &lt;br /&gt;
In the second round of review,  the rubric includes two parts: part 1 is designed by the instructor and varies by topic, par2 2 is designed by the team based on the comments of the first round of review.&lt;br /&gt;
&lt;br /&gt;
[[File:E2232_diagram.png]]&lt;br /&gt;
&lt;br /&gt;
==Current Project Implementation==&lt;br /&gt;
&lt;br /&gt;
The implementation of this needs to fit within the framework created by E2161 (Fall 2021). &lt;br /&gt;
&lt;br /&gt;
What it does: In the first round of Expertiza reviews, we ask reviewers to give authors some guidance on how to improve their work. Then in the second round, reviewers rate how well authors have followed their suggestions. We could carry the interaction one step further if we asked authors to make up a revision plan based on the first-round reviews. That is, authors would say what they were planning to do to improve their work. Then second-round reviewers would assess how well they did it. In essence, this means that authors would be adding criteria to the second-round rubric that applied only to their submission. We are interested in having this implemented and used in a class so that we can study its effect.&lt;br /&gt;
&lt;br /&gt;
===Rationale===&lt;br /&gt;
The general workflow will be maintained from the previous iterations working on this project&lt;br /&gt;
&lt;br /&gt;
[[File:E2152_Rationale.png|410px|center]]&lt;br /&gt;
&lt;br /&gt;
===Previous implementation===&lt;br /&gt;
This project was last done in Fall 2021 (E2152). However, related merged code from E2161 (link above) means the implementation this semester may need to be changed from how E2152 did it.&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2131 Primary Pull Request for E2152]&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2152 Second Pull Request for Revision Planning]&lt;br /&gt;
* [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2152._Revision_planning_tool Previous write up for E2152]&lt;br /&gt;
&lt;br /&gt;
====Current Flow====&lt;br /&gt;
Firstly, before the round 2 submission, you can look into your work, but the revision plan.&lt;br /&gt;
[[File:211129-2.png|700px|thumb|center]]&lt;br /&gt;
And then, when it comes to the round 2 submission, if we didn't deal with the &amp;quot;Revision Planning&amp;quot;, then the &amp;quot;Your work&amp;quot; part becomes gray.&lt;br /&gt;
[[File:211129-5.png|700px|thumb|center]]&lt;br /&gt;
After editing the &amp;quot;Revision Planning&amp;quot;, we can submit our work.&lt;br /&gt;
[[File:211129-6.png|700px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
=====Current User Interface=====&lt;br /&gt;
[[File:after1.png|700px|thumb|center|Reviews cannot be done during the submission phase]]&lt;br /&gt;
&lt;br /&gt;
===Implementation to be completed===&lt;br /&gt;
There are actually two E2152 pull requests in Expertiza right now - the PR we saw in the demo has less recent commits than the other. And the PR we did not see has less files changed as well. They started with last year's project, so the beta they started with was the beta from last year. The changes since then will show up as merge conflicts if this project is merged.&lt;br /&gt;
&lt;br /&gt;
The functionality of this project seems to work well and would be a valuable addition to Expertiza, but it cannot be merged in its current state. There are many artifacts in their PR from an old version of beta. This is because the team merged the previous teams' code into current beta, but did not remove the differences unrelated to their project. The team knew of these problems before the demo, but did not fix them.&lt;br /&gt;
&lt;br /&gt;
Because the existing functionality encompasses the intended instructions fairly clearly the work that needs to be done for our purposes would be to pass rspec tests that currently cause the build to fail. This functionality would involve us causing different flows based upon the type of user completing the review. Shown below. HTML changes must also be made in order to pass, specifically needing a change to the display_as_html and participant_scores methods to return the correct html values.&lt;br /&gt;
&lt;br /&gt;
More comments can be made in rspec tests as well. It is unclear what the coverage is of the individual tests. The file revision_plan_team_map_test.rb has nothing substantial in it.&lt;br /&gt;
&lt;br /&gt;
[[File:Failing_rspec.PNG]]&lt;br /&gt;
&lt;br /&gt;
====Design Changes====&lt;br /&gt;
Because the changes to the current implementation is limited to specific implementation, the UML design of the project will remain the same as the previous implementation.&lt;br /&gt;
&lt;br /&gt;
[[File:E2152_Design.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
===Merge existing RSpec tests for revision planning into current beta===&lt;br /&gt;
We will first merge the existing RSpec tests of E2152 to the current beta, then run and pass these tests. More comments can be made in rspec tests as well. Observe the coverage of the individual tests. &lt;br /&gt;
Existing RSpec tests to be merged&lt;br /&gt;
* Controllers&lt;br /&gt;
** rspec spec/controllers/grades_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/questionnaires_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/questions_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/student_teams_controller_spec.rb&lt;br /&gt;
** spec/controllers/response_controller_spec.rb&lt;br /&gt;
** spec/controllers/revision_plan_questionnaires_controller_spec.rb&lt;br /&gt;
** spec/factories/revision_plan_factory.rb&lt;br /&gt;
* Models&lt;br /&gt;
** spec/models/response_spec.rb.&lt;br /&gt;
** spec/models/review_response_map_spec.rb&lt;br /&gt;
* Helpers&lt;br /&gt;
** rspec spec/heplers/grades_helper.rb&lt;br /&gt;
&lt;br /&gt;
===Develop New RSpec Tests===&lt;br /&gt;
The RSpec tests are written to test both controllers and models.&lt;br /&gt;
&lt;br /&gt;
===Manual Testing===&lt;br /&gt;
&lt;br /&gt;
* Instructor &lt;br /&gt;
** Can Review rubric varied by topic be enabled?&lt;br /&gt;
** Can different roles be chosen for each questionnaire? &lt;br /&gt;
** Can an assignment with revision planning enabled be created?&lt;br /&gt;
** Can an assignment with 2 rounds of review be set up?&lt;br /&gt;
&lt;br /&gt;
* Assignment participant &lt;br /&gt;
** If the revision-planning rubric can be edited or not?&lt;br /&gt;
** Are participants allowed to create/edit revision plan when round 1+ (1 or greater than 1) reviews have finished?&lt;br /&gt;
** Is revision plan editing disabled when the assignment is in review stage?&lt;br /&gt;
** Does participants show a summary of score for revision plan after review deadline has expired?&lt;br /&gt;
&lt;br /&gt;
* Assignment reviewer &lt;br /&gt;
** Does the rubric page show the topic-specific rubric?&lt;br /&gt;
** Does the rubric page show the revision plan rubric?&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2232:_Revision_planning_tool&amp;diff=144687</id>
		<title>CSC/ECE 517 Spring 2022 - E2232: Revision planning tool</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2232:_Revision_planning_tool&amp;diff=144687"/>
		<updated>2022-04-11T20:57:35Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Project Goal==&lt;br /&gt;
The primary objective for this project is to create a tool that can be used for the revision of projects at a time after their original submission upon the delivery of constructive feedback from their peers or instructors.&lt;br /&gt;
&lt;br /&gt;
==Project Plan==&lt;br /&gt;
Merge code for revision planning into current beta&lt;br /&gt;
&lt;br /&gt;
The functionality of E2152 works well but it was developed based on the previous beta and cannot be merged into the current beta. We will first merge the modification in the following files to the current beta and solve the conflicts.&lt;br /&gt;
 &lt;br /&gt;
===Files to be merged===&lt;br /&gt;
* app/controllers/revision_plan_questionnaires_controller.rb&lt;br /&gt;
* app/models/team.rb&lt;br /&gt;
* app/controllers/grades_controller.rb&lt;br /&gt;
* app/helpers/grades_helper.rb&lt;br /&gt;
* app/models/assignment_participant.rb&lt;br /&gt;
* app/models/response_map.rb&lt;br /&gt;
* app/views/grades/_participant_charts.html.erb&lt;br /&gt;
* app/views/grades/view_team.html.erb&lt;br /&gt;
* app/views/student_task/view.html.erb&lt;br /&gt;
* app/controllers/response_controller.rb&lt;br /&gt;
* app/views/response/response.html.erb&lt;br /&gt;
* config/routes.rb&lt;br /&gt;
* db/schema.rb&lt;br /&gt;
* spec/models/response_spec.rb&lt;br /&gt;
* spec/models/review_response_map_spec.rb&lt;br /&gt;
* spec/features/assignment_creation_general_tab_spec.rb&lt;br /&gt;
* app/models/revision_plan_team_map.rb&lt;br /&gt;
&lt;br /&gt;
Merge code for revision planning with code for role based reviewing and topic specific rubrics&lt;br /&gt;
 &lt;br /&gt;
The functionality of E2261 works well and has been merged into the current beta. By merging revision planning tool and topic specific rubrics, in the peer review process,&lt;br /&gt;
In the first round of review, the rubric is designed by the instructor and varies by topic &lt;br /&gt;
In the second round of review,  the rubric includes two parts: part 1 is designed by the instructor and varies by topic, par2 2 is designed by the team based on the comments of the first round of review.&lt;br /&gt;
&lt;br /&gt;
[[File:E2232_diagram.png]]&lt;br /&gt;
&lt;br /&gt;
==Current Project Implementation==&lt;br /&gt;
&lt;br /&gt;
The implementation of this needs to fit within the framework created by E2161 (Fall 2021). &lt;br /&gt;
&lt;br /&gt;
What it does: In the first round of Expertiza reviews, we ask reviewers to give authors some guidance on how to improve their work. Then in the second round, reviewers rate how well authors have followed their suggestions. We could carry the interaction one step further if we asked authors to make up a revision plan based on the first-round reviews. That is, authors would say what they were planning to do to improve their work. Then second-round reviewers would assess how well they did it. In essence, this means that authors would be adding criteria to the second-round rubric that applied only to their submission. We are interested in having this implemented and used in a class so that we can study its effect.&lt;br /&gt;
&lt;br /&gt;
===Previous implementation===&lt;br /&gt;
This project was last done in Fall 2021 (E2152). However, related merged code from E2161 (link above) means the implementation this semester may need to be changed from how E2152 did it.&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2131 Primary Pull Request for E2152]&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2152 Second Pull Request for Revision Planning]&lt;br /&gt;
* [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2152._Revision_planning_tool Previous write up for E2152]&lt;br /&gt;
&lt;br /&gt;
===Implementation to be completed===&lt;br /&gt;
There are actually two E2152 pull requests in Expertiza right now - the PR we saw in the demo has less recent commits than the other. And the PR we did not see has less files changed as well. They started with last year's project, so the beta they started with was the beta from last year. The changes since then will show up as merge conflicts if this project is merged.&lt;br /&gt;
&lt;br /&gt;
The functionality of this project seems to work well and would be a valuable addition to Expertiza, but it cannot be merged in its current state. There are many artifacts in their PR from an old version of beta. This is because the team merged the previous teams' code into current beta, but did not remove the differences unrelated to their project. The team knew of these problems before the demo, but did not fix them.&lt;br /&gt;
&lt;br /&gt;
Because the existing functionality encompasses the intended instructions fairly clearly the work that needs to be done for our purposes would be to pass rspec tests that currently cause the build to fail. This functionality would involve us causing different flows based upon the type of user completing the review. Shown below. HTML changes must also be made in order to pass, specifically needing a change to the display_as_html and participant_scores methods to return the correct html values.&lt;br /&gt;
&lt;br /&gt;
More comments can be made in rspec tests as well. It is unclear what the coverage is of the individual tests. The file revision_plan_team_map_test.rb has nothing substantial in it.&lt;br /&gt;
&lt;br /&gt;
[[File:Failing_rspec.PNG]]&lt;br /&gt;
&lt;br /&gt;
====Design Changes====&lt;br /&gt;
Because the changes to the current implementation is limited to specific implementation, the UML design of the project will remain the same as the previous implementation.&lt;br /&gt;
&lt;br /&gt;
[[File:E2152_Design.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
===Merge existing RSpec tests for revision planning into current beta===&lt;br /&gt;
We will first merge the existing RSpec tests of E2152 to the current beta, then run and pass these tests. More comments can be made in rspec tests as well. Observe the coverage of the individual tests. &lt;br /&gt;
Existing RSpec tests to be merged&lt;br /&gt;
* Controllers&lt;br /&gt;
** rspec spec/controllers/grades_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/questionnaires_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/questions_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/student_teams_controller_spec.rb&lt;br /&gt;
** spec/controllers/response_controller_spec.rb&lt;br /&gt;
** spec/controllers/revision_plan_questionnaires_controller_spec.rb&lt;br /&gt;
** spec/factories/revision_plan_factory.rb&lt;br /&gt;
* Models&lt;br /&gt;
** spec/models/response_spec.rb.&lt;br /&gt;
** spec/models/review_response_map_spec.rb&lt;br /&gt;
* Helpers&lt;br /&gt;
** rspec spec/heplers/grades_helper.rb&lt;br /&gt;
&lt;br /&gt;
===Develop New RSpec Tests===&lt;br /&gt;
The RSpec tests are written to test both controllers and models.&lt;br /&gt;
&lt;br /&gt;
===Manual Testing===&lt;br /&gt;
&lt;br /&gt;
* Instructor &lt;br /&gt;
** Can Review rubric varied by topic be enabled?&lt;br /&gt;
** Can different roles be chosen for each questionnaire? &lt;br /&gt;
** Can an assignment with revision planning enabled be created?&lt;br /&gt;
** Can an assignment with 2 rounds of review be set up?&lt;br /&gt;
&lt;br /&gt;
* Assignment participant &lt;br /&gt;
** If the revision-planning rubric can be edited or not?&lt;br /&gt;
** Are participants allowed to create/edit revision plan when round 1+ (1 or greater than 1) reviews have finished?&lt;br /&gt;
** Is revision plan editing disabled when the assignment is in review stage?&lt;br /&gt;
** Does participants show a summary of score for revision plan after review deadline has expired?&lt;br /&gt;
&lt;br /&gt;
* Assignment reviewer &lt;br /&gt;
** Does the rubric page show the topic-specific rubric?&lt;br /&gt;
** Does the rubric page show the revision plan rubric?&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2232:_Revision_planning_tool&amp;diff=144686</id>
		<title>CSC/ECE 517 Spring 2022 - E2232: Revision planning tool</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2232:_Revision_planning_tool&amp;diff=144686"/>
		<updated>2022-04-11T20:55:56Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Project Goal==&lt;br /&gt;
The primary objective for this project is to create a tool that can be used for the revision of projects at a time after their original submission upon the delivery of constructive feedback from their peers or instructors.&lt;br /&gt;
&lt;br /&gt;
==Project Plan==&lt;br /&gt;
Merge code for revision planning into current beta&lt;br /&gt;
&lt;br /&gt;
The functionality of E2152 works well but it was developed based on the previous beta and cannot be merged into the current beta. We will first merge the modification in the following files to the current beta and solve the conflicts.&lt;br /&gt;
 &lt;br /&gt;
===Files to be merged===&lt;br /&gt;
* app/controllers/revision_plan_questionnaires_controller.rb&lt;br /&gt;
* app/models/team.rb&lt;br /&gt;
* app/controllers/grades_controller.rb&lt;br /&gt;
* app/helpers/grades_helper.rb&lt;br /&gt;
* app/models/assignment_participant.rb&lt;br /&gt;
* app/models/response_map.rb&lt;br /&gt;
* app/views/grades/_participant_charts.html.erb&lt;br /&gt;
* app/views/grades/view_team.html.erb&lt;br /&gt;
* app/views/student_task/view.html.erb&lt;br /&gt;
* app/controllers/response_controller.rb&lt;br /&gt;
* app/views/response/response.html.erb&lt;br /&gt;
* config/routes.rb&lt;br /&gt;
* db/schema.rb&lt;br /&gt;
* spec/models/response_spec.rb&lt;br /&gt;
* spec/models/review_response_map_spec.rb&lt;br /&gt;
* spec/features/assignment_creation_general_tab_spec.rb&lt;br /&gt;
* app/models/revision_plan_team_map.rb&lt;br /&gt;
&lt;br /&gt;
Merge code for revision planning with code for role based reviewing and topic specific rubrics&lt;br /&gt;
 &lt;br /&gt;
The functionality of E2261 works well and has been merged into the current beta. By merging revision planning tool and topic specific rubrics, in the peer review process,&lt;br /&gt;
In the first round of review, the rubric is designed by the instructor and varies by topic &lt;br /&gt;
In the second round of review,  the rubric includes two parts: part 1 is designed by the instructor and varies by topic, par2 2 is designed by the team based on the comments of the first round of review.&lt;br /&gt;
&lt;br /&gt;
[[File:E2232_diagram.png]]&lt;br /&gt;
&lt;br /&gt;
==Current Project Implementation==&lt;br /&gt;
&lt;br /&gt;
The implementation of this needs to fit within the framework created by E2161 (Fall 2021). &lt;br /&gt;
&lt;br /&gt;
What it does: In the first round of Expertiza reviews, we ask reviewers to give authors some guidance on how to improve their work. Then in the second round, reviewers rate how well authors have followed their suggestions. We could carry the interaction one step further if we asked authors to make up a revision plan based on the first-round reviews. That is, authors would say what they were planning to do to improve their work. Then second-round reviewers would assess how well they did it. In essence, this means that authors would be adding criteria to the second-round rubric that applied only to their submission. We are interested in having this implemented and used in a class so that we can study its effect.&lt;br /&gt;
&lt;br /&gt;
===Previous implementation===&lt;br /&gt;
This project was last done in Fall 2021 (E2152). However, related merged code from E2161 (link above) means the implementation this semester may need to be changed from how E2152 did it.&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2131 Primary Pull Request for E2152]&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2152 Second Pull Request for Revision Planning]&lt;br /&gt;
* [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2152._Revision_planning_tool Previous write up for E2152]&lt;br /&gt;
&lt;br /&gt;
===Implementation to be completed===&lt;br /&gt;
There are actually two E2152 pull requests in Expertiza right now - the PR we saw in the demo has less recent commits than the other. And the PR we did not see has less files changed as well. They started with last year's project, so the beta they started with was the beta from last year. The changes since then will show up as merge conflicts if this project is merged.&lt;br /&gt;
&lt;br /&gt;
The functionality of this project seems to work well and would be a valuable addition to Expertiza, but it cannot be merged in its current state. There are many artifacts in their PR from an old version of beta. This is because the team merged the previous teams' code into current beta, but did not remove the differences unrelated to their project. The team knew of these problems before the demo, but did not fix them.&lt;br /&gt;
&lt;br /&gt;
Because the existing functionality encompasses the intended instructions fairly clearly the work that needs to be done for our purposes would be to pass rspec tests that currently cause the build to fail. This functionality would involve us causing different flows based upon the type of user completing the review. Shown below. HTML changes must also be made in order to pass, specifically needing a change to the display_as_html and participant_scores methods to return the correct html values.&lt;br /&gt;
&lt;br /&gt;
More comments can be made in rspec tests as well. It is unclear what the coverage is of the individual tests. The file revision_plan_team_map_test.rb has nothing substantial in it.&lt;br /&gt;
&lt;br /&gt;
[[File:Failing_rspec.PNG]]&lt;br /&gt;
&lt;br /&gt;
====Design Changes====&lt;br /&gt;
Because the changes to the current implementation is limited to specific implementation, the UML design of the project will remain the same as the previous implementation.&lt;br /&gt;
&lt;br /&gt;
[[File:E2152_Design.png]]&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
===Merge existing RSpec tests for revision planning into current beta===&lt;br /&gt;
We will first merge the existing RSpec tests of E2152 to the current beta, then run and pass these tests. More comments can be made in rspec tests as well. Observe the coverage of the individual tests. &lt;br /&gt;
Existing RSpec tests to be merged&lt;br /&gt;
* Controllers&lt;br /&gt;
** rspec spec/controllers/grades_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/questionnaires_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/questions_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/student_teams_controller_spec.rb&lt;br /&gt;
** spec/controllers/response_controller_spec.rb&lt;br /&gt;
** spec/controllers/revision_plan_questionnaires_controller_spec.rb&lt;br /&gt;
** spec/factories/revision_plan_factory.rb&lt;br /&gt;
* Models&lt;br /&gt;
** spec/models/response_spec.rb.&lt;br /&gt;
** spec/models/review_response_map_spec.rb&lt;br /&gt;
* Helpers&lt;br /&gt;
** rspec spec/heplers/grades_helper.rb&lt;br /&gt;
&lt;br /&gt;
===Develop New RSpec Tests===&lt;br /&gt;
The RSpec tests are written to test both controllers and models.&lt;br /&gt;
&lt;br /&gt;
===Manual Testing===&lt;br /&gt;
&lt;br /&gt;
* Instructor &lt;br /&gt;
** Can Review rubric varied by topic be enabled?&lt;br /&gt;
** Can different roles be chosen for each questionnaire? &lt;br /&gt;
** Can an assignment with revision planning enabled be created?&lt;br /&gt;
** Can an assignment with 2 rounds of review be set up?&lt;br /&gt;
&lt;br /&gt;
* Assignment participant &lt;br /&gt;
** If the revision-planning rubric can be edited or not?&lt;br /&gt;
** Are participants allowed to create/edit revision plan when round 1+ (1 or greater than 1) reviews have finished?&lt;br /&gt;
** Is revision plan editing disabled when the assignment is in review stage?&lt;br /&gt;
** Does participants show a summary of score for revision plan after review deadline has expired?&lt;br /&gt;
&lt;br /&gt;
* Assignment reviewer &lt;br /&gt;
** Does the rubric page show the topic-specific rubric?&lt;br /&gt;
** Does the rubric page show the revision plan rubric?&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2152_Design.png&amp;diff=144685</id>
		<title>File:E2152 Design.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2152_Design.png&amp;diff=144685"/>
		<updated>2022-04-11T20:55:51Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: Lpobrien uploaded a new version of File:E2152 Design.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Failing_rspec.PNG&amp;diff=144675</id>
		<title>File:Failing rspec.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Failing_rspec.PNG&amp;diff=144675"/>
		<updated>2022-04-11T20:48:40Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022&amp;diff=144670</id>
		<title>CSC/ECE 517 Spring 2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022&amp;diff=144670"/>
		<updated>2022-04-11T20:38:48Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== OSS Projects ==&lt;br /&gt;
&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2200: Testing advice_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2203: Adding tests for courses_controller, eula_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2204: Adding tests for markup_styles_controller, lock_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2208: Testing for submission_records_controller, profile_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2218: Refactor response_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2217: Refactor questionnaires_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2216: Refactor late_policies_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2215: Refactor student_quizzes_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2214: Refactor teams_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2219: Improve assessment360_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2211: Testing for summary_helper]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2225: Refactor review_mapping_helper.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2221: Refactor submitted content controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2206: Testing for users_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2207: Testing for submitted_content_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2205: Testing for participants_controller, versions_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2212: Testing for hamer.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - S2200: Refactoring evaluation of SQL queries (Java/JUnit)]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - S2222: Refactor impersonate_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2202- Testing for badges_controller, publishing_controller]]&lt;br /&gt;
*[[CSC/ECE 517 Spring 2022 - E2220: Refactor reputation_web_service_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2224: Refactor review_mapping_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2209: Testing for analytic helper.rb, join team requests helper.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2227: SQL Injection Fix]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2223. Refactor sign up sheet controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2201: Testing for assignment_questionnaire_controller.rb]]&lt;br /&gt;
&lt;br /&gt;
== Final Projects ==&lt;br /&gt;
&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2245: View for results of bidding]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2241: Heatgrid fixes and improvements]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2237: Grading audit trail]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - S2201: Improving User Experience for SQLFE]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2236: Fix issues related to deadlines and late policies]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2231: Allow reviewers to bid on what to review]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2232: Revision planning tool]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2233. Improving search facility in Expertiza]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2234. Calibration submissions should be copied along with calibration assignments]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2244. Support for saying your team pair-programmed]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2246: Email your authors/reviewers, with complete tests]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2229: Track the time students look at other submissions]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2239: Further refactoring and improvement of review mapping helper.rb ]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2240. Re-write waitlist functionality ]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2242. Fix teammate-review view ]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2243. Refactor student_teams functionality]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2235. Issues related to meta-reviewing]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2230. Integrate Suggestion Detection Algorithm]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2238. Implementing and testing Import &amp;amp; Export controllers]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2228. Refactor JavaScript on Expertiza]]&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2232:_Revision_planning_tool&amp;diff=144592</id>
		<title>CSC/ECE 517 Spring 2022 - E2232: Revision planning tool</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2232:_Revision_planning_tool&amp;diff=144592"/>
		<updated>2022-04-07T15:46:12Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Project Goal==&lt;br /&gt;
The primary objective for this project is to create a tool that can be used for the revision of projects at a time after their original submission upon the delivery of constructive feedback from their peers or instructors.&lt;br /&gt;
&lt;br /&gt;
==Project Plan==&lt;br /&gt;
Merge code for revision planning into current beta&lt;br /&gt;
&lt;br /&gt;
The functionality of E2152 works well but it was developed based on the previous beta and cannot be merged into the current beta. We will first merge the modification in the following files to the current beta and solve the conflicts.&lt;br /&gt;
 &lt;br /&gt;
===Files to be merged===&lt;br /&gt;
* app/controllers/revision_plan_questionnaires_controller.rb&lt;br /&gt;
* app/models/team.rb&lt;br /&gt;
* app/controllers/grades_controller.rb&lt;br /&gt;
* app/helpers/grades_helper.rb&lt;br /&gt;
* app/models/assignment_participant.rb&lt;br /&gt;
* app/models/response_map.rb&lt;br /&gt;
* app/views/grades/_participant_charts.html.erb&lt;br /&gt;
* app/views/grades/view_team.html.erb&lt;br /&gt;
* app/views/student_task/view.html.erb&lt;br /&gt;
* app/controllers/response_controller.rb&lt;br /&gt;
* app/views/response/response.html.erb&lt;br /&gt;
* config/routes.rb&lt;br /&gt;
* db/schema.rb&lt;br /&gt;
* spec/models/response_spec.rb&lt;br /&gt;
* spec/models/review_response_map_spec.rb&lt;br /&gt;
* spec/features/assignment_creation_general_tab_spec.rb&lt;br /&gt;
* app/models/revision_plan_team_map.rb&lt;br /&gt;
&lt;br /&gt;
Merge code for revision planning with code for role based reviewing and topic specific rubrics&lt;br /&gt;
 &lt;br /&gt;
The functionality of E2261 works well and has been merged into the current beta. By merging revision planning tool and topic specific rubrics, in the peer review process,&lt;br /&gt;
In the first round of review, the rubric is designed by the instructor and varies by topic &lt;br /&gt;
In the second round of review,  the rubric includes two parts: part 1 is designed by the instructor and varies by topic, par2 2 is designed by the team based on the comments of the first round of review. &lt;br /&gt;
&lt;br /&gt;
==Current Project Implementation==&lt;br /&gt;
&lt;br /&gt;
What it does: In the first round of Expertiza reviews, we ask reviewers to give authors some guidance on how to improve their work. Then in the second round, reviewers rate how well authors have followed their suggestions. We could carry the interaction one step further if we asked authors to make up a revision plan based on the first-round reviews. That is, authors would say what they were planning to do to improve their work. Then second-round reviewers would assess how well they did it. In essence, this means that authors would be adding criteria to the second-round rubric that applied only to their submission. We are interested in having this implemented and used in a class so that we can study its effect.&lt;br /&gt;
&lt;br /&gt;
The implementation of this needs to fit within the framework created by E2161 (Fall 2021). &lt;br /&gt;
&lt;br /&gt;
===Previous implementation===&lt;br /&gt;
This project was last done in Fall 2021 (E2152). However, related merged code from E2161 (link above) means the implementation this semester may need to be changed from how E2152 did it.&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2131 Primary Pull Request for E2152]&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2152 Second Pull Request for Revision Planning]&lt;br /&gt;
* [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2152._Revision_planning_tool Previous write up for E2152]&lt;br /&gt;
&lt;br /&gt;
===Implementation===&lt;br /&gt;
There are actually two E2152 pull requests in Expertiza right now - the PR we saw in the demo has less recent commits than the other. And the PR we did not see has less files changed as well. They started with last year's project, so the beta they started with was the beta from last year. The changes since then will show up as merge conflicts if this project is merged.&lt;br /&gt;
&lt;br /&gt;
The functionality of this project seems to work well and would be a valuable addition to Expertiza, but it cannot be merged in its current state. There are many artifacts in their PR from an old version of beta. This is because the team merged the previous teams' code into current beta, but did not remove the differences unrelated to their project. The team knew of these problems before the demo, but did not fix them.&lt;br /&gt;
&lt;br /&gt;
More comments can be made in rspec tests as well. It is unclear what the coverage is of the individual tests. The file revision_plan_team_map_test.rb has nothing substantial in it.&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
===Merge existing RSpec tests for revision planning into current beta===&lt;br /&gt;
We will first merge the existing RSpec tests of E2152 to the current beta, then run and pass these tests. More comments can be made in rspec tests as well. Observe the coverage of the individual tests. &lt;br /&gt;
Existing RSpec tests to be merged&lt;br /&gt;
* Controllers&lt;br /&gt;
** rspec spec/controllers/grades_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/questionnaires_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/questions_controller_spec.rb&lt;br /&gt;
** rspec spec/controllers/student_teams_controller_spec.rb&lt;br /&gt;
** spec/controllers/response_controller_spec.rb&lt;br /&gt;
** spec/controllers/revision_plan_questionnaires_controller_spec.rb&lt;br /&gt;
** spec/factories/revision_plan_factory.rb&lt;br /&gt;
* Models&lt;br /&gt;
** spec/models/response_spec.rb.&lt;br /&gt;
** spec/models/review_response_map_spec.rb&lt;br /&gt;
* Helpers&lt;br /&gt;
** rspec spec/heplers/grades_helper.rb&lt;br /&gt;
&lt;br /&gt;
===Develop New RSpec Tests===&lt;br /&gt;
The RSpec tests are written to test both controllers and models.&lt;br /&gt;
&lt;br /&gt;
===Manual Testing===&lt;br /&gt;
&lt;br /&gt;
* Instructor &lt;br /&gt;
** Can Review rubric varied by topic be enabled?&lt;br /&gt;
** Can different roles be chosen for each questionnaire? &lt;br /&gt;
** Can an assignment with revision planning enabled be created?&lt;br /&gt;
** Can an assignment with 2 rounds of review be set up?&lt;br /&gt;
&lt;br /&gt;
* Assignment participant &lt;br /&gt;
** If the revision-planning rubric can be edited or not?&lt;br /&gt;
** Are participants allowed to create/edit revision plan when round 1+ (1 or greater than 1) reviews have finished?&lt;br /&gt;
** Is revision plan editing disabled when the assignment is in review stage?&lt;br /&gt;
** Does participants show a summary of score for revision plan after review deadline has expired?&lt;br /&gt;
&lt;br /&gt;
* Assignment reviewer &lt;br /&gt;
** Does the rubric page show the topic-specific rubric?&lt;br /&gt;
** Does the rubric page show the revision plan rubric?&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2232:_Revision_planning_tool&amp;diff=144581</id>
		<title>CSC/ECE 517 Spring 2022 - E2232: Revision planning tool</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2232:_Revision_planning_tool&amp;diff=144581"/>
		<updated>2022-04-07T03:29:34Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Project Goal==&lt;br /&gt;
The primary objective for this project is to create a tool that can be used for the revision of projects at a time after their original submission upon the delivery of constructive feedback from their peers or instructors.&lt;br /&gt;
&lt;br /&gt;
Manual testing:&lt;br /&gt;
* Create an assignment with revisions enabled, check to see it is created and visible from student&lt;br /&gt;
* Create an assignment with two rounds enabled, see if it is visible to student&lt;br /&gt;
* Create assignment with rubric, see if it visible&lt;br /&gt;
&lt;br /&gt;
==Current Project Implementation==&lt;br /&gt;
&lt;br /&gt;
What it does: In the first round of Expertiza reviews, we ask reviewers to give authors some guidance on how to improve their work. Then in the second round, reviewers rate how well authors have followed their suggestions. We could carry the interaction one step further if we asked authors to make up a revision plan based on the first-round reviews. That is, authors would say what they were planning to do to improve their work. Then second-round reviewers would assess how well they did it. In essence, this means that authors would be adding criteria to the second-round rubric that applied only to their submission. We are interested in having this implemented and used in a class so that we can study its effect.&lt;br /&gt;
&lt;br /&gt;
The implementation of this needs to fit within the framework created by E2161 (Fall 2021). &lt;br /&gt;
&lt;br /&gt;
===Previous implementation===&lt;br /&gt;
This project was last done in Fall 2021 (E2152). However, related merged code from E2161 (link above) means the implementation this semester may need to be changed from how E2152 did it.&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2131 Primary Pull Request for E2152]&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2152 Second Pull Request for Revision Planning]&lt;br /&gt;
* [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2152._Revision_planning_tool Previous write up for E2152]&lt;br /&gt;
&lt;br /&gt;
===Implementation===&lt;br /&gt;
There are actually two E2152 pull requests in Expertiza right now - the PR we saw in the demo has less recent commits than the other. And the PR we did not see has less files changed as well. They started with last year's project, so the beta they started with was the beta from last year. The changes since then will show up as merge conflicts if this project is merged.&lt;br /&gt;
&lt;br /&gt;
The functionality of this project seems to work well and would be a valuable addition to Expertiza, but it cannot be merged in its current state. There are many artifacts in their PR from an old version of beta. This is because the team merged the previous teams' code into current beta, but did not remove the differences unrelated to their project. The team knew of these problems before the demo, but did not fix them.&lt;br /&gt;
&lt;br /&gt;
More comments can be made in rspec tests as well. It is unclear what the coverage is of the individual tests. The file revision_plan_team_map_test.rb has nothing substantial in it.&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
We need to be able to test all of the edge cases and main flows of the planned functionality. To do that we will add tests in rspec. Testing is needed to ensure that the added functionality is fully operational.&lt;br /&gt;
&lt;br /&gt;
* Test creating an assignment that has revision enabled&lt;br /&gt;
* Test creating an assignment with two rounds of revisions&lt;br /&gt;
* Test delivering the rubric associated with an assignment with revisions&lt;br /&gt;
* Test creating an assignment with an invalid number of revisions (-1)&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2232:_Revision_planning_tool&amp;diff=144579</id>
		<title>CSC/ECE 517 Spring 2022 - E2232: Revision planning tool</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2232:_Revision_planning_tool&amp;diff=144579"/>
		<updated>2022-04-07T03:24:16Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Project Goal==&lt;br /&gt;
The primary objective for this project is to create a tool that can be used for the revision of projects at a time after their original submission upon the delivery of constructive feedback from their peers or instructors.&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
We need to be able to test all of the edge cases and main flows of the planned functionality. To do that we will add tests in rspec. Testing is needed to ensure that the added functionality is fully operational.&lt;br /&gt;
&lt;br /&gt;
* Test creating an assignment that has revision enabled&lt;br /&gt;
* Test creating an assignment with two rounds of revisions&lt;br /&gt;
* Test delivering the rubric associated with an assignment with revisions&lt;br /&gt;
* Test creating an assignment with an invalid number of revisions (-1)&lt;br /&gt;
&lt;br /&gt;
Manual testing:&lt;br /&gt;
* Create an assignment with revisions enabled, check to see it is created and visible from student&lt;br /&gt;
* Create an assignment with two rounds enabled, see if it is visible to student&lt;br /&gt;
* Create assignment with rubric, see if it visible&lt;br /&gt;
&lt;br /&gt;
==Current Project State==&lt;br /&gt;
&lt;br /&gt;
What it does: In the first round of Expertiza reviews, we ask reviewers to give authors some guidance on how to improve their work. Then in the second round, reviewers rate how well authors have followed their suggestions. We could carry the interaction one step further if we asked authors to make up a revision plan based on the first-round reviews. That is, authors would say what they were planning to do to improve their work. Then second-round reviewers would assess how well they did it. In essence, this means that authors would be adding criteria to the second-round rubric that applied only to their submission. We are interested in having this implemented and used in a class so that we can study its effect.&lt;br /&gt;
&lt;br /&gt;
The implementation of this needs to fit within the framework created by E2161 (Fall 2021). &lt;br /&gt;
&lt;br /&gt;
===Previous implementation===&lt;br /&gt;
This project was last done in Fall 2021 (E2152). However, related merged code from E2161 (link above) means the implementation this semester may need to be changed from how E2152 did it.&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2131 Primary Pull Request for E2152]&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2152 Second Pull Request for Revision Planning]&lt;br /&gt;
* [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2152._Revision_planning_tool Previous write up for E2152]&lt;br /&gt;
&lt;br /&gt;
===Implementation===&lt;br /&gt;
There are actually two E2152 pull requests in Expertiza right now - the PR we saw in the demo has less recent commits than the other. And the PR we did not see has less files changed as well. They started with last year's project, so the beta they started with was the beta from last year. The changes since then will show up as merge conflicts if this project is merged.&lt;br /&gt;
&lt;br /&gt;
The functionality of this project seems to work well and would be a valuable addition to Expertiza, but it cannot be merged in its current state. There are many artifacts in their PR from an old version of beta. This is because the team merged the previous teams' code into current beta, but did not remove the differences unrelated to their project. The team knew of these problems before the demo, but did not fix them.&lt;br /&gt;
&lt;br /&gt;
More comments can be made in rspec tests as well. It is unclear what the coverage is of the individual tests. The file revision_plan_team_map_test.rb has nothing substantial in it.&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2232:_Revision_planning_tool&amp;diff=144578</id>
		<title>CSC/ECE 517 Spring 2022 - E2232: Revision planning tool</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2232:_Revision_planning_tool&amp;diff=144578"/>
		<updated>2022-04-07T03:23:37Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Project Goal==&lt;br /&gt;
The primary objective for this project is to create a tool that can be used for the revision of projects at a time after their original submission upon the delivery of constructive feedback from their peers or instructors.&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
We need to be able to test all of the edge cases and main flows of the planned functionality. To do that we will add tests in rspec.&lt;br /&gt;
* Test creating an assignment that has revision enabled&lt;br /&gt;
* Test creating an assignment with two rounds of revisions&lt;br /&gt;
* Test delivering the rubric associated with an assignment with revisions&lt;br /&gt;
* Test creating an assignment with an invalid number of revisions (-1)&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
Manual testing:&lt;br /&gt;
* Create an assignment with revisions enabled, check to see it is created and visible from student&lt;br /&gt;
* Create an assignment with two rounds enabled, see if it is visible to student&lt;br /&gt;
* Create assignment with rubric, see if it visible&lt;br /&gt;
&lt;br /&gt;
==Current Project State==&lt;br /&gt;
&lt;br /&gt;
What it does: In the first round of Expertiza reviews, we ask reviewers to give authors some guidance on how to improve their work. Then in the second round, reviewers rate how well authors have followed their suggestions. We could carry the interaction one step further if we asked authors to make up a revision plan based on the first-round reviews. That is, authors would say what they were planning to do to improve their work. Then second-round reviewers would assess how well they did it. In essence, this means that authors would be adding criteria to the second-round rubric that applied only to their submission. We are interested in having this implemented and used in a class so that we can study its effect.&lt;br /&gt;
&lt;br /&gt;
The implementation of this needs to fit within the framework created by E2161 (Fall 2021). &lt;br /&gt;
&lt;br /&gt;
===Previous implementation===&lt;br /&gt;
This project was last done in Fall 2021 (E2152). However, related merged code from E2161 (link above) means the implementation this semester may need to be changed from how E2152 did it.&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2131 Primary Pull Request for E2152]&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2152 Second Pull Request for Revision Planning]&lt;br /&gt;
* [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2152._Revision_planning_tool Previous write up for E2152]&lt;br /&gt;
&lt;br /&gt;
===Implementation===&lt;br /&gt;
There are actually two E2152 pull requests in Expertiza right now - the PR we saw in the demo has less recent commits than the other. And the PR we did not see has less files changed as well. They started with last year's project, so the beta they started with was the beta from last year. The changes since then will show up as merge conflicts if this project is merged.&lt;br /&gt;
&lt;br /&gt;
The functionality of this project seems to work well and would be a valuable addition to Expertiza, but it cannot be merged in its current state. There are many artifacts in their PR from an old version of beta. This is because the team merged the previous teams' code into current beta, but did not remove the differences unrelated to their project. The team knew of these problems before the demo, but did not fix them.&lt;br /&gt;
&lt;br /&gt;
More comments can be made in rspec tests as well. It is unclear what the coverage is of the individual tests. The file revision_plan_team_map_test.rb has nothing substantial in it.&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2232:_Revision_planning_tool&amp;diff=144556</id>
		<title>CSC/ECE 517 Spring 2022 - E2232: Revision planning tool</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2232:_Revision_planning_tool&amp;diff=144556"/>
		<updated>2022-04-07T02:56:01Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Project Goal==&lt;br /&gt;
The primary objective for this project is to create a tool that can be used for the revision of projects at a time after their original submission upon the delivery of constructive feedback from their peers or instructors.&lt;br /&gt;
&lt;br /&gt;
==Project Plan==&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
We need to be able to test all of the edge cases and main flows of the planned functionality. To do that we will add tests in rspec.&lt;br /&gt;
* Test creating an assignment that has revision enabled&lt;br /&gt;
* Test creating an assignment with two rounds of revisions&lt;br /&gt;
* Test delivering the rubric associated with an assignment with revisions&lt;br /&gt;
&lt;br /&gt;
==Current Project State==&lt;br /&gt;
&lt;br /&gt;
What it does: In the first round of Expertiza reviews, we ask reviewers to give authors some guidance on how to improve their work. Then in the second round, reviewers rate how well authors have followed their suggestions. We could carry the interaction one step further if we asked authors to make up a revision plan based on the first-round reviews. That is, authors would say what they were planning to do to improve their work. Then second-round reviewers would assess how well they did it. In essence, this means that authors would be adding criteria to the second-round rubric that applied only to their submission. We are interested in having this implemented and used in a class so that we can study its effect.&lt;br /&gt;
&lt;br /&gt;
The implementation of this needs to fit within the framework created by E2161 (Fall 2021). &lt;br /&gt;
&lt;br /&gt;
===Previous implementation===&lt;br /&gt;
This project was last done in Fall 2021 (E2152). However, related merged code from E2161 (link above) means the implementation this semester may need to be changed from how E2152 did it.&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2131 Primary Pull Request for E2152]&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2152 Second Pull Request for Revision Planning]&lt;br /&gt;
* [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2152._Revision_planning_tool Previous write up for E2152]&lt;br /&gt;
&lt;br /&gt;
===Implementation===&lt;br /&gt;
There are actually two E2152 pull requests in Expertiza right now - the PR we saw in the demo has less recent commits than the other. And the PR we did not see has less files changed as well. They started with last year's project, so the beta they started with was the beta from last year. The changes since then will show up as merge conflicts if this project is merged.&lt;br /&gt;
&lt;br /&gt;
The functionality of this project seems to work well and would be a valuable addition to Expertiza, but it cannot be merged in its current state. There are many artifacts in their PR from an old version of beta. This is because the team merged the previous teams' code into current beta, but did not remove the differences unrelated to their project. The team knew of these problems before the demo, but did not fix them.&lt;br /&gt;
&lt;br /&gt;
More comments can be made in rspec tests as well. It is unclear what the coverage is of the individual tests. The file revision_plan_team_map_test.rb has nothing substantial in it.&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2232:_Revision_planning_tool&amp;diff=144120</id>
		<title>CSC/ECE 517 Spring 2022 - E2232: Revision planning tool</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2232:_Revision_planning_tool&amp;diff=144120"/>
		<updated>2022-04-06T00:31:15Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Project Goal==&lt;br /&gt;
The primary objective for this project is to create a tool that can be used for the revision of projects at a time after their original submission upon the delivery of constructive feedback from their peers or instructors.&lt;br /&gt;
&lt;br /&gt;
==Project Plan==&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
&lt;br /&gt;
==Current Project State==&lt;br /&gt;
&lt;br /&gt;
What it does: In the first round of Expertiza reviews, we ask reviewers to give authors some guidance on how to improve their work. Then in the second round, reviewers rate how well authors have followed their suggestions. We could carry the interaction one step further if we asked authors to make up a revision plan based on the first-round reviews. That is, authors would say what they were planning to do to improve their work. Then second-round reviewers would assess how well they did it. In essence, this means that authors would be adding criteria to the second-round rubric that applied only to their submission. We are interested in having this implemented and used in a class so that we can study its effect.&lt;br /&gt;
&lt;br /&gt;
The implementation of this needs to fit within the framework created by E2161 (Fall 2021). &lt;br /&gt;
&lt;br /&gt;
===Previous implementation===&lt;br /&gt;
This project was last done in Fall 2021 (E2152). However, related merged code from E2161 (link above) means the implementation this semester may need to be changed from how E2152 did it.&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2131 Primary Pull Request for E2152]&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/2152 Second Pull Request for Revision Planning]&lt;br /&gt;
* [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2152._Revision_planning_tool Previous write up for E2152]&lt;br /&gt;
&lt;br /&gt;
===Implementation===&lt;br /&gt;
There are actually two E2152 pull requests in Expertiza right now - the PR we saw in the demo has less recent commits than the other. And the PR we did not see has less files changed as well. They started with last year's project, so the beta they started with was the beta from last year. The changes since then will show up as merge conflicts if this project is merged.&lt;br /&gt;
&lt;br /&gt;
The functionality of this project seems to work well and would be a valuable addition to Expertiza, but it cannot be merged in its current state. There are many artifacts in their PR from an old version of beta. This is because the team merged the previous teams' code into current beta, but did not remove the differences unrelated to their project. The team knew of these problems before the demo, but did not fix them.&lt;br /&gt;
&lt;br /&gt;
More comments can be made in rspec tests as well. It is unclear what the coverage is of the individual tests. The file revision_plan_team_map_test.rb has nothing substantial in it.&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2227:_SQL_Injection_Fix&amp;diff=143597</id>
		<title>CSC/ECE 517 Spring 2022 - E2227: SQL Injection Fix</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2227:_SQL_Injection_Fix&amp;diff=143597"/>
		<updated>2022-03-27T19:21:01Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page details project documentation for the CSC/ECE 517 Spring 2022, &amp;quot;E2227 SQL Injection Fix&amp;quot; project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source software system that is used in order to assign projects to students as well as provide a place to submit and review peers.&lt;br /&gt;
&lt;br /&gt;
Many software projects such as expertiza rely on user interactions in order to accomplish the tasks given by their users. With this information input by the users, the software system often must access points in the database. Because of this, it is possible to access parts of the database even if you are not given direct access by inputting SQL language queries to unvalidated inputs. The reason in which this is possible is because many SQL queries rely on Boolean logic. This is a serious security risk for the software system and causes privacy concerns for any and all involved users. This SQL injection risk is present in the controller class sign_up_sheet_controller.rb, which is a class that is responsible for controlling actions surrounding signing up for specific topic for a project. &lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
&lt;br /&gt;
Nicholas Himes&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
&lt;br /&gt;
* Lawrence O'Brien&lt;br /&gt;
* David Glymph&lt;br /&gt;
* Jacob Anderson&lt;br /&gt;
&lt;br /&gt;
== Code Modifications ==&lt;br /&gt;
Described below are the code refactoring tasks and issues addressed by this team. We have also included any pertinent details, reasonings, comments, warnings, etc., corresponding to each task.&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Finders ===&lt;br /&gt;
The SQL injection issue present in the expertiza source code is caused by an unvalidated SQL query when when searching for sign up topics for assignments requiring topics. The system used the static &amp;quot;find&amp;quot; method which does not validate or in any protect against malicious input. In order to solve this issue we used a find_by method, which forces all input to be used in searching for one specific key in the database rather than allowing additional keys to be accessed using string terminating characters. This solves the issue by preventing unauthorized database access through SQL injection.&lt;br /&gt;
&lt;br /&gt;
== Modified Files ==&lt;br /&gt;
* sign_up_sheet_controller.rb&lt;br /&gt;
* sign_up_sheet_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
We plan to rely on the existing GitHub bots to test for functionality and style, but will add tests that correlate to inputting the SQL injections into the system and ensure they are dealth with.&lt;br /&gt;
&lt;br /&gt;
=== Github Bots ===&lt;br /&gt;
Github bots were used to facilitate the majority of the checks that were used for expertiza outside of our unit testing, as well as the style guidelines. Brakeman was used as the functionality checking bot for this repository.&lt;br /&gt;
&lt;br /&gt;
[[File:Test.png]]&lt;br /&gt;
&lt;br /&gt;
=== Running Tests ===&lt;br /&gt;
Tests were altered in order to accomodate the change in implementation. We tested for a command that previously would have invoked a data breach via SQL injection to ensure it was no longer present. Tests are needed in order to verify that the SQL injection risk has been effectively dealt with.&lt;br /&gt;
&lt;br /&gt;
[[File:Tests_running.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  rspec spec/controllers/sign_up_sheet_controller_spec.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GitHub links and Pull Request==&lt;br /&gt;
Link to Expertiza repository: [https://github.com/expertiza/expertiza here]&lt;br /&gt;
&lt;br /&gt;
Link to the forked repository: [https://github.com/lobrien6588/expertiza here]&lt;br /&gt;
&lt;br /&gt;
Link to Pull Request: [https://github.com/expertiza/expertiza/pull/2323 here]&lt;br /&gt;
&lt;br /&gt;
== Images ==&lt;br /&gt;
[[File:SQL_Injection_Location.png]]&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2227:_SQL_Injection_Fix&amp;diff=143594</id>
		<title>CSC/ECE 517 Spring 2022 - E2227: SQL Injection Fix</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2227:_SQL_Injection_Fix&amp;diff=143594"/>
		<updated>2022-03-27T19:04:55Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page details project documentation for the CSC/ECE 517 Spring 2022, &amp;quot;E2227 SQL Injection Fix&amp;quot; project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source software system that is used in order to assign projects to students as well as provide a place to submit and review peers.&lt;br /&gt;
&lt;br /&gt;
Many software projects such as expertiza rely on user interactions in order to accomplish the tasks given by their users. With this information input by the users, the software system often must access points in the database. Because of this, it is possible to access parts of the database even if you are not given direct access by inputting SQL language queries to unvalidated inputs. The reason in which this is possible is because many SQL queries rely on Boolean logic. This is a serious security risk for the software system and causes privacy concerns for any and all involved users.&lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
&lt;br /&gt;
Nicholas Himes&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
&lt;br /&gt;
* Lawrence O'Brien&lt;br /&gt;
* David Glymph&lt;br /&gt;
* Jacob Anderson&lt;br /&gt;
&lt;br /&gt;
== Code Modifications ==&lt;br /&gt;
Described below are the code refactoring tasks and issues addressed by this team. We have also included any pertinent details, reasonings, comments, warnings, etc., corresponding to each task.&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Finders ===&lt;br /&gt;
The SQL injection issue present in the expertiza source code is caused by an unvalidated SQL query when when searching for sign up topics for assignments requiring topics. The system used the static &amp;quot;find&amp;quot; method which does not validate or in any protect against malicious input. In order to solve this issue we used a find_by method, which forces all input to be used in searching for one specific key in the database rather than allowing additional keys to be accessed using string terminating characters. This solves the issue by preventing unauthorized database access through SQL injection.&lt;br /&gt;
&lt;br /&gt;
== Modified Files ==&lt;br /&gt;
* sign_up_sheet_controller.rb&lt;br /&gt;
* sign_up_sheet_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
=== Github Bots ===&lt;br /&gt;
Github bots were used to facilitate the majority of the checks that were used for expertiza outside of our unit testing, as well as the style guidelines. Brakeman was used as the functionality checking bot for this repository.&lt;br /&gt;
&lt;br /&gt;
[[File:Test.png]]&lt;br /&gt;
&lt;br /&gt;
=== Running Tests ===&lt;br /&gt;
Tests were altered in order to accomodate the change in implementation. We tested for a command that previously would have invoked a data breach via SQL injection to ensure it was no longer present.&lt;br /&gt;
&lt;br /&gt;
[[File:Tests_running.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  rspec spec/controllers/sign_up_sheet_controller_spec.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GitHub links and Pull Request==&lt;br /&gt;
Link to Expertiza repository: [https://github.com/expertiza/expertiza here]&lt;br /&gt;
&lt;br /&gt;
Link to the forked repository: [https://github.com/lobrien6588/expertiza here]&lt;br /&gt;
&lt;br /&gt;
Link to Pull Request: [https://github.com/expertiza/expertiza/pull/2323 here]&lt;br /&gt;
&lt;br /&gt;
== Images ==&lt;br /&gt;
[[File:SQL_Injection_Location.png]]&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Tests_running.png&amp;diff=143593</id>
		<title>File:Tests running.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Tests_running.png&amp;diff=143593"/>
		<updated>2022-03-27T19:04:14Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2227:_SQL_Injection_Fix&amp;diff=143592</id>
		<title>CSC/ECE 517 Spring 2022 - E2227: SQL Injection Fix</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2227:_SQL_Injection_Fix&amp;diff=143592"/>
		<updated>2022-03-27T19:03:48Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page details project documentation for the CSC/ECE 517 Spring 2022, &amp;quot;E2227 SQL Injection Fix&amp;quot; project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source software system that is used in order to assign projects to students as well as provide a place to submit and review peers.&lt;br /&gt;
&lt;br /&gt;
Many software projects such as expertiza rely on user interactions in order to accomplish the tasks given by their users. With this information input by the users, the software system often must access points in the database. Because of this, it is possible to access parts of the database even if you are not given direct access by inputting SQL language queries to unvalidated inputs. The reason in which this is possible is because many SQL queries rely on Boolean logic. This is a serious security risk for the software system and causes privacy concerns for any and all involved users.&lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
&lt;br /&gt;
Nicholas Himes&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
&lt;br /&gt;
* Lawrence O'Brien&lt;br /&gt;
* David Glymph&lt;br /&gt;
* Jacob Anderson&lt;br /&gt;
&lt;br /&gt;
== Code Modifications ==&lt;br /&gt;
Described below are the code refactoring tasks and issues addressed by this team. We have also included any pertinent details, reasonings, comments, warnings, etc., corresponding to each task.&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Finders ===&lt;br /&gt;
The SQL injection issue present in the expertiza source code is caused by an unvalidated SQL query when when searching for sign up topics for assignments requiring topics. The system used the static &amp;quot;find&amp;quot; method which does not validate or in any protect against malicious input. In order to solve this issue we used a find_by method, which forces all input to be used in searching for one specific key in the database rather than allowing additional keys to be accessed using string terminating characters. This solves the issue by preventing unauthorized database access through SQL injection.&lt;br /&gt;
&lt;br /&gt;
== Modified Files ==&lt;br /&gt;
* sign_up_sheet_controller.rb&lt;br /&gt;
* sign_up_sheet_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
=== Github Bots ===&lt;br /&gt;
Github bots were used to facilitate the majority of the checks that were used for expertiza outside of our unit testing, as well as the style guidelines. Brakeman was used as the functionality checking bot for this repository.&lt;br /&gt;
&lt;br /&gt;
[[File:Test.png]]&lt;br /&gt;
&lt;br /&gt;
=== Running Tests ===&lt;br /&gt;
Tests were altered in order to accomodate the change in implementation. We tested for a command that previously would have invoked a data breach via SQL injection to ensure it was no longer present.&lt;br /&gt;
&lt;br /&gt;
[[File:tests_running.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  rspec spec/controllers/sign_up_sheet_controller_spec.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GitHub links and Pull Request==&lt;br /&gt;
Link to Expertiza repository: [https://github.com/expertiza/expertiza here]&lt;br /&gt;
&lt;br /&gt;
Link to the forked repository: [https://github.com/lobrien6588/expertiza here]&lt;br /&gt;
&lt;br /&gt;
Link to Pull Request: [https://github.com/expertiza/expertiza/pull/2323 here]&lt;br /&gt;
&lt;br /&gt;
== Images ==&lt;br /&gt;
[[File:SQL_Injection_Location.png]]&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2227:_SQL_Injection_Fix&amp;diff=143497</id>
		<title>CSC/ECE 517 Spring 2022 - E2227: SQL Injection Fix</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2227:_SQL_Injection_Fix&amp;diff=143497"/>
		<updated>2022-03-22T02:27:20Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page details project documentation for the CSC/ECE 517 Spring 2022, &amp;quot;E2227 SQL Injection Fix&amp;quot; project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source software system that is used in order to assign projects to students as well as provide a place to submit and review peers.&lt;br /&gt;
&lt;br /&gt;
Many software projects such as expertiza rely on user interactions in order to accomplish the tasks given by their users. With this information input by the users, the software system often must access points in the database. Because of this, it is possible to access parts of the database even if you are not given direct access by inputting SQL language queries to unvalidated inputs. The reason in which this is possible is because many SQL queries rely on Boolean logic. This is a serious security risk for the software system and causes privacy concerns for any and all involved users.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
&lt;br /&gt;
Nicholas Himes&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
&lt;br /&gt;
* Lawrence O'Brien&lt;br /&gt;
* David Glymph&lt;br /&gt;
* Jacob Anderson&lt;br /&gt;
&lt;br /&gt;
== Code Modifications ==&lt;br /&gt;
Described below are the code refactoring tasks and issues addressed by this team. We have also included any pertinent details, reasonings, comments, warnings, etc., corresponding to each task.&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Finders ===&lt;br /&gt;
The SQL injection issue present in the expertiza source code is caused by an unvalidated SQL query when when searching for sign up topics for assignments requiring topics. The system used the static &amp;quot;find&amp;quot; method which does not validate or in any protect against malicious input. In order to solve this issue we used a find_by method, which forces all input to be used in searching for one specific key in the database rather than allowing additional keys to be accessed using string terminating characters. This solves the issue by preventing unauthorized database access through SQL injection.&lt;br /&gt;
&lt;br /&gt;
== Modified Files ==&lt;br /&gt;
* sign_up_sheet_controller.rb&lt;br /&gt;
* sign_up_sheet_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
=== Github Bots ===&lt;br /&gt;
&lt;br /&gt;
[[File:Test.png]]&lt;br /&gt;
&lt;br /&gt;
=== Running Tests ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  rspec spec/controllers/sign_up_sheet_controller_spec.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GitHub links and Pull Request==&lt;br /&gt;
Link to Expertiza repository: [https://github.com/expertiza/expertiza here]&lt;br /&gt;
&lt;br /&gt;
Link to the forked repository: [https://github.com/lobrien6588/expertiza here]&lt;br /&gt;
&lt;br /&gt;
Link to Pull Request: [https://github.com/expertiza/expertiza/pull/2323 here]&lt;br /&gt;
&lt;br /&gt;
== Images ==&lt;br /&gt;
[[File:SQL_Injection_Location.png]]&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Test.png&amp;diff=143496</id>
		<title>File:Test.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Test.png&amp;diff=143496"/>
		<updated>2022-03-22T02:26:33Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: Lpobrien uploaded a new version of File:Test.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2227:_SQL_Injection_Fix&amp;diff=143209</id>
		<title>CSC/ECE 517 Spring 2022 - E2227: SQL Injection Fix</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2227:_SQL_Injection_Fix&amp;diff=143209"/>
		<updated>2022-03-21T20:46:34Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page details project documentation for the CSC/ECE 517 Spring 2022, &amp;quot;E2227 SQL Injection Fix&amp;quot; project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source software system that is used in order to assign projects to students as well as provide a place to submit and review peers.&lt;br /&gt;
&lt;br /&gt;
Many software projects such as expertiza rely on user interactions in order to accomplish the tasks given by their users. With this information input by the users, the software system often must access points in the database. Because of this, it is possible to access parts of the database even if you are not given direct access by inputting SQL language queries to unvalidated inputs. The reason in which this is possible is because many SQL queries rely on Boolean logic. This is a serious security risk for the software system and causes privacy concerns for any and all involved users.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
&lt;br /&gt;
Nicholas Himes&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
&lt;br /&gt;
* Lawrence O'Brien&lt;br /&gt;
* David Glymph&lt;br /&gt;
* Jacob Anderson&lt;br /&gt;
&lt;br /&gt;
== Code Modifications ==&lt;br /&gt;
Described below are the code refactoring tasks and issues addressed by this team. We have also included any pertinent details, reasonings, comments, warnings, etc., corresponding to each task.&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Finders ===&lt;br /&gt;
The SQL injection issue present in the expertiza source code is caused by an unvalidated SQL query when when searching for sign up topics for assignments requiring topics. The system used the static &amp;quot;find&amp;quot; method which does not validate or in any protect against malicious input. In order to solve this issue we used a find_by method, which forces all input to be used in searching for one specific key in the database rather than allowing additional keys to be accessed using string terminating characters. This solves the issue by preventing unauthorized database access through SQL injection.&lt;br /&gt;
&lt;br /&gt;
== Modified Files ==&lt;br /&gt;
* sign_up_sheet_controller.rb&lt;br /&gt;
* sign_up_sheet_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
=== Running Tests ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  rspec spec/controllers/sign_up_sheet_controller_spec.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GitHub links and Pull Request==&lt;br /&gt;
Link to Expertiza repository: [https://github.com/expertiza/expertiza here]&lt;br /&gt;
&lt;br /&gt;
Link to the forked repository: [https://github.com/lobrien6588/expertiza here]&lt;br /&gt;
&lt;br /&gt;
Link to Pull Request: [https://github.com/expertiza/expertiza/pull/2323 here]&lt;br /&gt;
&lt;br /&gt;
== Images ==&lt;br /&gt;
[[File:SQL_Injection_Location.png]]&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:SQL_Injection_Location.png&amp;diff=143208</id>
		<title>File:SQL Injection Location.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:SQL_Injection_Location.png&amp;diff=143208"/>
		<updated>2022-03-21T20:45:51Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2227:_SQL_Injection_Fix&amp;diff=143207</id>
		<title>CSC/ECE 517 Spring 2022 - E2227: SQL Injection Fix</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2227:_SQL_Injection_Fix&amp;diff=143207"/>
		<updated>2022-03-21T20:43:15Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page details project documentation for the CSC/ECE 517 Spring 2022, &amp;quot;E2227 SQL Injection Fix&amp;quot; project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source software system that is used in order to assign projects to students as well as provide a place to submit and review peers.&lt;br /&gt;
&lt;br /&gt;
Many software projects such as expertiza rely on user interactions in order to accomplish the tasks given by their users. With this information input by the users, the software system often must access points in the database. Because of this, it is possible to access parts of the database even if you are not given direct access by inputting SQL language queries to unvalidated inputs. The reason in which this is possible is because many SQL queries rely on Boolean logic. This is a serious security risk for the software system and causes privacy concerns for any and all involved users.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
&lt;br /&gt;
Nicholas Himes&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
&lt;br /&gt;
* Lawrence O'Brien&lt;br /&gt;
* David Glymph&lt;br /&gt;
* Jacob Anderson&lt;br /&gt;
&lt;br /&gt;
== Code Modifications ==&lt;br /&gt;
Described below are the code refactoring tasks and issues addressed by this team. We have also included any pertinent details, reasonings, comments, warnings, etc., corresponding to each task.&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Finders ===&lt;br /&gt;
The SQL injection issue present in the expertiza source code is caused by an unvalidated SQL query when when searching for sign up topics for assignments requiring topics. The system used the static &amp;quot;find&amp;quot; method which does not validate or in any protect against malicious input. In order to solve this issue we used a find_by method, which forces all input to be used in searching for one specific key in the database rather than allowing additional keys to be accessed using string terminating characters. This solves the issue by preventing unauthorized database access through SQL injection.&lt;br /&gt;
&lt;br /&gt;
== Modified Files ==&lt;br /&gt;
* sign_up_sheet_controller.rb&lt;br /&gt;
* sign_up_sheet_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
=== Running Tests ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  rspec spec/controllers/sign_up_sheet_controller_spec.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==GitHub links and Pull Request==&lt;br /&gt;
Link to Expertiza repository: [https://github.com/expertiza/expertiza here]&lt;br /&gt;
&lt;br /&gt;
Link to the forked repository: [https://github.com/lobrien6588/expertiza here]&lt;br /&gt;
&lt;br /&gt;
Link to Pull Request: [https://github.com/expertiza/expertiza/pull/2323 here]&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022&amp;diff=143203</id>
		<title>CSC/ECE 517 Spring 2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022&amp;diff=143203"/>
		<updated>2022-03-21T20:40:28Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Link title]]== OSS Projects ==&lt;br /&gt;
&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2203: Adding tests for courses_controller, eula_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2204: Adding tests for markup_styles_controller, lock_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2203: Testing for submission_records_controller, profile_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2218: Refactor response_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2217: Refactor questionnaires_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2216: Refactor late_policies_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2215: Refactor student_quizzes_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2214: Refactor teams_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2219: Improve assessment360_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2211: Testing for summary_helper]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2225: Refactor review_mapping_helper.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2221: Refactor submitted content controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2206: Testing for users_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2205: Testing for participants_controller, versions_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2212: Testing for hamer.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - S2200: Refactoring evaluation of SQL queries (Java/JUnit)]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - S2222: Refactor impersonate_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2202- Testing for badges_controller, publishing_controller]]&lt;br /&gt;
*[[CSC/ECE 517 Spring 2022 - E2220: Refactor reputation_web_service_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2224: Refactor review_mapping_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2209: Testing for analytic helper.rb, join team requests helper.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2227: SQL Injection Fix]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Final Projects ==&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2227:_SQL_Injection_Fix&amp;diff=143202</id>
		<title>CSC/ECE 517 Spring 2022 - E2227: SQL Injection Fix</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2227:_SQL_Injection_Fix&amp;diff=143202"/>
		<updated>2022-03-21T20:40:08Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page details project documentation for the CSC/ECE 517 Spring 2022, &amp;quot;E2227 SQL Injection Fix&amp;quot; project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source software system that is used in order to assign projects to students as well as provide a place to submit and review peers.&lt;br /&gt;
&lt;br /&gt;
Many software projects such as expertiza rely on user interactions in order to accomplish the tasks given by their users. With this information input by the users, the software system often must access points in the database. Because of this, it is possible to access parts of the database even if you are not given direct access by inputting SQL language queries to unvalidated inputs. The reason in which this is possible is because many SQL queries rely on Boolean logic. This is a serious security risk for the software system and causes privacy concerns for any and all involved users.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
&lt;br /&gt;
Nicholas Himes&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
&lt;br /&gt;
* Lawrence O'Brien&lt;br /&gt;
* David Glymph&lt;br /&gt;
* Jacob Anderson&lt;br /&gt;
&lt;br /&gt;
== Code Modifications ==&lt;br /&gt;
Described below are the code refactoring tasks and issues addressed by this team. We have also included any pertinent details, reasonings, comments, warnings, etc., corresponding to each task.&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Finders ===&lt;br /&gt;
The SQL injection issue present in the expertiza source code is caused by an unvalidated SQL query when when searching for sign up topics for assignments requiring topics. The system used the static &amp;quot;find&amp;quot; method which does not validate or in any protect against malicious input. In order to solve this issue we used a find_by method, which forces all input to be used in searching for one specific key in the database rather than allowing additional keys to be accessed using string terminating characters. This solves the issue by preventing unauthorized database access through SQL injection.&lt;br /&gt;
&lt;br /&gt;
== Modified Files ==&lt;br /&gt;
* sign_up_sheet_controller.rb&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
=== Running Tests ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  rspec spec/controllers/sign_up_sheet_controller_spec.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==GitHub links and Pull Request==&lt;br /&gt;
Link to Expertiza repository: [https://github.com/expertiza/expertiza here]&lt;br /&gt;
&lt;br /&gt;
Link to the forked repository: [https://github.com/lobrien6588/expertiza here]&lt;br /&gt;
&lt;br /&gt;
Link to Pull Request: [https://github.com/expertiza/expertiza/pull/2323 here]&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022&amp;diff=143196</id>
		<title>CSC/ECE 517 Spring 2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022&amp;diff=143196"/>
		<updated>2022-03-21T20:35:12Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Link title]]== OSS Projects ==&lt;br /&gt;
&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2203: Adding tests for courses_controller, eula_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2204: Adding tests for markup_styles_controller, lock_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2203: Testing for submission_records_controller, profile_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2218: Refactor response_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2217: Refactor questionnaires_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2216: Refactor late_policies_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2215: Refactor student_quizzes_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2214: Refactor teams_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2219: Improve assessment360_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2211: Testing for summary_helper]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2225: Refactor review_mapping_helper.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2221: Refactor submitted content controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2206: Testing for users_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2205: Testing for participants_controller, versions_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2212: Testing for hamer.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - S2200: Refactoring evaluation of SQL queries (Java/JUnit)]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - S2222: Refactor impersonate_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2202- Testing for badges_controller, publishing_controller]]&lt;br /&gt;
*[[CSC/ECE 517 Spring 2022 - E2220: Refactor reputation_web_service_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2224: Refactor review_mapping_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2209: Testing for analytic helper.rb, join team requests helper.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2022 - E2207: SQL Injection Fix]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Final Projects ==&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2207:_SQL_Injection_Fix&amp;diff=143167</id>
		<title>CSC/ECE 517 Spring 2022 - E2207: SQL Injection Fix</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2207:_SQL_Injection_Fix&amp;diff=143167"/>
		<updated>2022-03-21T19:10:48Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page details project documentation for the CSC/ECE 517 Spring 2022, &amp;quot;E2218 SQL Injection Fix&amp;quot; project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source software system that is used in order to assign projects to students as well as provide a place to submit and review peers.&lt;br /&gt;
&lt;br /&gt;
Many software projects such as expertiza rely on user interactions in order to accomplish the tasks given by their users. With this information input by the users, the software system often must access points in the database. Because of this, it is possible to access parts of the database even if you are not given direct access by inputting SQL language queries to unvalidated inputs. The reason in which this is possible is because many SQL queries rely on Boolean logic. This is a serious security risk for the software system and causes privacy concerns for any and all involved users.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
&lt;br /&gt;
Nicolas Himes&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
&lt;br /&gt;
* Lawrence O'Brien&lt;br /&gt;
* David Glymph&lt;br /&gt;
* Jacob Anderson&lt;br /&gt;
&lt;br /&gt;
== Code Modifications ==&lt;br /&gt;
Described below are the code refactoring tasks and issues addressed by this team. We have also included any pertinent details, reasonings, comments, warnings, etc., corresponding to each task.&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Finders ===&lt;br /&gt;
The SQL injection issue present in the expertiza source code is caused by an unvalidated SQL query when when searching for sign up topics for assignments requiring topics. The system used the static &amp;quot;find&amp;quot; method which does not validate or in any protect against malicious input. In order to solve this issue we used a find_by method, which forces all input to be used in searching for one specific key in the database rather than allowing additional keys to be accessed using string terminating characters. This solves the issue by preventing unauthorized database access through SQL injection.&lt;br /&gt;
&lt;br /&gt;
== Modified Files ==&lt;br /&gt;
* sign_up_sheet_controller.rb&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
=== Running Tests ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  rspec spec/controllers/sign_up_sheet_controller_spec.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==GitHub links and Pull Request==&lt;br /&gt;
Link to Expertiza repository: [https://github.com/expertiza/expertiza here]&lt;br /&gt;
&lt;br /&gt;
Link to the forked repository: [https://github.com/lobrien6588/expertiza here]&lt;br /&gt;
&lt;br /&gt;
Link to Pull Request: [https://github.com/expertiza/expertiza/pull/2323 here]&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2207:_SQL_Injection_Fix&amp;diff=143166</id>
		<title>CSC/ECE 517 Spring 2022 - E2207: SQL Injection Fix</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2207:_SQL_Injection_Fix&amp;diff=143166"/>
		<updated>2022-03-21T18:53:08Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: Created page with &amp;quot;This page details project documentation for the CSC/ECE 517 Spring 2022, &amp;quot;E2218 SQL Injection Fix&amp;quot; project.   == Background ==  Many software projects rely on user interaction...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page details project documentation for the CSC/ECE 517 Spring 2022, &amp;quot;E2218 SQL Injection Fix&amp;quot; project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
Many software projects rely on user interactions in order to accomplish the tasks given by &lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
&lt;br /&gt;
Nicolas Himes&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
&lt;br /&gt;
* Lawrence Patrick O'Brien&lt;br /&gt;
* David Glymph&lt;br /&gt;
&lt;br /&gt;
== Code Modifications and Refactorization ==&lt;br /&gt;
Described below are the code refactoring tasks and issues addressed by this team. We have also included any pertinent details, reasonings, comments, warnings, etc., corresponding to each task.&lt;br /&gt;
&lt;br /&gt;
=== METHOD: def set_response ===&lt;br /&gt;
@response and @map instance variables are initialized the same way across multiple methods. In order to avoid duplication, we created a &lt;br /&gt;
before_action action which will be called first before calling the corresponding methods.&lt;br /&gt;
&lt;br /&gt;
[[File:Set_response_method.png|1200px|]]&lt;br /&gt;
&lt;br /&gt;
== Modified Files ==&lt;br /&gt;
&amp;lt;code&amp;gt;response_controller.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;response_helper.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;assignment_questionnaire.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;awarded_badge.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cake.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
=== Running Tests ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  rspec spec/controllers/questionnaires_controller_spec.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==GitHub links and Pull Request==&lt;br /&gt;
Link to Expertiza repository: [https://github.com/expertiza/expertiza here]&lt;br /&gt;
&lt;br /&gt;
Link to the forked repository: [https://github.com/vamshi-chidara/expertiza here]&lt;br /&gt;
&lt;br /&gt;
Link to Pull Request: [https://github.com/expertiza/expertiza/pull/2327 here]&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2227:_SQL_Injection_Fix&amp;diff=142929</id>
		<title>CSC/ECE 517 Spring 2022 - E2227: SQL Injection Fix</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2227:_SQL_Injection_Fix&amp;diff=142929"/>
		<updated>2022-03-16T19:48:48Z</updated>

		<summary type="html">&lt;p&gt;Lpobrien: Created page with &amp;quot;== About Expertiza== [http://expertiza.ncsu.edu/ Expertiza] is a software used for the purposes of allowing students to submit projects for review by instructors as well as ot...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About Expertiza==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is a software used for the purposes of allowing students to submit projects for review by instructors as well as other students in the form of peer reviews. It is used primarily by North Carolina State University, and is an open source platform developed in ruby using the rails framework in this [https://github.com/expertiza/expertiza/ repository].&lt;br /&gt;
&lt;br /&gt;
== Description of project ==&lt;br /&gt;
The issue addressed by this wiki page is the presence of [https://en.wikipedia.org/wiki/SQL_injection/ SQL injection] points. Meaning there are points in the Expertiza system in which it is possible to input strings that allow malicious SQL statements to be run on the project database and give a user access to parts of the system in which they should not be able too.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
Should there be a space available for input requesting a name field for a user, the user may be able to input [[John]] in order to access a user named John. However if this input area is not validated or protected against SQL injections, a user may be able to input [[' OR '1'='1]] in order to gain access to information related to a user with primary key id of 1.&lt;br /&gt;
&lt;br /&gt;
=== Files involved ===&lt;br /&gt;
Changes made solely to sign_up_sheet_controller.rb&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;/div&gt;</summary>
		<author><name>Lpobrien</name></author>
	</entry>
</feed>