<?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=Smadhur</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=Smadhur"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Smadhur"/>
	<updated>2026-06-08T13:48:50Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=121243</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=121243"/>
		<updated>2018-12-08T00:02:36Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Test Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;amp; Design ==&lt;br /&gt;
&lt;br /&gt;
# Consent to make the review public - add a checkbox and an oncheck event handlers (JS) that sets a new field 'visibility' to public of Response object.&lt;br /&gt;
# Change the schema of Responses table (add the new column) and write db migrations.  &lt;br /&gt;
# Create new table, model, view, controller for &amp;quot;similar_assignments&amp;quot; and validate CRUD operations that access the table.&lt;br /&gt;
# Add HTML (checkbox) to uncheck the consent such that the reviews becomes private again. &lt;br /&gt;
# On the &amp;quot;popup/team_users_popup&amp;quot; page (where instructor/TA can view all reviews), we give a checkbox against every review with public visibility to allow instructors/TAs to select one or more reviews as sample reviews to be available for students.&lt;br /&gt;
# Once the instructor selects and submits some reviews as sample reviews, we give a popup containing a list of assignments with a checkbox against each of them and a submit button at the end to allow instructors to make sample reviews available for multiple assignments in one go. We perform validation checks also.&lt;br /&gt;
# On submit of the popup, we update the similar_assignments table.&lt;br /&gt;
# At the top of student_reviews/list page, we give an option for the student to preview all the available sample reviews. &lt;br /&gt;
# Create the MVC setup for this new page to list all the sample reviews. Students will be able to click on one particular review and preview it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''DB Design'''&lt;br /&gt;
&lt;br /&gt;
Currently, the Expertiza database design does not maintain any link between different assignments. An assignment of the current semester is completely independent of any other assignment of any other course having similar or exact objectives. For example, in a course C, the assignment named A1 in a semester Sx has no association to the same assignment given in an earlier semester Sy.&lt;br /&gt;
&lt;br /&gt;
Since our task involves using reviews from the past as samples for the present, we should create this association as a new table. Further, reviews may not be the only intention to associate assignments with each other, as future requirements might require associating them on other criteria too. Thus, we find it appropriate to name the table as &amp;quot;similar_assignments&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The table structure is defined [http://wiki.expertiza.ncsu.edu/index.php/Similar_assignments here].&lt;br /&gt;
&lt;br /&gt;
This table can be visualized as a directed graph where vertices represent assignments. An edge (u,v) with a label L means u is similar to v for the intent of association, L.&lt;br /&gt;
&lt;br /&gt;
Consider a row (id = x, assignment_id = Ak, is_similar_for = An, association_intent = &amp;quot;review&amp;quot;). This means, given the intent of association as &amp;quot;review&amp;quot;, assignment Ak was chosen as a similar assignment for assignment An. That is, while marking some review for An as a sample, the instructor opted to have reviews of Ak as samples for An as well.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== UML - Use Case Diagram ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:UseCase.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Power Users:''' Instructors, TAs, Admins and Super Admins&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''More details about each point mentioned in the approach section will be updated after the implementation.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
We have added a new column in the ‘responses’ table (in the database), namely, ‘visibility’. &lt;br /&gt;
Visibility can have 4 values as listed below:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Table showing list of visibility values and the properties&lt;br /&gt;
! Visibility &lt;br /&gt;
! Properties &lt;br /&gt;
|-&lt;br /&gt;
| 0 || Response is private. This is the default value.&lt;br /&gt;
|-&lt;br /&gt;
| 1 || The response which was in the review has been approved as an example (that is, it has been marked as a sample)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || The response which was in the review has been approved as an example (that is, it has been marked as a sample)&lt;br /&gt;
|-&lt;br /&gt;
| 3 || The response which was either in the review or approved earlier, has now been rejected as an example (it has been unmarked as a sample)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
We have maintained these constants in a new file at helpers/response_constants.rb.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module ResponseConstants&lt;br /&gt;
	def _private&lt;br /&gt;
		0&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	def in_review&lt;br /&gt;
		1&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	def approved_as_sample&lt;br /&gt;
		2&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	def rejected_as_sample&lt;br /&gt;
		3&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the existing implementation of reviews, when a student starts a review (but hasn’t filled any text or ratings yet), a response gets created in the database. This response has a default visibility of 0.&lt;br /&gt;
&lt;br /&gt;
We have provided a checkbox (an HTML input node with attribute ‘type’ as ‘checkbox’) for the student to consent for his / her review to be used as an example, with values 0 and 1 for unchecked and checked respectively. This value is used to update the response object as part of the form submission.&lt;br /&gt;
&lt;br /&gt;
However, a student might want to remove their consent or give their consent, for a review that is already submitted. So, in the page where student views his / her own response, we have added the same HTML checkbox. On checking or unchecking the checkbox, the visibility field in the corresponding response object in the database gets updated.Consider this as case 1.&lt;br /&gt;
&lt;br /&gt;
Now when a power user looks at a review (at url , which is an HTML rendering of a ResponseMap containing Responses), he/she must be able to approve and reject responses which students have consented (offered) to be made visible to all. This is done by providing a button “Mark as Sample” or “Remove as Sample”. Responses without consent will not have any button.&lt;br /&gt;
&lt;br /&gt;
These HTML changes appear in views/popup/team_users_popup.html.haml&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if instance_variable_get('@sample_button_'+round.to_s)&lt;br /&gt;
        %div{:class=&amp;gt;'col-md-12 mark-delete-sample '+'round'+round.to_s}&lt;br /&gt;
          %h3{:class=&amp;gt;'col-md-10'} &amp;quot;Reviewed by #{User.find(@reviewer_id).fullname} (Round #{round})&amp;quot;&lt;br /&gt;
          %div{:class=&amp;gt;'col-md-2'}&lt;br /&gt;
&lt;br /&gt;
            %button{:class=&amp;gt;'col-md-12 mark-unmark-sample-button '+instance_variable_get('@mark_as_sample_'+round.to_s),&lt;br /&gt;
                   :data=&amp;gt;{'visibility':2, 'response_id':instance_variable_get('@response_id_round_' + round.to_s),'round':round} } Mark as Sample&lt;br /&gt;
            %button{:class=&amp;gt;'col-md-12 mark-unmark-sample-button '+instance_variable_get('@remove_as_sample_'+round.to_s),&lt;br /&gt;
                   :data=&amp;gt;{'visibility':3, 'response_id':instance_variable_get('@response_id_round_' + round.to_s),'round':round} } Remove as Sample&lt;br /&gt;
&lt;br /&gt;
            %span{:class=&amp;gt;&amp;quot;hide col-md-12 mark-unmark-sample-result&amp;quot;, :id=&amp;gt;&amp;quot;mark_unmark_fail_&amp;quot;+round.to_s}&lt;br /&gt;
            %span{:class=&amp;gt;&amp;quot;hide col-md-12 mark-unmark-sample-result success&amp;quot;, :id=&amp;gt;&amp;quot;mark_unmark_success_&amp;quot;+round.to_s}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Clicking on “Mark as Sample” or “Unmark as Sample” changes the visibility of the response to 2 or 3 respectively. Like case 1 mentioned above, this is another situation where the visibility needs to be updated when there is a page event.&lt;br /&gt;
&lt;br /&gt;
Both these cases are event-based and require to make an HTTP request from the browser and handle the response while staying on the same page. Therefore, according to standard practice, an AJAX request must be initiated on click of the button or checkbox. The request needs two parameters - response id, and the updated value of visibility. User-identifying data is sent by default in HTTP header cookies (as in any usual HTTP request).&lt;br /&gt;
&lt;br /&gt;
To handle these requests, we have created a sample_reviews controller with a method update_visibility. Within the method, we first check whether the request parameters are valid, and then proceed to check whether the current user (identified by session id) should be allowed to edit the response object to the visibility value passed in the request.&lt;br /&gt;
&lt;br /&gt;
We have validated requests in this manner since HTTP is stateless and requests can easily be cloned (a browser need not be the only client making requests). For example, one could simply copy the request as a cURL, change the session id in the HTTP header to a student’s session, and pass alternative values of visibility (say 2, meaning, approved as a sample) in the request. Such requests should be identified as unauthorized requests, while requests which want to update visibility to a value that’s not allowed need to be rejected as bad requests.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def update_visibility&lt;br /&gt;
	begin&lt;br /&gt;
	visibility = params[:visibility] #response object consists of visibility in string format&lt;br /&gt;
	if(visibility.nil?)&lt;br /&gt;
	raise StandardError.new(&amp;quot;Missing parameter 'visibility'&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
	visibility = visibility.to_i&lt;br /&gt;
&lt;br /&gt;
	if not (_private..rejected_as_sample).include? visibility&lt;br /&gt;
		raise StandardError.new(&amp;quot;Invalid value for parameter 'visibility'&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	@@response_id = params[:id]&lt;br /&gt;
	response_map_id = Response.find(@@response_id).map_id&lt;br /&gt;
	response_map = ResponseMap.find(response_map_id)&lt;br /&gt;
	assignment_id = response_map.reviewed_object_id&lt;br /&gt;
	is_admin = [Role.administrator.id,Role.superadministrator.id].include? current_user.role.id&lt;br /&gt;
	if is_admin&lt;br /&gt;
		Response.update(@@response_id.to_i, :visibility =&amp;gt; visibility)&lt;br /&gt;
		update_similar_assignment(assignment_id, visibility)&lt;br /&gt;
		render json:{&amp;quot;success&amp;quot; =&amp;gt; true}&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	course_id = Assignment.find(assignment_id).course_id&lt;br /&gt;
	instructor_id = Course.find(course_id).instructor_id&lt;br /&gt;
	ta_ids = []&lt;br /&gt;
	if current_user.role.id == Role.ta.id&lt;br /&gt;
	        ta_ids = TaMapping.where(course_id).ids # do this query only if current user is ta&lt;br /&gt;
	elsif current_user.role.id == Role.student.id&lt;br /&gt;
		# find if this student id is the same as the response reviewer id&lt;br /&gt;
		# and that visiblity is 0 or 1 and nothing else.&lt;br /&gt;
		# if anything fails, return failure&lt;br /&gt;
		if visibility &amp;gt; in_review&lt;br /&gt;
		           render json:{&amp;quot;success&amp;quot; =&amp;gt; false, &amp;quot;error&amp;quot;=&amp;gt;&amp;quot;Not allowed&amp;quot;}&lt;br /&gt;
			        return&lt;br /&gt;
			    end&lt;br /&gt;
		reviewer_user_id = AssignmentParticipant.find(response_map.reviewer_id).user_id&lt;br /&gt;
		if reviewer_user_id != current_user.id&lt;br /&gt;
			render json:{&amp;quot;success&amp;quot; =&amp;gt; false,&amp;quot;error&amp;quot; =&amp;gt; &amp;quot;Unathorized&amp;quot;}&lt;br /&gt;
			 	return&lt;br /&gt;
		         end&lt;br /&gt;
&lt;br /&gt;
	elsif not ([instructor_id] + ta_ids).include? current_user.id&lt;br /&gt;
		render json:{&amp;quot;success&amp;quot; =&amp;gt; false,&amp;quot;error&amp;quot; =&amp;gt; &amp;quot;Unathorized&amp;quot;}&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	Response.update(@@response_id.to_i, :visibility =&amp;gt; visibility)&lt;br /&gt;
	update_similar_assignment(assignment_id, visibility)&lt;br /&gt;
		rescue StandardError =&amp;gt; e&lt;br /&gt;
		render json:{&amp;quot;success&amp;quot; =&amp;gt; false,&amp;quot;error&amp;quot; =&amp;gt; e.message}&lt;br /&gt;
		else&lt;br /&gt;
			render json:{&amp;quot;success&amp;quot; =&amp;gt; true}&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We have provided a success or error message text below the button to indicate to the user that the request is completed.&lt;br /&gt;
&lt;br /&gt;
[[file: Mark unmark picssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We have used the same request mark_unmark/:id with POST data as {“visibility”:x}, in the student view as well.&lt;br /&gt;
&lt;br /&gt;
This project also required that assignments be linked to each other, as explained in the sections above. To this end, we have created a controller, model, and a migration (to create the database table) for similar assignments.&lt;br /&gt;
&lt;br /&gt;
By default, every assignment is similar to itself (assume it’s id is X). So, after updating a response’s visibility, we add a new entry in the similar_assignments table: (assignment_id = X, similar_for = X, association_intent = “Review”). This addition is done only after confirming for non-existence, as one can infer from the following code snippet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
private&lt;br /&gt;
	def update_similar_assignment(assignment_id, visibility)&lt;br /&gt;
		if visibility == approved_as_sample&lt;br /&gt;
			ids = SimilarAssignment.where(:is_similar_for =&amp;gt; assignment_id, :association_intent =&amp;gt; intent_review, &lt;br /&gt;
				:assignment_id =&amp;gt; assignment_id).ids&lt;br /&gt;
			if ids.empty?&lt;br /&gt;
				SimilarAssignment.create({:is_similar_for =&amp;gt; assignment_id, :association_intent =&amp;gt; intent_review, &lt;br /&gt;
				:assignment_id =&amp;gt; assignment_id})&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if visibility == rejected_as_sample or visibility == _private&lt;br /&gt;
			response_map_ids = ResponseMap.where(:reviewed_object_id =&amp;gt; assignment_id).ids&lt;br /&gt;
			response_ids = Response.where(:map_id =&amp;gt; response_map_ids, :visibility =&amp;gt; approved_as_sample)&lt;br /&gt;
			if response_ids.empty?&lt;br /&gt;
				SimilarAssignment.where(:assignment_id =&amp;gt; assignment_id).destroy_all&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;
The power user visits a review response page expecting to mark some reviews as samples and then link or unlink the assignment associated with the review to his / her other assignments. To provide the linking functionality, we have provided a clickable text  “ Use as Samples for More Assignments” at the top right corner of the page as shown below.&lt;br /&gt;
&lt;br /&gt;
[[for use as sample for more assignment]]&lt;br /&gt;
&lt;br /&gt;
The appearance or non-appearance of this text is conditional. It only appears when there is at least one sample review for the current assignment. So, to decide this, we have queried for those assignments for which this assignment is a similar one, and checked on the size of the query result. The size is then checked in popup_controller to set an instance variable popup_show to a boolean value. The view uses this to render or not render the clickable “Use as Samples for More Assignments” text.&lt;br /&gt;
&lt;br /&gt;
Code snippet of get_similar_assignment_ids&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def get_similar_assignment_ids(assignment_id)&lt;br /&gt;
      SimilarAssignment.where(:assignment_id =&amp;gt; assignment_id).pluck(:is_similar_for)&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Code snippet of popup_controller line 84&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@page_size = popup_page_size&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On click of this text, we open a popup that lists out (with a checkbox alongside each list entry) the candidate assignments that this assignment can be similar for (these are unchecked), and assignments that it is already similar for (these are checked). For example, assume that the power user is viewing the response page of assignment X. Assume we have entries (X,Y,”review”) and (X,Z,”review”) in similar_assignments table. Then, the popup list will have the assignments Y and Z with a checkbox against each of them ticked, and all the other assignments that the current user has access to, with a checkbox against each of them unticked.&lt;br /&gt;
&lt;br /&gt;
The popup and the data that go with it are fetched on demand. So, the assignment list need not be a part of the first render of the page itself, as the inherent querying would slow down page load time. Therefore, on click, we fetch the list by an AJAX request (we have given appropriate error messages below the clickable text for the rare eventuality of any server-side error or empty response).&lt;br /&gt;
&lt;br /&gt;
This request GET “/similar_assignments/:id” is again authenticated in similar_assignments_controller, get method. Same validation ideas as explained earlier are used. Only the assignment’s course instructor and TAs, admin, and super-admin should be able to fetch this data, while others need not have access to it.&lt;br /&gt;
&lt;br /&gt;
Code snippet of get method&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 # GET /similar_assignments/:id&lt;br /&gt;
def get&lt;br /&gt;
    @assignment_id = params[:id]&lt;br /&gt;
    ids = Response.joins(&amp;quot;INNER JOIN response_maps ON response_maps.id = responses.map_id &lt;br /&gt;
    WHERE visibility=2 AND reviewed_object_id =&amp;quot;+@assignment_id.to_s).ids&lt;br /&gt;
    if ids.empty?&lt;br /&gt;
    render json: {&amp;quot;success&amp;quot;=&amp;gt;false, &amp;quot;error&amp;quot;=&amp;gt;&amp;quot;Please mark atleast one review as sample&amp;quot;}&lt;br /&gt;
      return&lt;br /&gt;
    end&lt;br /&gt;
    begin&lt;br /&gt;
      if current_user.role.id == Role.student.id&lt;br /&gt;
        throw Exception.new&lt;br /&gt;
      end&lt;br /&gt;
    @similar_assignments = SimilarAssignment.where(:assignment_id =&amp;gt; @assignment_id).&lt;br /&gt;
    where.not(:is_similar_for=&amp;gt;@assignment_id).order(&amp;quot;created_at DESC&amp;quot;).pluck(:is_similar_for)&lt;br /&gt;
    rescue ActiveRecord::RecordNotFound =&amp;gt; e&lt;br /&gt;
      render json: {&amp;quot;success&amp;quot; =&amp;gt; false, &amp;quot;error&amp;quot; =&amp;gt; &amp;quot;Resource not found&amp;quot;}&lt;br /&gt;
    rescue Exception&lt;br /&gt;
      render json: {&amp;quot;success&amp;quot; =&amp;gt; false, &amp;quot;error&amp;quot; =&amp;gt; &amp;quot;Unauthorized&amp;quot;}&lt;br /&gt;
    else&lt;br /&gt;
      @res = get_asssignments_set(@similar_assignments)&lt;br /&gt;
      render json: {&amp;quot;success&amp;quot; =&amp;gt; true, &amp;quot;values&amp;quot; =&amp;gt; @res}&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The get method fetches similar assignment ids and passes them on to get_asssignments_set of similar_assignments_helper. This method queries for all assignments (except the ones passed in its parameter list) that the current user is allowed to access and returns a list of hash objects which are used by the caller (the on-success function of the AJAX request). Each hash object contains assignment name, id, it’s course name, and whether it’s a similar assignment or not. Following code snippets demonstrates this:&lt;br /&gt;
&lt;br /&gt;
Code snippet of get_asssignments_set method&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def get_asssignments_set(selected)&lt;br /&gt;
    all_assignments = get_assignments_based_on_role&lt;br /&gt;
    assignment_array = []&lt;br /&gt;
    courses = get_courses_based_on_role&lt;br /&gt;
    all_assignments.each {&lt;br /&gt;
        |assignment|&lt;br /&gt;
      course_id = assignment.course_id&lt;br /&gt;
      if(course_id.nil?)&lt;br /&gt;
       next&lt;br /&gt;
      end&lt;br /&gt;
      if (selected.include? assignment.id)&lt;br /&gt;
        hash1 = {:title =&amp;gt; assignment.name, :course_name =&amp;gt; courses[course_id], :checked =&amp;gt; true, :id =&amp;gt; assignment.id}&lt;br /&gt;
        assignment_array.push(hash1)&lt;br /&gt;
      else&lt;br /&gt;
        hash2 = {:title =&amp;gt; assignment.name, :course_name =&amp;gt; courses[course_id], :checked =&amp;gt; false, :id =&amp;gt; assignment.id}&lt;br /&gt;
        assignment_array.push(hash2)&lt;br /&gt;
      end&lt;br /&gt;
    }&lt;br /&gt;
    return assignment_array&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Code snippet of get_assignments_based_on_role method&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def get_assignments_based_on_role()&lt;br /&gt;
    role = current_user.role.id&lt;br /&gt;
    page = params[:page]&lt;br /&gt;
    assignment_id = params[:id].to_i&lt;br /&gt;
    if page.nil?&lt;br /&gt;
      page = 0&lt;br /&gt;
    end&lt;br /&gt;
    _offset = page.to_i * popup_page_size&lt;br /&gt;
    case role&lt;br /&gt;
      when Role.ta.id&lt;br /&gt;
        course_ids = TaMapping.where(:ta_id =&amp;gt; current_user.id).pluck(:course_id)&lt;br /&gt;
        @all_assignments = Assignment.where(:course_id =&amp;gt; course_ids).&lt;br /&gt;
          where.not(:id=&amp;gt;assignment_id).limit(popup_page_size).offset(_offset).order(&amp;quot;created_at DESC&amp;quot;)&lt;br /&gt;
      when Role.instructor.id&lt;br /&gt;
        course_ids = Course.where(:instructor_id =&amp;gt; current_user.id).pluck(:id)&lt;br /&gt;
        @all_assignments = Assignment.where(:course_id =&amp;gt; course_ids).&lt;br /&gt;
           where.not(:id=&amp;gt;assignment_id).limit(popup_page_size).offset(_offset).order(&amp;quot;created_at DESC&amp;quot;)&lt;br /&gt;
      else&lt;br /&gt;
        @all_assignments = []&lt;br /&gt;
    end&lt;br /&gt;
    @all_assignments&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The query result can be prohibitively large. This calls for pagination.&lt;br /&gt;
&lt;br /&gt;
Pagination at the server side is about performing the same query as a non-pagination implementation, with an addition: limit and offset. Limit denotes the size of a page, and offset denotes a start index, and is calculated as page size * page number. Page size is a constant defined in similar_assignments_constants.&lt;br /&gt;
&lt;br /&gt;
We had two options for response and rendering:&lt;br /&gt;
Construct the popup list HTML from the query results and respond with this HTML.&lt;br /&gt;
Respond with JSON, and build the HTML client side.&lt;br /&gt;
&lt;br /&gt;
Responding with HTML from server-side is expensive, as the byte size of the HTTP response would be significantly larger than JSON. Thus, we chose the second option.&lt;br /&gt;
&lt;br /&gt;
Since HTTP is stateless, the server has no way to maintain a running counter of page number. Therefore, keeping track of page number must be the responsibility of the client (browser JavaScript) who must pass it as a request parameter while the server simply reads it and assumes its lack of existence as page number 0. The following snippet demonstrates this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Snippet of response.js line 103-130&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fetchAssignments:function(){&lt;br /&gt;
    var self = this;&lt;br /&gt;
    var ajaxUrl = &amp;quot;/similar_assignments/&amp;quot;+assignmentId;&lt;br /&gt;
    if(this.currentPageNumber &amp;gt; 0){&lt;br /&gt;
        ajaxUrl += &amp;quot;?page=&amp;quot;+this.currentPageNumber;&lt;br /&gt;
    }&lt;br /&gt;
    jQuery.ajax({&lt;br /&gt;
        &amp;quot;url&amp;quot;:ajaxUrl,&lt;br /&gt;
        &amp;quot;type&amp;quot;:&amp;quot;GET&amp;quot;,&lt;br /&gt;
        &amp;quot;dataType&amp;quot;:&amp;quot;json&amp;quot;,&lt;br /&gt;
        &amp;quot;responseType&amp;quot;:&amp;quot;json&amp;quot;,&lt;br /&gt;
        &amp;quot;beforeSend&amp;quot;:function(){&lt;br /&gt;
            self.hideSuccess();&lt;br /&gt;
            self.hideError();&lt;br /&gt;
                    },&lt;br /&gt;
        &amp;quot;success&amp;quot;:function(result){&lt;br /&gt;
            if(result.success &amp;amp;&amp;amp; result.values.length){&lt;br /&gt;
                self.onFetchSuccess(result.values);&lt;br /&gt;
            }else if(result.success &amp;amp;&amp;amp; self.currentPageNumber == 0){&lt;br /&gt;
                self.onFetchFail(&amp;quot;Cannot link this to any assignment!&amp;quot;);&lt;br /&gt;
            }else if(result.success){&lt;br /&gt;
                self.onFetchSuccess(result.values);&lt;br /&gt;
            }&lt;br /&gt;
            else{&lt;br /&gt;
            self.onFetchFail(result.error);&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;failure&amp;quot;: self.onFetchFail,&lt;br /&gt;
        &amp;quot;error&amp;quot;:self.onFetchFail&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We have avoided maintaining the constant value of page size once on server side (in similar_assignments_constants) and once on the client side (JS variable). The initial render of the page creates a hidden HTML element that contains the page size, and once the document is ready, response.js selects that element, reads its value into a variable, and deletes that HTML element. This prevents having a page size in the HTML page-source, and more importantly, complies with the DRY principle. Page size should be changed in one function only - and that is in similar_assignments_constants as explained earlier.&lt;br /&gt;
&lt;br /&gt;
From the response JSON containing an array of objects (that are going to be rendered as list items), we have constructed the HTML list. Each list item maintains its assignment id in its HTML data attribute. The following snippet shows this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Response.js lines 67-78&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
addToList:function(assignment){&lt;br /&gt;
        var assignmentId = assignment.id;&lt;br /&gt;
        var title = assignment.title;&lt;br /&gt;
        var course = assignment.course_name;&lt;br /&gt;
        var displayText = &amp;quot;&amp;lt;strong&amp;gt;&amp;quot;+course+&amp;quot;: &amp;lt;/strong&amp;gt;&amp;quot; +title;&lt;br /&gt;
        var checked = assignment.checked;&lt;br /&gt;
        var newRow = this.template.clone();&lt;br /&gt;
        newRow.removeClass(&amp;quot;hide&amp;quot;).find(&amp;quot;input&amp;quot;).attr(&amp;quot;data-id&amp;quot;,assignmentId).attr(&amp;quot;checked&amp;quot;,checked);&lt;br /&gt;
        newRow.find(&amp;quot;span&amp;quot;).html(displayText).on(&amp;quot;click&amp;quot;,function(){&lt;br /&gt;
            newRow.find(&amp;quot;input&amp;quot;).click();&lt;br /&gt;
        });&lt;br /&gt;
        this.list.append(newRow.removeAttr(&amp;quot;id&amp;quot;));&lt;br /&gt;
    },&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_________________________________________A snapshot of the popup is shown below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The “More” button (shown in the snapshot above) is used to fetch the next set of results.&lt;br /&gt;
&lt;br /&gt;
After a finite number of requests, the client receives a lesser number of results than expected. This is when pagination must stop (since there are no more results). This is achieved by the object AssignmentsPopup (in our response.js file) - it maintains the page size and current page number. The more button is now replaced by a text “No more results” and it’s on-click functionality is turned off.&lt;br /&gt;
&lt;br /&gt;
______________________________________________Screenshot of popup with “No more results”&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Further, we have implemented this as a plug-and-play service. By reusing the same popup HTML and the AssignmentsPopup variable, the entire popup can be made a part of any Expertiza page.&lt;br /&gt;
&lt;br /&gt;
The page makes no requests on closing the popup, or on clicking Submit without checking any unchecked list item or unchecking any checked list item. It submits only if there is an overall difference in what items are checked and what are not.&lt;br /&gt;
&lt;br /&gt;
Click of “Submit” makes another AJAX POST request to “/similar_assignments/create/:id” with two params in the post JSON data:&lt;br /&gt;
“checked” - an array of assignment ids that were checked in the list but unchecked while opening the popup&lt;br /&gt;
“unchecked” - an array of assignment ids that were unchecked in the list but checked while opening the popup&lt;br /&gt;
&lt;br /&gt;
Either of these params may be empty, depending on the user’s actions, but not both (if both were empty, we simply close the popup without submitting). However, this optimization is only client side. Server side logic must still check for duplicates - that is, an assignment id under “checked” is already a part of similar_assignments.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Let current assignment id be X. For each of the checked assignment ids Ci in {C1,C2,...,Cn}, we have checked if there are entries (X,Ci) in similar_assignments table, and if not, then created that entry. Similarly, for each of the unchecked assignment ids Ui in {U1,U2,...,Um}, we have deleted the entry (X,Ui) from similar_assignments.&lt;br /&gt;
&lt;br /&gt;
On a successful update, the client closes the popup and prints a success message.&lt;br /&gt;
&lt;br /&gt;
_________________________________________________________________________________________Snapshot with success message&lt;br /&gt;
&lt;br /&gt;
So far, power users have marked reviews as samples and linked assignments. Now, students need to view these samples. A student would view these sample reviews before writing their review on somebody else’s work. Therefore, we have added a link “View Sample Reviews” to view the list of sample reviews.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
________________________________________________________________UI screenshot here.&amp;lt;pending&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Similarly, power users might also want to view samples. We have provided the same link on the following page too.&lt;br /&gt;
&lt;br /&gt;
________________________________________________________________UI screenshot here&lt;br /&gt;
&lt;br /&gt;
This page is rendered by the index method in sample_reviews_controller. It is a list of links to sample reviews. The layout of this page is common for users, as long as they are logged in. Non-logged-in or anonymous visitors are redirected to the Expertiza home page. ‘index’ calls a method redirect_anonymous_user in sample_reviews_helper to achieve this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Snippet of sample_reviews_helper&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def redirect_anonymous_user&lt;br /&gt;
    current_user = session[:user]&lt;br /&gt;
    if current_user.nil?&lt;br /&gt;
        redirect_to &amp;quot;/&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The list of available samples has no upper bound on its size. Yet again, pagination solves this problem. But unlike the case of the popup discussed earlier, the response type differs. A request without a ‘page’ parameter in its URL is a request for the web-page and should, therefore, render HTML, while the same request URL with the ‘page’ parameter is a request for more content, and should, therefore, render JSON. The following snippet from the index method demonstrates this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sample_reviews_controller - index method - add the if-else just before return statement&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def index&lt;br /&gt;
    redirect_anonymous_user&lt;br /&gt;
    @assignment_id = params[:id].to_i&lt;br /&gt;
    page_number = params[:page].to_i&lt;br /&gt;
    if page_number.nil?&lt;br /&gt;
        page_number = 0&lt;br /&gt;
    end&lt;br /&gt;
    @page_size = 8&lt;br /&gt;
    similar_assignment_ids = get_similar_assignment_ids(@assignment_id)&lt;br /&gt;
    @response_ids = []&lt;br /&gt;
    similar_assignment_ids.each do |id|&lt;br /&gt;
        _offset = page_number * @page_size&lt;br /&gt;
        ids = Response.joins(&amp;quot;INNER JOIN response_maps ON response_maps.id = responses.map_id &lt;br /&gt;
        WHERE visibility=2 AND reviewed_object_id = &amp;quot;+id.to_s+&lt;br /&gt;
        &amp;quot; ORDER BY responses.created_at LIMIT &amp;quot;+@page_size.to_s+&amp;quot; OFFSET &amp;quot;+_offset.to_s ).ids&lt;br /&gt;
        @response_ids += ids&lt;br /&gt;
    end&lt;br /&gt;
    @links = generate_links(@response_ids)&lt;br /&gt;
    if page_number == 0&lt;br /&gt;
        @course_assignment_name = get_course_assignment_name(@assignment_id)&lt;br /&gt;
    else&lt;br /&gt;
        render json: {&amp;quot;success&amp;quot; =&amp;gt; true, &amp;quot;sampleReviews&amp;quot; =&amp;gt; @links}&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
During this first render itself, we have also identified whether more results can exist. The “More” button only appears if the number of sample review links being rendered is equal to the page size, as shown in a snippet of views/sample_reviews/index.html.erb below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Code snip of Lines 12-15&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if @links.size == @page_size %&amp;gt;&lt;br /&gt;
    &amp;lt;h5 style=&amp;quot;cursor:pointer;text-align: center;&amp;quot; id=&amp;quot;more_button&amp;quot;&amp;gt;More +&amp;lt;/h5&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Clicking the “More” button now makes the same request as the page’s URL, but with the parameter ‘page’. In that case, the response is JSON, which is used by the caller (JavaScript Ajax) to add more rows to the page. If the number of rows is lesser than expected, the More text is changed, its click listener is turned off, and no more requests are made, demonstrated by the snippet of sample_review.js below.&lt;br /&gt;
&lt;br /&gt;
Code snip of Line 25-35&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for(var i in result.sampleReviews)&lt;br /&gt;
{&lt;br /&gt;
    currentNumberOfRows++;&lt;br /&gt;
    var review = result.sampleReviews[i];&lt;br /&gt;
    var newRow = listTemplate.clone();&lt;br /&gt;
    newRow.removeClass(&amp;quot;hide&amp;quot;).removeAttr(&amp;quot;id&amp;quot;).find(&amp;quot;a&amp;quot;).&lt;br /&gt;
    html(&amp;quot;Sample Review &amp;quot;+currentNumberOfRows).attr(&amp;quot;href&amp;quot;,review);&lt;br /&gt;
    ulList.append(newRow);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if(responseSize &amp;lt; pageSize){&lt;br /&gt;
self.html(&amp;quot;No more results!&amp;quot;).off().css({&amp;quot;cursor&amp;quot;:&amp;quot;default&amp;quot;});&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
pageNumber++;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each of the list items on the page is a link, which takes the user to /sample_reviews/:id. On this page, we fetch the question-answer pairs corresponding to the object having the id given in the URL and print it out in the form of a table.&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
'''As a Power User (TA/Instructor/Admin/Super Admin)'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays a list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student, with a &amp;quot;Make as sample&amp;quot; button on the right of every review.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''As a Student'''&lt;br /&gt;
# Log in.&lt;br /&gt;
# Click on Assignments&lt;br /&gt;
# List of assignments is displayed.&lt;br /&gt;
# Click on any assignment for which the review has to be submitted.&lt;br /&gt;
# Assignment task page is displayed.&lt;br /&gt;
# Click on &amp;quot;Other's work&amp;quot; to open the reviews summary page (at /student_review).&lt;br /&gt;
# Below the heading &amp;quot;Reviews for ...&amp;quot;, click on the &amp;quot;Show sample reviews&amp;quot; link.&lt;br /&gt;
# This opens a page where the student can view all sample reviews for that assignment.&lt;br /&gt;
# Use the browser's back button to go back to the Assignment review page.&lt;br /&gt;
# Chose to review any of the teams' assignments that are displayed.&lt;br /&gt;
# Select a team for review and fill in the review.&lt;br /&gt;
# Before submitting the review, select the checkbox that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;.&lt;br /&gt;
# After clicking on the submit button, the review submitted has been made public.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''RSpec Tests'''&lt;br /&gt;
&lt;br /&gt;
Below are the Rpsec tests that have been added to test the edge cases:&lt;br /&gt;
# If an anonymous user tries to view the sample reviews page he/she will be redirected to home page.&lt;br /&gt;
# If an anonymous user tries to view the details of a particular sample review, he/she will be redirected to home page.&lt;br /&gt;
# If a user tries to view the sample review of a particular assignment for which there are no sample reviews, he/she will be redirected to home page.&lt;br /&gt;
# If a student tries to fetch similar assignments, then he/she will be redirected to the assignments page&lt;br /&gt;
# If a student tries to update any similar assignment, then he/she will be redirected to the assignments page&lt;br /&gt;
# Performed some basic HTML validations -should always give the content-type as text/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=='''Additional Links and References'''==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1291 Link to the Git Pull Request]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/chinmaiks/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The Live Expertiza Website]&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
[mailto:aagniho@ncsu.edu Amogh Agnihotri Subbanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:ckaidab@ncsu.edu Chinmai Kaidabettu Srinivas]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:smadhur@ncsu.edu Siddu Madhure Jayanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:snaramb@ncsu.edu Suhas Naramballi Gururaja]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=121144</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=121144"/>
		<updated>2018-12-07T06:23:48Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;amp; Design ==&lt;br /&gt;
&lt;br /&gt;
# Consent to make the review public - add a checkbox and an oncheck event handlers (JS) that sets a new field 'visibility' to public of Response object.&lt;br /&gt;
# Change the schema of Responses table (add the new column) and write db migrations.  &lt;br /&gt;
# Create new table, model, view, controller for &amp;quot;similar_assignments&amp;quot; and validate CRUD operations that access the table.&lt;br /&gt;
# Add HTML (checkbox) to uncheck the consent such that the reviews becomes private again. &lt;br /&gt;
# On the &amp;quot;popup/team_users_popup&amp;quot; page (where instructor/TA can view all reviews), we give a checkbox against every review with public visibility to allow instructors/TAs to select one or more reviews as sample reviews to be available for students.&lt;br /&gt;
# Once the instructor selects and submits some reviews as sample reviews, we give a popup containing a list of assignments with a checkbox against each of them and a submit button at the end to allow instructors to make sample reviews available for multiple assignments in one go. We perform validation checks also.&lt;br /&gt;
# On submit of the popup, we update the similar_assignments table.&lt;br /&gt;
# At the top of student_reviews/list page, we give an option for the student to preview all the available sample reviews. &lt;br /&gt;
# Create the MVC setup for this new page to list all the sample reviews. Students will be able to click on one particular review and preview it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''DB Design'''&lt;br /&gt;
&lt;br /&gt;
Currently, the Expertiza database design does not maintain any link between different assignments. An assignment of the current semester is completely independent of any other assignment of any other course having similar or exact objectives. For example, in a course C, the assignment named A1 in a semester Sx has no association to the same assignment given in an earlier semester Sy.&lt;br /&gt;
&lt;br /&gt;
Since our task involves using reviews from the past as samples for the present, we should create this association as a new table. Further, reviews may not be the only intention to associate assignments with each other, as future requirements might require associating them on other criteria too. Thus, we find it appropriate to name the table as &amp;quot;similar_assignments&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The table structure is defined [http://wiki.expertiza.ncsu.edu/index.php/Similar_assignments here].&lt;br /&gt;
&lt;br /&gt;
This table can be visualized as a directed graph where vertices represent assignments. An edge (u,v) with a label L means u is similar to v for the intent of association, L.&lt;br /&gt;
&lt;br /&gt;
Consider a row (id = x, assignment_id = Ak, is_similar_for = An, association_intent = &amp;quot;review&amp;quot;). This means, given the intent of association as &amp;quot;review&amp;quot;, assignment Ak was chosen as a similar assignment for assignment An. That is, while marking some review for An as a sample, the instructor opted to have reviews of Ak as samples for An as well.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== UML - Use Case Diagram ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:UseCase.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Power Users:''' Instructors, TAs, Admins and Super Admins&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''More details about each point mentioned in the approach section will be updated after the implementation.'''&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
'''As a Power User (TA/Instructor/Admin/Super Admin)'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student, with a &amp;quot;Make as sample&amp;quot; button on the right of every review.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''As a Student'''&lt;br /&gt;
# Log in.&lt;br /&gt;
# Click on Assignments&lt;br /&gt;
# List of assignments is displayed.&lt;br /&gt;
# Click on any assignment for which the review has to be submitted.&lt;br /&gt;
# Assignment task page is displayed.&lt;br /&gt;
# Click on &amp;quot;Other's work&amp;quot; to open the reviews summary page (at /student_review).&lt;br /&gt;
# Below the heading &amp;quot;Reviews for ...&amp;quot;, click on the &amp;quot;Show sample reviews&amp;quot; link.&lt;br /&gt;
# This opens a page where the student can view all sample reviews for that assignment.&lt;br /&gt;
# Use the browser's back button to go back to Assignment review page.&lt;br /&gt;
# Chose to review any of the teams' assignments that are displayed.&lt;br /&gt;
# Select a team for review and fill in the review.&lt;br /&gt;
# Before submitting the review, select the checkbox that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;.&lt;br /&gt;
# After clicking on the submit button, the review submitted has been made public.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
We have added a new column in the ‘responses’ table (in the database), namely, ‘visibility’. &lt;br /&gt;
Visibility can have 4 values as listed below:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Table showing list of visibility values and the properties&lt;br /&gt;
! Visibility &lt;br /&gt;
! Properties &lt;br /&gt;
|-&lt;br /&gt;
| 0 || Response is private. This is the default value.&lt;br /&gt;
|-&lt;br /&gt;
| 1 || The response which was in the review has been approved as an example (that is, it has been marked as a sample)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || The response which was in the review has been approved as an example (that is, it has been marked as a sample)&lt;br /&gt;
|-&lt;br /&gt;
| 3 || The response which was either in the review or approved earlier, has now been rejected as an example (it has been unmarked as a sample)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
We have maintained these constants in a new file at helpers/response_constants.rb.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module ResponseConstants&lt;br /&gt;
	def _private&lt;br /&gt;
		0&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	def in_review&lt;br /&gt;
		1&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	def approved_as_sample&lt;br /&gt;
		2&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	def rejected_as_sample&lt;br /&gt;
		3&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the existing implementation of reviews, when a student starts a review (but hasn’t filled any text or ratings yet), a response gets created in the database. This response has a default visibility of 0.&lt;br /&gt;
&lt;br /&gt;
We have provided a checkbox (an HTML input node with attribute ‘type’ as ‘checkbox’) for the student to consent for his / her review to be used as an example, with values 0 and 1 for unchecked and checked respectively. This value is used to update the response object as part of the form submission.&lt;br /&gt;
&lt;br /&gt;
However, a student might want to remove their consent or give their consent, for a review that is already submitted. So, in the page where student views his / her own response, we have added the same HTML checkbox. On checking or unchecking the checkbox, the visibility field in the corresponding response object in the database gets updated.Consider this as case 1.&lt;br /&gt;
&lt;br /&gt;
Now when a power user looks at a review (at url , which is an HTML rendering of a ResponseMap containing Responses), he/she must be able to approve and reject responses which students have consented (offered) to be made visible to all. This is done by providing a button “Mark as Sample” or “Remove as Sample”. Responses without consent will not have any button.&lt;br /&gt;
&lt;br /&gt;
These HTML changes appear in views/popup/team_users_popup.html.haml&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if instance_variable_get('@sample_button_'+round.to_s)&lt;br /&gt;
        %div{:class=&amp;gt;'col-md-12 mark-delete-sample '+'round'+round.to_s}&lt;br /&gt;
          %h3{:class=&amp;gt;'col-md-10'} &amp;quot;Reviewed by #{User.find(@reviewer_id).fullname} (Round #{round})&amp;quot;&lt;br /&gt;
          %div{:class=&amp;gt;'col-md-2'}&lt;br /&gt;
&lt;br /&gt;
            %button{:class=&amp;gt;'col-md-12 mark-unmark-sample-button '+instance_variable_get('@mark_as_sample_'+round.to_s),&lt;br /&gt;
                   :data=&amp;gt;{'visibility':2, 'response_id':instance_variable_get('@response_id_round_' + round.to_s),'round':round} } Mark as Sample&lt;br /&gt;
            %button{:class=&amp;gt;'col-md-12 mark-unmark-sample-button '+instance_variable_get('@remove_as_sample_'+round.to_s),&lt;br /&gt;
                   :data=&amp;gt;{'visibility':3, 'response_id':instance_variable_get('@response_id_round_' + round.to_s),'round':round} } Remove as Sample&lt;br /&gt;
&lt;br /&gt;
            %span{:class=&amp;gt;&amp;quot;hide col-md-12 mark-unmark-sample-result&amp;quot;, :id=&amp;gt;&amp;quot;mark_unmark_fail_&amp;quot;+round.to_s}&lt;br /&gt;
            %span{:class=&amp;gt;&amp;quot;hide col-md-12 mark-unmark-sample-result success&amp;quot;, :id=&amp;gt;&amp;quot;mark_unmark_success_&amp;quot;+round.to_s}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Clicking on “Mark as Sample” or “Unmark as Sample” changes the visibility of the response to 2 or 3 respectively. Like case 1 mentioned above, this is another situation where the visibility needs to be updated when there is a page event.&lt;br /&gt;
&lt;br /&gt;
Both these cases are event-based and require to make an HTTP request from the browser and handle the response while staying on the same page. Therefore, according to standard practice, an AJAX request must be initiated on click of the button or checkbox. The request needs two parameters - response id, and the updated value of visibility. User-identifying data is sent by default in HTTP header cookies (as in any usual HTTP request).&lt;br /&gt;
&lt;br /&gt;
To handle these requests, we have created a sample_reviews controller with a method update_visibility. Within the method, we first check whether the request parameters are valid, and then proceed to check whether the current user (identified by session id) should be allowed to edit the response object to the visibility value passed in the request.&lt;br /&gt;
&lt;br /&gt;
We have validated requests in this manner since HTTP is stateless and requests can easily be cloned (a browser need not be the only client making requests). For example, one could simply copy the request as a cURL, change the session id in the HTTP header to a student’s session, and pass alternative values of visibility (say 2, meaning, approved as a sample) in the request. Such requests should be identified as unauthorized requests, while requests which want to update visibility to a value that’s not allowed need to be rejected as bad requests.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def update_visibility&lt;br /&gt;
	begin&lt;br /&gt;
	visibility = params[:visibility] #response object consists of visibility in string format&lt;br /&gt;
	if(visibility.nil?)&lt;br /&gt;
	raise StandardError.new(&amp;quot;Missing parameter 'visibility'&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
	visibility = visibility.to_i&lt;br /&gt;
&lt;br /&gt;
	if not (_private..rejected_as_sample).include? visibility&lt;br /&gt;
		raise StandardError.new(&amp;quot;Invalid value for parameter 'visibility'&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	@@response_id = params[:id]&lt;br /&gt;
	response_map_id = Response.find(@@response_id).map_id&lt;br /&gt;
	response_map = ResponseMap.find(response_map_id)&lt;br /&gt;
	assignment_id = response_map.reviewed_object_id&lt;br /&gt;
	is_admin = [Role.administrator.id,Role.superadministrator.id].include? current_user.role.id&lt;br /&gt;
	if is_admin&lt;br /&gt;
		Response.update(@@response_id.to_i, :visibility =&amp;gt; visibility)&lt;br /&gt;
		update_similar_assignment(assignment_id, visibility)&lt;br /&gt;
		render json:{&amp;quot;success&amp;quot; =&amp;gt; true}&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	course_id = Assignment.find(assignment_id).course_id&lt;br /&gt;
	instructor_id = Course.find(course_id).instructor_id&lt;br /&gt;
	ta_ids = []&lt;br /&gt;
	if current_user.role.id == Role.ta.id&lt;br /&gt;
	        ta_ids = TaMapping.where(course_id).ids # do this query only if current user is ta&lt;br /&gt;
	elsif current_user.role.id == Role.student.id&lt;br /&gt;
		# find if this student id is the same as the response reviewer id&lt;br /&gt;
		# and that visiblity is 0 or 1 and nothing else.&lt;br /&gt;
		# if anything fails, return failure&lt;br /&gt;
		if visibility &amp;gt; in_review&lt;br /&gt;
		           render json:{&amp;quot;success&amp;quot; =&amp;gt; false, &amp;quot;error&amp;quot;=&amp;gt;&amp;quot;Not allowed&amp;quot;}&lt;br /&gt;
			        return&lt;br /&gt;
			    end&lt;br /&gt;
		reviewer_user_id = AssignmentParticipant.find(response_map.reviewer_id).user_id&lt;br /&gt;
		if reviewer_user_id != current_user.id&lt;br /&gt;
			render json:{&amp;quot;success&amp;quot; =&amp;gt; false,&amp;quot;error&amp;quot; =&amp;gt; &amp;quot;Unathorized&amp;quot;}&lt;br /&gt;
			 	return&lt;br /&gt;
		         end&lt;br /&gt;
&lt;br /&gt;
	elsif not ([instructor_id] + ta_ids).include? current_user.id&lt;br /&gt;
		render json:{&amp;quot;success&amp;quot; =&amp;gt; false,&amp;quot;error&amp;quot; =&amp;gt; &amp;quot;Unathorized&amp;quot;}&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	Response.update(@@response_id.to_i, :visibility =&amp;gt; visibility)&lt;br /&gt;
	update_similar_assignment(assignment_id, visibility)&lt;br /&gt;
		rescue StandardError =&amp;gt; e&lt;br /&gt;
		render json:{&amp;quot;success&amp;quot; =&amp;gt; false,&amp;quot;error&amp;quot; =&amp;gt; e.message}&lt;br /&gt;
		else&lt;br /&gt;
			render json:{&amp;quot;success&amp;quot; =&amp;gt; true}&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We have provided a success or error message text below the button to indicate to the user that the request is completed.&lt;br /&gt;
&lt;br /&gt;
[[file: Mark unmark picssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We have used the same request mark_unmark/:id with POST data as {“visibility”:x}, in the student view as well.&lt;br /&gt;
&lt;br /&gt;
This project also required that assignments be linked to each other, as explained in the sections above. To this end, we have created a controller, model, and a migration (to create the database table) for similar assignments.&lt;br /&gt;
&lt;br /&gt;
By default, every assignment is similar to itself (assume it’s id is X). So, after updating a response’s visibility, we add a new entry in the similar_assignments table: (assignment_id = X, similar_for = X, association_intent = “Review”). This addition is done only after confirming for non-existence, as one can infer from the following code snippet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
private&lt;br /&gt;
	def update_similar_assignment(assignment_id, visibility)&lt;br /&gt;
		if visibility == approved_as_sample&lt;br /&gt;
			ids = SimilarAssignment.where(:is_similar_for =&amp;gt; assignment_id, :association_intent =&amp;gt; intent_review, &lt;br /&gt;
				:assignment_id =&amp;gt; assignment_id).ids&lt;br /&gt;
			if ids.empty?&lt;br /&gt;
				SimilarAssignment.create({:is_similar_for =&amp;gt; assignment_id, :association_intent =&amp;gt; intent_review, &lt;br /&gt;
				:assignment_id =&amp;gt; assignment_id})&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if visibility == rejected_as_sample or visibility == _private&lt;br /&gt;
			response_map_ids = ResponseMap.where(:reviewed_object_id =&amp;gt; assignment_id).ids&lt;br /&gt;
			response_ids = Response.where(:map_id =&amp;gt; response_map_ids, :visibility =&amp;gt; approved_as_sample)&lt;br /&gt;
			if response_ids.empty?&lt;br /&gt;
				SimilarAssignment.where(:assignment_id =&amp;gt; assignment_id).destroy_all&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;
The power user visits a review response page expecting to mark some reviews as samples and then link or unlink the assignment associated with the review to his / her other assignments. To provide the linking functionality, we have provided a clickable text  “ Use as Samples for More Assignments” at the top right corner of the page as shown below.&lt;br /&gt;
&lt;br /&gt;
[[for use as sample for more assignment]]&lt;br /&gt;
&lt;br /&gt;
The appearance or non-appearance of this text is conditional. It only appears when there is at least one sample review for the current assignment. So, to decide this, we have queried for those assignments for which this assignment is a similar one, and checked on the size of the query result. The size is then checked in popup_controller to set an instance variable popup_show to a boolean value. The view uses this to render or not render the clickable “Use as Samples for More Assignments” text.&lt;br /&gt;
&lt;br /&gt;
Code snippet of get_similar_assignment_ids&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def get_similar_assignment_ids(assignment_id)&lt;br /&gt;
      SimilarAssignment.where(:assignment_id =&amp;gt; assignment_id).pluck(:is_similar_for)&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Code snippet of popup_controller line 84&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@page_size = popup_page_size&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On click of this text, we open a popup that lists out (with a checkbox alongside each list entry) the candidate assignments that this assignment can be similar for (these are unchecked), and assignments that it is already similar for (these are checked). For example, assume that the power user is viewing the response page of assignment X. Assume we have entries (X,Y,”review”) and (X,Z,”review”) in similar_assignments table. Then, the popup list will have the assignments Y and Z with a checkbox against each of them ticked, and all the other assignments that the current user has access to, with a checkbox against each of them unticked.&lt;br /&gt;
&lt;br /&gt;
The popup and the data that go with it are fetched on demand. So, the assignment list need not be a part of the first render of the page itself, as the inherent querying would slow down page load time. Therefore, on click, we fetch the list by an AJAX request (we have given appropriate error messages below the clickable text for the rare eventuality of any server-side error or empty response).&lt;br /&gt;
&lt;br /&gt;
This request GET “/similar_assignments/:id” is again authenticated in similar_assignments_controller, get method. Same validation ideas as explained earlier are used. Only the assignment’s course instructor and TAs, admin, and super-admin should be able to fetch this data, while others need not have access to it.&lt;br /&gt;
&lt;br /&gt;
Code snippet of get method&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 # GET /similar_assignments/:id&lt;br /&gt;
def get&lt;br /&gt;
    @assignment_id = params[:id]&lt;br /&gt;
    ids = Response.joins(&amp;quot;INNER JOIN response_maps ON response_maps.id = responses.map_id &lt;br /&gt;
    WHERE visibility=2 AND reviewed_object_id =&amp;quot;+@assignment_id.to_s).ids&lt;br /&gt;
    if ids.empty?&lt;br /&gt;
    render json: {&amp;quot;success&amp;quot;=&amp;gt;false, &amp;quot;error&amp;quot;=&amp;gt;&amp;quot;Please mark atleast one review as sample&amp;quot;}&lt;br /&gt;
      return&lt;br /&gt;
    end&lt;br /&gt;
    begin&lt;br /&gt;
      if current_user.role.id == Role.student.id&lt;br /&gt;
        throw Exception.new&lt;br /&gt;
      end&lt;br /&gt;
    @similar_assignments = SimilarAssignment.where(:assignment_id =&amp;gt; @assignment_id).&lt;br /&gt;
    where.not(:is_similar_for=&amp;gt;@assignment_id).order(&amp;quot;created_at DESC&amp;quot;).pluck(:is_similar_for)&lt;br /&gt;
    rescue ActiveRecord::RecordNotFound =&amp;gt; e&lt;br /&gt;
      render json: {&amp;quot;success&amp;quot; =&amp;gt; false, &amp;quot;error&amp;quot; =&amp;gt; &amp;quot;Resource not found&amp;quot;}&lt;br /&gt;
    rescue Exception&lt;br /&gt;
      render json: {&amp;quot;success&amp;quot; =&amp;gt; false, &amp;quot;error&amp;quot; =&amp;gt; &amp;quot;Unauthorized&amp;quot;}&lt;br /&gt;
    else&lt;br /&gt;
      @res = get_asssignments_set(@similar_assignments)&lt;br /&gt;
      render json: {&amp;quot;success&amp;quot; =&amp;gt; true, &amp;quot;values&amp;quot; =&amp;gt; @res}&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The get method fetches similar assignment ids and passes them on to get_asssignments_set of similar_assignments_helper. This method queries for all assignments (except the ones passed in its parameter list) that the current user is allowed to access and returns a list of hash objects which are used by the caller (the on-success function of the AJAX request). Each hash object contains assignment name, id, it’s course name, and whether it’s a similar assignment or not. Following code snippets demonstrates this:&lt;br /&gt;
&lt;br /&gt;
Code snippet of get_asssignments_set method&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def get_asssignments_set(selected)&lt;br /&gt;
    all_assignments = get_assignments_based_on_role&lt;br /&gt;
    assignment_array = []&lt;br /&gt;
    courses = get_courses_based_on_role&lt;br /&gt;
    all_assignments.each {&lt;br /&gt;
        |assignment|&lt;br /&gt;
      course_id = assignment.course_id&lt;br /&gt;
      if(course_id.nil?)&lt;br /&gt;
       next&lt;br /&gt;
      end&lt;br /&gt;
      if (selected.include? assignment.id)&lt;br /&gt;
        hash1 = {:title =&amp;gt; assignment.name, :course_name =&amp;gt; courses[course_id], :checked =&amp;gt; true, :id =&amp;gt; assignment.id}&lt;br /&gt;
        assignment_array.push(hash1)&lt;br /&gt;
      else&lt;br /&gt;
        hash2 = {:title =&amp;gt; assignment.name, :course_name =&amp;gt; courses[course_id], :checked =&amp;gt; false, :id =&amp;gt; assignment.id}&lt;br /&gt;
        assignment_array.push(hash2)&lt;br /&gt;
      end&lt;br /&gt;
    }&lt;br /&gt;
    return assignment_array&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Code snippet of get_assignments_based_on_role method&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def get_assignments_based_on_role()&lt;br /&gt;
    role = current_user.role.id&lt;br /&gt;
    page = params[:page]&lt;br /&gt;
    assignment_id = params[:id].to_i&lt;br /&gt;
    if page.nil?&lt;br /&gt;
      page = 0&lt;br /&gt;
    end&lt;br /&gt;
    _offset = page.to_i * popup_page_size&lt;br /&gt;
    case role&lt;br /&gt;
      when Role.ta.id&lt;br /&gt;
        course_ids = TaMapping.where(:ta_id =&amp;gt; current_user.id).pluck(:course_id)&lt;br /&gt;
        @all_assignments = Assignment.where(:course_id =&amp;gt; course_ids).&lt;br /&gt;
          where.not(:id=&amp;gt;assignment_id).limit(popup_page_size).offset(_offset).order(&amp;quot;created_at DESC&amp;quot;)&lt;br /&gt;
      when Role.instructor.id&lt;br /&gt;
        course_ids = Course.where(:instructor_id =&amp;gt; current_user.id).pluck(:id)&lt;br /&gt;
        @all_assignments = Assignment.where(:course_id =&amp;gt; course_ids).&lt;br /&gt;
           where.not(:id=&amp;gt;assignment_id).limit(popup_page_size).offset(_offset).order(&amp;quot;created_at DESC&amp;quot;)&lt;br /&gt;
      else&lt;br /&gt;
        @all_assignments = []&lt;br /&gt;
    end&lt;br /&gt;
    @all_assignments&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The query result can be prohibitively large. This calls for pagination.&lt;br /&gt;
&lt;br /&gt;
Pagination at the server side is about performing the same query as a non-pagination implementation, with an addition: limit and offset. Limit denotes the size of a page, and offset denotes a start index, and is calculated as page size * page number. Page size is a constant defined in similar_assignments_constants.&lt;br /&gt;
&lt;br /&gt;
We had two options for response and rendering:&lt;br /&gt;
Construct the popup list HTML from the query results and respond with this HTML.&lt;br /&gt;
Respond with JSON, and build the HTML client side.&lt;br /&gt;
&lt;br /&gt;
Responding with HTML from server-side is expensive, as the byte size of the HTTP response would be significantly larger than JSON. Thus, we chose the second option.&lt;br /&gt;
&lt;br /&gt;
Since HTTP is stateless, the server has no way to maintain a running counter of page number. Therefore, keeping track of page number must be the responsibility of the client (browser JavaScript) who must pass it as a request parameter while the server simply reads it and assumes its lack of existence as page number 0. The following snippet demonstrates this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Snippet of response.js line 103-130&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fetchAssignments:function(){&lt;br /&gt;
    var self = this;&lt;br /&gt;
    var ajaxUrl = &amp;quot;/similar_assignments/&amp;quot;+assignmentId;&lt;br /&gt;
    if(this.currentPageNumber &amp;gt; 0){&lt;br /&gt;
        ajaxUrl += &amp;quot;?page=&amp;quot;+this.currentPageNumber;&lt;br /&gt;
    }&lt;br /&gt;
    jQuery.ajax({&lt;br /&gt;
        &amp;quot;url&amp;quot;:ajaxUrl,&lt;br /&gt;
        &amp;quot;type&amp;quot;:&amp;quot;GET&amp;quot;,&lt;br /&gt;
        &amp;quot;dataType&amp;quot;:&amp;quot;json&amp;quot;,&lt;br /&gt;
        &amp;quot;responseType&amp;quot;:&amp;quot;json&amp;quot;,&lt;br /&gt;
        &amp;quot;beforeSend&amp;quot;:function(){&lt;br /&gt;
            self.hideSuccess();&lt;br /&gt;
            self.hideError();&lt;br /&gt;
                    },&lt;br /&gt;
        &amp;quot;success&amp;quot;:function(result){&lt;br /&gt;
            if(result.success &amp;amp;&amp;amp; result.values.length){&lt;br /&gt;
                self.onFetchSuccess(result.values);&lt;br /&gt;
            }else if(result.success &amp;amp;&amp;amp; self.currentPageNumber == 0){&lt;br /&gt;
                self.onFetchFail(&amp;quot;Cannot link this to any assignment!&amp;quot;);&lt;br /&gt;
            }else if(result.success){&lt;br /&gt;
                self.onFetchSuccess(result.values);&lt;br /&gt;
            }&lt;br /&gt;
            else{&lt;br /&gt;
            self.onFetchFail(result.error);&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;failure&amp;quot;: self.onFetchFail,&lt;br /&gt;
        &amp;quot;error&amp;quot;:self.onFetchFail&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We have avoided maintaining the constant value of page size once on server side (in similar_assignments_constants) and once on the client side (JS variable). The initial render of the page creates a hidden HTML element that contains the page size, and once the document is ready, response.js selects that element, reads its value into a variable, and deletes that HTML element. This prevents having a page size in the HTML page-source, and more importantly, complies with the DRY principle. Page size should be changed in one function only - and that is in similar_assignments_constants as explained earlier.&lt;br /&gt;
&lt;br /&gt;
From the response JSON containing an array of objects (that are going to be rendered as list items), we have constructed the HTML list. Each list item maintains its assignment id in its HTML data attribute. The following snippet shows this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Response.js lines 67-78&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
addToList:function(assignment){&lt;br /&gt;
        var assignmentId = assignment.id;&lt;br /&gt;
        var title = assignment.title;&lt;br /&gt;
        var course = assignment.course_name;&lt;br /&gt;
        var displayText = &amp;quot;&amp;lt;strong&amp;gt;&amp;quot;+course+&amp;quot;: &amp;lt;/strong&amp;gt;&amp;quot; +title;&lt;br /&gt;
        var checked = assignment.checked;&lt;br /&gt;
        var newRow = this.template.clone();&lt;br /&gt;
        newRow.removeClass(&amp;quot;hide&amp;quot;).find(&amp;quot;input&amp;quot;).attr(&amp;quot;data-id&amp;quot;,assignmentId).attr(&amp;quot;checked&amp;quot;,checked);&lt;br /&gt;
        newRow.find(&amp;quot;span&amp;quot;).html(displayText).on(&amp;quot;click&amp;quot;,function(){&lt;br /&gt;
            newRow.find(&amp;quot;input&amp;quot;).click();&lt;br /&gt;
        });&lt;br /&gt;
        this.list.append(newRow.removeAttr(&amp;quot;id&amp;quot;));&lt;br /&gt;
    },&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_________________________________________A snapshot of the popup is shown below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The “More” button (shown in the snapshot above) is used to fetch the next set of results.&lt;br /&gt;
&lt;br /&gt;
After a finite number of requests, the client receives a lesser number of results than expected. This is when pagination must stop (since there are no more results). This is achieved by the object AssignmentsPopup (in our response.js file) - it maintains the page size and current page number. The more button is now replaced by a text “No more results” and it’s on-click functionality is turned off.&lt;br /&gt;
&lt;br /&gt;
______________________________________________Screenshot of popup with “No more results”&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Further, we have implemented this as a plug-and-play service. By reusing the same popup HTML and the AssignmentsPopup variable, the entire popup can be made a part of any Expertiza page.&lt;br /&gt;
&lt;br /&gt;
The page makes no requests on closing the popup, or on clicking Submit without checking any unchecked list item or unchecking any checked list item. It submits only if there is an overall difference in what items are checked and what are not.&lt;br /&gt;
&lt;br /&gt;
Click of “Submit” makes another AJAX POST request to “/similar_assignments/create/:id” with two params in the post JSON data:&lt;br /&gt;
“checked” - an array of assignment ids that were checked in the list but unchecked while opening the popup&lt;br /&gt;
“unchecked” - an array of assignment ids that were unchecked in the list but checked while opening the popup&lt;br /&gt;
&lt;br /&gt;
Either of these params may be empty, depending on the user’s actions, but not both (if both were empty, we simply close the popup without submitting). However, this optimization is only client side. Server side logic must still check for duplicates - that is, an assignment id under “checked” is already a part of similar_assignments.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Let current assignment id be X. For each of the checked assignment ids Ci in {C1,C2,...,Cn}, we have checked if there are entries (X,Ci) in similar_assignments table, and if not, then created that entry. Similarly, for each of the unchecked assignment ids Ui in {U1,U2,...,Um}, we have deleted the entry (X,Ui) from similar_assignments.&lt;br /&gt;
&lt;br /&gt;
On a successful update, the client closes the popup and prints a success message.&lt;br /&gt;
&lt;br /&gt;
_________________________________________________________________________________________Snapshot with success message&lt;br /&gt;
&lt;br /&gt;
So far, power users have marked reviews as samples and linked assignments. Now, students need to view these samples. A student would view these sample reviews before writing their review on somebody else’s work. Therefore, we have added a link “View Sample Reviews” to view the list of sample reviews.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
________________________________________________________________UI screenshot here.&amp;lt;pending&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Similarly, power users might also want to view samples. We have provided the same link on the following page too.&lt;br /&gt;
&lt;br /&gt;
________________________________________________________________UI screenshot here&lt;br /&gt;
&lt;br /&gt;
This page is rendered by the index method in sample_reviews_controller. It is a list of links to sample reviews. The layout of this page is common for users, as long as they are logged in. Non-logged-in or anonymous visitors are redirected to the Expertiza home page. ‘index’ calls a method redirect_anonymous_user in sample_reviews_helper to achieve this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Snippet of sample_reviews_helper&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def redirect_anonymous_user&lt;br /&gt;
    current_user = session[:user]&lt;br /&gt;
    if current_user.nil?&lt;br /&gt;
        redirect_to &amp;quot;/&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The list of available samples has no upper bound on its size. Yet again, pagination solves this problem. But unlike the case of the popup discussed earlier, the response type differs. A request without a ‘page’ parameter in its URL is a request for the web-page and should, therefore, render HTML, while the same request URL with the ‘page’ parameter is a request for more content, and should, therefore, render JSON. The following snippet from the index method demonstrates this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sample_reviews_controller - index method - add the if-else just before return statement&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def index&lt;br /&gt;
    redirect_anonymous_user&lt;br /&gt;
    @assignment_id = params[:id].to_i&lt;br /&gt;
    page_number = params[:page].to_i&lt;br /&gt;
    if page_number.nil?&lt;br /&gt;
        page_number = 0&lt;br /&gt;
    end&lt;br /&gt;
    @page_size = 8&lt;br /&gt;
    similar_assignment_ids = get_similar_assignment_ids(@assignment_id)&lt;br /&gt;
    @response_ids = []&lt;br /&gt;
    similar_assignment_ids.each do |id|&lt;br /&gt;
        _offset = page_number * @page_size&lt;br /&gt;
        ids = Response.joins(&amp;quot;INNER JOIN response_maps ON response_maps.id = responses.map_id &lt;br /&gt;
        WHERE visibility=2 AND reviewed_object_id = &amp;quot;+id.to_s+&lt;br /&gt;
        &amp;quot; ORDER BY responses.created_at LIMIT &amp;quot;+@page_size.to_s+&amp;quot; OFFSET &amp;quot;+_offset.to_s ).ids&lt;br /&gt;
        @response_ids += ids&lt;br /&gt;
    end&lt;br /&gt;
    @links = generate_links(@response_ids)&lt;br /&gt;
    if page_number == 0&lt;br /&gt;
        @course_assignment_name = get_course_assignment_name(@assignment_id)&lt;br /&gt;
    else&lt;br /&gt;
        render json: {&amp;quot;success&amp;quot; =&amp;gt; true, &amp;quot;sampleReviews&amp;quot; =&amp;gt; @links}&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
During this first render itself, we have also identified whether more results can exist. The “More” button only appears if the number of sample review links being rendered is equal to the page size, as shown in a snippet of views/sample_reviews/index.html.erb below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Code snip of Lines 12-15&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if @links.size == @page_size %&amp;gt;&lt;br /&gt;
    &amp;lt;h5 style=&amp;quot;cursor:pointer;text-align: center;&amp;quot; id=&amp;quot;more_button&amp;quot;&amp;gt;More +&amp;lt;/h5&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Clicking the “More” button now makes the same request as the page’s URL, but with the parameter ‘page’. In that case, the response is JSON, which is used by the caller (JavaScript Ajax) to add more rows to the page. If the number of rows is lesser than expected, the More text is changed, its click listener is turned off, and no more requests are made, demonstrated by the snippet of sample_review.js below.&lt;br /&gt;
&lt;br /&gt;
Code snip of Line 25-35&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for(var i in result.sampleReviews)&lt;br /&gt;
{&lt;br /&gt;
    currentNumberOfRows++;&lt;br /&gt;
    var review = result.sampleReviews[i];&lt;br /&gt;
    var newRow = listTemplate.clone();&lt;br /&gt;
    newRow.removeClass(&amp;quot;hide&amp;quot;).removeAttr(&amp;quot;id&amp;quot;).find(&amp;quot;a&amp;quot;).&lt;br /&gt;
    html(&amp;quot;Sample Review &amp;quot;+currentNumberOfRows).attr(&amp;quot;href&amp;quot;,review);&lt;br /&gt;
    ulList.append(newRow);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if(responseSize &amp;lt; pageSize){&lt;br /&gt;
self.html(&amp;quot;No more results!&amp;quot;).off().css({&amp;quot;cursor&amp;quot;:&amp;quot;default&amp;quot;});&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
pageNumber++;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each of the list items on the page is a link, which takes the user to /sample_reviews/:id. On this page, we fetch the question-answer pairs corresponding to the object having the id given in the URL and print it out in the form of a table.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=='''Additional Links and References'''==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1291 Link to the Git Pull Request]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/chinmaiks/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The Live Expertiza Website]&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
[mailto:aagniho@ncsu.edu Amogh Agnihotri Subbanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:ckaidab@ncsu.edu Chinmai Kaidabettu Srinivas]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:smadhur@ncsu.edu Siddu Madhure Jayanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:snaramb@ncsu.edu Suhas Naramballi Gururaja]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=121143</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=121143"/>
		<updated>2018-12-07T05:43:48Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;amp; Design ==&lt;br /&gt;
&lt;br /&gt;
# Consent to make the review public - add a checkbox and an oncheck event handlers (JS) that sets a new field 'visibility' to public of Response object.&lt;br /&gt;
# Change the schema of Responses table (add the new column) and write db migrations.  &lt;br /&gt;
# Create new table, model, view, controller for &amp;quot;similar_assignments&amp;quot; and validate CRUD operations that access the table.&lt;br /&gt;
# Add HTML (checkbox) to uncheck the consent such that the reviews becomes private again. &lt;br /&gt;
# On the &amp;quot;popup/team_users_popup&amp;quot; page (where instructor/TA can view all reviews), we give a checkbox against every review with public visibility to allow instructors/TAs to select one or more reviews as sample reviews to be available for students.&lt;br /&gt;
# Once the instructor selects and submits some reviews as sample reviews, we give a popup containing a list of assignments with a checkbox against each of them and a submit button at the end to allow instructors to make sample reviews available for multiple assignments in one go. We perform validation checks also.&lt;br /&gt;
# On submit of the popup, we update the similar_assignments table.&lt;br /&gt;
# At the top of student_reviews/list page, we give an option for the student to preview all the available sample reviews. &lt;br /&gt;
# Create the MVC setup for this new page to list all the sample reviews. Students will be able to click on one particular review and preview it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''DB Design'''&lt;br /&gt;
&lt;br /&gt;
Currently, the Expertiza database design does not maintain any link between different assignments. An assignment of the current semester is completely independent of any other assignment of any other course having similar or exact objectives. For example, in a course C, the assignment named A1 in a semester Sx has no association to the same assignment given in an earlier semester Sy.&lt;br /&gt;
&lt;br /&gt;
Since our task involves using reviews from the past as samples for the present, we should create this association as a new table. Further, reviews may not be the only intention to associate assignments with each other, as future requirements might require associating them on other criteria too. Thus, we find it appropriate to name the table as &amp;quot;similar_assignments&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The table structure is defined [http://wiki.expertiza.ncsu.edu/index.php/Similar_assignments here].&lt;br /&gt;
&lt;br /&gt;
This table can be visualized as a directed graph where vertices represent assignments. An edge (u,v) with a label L means u is similar to v for the intent of association, L.&lt;br /&gt;
&lt;br /&gt;
Consider a row (id = x, assignment_id = Ak, is_similar_for = An, association_intent = &amp;quot;review&amp;quot;). This means, given the intent of association as &amp;quot;review&amp;quot;, assignment Ak was chosen as a similar assignment for assignment An. That is, while marking some review for An as a sample, the instructor opted to have reviews of Ak as samples for An as well.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== UML - Use Case Diagram ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:UseCase.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Power Users:''' Instructors, TAs, Admins and Super Admins&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''More details about each point mentioned in the approach section will be updated after the implementation.'''&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
'''As a Power User (TA/Instructor/Admin/Super Admin)'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student, with a &amp;quot;Make as sample&amp;quot; button on the right of every review.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''As a Student'''&lt;br /&gt;
# Log in.&lt;br /&gt;
# Click on Assignments&lt;br /&gt;
# List of assignments is displayed.&lt;br /&gt;
# Click on any assignment for which the review has to be submitted.&lt;br /&gt;
# Assignment task page is displayed.&lt;br /&gt;
# Click on &amp;quot;Other's work&amp;quot; to open the reviews summary page (at /student_review).&lt;br /&gt;
# Below the heading &amp;quot;Reviews for ...&amp;quot;, click on the &amp;quot;Show sample reviews&amp;quot; link.&lt;br /&gt;
# This opens a page where the student can view all sample reviews for that assignment.&lt;br /&gt;
# Use the browser's back button to go back to Assignment review page.&lt;br /&gt;
# Chose to review any of the teams' assignments that are displayed.&lt;br /&gt;
# Select a team for review and fill in the review.&lt;br /&gt;
# Before submitting the review, select the checkbox that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;.&lt;br /&gt;
# After clicking on the submit button, the review submitted has been made public.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
We have added a new column in the ‘responses’ table (in the database), namely, ‘visibility’. &lt;br /&gt;
Visibility can have 4 values as listed below:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Table showing list of visibility values and the properties&lt;br /&gt;
! Visibility &lt;br /&gt;
! Properties &lt;br /&gt;
|-&lt;br /&gt;
| 0 || Response is private. This is the default value.&lt;br /&gt;
|-&lt;br /&gt;
| 1 || The response which was in the review has been approved as an example (that is, it has been marked as a sample)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || The response which was in the review has been approved as an example (that is, it has been marked as a sample)&lt;br /&gt;
|-&lt;br /&gt;
| 3 || The response which was either in the review or approved earlier, has now been rejected as an example (it has been unmarked as a sample)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
We have maintained these constants in a new file at helpers/response_constants.rb.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module ResponseConstants&lt;br /&gt;
	def _private&lt;br /&gt;
		0&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	def in_review&lt;br /&gt;
		1&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	def approved_as_sample&lt;br /&gt;
		2&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	def rejected_as_sample&lt;br /&gt;
		3&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the existing implementation of reviews, when a student starts a review (but hasn’t filled any text or ratings yet), a response gets created in the database. This response has a default visibility of 0.&lt;br /&gt;
&lt;br /&gt;
We have provided a checkbox (an HTML input node with attribute ‘type’ as ‘checkbox’) for the student to consent for his / her review to be used as an example, with values 0 and 1 for unchecked and checked respectively. This value is used to update the response object as part of the form submission.&lt;br /&gt;
&lt;br /&gt;
However, a student might want to remove their consent or give their consent, for a review that is already submitted. So, in the page where student views his / her own response, we have added the same HTML checkbox. On checking or unchecking the checkbox, the visibility field in the corresponding response object in the database gets updated.&lt;br /&gt;
&lt;br /&gt;
Now when a power user looks at a review (at url , which is an HTML rendering of a ResponseMap containing Responses), he/she must be able to approve and reject responses which students have consented (offered) to be made visible to all. This is done by providing a button “Mark as Sample” or “Remove as Sample”. Responses without consent will not have any button.&lt;br /&gt;
&lt;br /&gt;
These HTML changes appear in views/popup/team_users_popup.html.haml&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if instance_variable_get('@sample_button_'+round.to_s)&lt;br /&gt;
        %div{:class=&amp;gt;'col-md-12 mark-delete-sample '+'round'+round.to_s}&lt;br /&gt;
          %h3{:class=&amp;gt;'col-md-10'} &amp;quot;Reviewed by #{User.find(@reviewer_id).fullname} (Round #{round})&amp;quot;&lt;br /&gt;
          %div{:class=&amp;gt;'col-md-2'}&lt;br /&gt;
&lt;br /&gt;
            %button{:class=&amp;gt;'col-md-12 mark-unmark-sample-button '+instance_variable_get('@mark_as_sample_'+round.to_s),&lt;br /&gt;
                   :data=&amp;gt;{'visibility':2, 'response_id':instance_variable_get('@response_id_round_' + round.to_s),'round':round} } Mark as Sample&lt;br /&gt;
            %button{:class=&amp;gt;'col-md-12 mark-unmark-sample-button '+instance_variable_get('@remove_as_sample_'+round.to_s),&lt;br /&gt;
                   :data=&amp;gt;{'visibility':3, 'response_id':instance_variable_get('@response_id_round_' + round.to_s),'round':round} } Remove as Sample&lt;br /&gt;
&lt;br /&gt;
            %span{:class=&amp;gt;&amp;quot;hide col-md-12 mark-unmark-sample-result&amp;quot;, :id=&amp;gt;&amp;quot;mark_unmark_fail_&amp;quot;+round.to_s}&lt;br /&gt;
            %span{:class=&amp;gt;&amp;quot;hide col-md-12 mark-unmark-sample-result success&amp;quot;, :id=&amp;gt;&amp;quot;mark_unmark_success_&amp;quot;+round.to_s}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Clicking on “Mark as Sample” or “Unmark as Sample” changes the visibility of the response to 2 or 3 respectively. Like case 1 mentioned above, this is another situation where the visibility needs to be updated when there is a page event.&lt;br /&gt;
&lt;br /&gt;
Both these cases are event based, and require to make a HTTP request from the browser and handle the response while staying on the same page. Therefore, according to standard practice, an AJAX request must be initiated on click of the button or checkbox. The request needs two parameters - response id, and updated value of visibility. User-identifying data is sent by default in HTTP header cookies (as in any usual HTTP request).&lt;br /&gt;
&lt;br /&gt;
To handle these requests, we have created a sample_reviews controller with a method update_visibility. Within the method, we first check whether the request parameters are valid, and then proceed to check whether the current user (identified by session id) should be allowed to edit the response object to the visibility value passed in the request.&lt;br /&gt;
&lt;br /&gt;
We have validated requests in this manner since HTTP is stateless and requests can easily be cloned (a browser need not be the only client making requests). For example, one could simply copy the request as a cURL, change the session id in the HTTP header to a student’s session, and pass alternative values of visibility (say 2, meaning, approved as sample) in the request. Such requests should be identified as unauthorized requests, while requests which want to update visibility to a value that’s not allowed need to be rejected as bad requests.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def update_visibility&lt;br /&gt;
	begin&lt;br /&gt;
	visibility = params[:visibility] #response object consists of visibility in string format&lt;br /&gt;
	if(visibility.nil?)&lt;br /&gt;
	raise StandardError.new(&amp;quot;Missing parameter 'visibility'&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
	visibility = visibility.to_i&lt;br /&gt;
&lt;br /&gt;
	if not (_private..rejected_as_sample).include? visibility&lt;br /&gt;
		raise StandardError.new(&amp;quot;Invalid value for parameter 'visibility'&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	@@response_id = params[:id]&lt;br /&gt;
	response_map_id = Response.find(@@response_id).map_id&lt;br /&gt;
	response_map = ResponseMap.find(response_map_id)&lt;br /&gt;
	assignment_id = response_map.reviewed_object_id&lt;br /&gt;
	is_admin = [Role.administrator.id,Role.superadministrator.id].include? current_user.role.id&lt;br /&gt;
	if is_admin&lt;br /&gt;
		Response.update(@@response_id.to_i, :visibility =&amp;gt; visibility)&lt;br /&gt;
		update_similar_assignment(assignment_id, visibility)&lt;br /&gt;
		render json:{&amp;quot;success&amp;quot; =&amp;gt; true}&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	course_id = Assignment.find(assignment_id).course_id&lt;br /&gt;
	instructor_id = Course.find(course_id).instructor_id&lt;br /&gt;
	ta_ids = []&lt;br /&gt;
	if current_user.role.id == Role.ta.id&lt;br /&gt;
	        ta_ids = TaMapping.where(course_id).ids # do this query only if current user is ta&lt;br /&gt;
	elsif current_user.role.id == Role.student.id&lt;br /&gt;
		# find if this student id is the same as the response reviewer id&lt;br /&gt;
		# and that visiblity is 0 or 1 and nothing else.&lt;br /&gt;
		# if anything fails, return failure&lt;br /&gt;
		if visibility &amp;gt; in_review&lt;br /&gt;
		           render json:{&amp;quot;success&amp;quot; =&amp;gt; false, &amp;quot;error&amp;quot;=&amp;gt;&amp;quot;Not allowed&amp;quot;}&lt;br /&gt;
			        return&lt;br /&gt;
			    end&lt;br /&gt;
		reviewer_user_id = AssignmentParticipant.find(response_map.reviewer_id).user_id&lt;br /&gt;
		if reviewer_user_id != current_user.id&lt;br /&gt;
			render json:{&amp;quot;success&amp;quot; =&amp;gt; false,&amp;quot;error&amp;quot; =&amp;gt; &amp;quot;Unathorized&amp;quot;}&lt;br /&gt;
			 	return&lt;br /&gt;
		         end&lt;br /&gt;
&lt;br /&gt;
	elsif not ([instructor_id] + ta_ids).include? current_user.id&lt;br /&gt;
		render json:{&amp;quot;success&amp;quot; =&amp;gt; false,&amp;quot;error&amp;quot; =&amp;gt; &amp;quot;Unathorized&amp;quot;}&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	Response.update(@@response_id.to_i, :visibility =&amp;gt; visibility)&lt;br /&gt;
	update_similar_assignment(assignment_id, visibility)&lt;br /&gt;
		rescue StandardError =&amp;gt; e&lt;br /&gt;
		render json:{&amp;quot;success&amp;quot; =&amp;gt; false,&amp;quot;error&amp;quot; =&amp;gt; e.message}&lt;br /&gt;
		else&lt;br /&gt;
			render json:{&amp;quot;success&amp;quot; =&amp;gt; true}&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We have provided a success or error message text below the button to indicate to the user that the request is completed.&lt;br /&gt;
&lt;br /&gt;
[[file: Mark unmark picssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We have used the same request mark_unmark/:id with POST data as {“visibility”:x}, in the student view as well.&lt;br /&gt;
&lt;br /&gt;
This project also required that assignments be linked to each other, as explained in the sections above. To this end, we have created a controller, model, and a migration (to create the database table) for similar assignments.&lt;br /&gt;
&lt;br /&gt;
By default, every assignment is similar to itself (assume it’s id is X). So, after updating a response’s visibility, we add a new entry in the similar_assignments table: (assignment_id = X, similar_for = X, association_intent = “Review”). This addition is done only after confirming for non-existence, as one can infer from the following code snippet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
private&lt;br /&gt;
	def update_similar_assignment(assignment_id, visibility)&lt;br /&gt;
		if visibility == approved_as_sample&lt;br /&gt;
			ids = SimilarAssignment.where(:is_similar_for =&amp;gt; assignment_id, :association_intent =&amp;gt; intent_review, &lt;br /&gt;
				:assignment_id =&amp;gt; assignment_id).ids&lt;br /&gt;
			if ids.empty?&lt;br /&gt;
				SimilarAssignment.create({:is_similar_for =&amp;gt; assignment_id, :association_intent =&amp;gt; intent_review, &lt;br /&gt;
				:assignment_id =&amp;gt; assignment_id})&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if visibility == rejected_as_sample or visibility == _private&lt;br /&gt;
			response_map_ids = ResponseMap.where(:reviewed_object_id =&amp;gt; assignment_id).ids&lt;br /&gt;
			response_ids = Response.where(:map_id =&amp;gt; response_map_ids, :visibility =&amp;gt; approved_as_sample)&lt;br /&gt;
			if response_ids.empty?&lt;br /&gt;
				SimilarAssignment.where(:assignment_id =&amp;gt; assignment_id).destroy_all&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;
The power user visits a review response page expecting to mark some reviews as samples and then link or unlink the assignment associated with the review to his / her other assignments. To provide the linking functionality, we have provided a clickable text  “ Use as Samples for More Assignments” at the top right corner of the page as shown below.&lt;br /&gt;
&lt;br /&gt;
[[for use as sample for more assignment]]&lt;br /&gt;
&lt;br /&gt;
The appearance or non-appearance of this text is conditional. It only appears when there is at least one sample review for the current assignment. So, to decide this, we have queried for those assignments for which this assignment is a similar one, and checked on the size of the query result. The size is then checked in popup_controller to set an instance variable popup_show to a boolean value. The view uses this to render or not render the clickable “Use as Samples for More Assignments” text.&lt;br /&gt;
&lt;br /&gt;
Code snippet of get_similar_assignment_ids&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def get_similar_assignment_ids(assignment_id)&lt;br /&gt;
      SimilarAssignment.where(:assignment_id =&amp;gt; assignment_id).pluck(:is_similar_for)&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Code snippet of popup_controller line 84&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@page_size = popup_page_size&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On click of this text, we open a popup that lists out (with a checkbox alongside each list entry) the candidate assignments that this assignment can be similar for (these are unchecked), and assignments that it is already similar for (these are checked). For example, assume that the power user is viewing the response page of assignment X. Assume we have entries (X,Y,”review”) and (X,Z,”review”) in similar_assignments table. Then, the popup list will have the assignments Y and Z with a checkbox against each of them ticked, and all the other assignments that the current user has access to, with a checkbox against each of them unticked.&lt;br /&gt;
&lt;br /&gt;
The popup and the data that go with it are fetched on demand. So, the assignment list need not be a part of the first render of the page itself, as the inherent querying would slow down page load time. Therefore, on click, we fetch the list by an AJAX request (we have given appropriate error messages below the clickable text for the rare eventuality of any server side error or empty response).&lt;br /&gt;
&lt;br /&gt;
This request GET “/similar_assignments/:id” is again authenticated in similar_assignments_controller, get method. Same validation ideas as explained earlier are used. Only the assignment’s course instructor and TAs, admin and super-admin should be able to fetch this data, while others need not have access to it.&lt;br /&gt;
&lt;br /&gt;
Code snippet of get method&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 # GET /similar_assignments/:id&lt;br /&gt;
def get&lt;br /&gt;
    @assignment_id = params[:id]&lt;br /&gt;
    ids = Response.joins(&amp;quot;INNER JOIN response_maps ON response_maps.id = responses.map_id WHERE visibility=2 AND reviewed_object_id =           &amp;quot;+@assignment_id.to_s).ids&lt;br /&gt;
    if ids.empty?&lt;br /&gt;
    render json: {&amp;quot;success&amp;quot;=&amp;gt;false, &amp;quot;error&amp;quot;=&amp;gt;&amp;quot;Please mark atleast one review as sample&amp;quot;}&lt;br /&gt;
      return&lt;br /&gt;
    end&lt;br /&gt;
    begin&lt;br /&gt;
      if current_user.role.id == Role.student.id&lt;br /&gt;
        throw Exception.new&lt;br /&gt;
      end&lt;br /&gt;
    @similar_assignments = SimilarAssignment.where(:assignment_id =&amp;gt; @assignment_id).where.not(:is_similar_for=&amp;gt;@assignment_id).order(&amp;quot;created_at     DESC&amp;quot;).pluck(:is_similar_for)&lt;br /&gt;
    rescue ActiveRecord::RecordNotFound =&amp;gt; e&lt;br /&gt;
      render json: {&amp;quot;success&amp;quot; =&amp;gt; false, &amp;quot;error&amp;quot; =&amp;gt; &amp;quot;Resource not found&amp;quot;}&lt;br /&gt;
    rescue Exception&lt;br /&gt;
      render json: {&amp;quot;success&amp;quot; =&amp;gt; false, &amp;quot;error&amp;quot; =&amp;gt; &amp;quot;Unauthorized&amp;quot;}&lt;br /&gt;
    else&lt;br /&gt;
      @res = get_asssignments_set(@similar_assignments)&lt;br /&gt;
      render json: {&amp;quot;success&amp;quot; =&amp;gt; true, &amp;quot;values&amp;quot; =&amp;gt; @res}&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The get method fetches similar assignment ids and passes them on to get_asssignments_set of similar_assignments_helper. This method queries for all assignments (except the ones passed in it’s parameter list) that the current user is allowed to access and returns a list of hash objects which are used by the caller (the on-success function of the AJAX request). Each hash object contains assignment name, id, it’s course name, and whether it’s a similar assignment or not. Following code snippets demonstrates this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Code snippet of get_asssignments_set method&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def get_asssignments_set(selected)&lt;br /&gt;
    all_assignments = get_assignments_based_on_role&lt;br /&gt;
    assignment_array = []&lt;br /&gt;
    courses = get_courses_based_on_role&lt;br /&gt;
    all_assignments.each {&lt;br /&gt;
        |assignment|&lt;br /&gt;
      course_id = assignment.course_id&lt;br /&gt;
      if(course_id.nil?)&lt;br /&gt;
       next&lt;br /&gt;
      end&lt;br /&gt;
      if (selected.include? assignment.id)&lt;br /&gt;
        hash1 = {:title =&amp;gt; assignment.name, :course_name =&amp;gt; courses[course_id], :checked =&amp;gt; true, :id =&amp;gt; assignment.id}&lt;br /&gt;
        assignment_array.push(hash1)&lt;br /&gt;
      else&lt;br /&gt;
        hash2 = {:title =&amp;gt; assignment.name, :course_name =&amp;gt; courses[course_id], :checked =&amp;gt; false, :id =&amp;gt; assignment.id}&lt;br /&gt;
        assignment_array.push(hash2)&lt;br /&gt;
      end&lt;br /&gt;
    }&lt;br /&gt;
    return assignment_array&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Code snippet of get_assignments_based_on_role method&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def get_assignments_based_on_role()&lt;br /&gt;
    role = current_user.role.id&lt;br /&gt;
    page = params[:page]&lt;br /&gt;
    assignment_id = params[:id].to_i&lt;br /&gt;
    if page.nil?&lt;br /&gt;
      page = 0&lt;br /&gt;
    end&lt;br /&gt;
    _offset = page.to_i * popup_page_size&lt;br /&gt;
    case role&lt;br /&gt;
      when Role.ta.id&lt;br /&gt;
        course_ids = TaMapping.where(:ta_id =&amp;gt; current_user.id).pluck(:course_id)&lt;br /&gt;
        @all_assignments = Assignment.where(:course_id =&amp;gt; course_ids).&lt;br /&gt;
          where.not(:id=&amp;gt;assignment_id).limit(popup_page_size).offset(_offset).order(&amp;quot;created_at DESC&amp;quot;)&lt;br /&gt;
      when Role.instructor.id&lt;br /&gt;
        course_ids = Course.where(:instructor_id =&amp;gt; current_user.id).pluck(:id)&lt;br /&gt;
        @all_assignments = Assignment.where(:course_id =&amp;gt; course_ids).&lt;br /&gt;
           where.not(:id=&amp;gt;assignment_id).limit(popup_page_size).offset(_offset).order(&amp;quot;created_at DESC&amp;quot;)&lt;br /&gt;
      else&lt;br /&gt;
        @all_assignments = []&lt;br /&gt;
    end&lt;br /&gt;
    @all_assignments&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The query result can be prohibitively large. This calls for pagination.&lt;br /&gt;
&lt;br /&gt;
Pagination at the server side is about performing the same query as a non-pagination implementation, with an addition: limit and offset. Limit denotes the size of a page, and offset denotes a start index, and is calculated as page size * page number. Page size is a constant defined in similar_assignments_constants.&lt;br /&gt;
&lt;br /&gt;
We had two options for response and rendering:&lt;br /&gt;
Construct the popup list HTML from the query results and respond with this HTML.&lt;br /&gt;
Respond with JSON, and build the HTML client side.&lt;br /&gt;
&lt;br /&gt;
Responding with HTML from server-side is expensive, as the byte size of the HTTP response would be significantly larger than JSON. Thus, we chose the second option.&lt;br /&gt;
&lt;br /&gt;
Since HTTP is stateless, the server has no way to maintain a running counter of page number. Therefore, keeping track of page number must be the responsibility of the client (browser JavaScript) who must pass it as a request parameter while the server simply reads it and assumes its lack of existence as page number 0. The following snippet demonstrates this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Snippet of response.js line 103-130&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fetchAssignments:function(){&lt;br /&gt;
    var self = this;&lt;br /&gt;
    var ajaxUrl = &amp;quot;/similar_assignments/&amp;quot;+assignmentId;&lt;br /&gt;
    if(this.currentPageNumber &amp;gt; 0){&lt;br /&gt;
        ajaxUrl += &amp;quot;?page=&amp;quot;+this.currentPageNumber;&lt;br /&gt;
    }&lt;br /&gt;
    jQuery.ajax({&lt;br /&gt;
        &amp;quot;url&amp;quot;:ajaxUrl,&lt;br /&gt;
        &amp;quot;type&amp;quot;:&amp;quot;GET&amp;quot;,&lt;br /&gt;
        &amp;quot;dataType&amp;quot;:&amp;quot;json&amp;quot;,&lt;br /&gt;
        &amp;quot;responseType&amp;quot;:&amp;quot;json&amp;quot;,&lt;br /&gt;
        &amp;quot;beforeSend&amp;quot;:function(){&lt;br /&gt;
            self.hideSuccess();&lt;br /&gt;
            self.hideError();&lt;br /&gt;
                    },&lt;br /&gt;
        &amp;quot;success&amp;quot;:function(result){&lt;br /&gt;
            if(result.success &amp;amp;&amp;amp; result.values.length){&lt;br /&gt;
                self.onFetchSuccess(result.values);&lt;br /&gt;
            }else if(result.success &amp;amp;&amp;amp; self.currentPageNumber == 0){&lt;br /&gt;
                self.onFetchFail(&amp;quot;Cannot link this to any assignment!&amp;quot;);&lt;br /&gt;
            }else if(result.success){&lt;br /&gt;
                self.onFetchSuccess(result.values);&lt;br /&gt;
            }&lt;br /&gt;
            else{&lt;br /&gt;
            self.onFetchFail(result.error);&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;failure&amp;quot;: self.onFetchFail,&lt;br /&gt;
        &amp;quot;error&amp;quot;:self.onFetchFail&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We have avoided maintaining the constant value of page size once on server side (in similar_assignments_constants) and once on client side (JS variable). The initial render of the page creates a hidden HTML element that contains the page size, and once the document is ready, response.js selects that element, reads its value into a variable, and deletes that HTML element. This prevents having page size in the HTML page-source, and more importantly, complies with the DRY principle. Page size should be changed in one function only - and that is in similar_assignments_constants as explained earlier.&lt;br /&gt;
&lt;br /&gt;
From the response JSON containing an array of objects (that are going to be rendered as list items), we have constructed the HTML list. Each list item maintains its assignment id in its HTML data attribute. The following snippet shows this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Response.js lines 67-78&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
addToList:function(assignment){&lt;br /&gt;
        var assignmentId = assignment.id;&lt;br /&gt;
        var title = assignment.title;&lt;br /&gt;
        var course = assignment.course_name;&lt;br /&gt;
        var displayText = &amp;quot;&amp;lt;strong&amp;gt;&amp;quot;+course+&amp;quot;: &amp;lt;/strong&amp;gt;&amp;quot; +title;&lt;br /&gt;
        var checked = assignment.checked;&lt;br /&gt;
        var newRow = this.template.clone();&lt;br /&gt;
        newRow.removeClass(&amp;quot;hide&amp;quot;).find(&amp;quot;input&amp;quot;).attr(&amp;quot;data-id&amp;quot;,assignmentId).attr(&amp;quot;checked&amp;quot;,checked);&lt;br /&gt;
        newRow.find(&amp;quot;span&amp;quot;).html(displayText).on(&amp;quot;click&amp;quot;,function(){&lt;br /&gt;
            newRow.find(&amp;quot;input&amp;quot;).click();&lt;br /&gt;
        });&lt;br /&gt;
        this.list.append(newRow.removeAttr(&amp;quot;id&amp;quot;));&lt;br /&gt;
    },&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_________________________________________A snapshot of the popup is shown below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The “More” button (shown in the snapshot above) is used to fetch the next set of results.&lt;br /&gt;
&lt;br /&gt;
After a finite number of requests, the client receives a lesser number of results than expected. This is when pagination must stop (since there are no more results). This is achieved by the object AssignmentsPopup (in our response.js file) - it maintains the page size and current page number. The more button is now replaced by a text “No more results” and it’s on-click functionality is turned off.&lt;br /&gt;
&lt;br /&gt;
______________________________________________Screenshot of popup with “No more results”&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Further, we have implemented this as a plug-and-play service. By reusing the same popup HTML and the AssignmentsPopup variable, the entire popup can be made a part of any Expertiza page.&lt;br /&gt;
&lt;br /&gt;
The page makes no requests on closing the popup, or on clicking Submit without checking any unchecked list item or unchecking any checked list item. It submits only if there is an overall difference in what items are checked and what are not.&lt;br /&gt;
&lt;br /&gt;
Click of “Submit” makes another AJAX POST request to “/similar_assignments/create/:id” with two params in the post JSON data:&lt;br /&gt;
“checked” - an array of assignment ids that were checked in the list but unchecked while opening the popup&lt;br /&gt;
“unchecked” - an array of assignment ids that were unchecked in the list but checked while opening the popup&lt;br /&gt;
&lt;br /&gt;
Either of these params may be empty, depending on the user’s actions, but not both (if both were empty, we simply close the popup without submitting). However, this optimization is only client side. Server side logic must still check for duplicates - that is, an assignment id under “checked” is already a part of similar_assignments.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Let current assignment id be X. For each of the checked assignment ids Ci in {C1,C2,...,Cn}, we have checked if there are entries (X,Ci) in similar_assignments table, and if not, then created that entry. Similarly, for each of the unchecked assignment ids Ui in {U1,U2,...,Um}, we have deleted the entry (X,Ui) from similar_assignments.&lt;br /&gt;
&lt;br /&gt;
On successful update, the client closes the popup and prints a success message.&lt;br /&gt;
&lt;br /&gt;
_________________________________________________________________________________________Snapshot with success message&lt;br /&gt;
&lt;br /&gt;
So far, power users have marked reviews as samples and linked assignments. Now, students need to view these samples. A student would view these sample reviews before writing their review on somebody else’s work. Therefore, we have added a link “View Sample Reviews” to view the list of sample reviews.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
________________________________________________________________UI screenshot here.&amp;lt;pending&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Similarly, power users might also want to view samples. We have provided the same link on the following page too.&lt;br /&gt;
&lt;br /&gt;
________________________________________________________________UI screenshot here&lt;br /&gt;
&lt;br /&gt;
This page is rendered by the index method in sample_reviews_controller. It is a list of links to sample reviews. The layout of this page is common for users, as long as they are logged in. Non logged-in, or anonymous visitors are redirected to the Expertiza home page. ‘index’ calls a method redirect_anonymous_user in sample_reviews_helper to achieve this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Snippet of sample_reviews_helper&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def redirect_anonymous_user&lt;br /&gt;
    current_user = session[:user]&lt;br /&gt;
    if current_user.nil?&lt;br /&gt;
        redirect_to &amp;quot;/&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The list of available samples has no upper bound on its size. Yet again, pagination solves this problem. But unlike the case of the popup discussed earlier, the response type differs. A request without a ‘page’ parameter in its URL is a request for the web-page and should therefore render HTML, while the same request URL with the ‘page’ parameter is a request for more content, and should therefore, render JSON. Following snippet from the index method demonstrates this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sample_reviews_controller - index method - add the if-else just before return statement&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def index&lt;br /&gt;
    redirect_anonymous_user&lt;br /&gt;
    @assignment_id = params[:id].to_i&lt;br /&gt;
    page_number = params[:page].to_i&lt;br /&gt;
    if page_number.nil?&lt;br /&gt;
        page_number = 0&lt;br /&gt;
    end&lt;br /&gt;
    @page_size = 8&lt;br /&gt;
    similar_assignment_ids = get_similar_assignment_ids(@assignment_id)&lt;br /&gt;
    @response_ids = []&lt;br /&gt;
    similar_assignment_ids.each do |id|&lt;br /&gt;
        _offset = page_number * @page_size&lt;br /&gt;
        ids = Response.joins(&amp;quot;INNER JOIN response_maps ON response_maps.id = responses.map_id &lt;br /&gt;
        WHERE visibility=2 AND reviewed_object_id = &amp;quot;+id.to_s+&lt;br /&gt;
        &amp;quot; ORDER BY responses.created_at LIMIT &amp;quot;+@page_size.to_s+&amp;quot; OFFSET &amp;quot;+_offset.to_s ).ids&lt;br /&gt;
        @response_ids += ids&lt;br /&gt;
    end&lt;br /&gt;
    @links = generate_links(@response_ids)&lt;br /&gt;
    if page_number == 0&lt;br /&gt;
        @course_assignment_name = get_course_assignment_name(@assignment_id)&lt;br /&gt;
    else&lt;br /&gt;
        render json: {&amp;quot;success&amp;quot; =&amp;gt; true, &amp;quot;sampleReviews&amp;quot; =&amp;gt; @links}&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
During this first render itself, we have also identified whether more results can exist. The “More” button only appears if the number of sample review links being rendered is equal to the page size, as shown in a snippet of views/sample_reviews/index.html.erb below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Code snip of Lines 12-15&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if @links.size == @page_size %&amp;gt;&lt;br /&gt;
    &amp;lt;h5 style=&amp;quot;cursor:pointer;text-align: center;&amp;quot; id=&amp;quot;more_button&amp;quot;&amp;gt;More +&amp;lt;/h5&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Clicking the “More” button now makes the same request as the page’s URL, but with the parameter ‘page’. In that case, the response is JSON, which is used by the caller (JavaScript Ajax) to add more rows to the page. If the number of rows is lesser than expected, the More text is changed, its click listener is turned off, and no more requests are made, demonstrated by the snippet of sample_review.js below.&lt;br /&gt;
&lt;br /&gt;
Code snip of Line 25-35&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for(var i in result.sampleReviews)&lt;br /&gt;
{&lt;br /&gt;
    currentNumberOfRows++;&lt;br /&gt;
    var review = result.sampleReviews[i];&lt;br /&gt;
    var newRow = listTemplate.clone();&lt;br /&gt;
    newRow.removeClass(&amp;quot;hide&amp;quot;).removeAttr(&amp;quot;id&amp;quot;).find(&amp;quot;a&amp;quot;).&lt;br /&gt;
    html(&amp;quot;Sample Review &amp;quot;+currentNumberOfRows).attr(&amp;quot;href&amp;quot;,review);&lt;br /&gt;
    ulList.append(newRow);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if(responseSize &amp;lt; pageSize){&lt;br /&gt;
self.html(&amp;quot;No more results!&amp;quot;).off().css({&amp;quot;cursor&amp;quot;:&amp;quot;default&amp;quot;});&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
pageNumber++;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each of the list items on the page is a link, which takes the user to /sample_reviews/:id. On this page, we fetch the question-answer pairs corresponding to the object having the id given in the URL and print it out in the form of a table.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=='''Additional Links and References'''==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1291 Link to the Git Pull Request]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/chinmaiks/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The Live Expertiza Website]&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
[mailto:aagniho@ncsu.edu Amogh Agnihotri Subbanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:ckaidab@ncsu.edu Chinmai Kaidabettu Srinivas]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:smadhur@ncsu.edu Siddu Madhure Jayanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:snaramb@ncsu.edu Suhas Naramballi Gururaja]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120464</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120464"/>
		<updated>2018-11-21T00:29:07Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Implementation Details */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;amp; Design ==&lt;br /&gt;
&lt;br /&gt;
# Consent to make the review public - add a checkbox and an oncheck event handlers (JS) that sets a new field 'visibility' to public of Response object.&lt;br /&gt;
# Change the schema of Responses table (add the new column) and write db migrations.  &lt;br /&gt;
# Create new table, model, view, controller for &amp;quot;similar_assignments&amp;quot; and validate CRUD operations that access the table.&lt;br /&gt;
# Add HTML (checkbox) to uncheck the consent such that the reviews becomes private again. &lt;br /&gt;
# On the &amp;quot;popup/team_users_popup&amp;quot; page (where instructor/TA can view all reviews), we give a checkbox against every review with public visibility to allow instructors/TAs to select one or more reviews as sample reviews to be available for students.&lt;br /&gt;
# Once the instructor selects and submits some reviews as sample reviews, we give a popup containing a list of assignments with a checkbox against each of them and a submit button at the end to allow instructors to make sample reviews available for multiple assignments in one go. We perform validation checks also.&lt;br /&gt;
# On submit of the popup, we update the similar_assignments table.&lt;br /&gt;
# At the top of student_reviews/list page, we give an option for the student to preview all the available sample reviews. &lt;br /&gt;
# Create the MVC setup for this new page to list all the sample reviews. Students will be able to click on one particular review and preview it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''DB Design'''&lt;br /&gt;
&lt;br /&gt;
Currently, the Expertiza database design does not maintain any link between different assignments. An assignment of the current semester is completely independent of any other assignment of any other course having similar or exact objectives. For example, in a course C, the assignment named A1 in a semester Sx has no association to the same assignment given in an earlier semester Sy.&lt;br /&gt;
&lt;br /&gt;
Since our task involves using reviews from the past as samples for the present, we should create this association as a new table. Further, reviews may not be the only intention to associate assignments with each other, as future requirements might require associating them on other criteria too. Thus, we find it appropriate to name the table as &amp;quot;similar_assignments&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The table structure is defined here.&lt;br /&gt;
&lt;br /&gt;
This table can be visualized as a directed graph where vertices represent assignments. An edge (u,v) with a label L means u is similar to v for the intent of association, L.&lt;br /&gt;
&lt;br /&gt;
Consider a row (id = x, assignment_id = Ak, is_similar_for = An, association_intent = &amp;quot;review&amp;quot;). This means, given the intent of association as &amp;quot;review&amp;quot;, assignment Ak was chosen as a similar assignment for assignment An. That is, while marking some review for An as a sample, the instructor opted to have reviews of Ak as samples for An as well.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== UML - Use Case Diagram ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:UseCase.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Power Users:''' Instructors, TAs, Admins and Super Admins&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''More details about each point mentioned in the approach section will be updated after the implementation.'''&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
'''As a Power User (TA/Instructor/Admin/Super Admin)'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student, with a &amp;quot;Make as sample&amp;quot; button on the right of every review.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''As a Student'''&lt;br /&gt;
# Log in.&lt;br /&gt;
# Click on Assignments&lt;br /&gt;
# List of assignments is displayed.&lt;br /&gt;
# Click on any assignment for which the review has to be submitted.&lt;br /&gt;
# Assignment task page is displayed.&lt;br /&gt;
# Click on &amp;quot;Other's work&amp;quot; to open the reviews summary page (at /student_review).&lt;br /&gt;
# Below the heading &amp;quot;Reviews for ...&amp;quot;, click on the &amp;quot;Show sample reviews&amp;quot; link.&lt;br /&gt;
# This opens a page where the student can view all sample reviews for that assignment.&lt;br /&gt;
# Use the browser's back button to go back to Assignment review page.&lt;br /&gt;
# Chose to review any of the teams' assignments that are displayed.&lt;br /&gt;
# Select a team for review and fill in the review.&lt;br /&gt;
# Before submitting the review, select the check box that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;.&lt;br /&gt;
# After clicking on the submit button, the review submitted has been made public.&lt;br /&gt;
&lt;br /&gt;
=='''Additional Links and References'''==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1291 Link to the Git Pull Request]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/chinmaiks/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The Live Expertiza Website]&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
[mailto:aagniho@ncsu.edu Amogh Agnihotri Subbanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:ckaidab@ncsu.edu Chinmai Kaidabettu Srinivas]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:smadhur@ncsu.edu Siddu Madhure Jayanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:snaramb@ncsu.edu Suhas Naramballi Gururaja]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120462</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120462"/>
		<updated>2018-11-21T00:28:43Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Implementation Details */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;amp; Design ==&lt;br /&gt;
&lt;br /&gt;
# Consent to make the review public - add a checkbox and an oncheck event handlers (JS) that sets a new field 'visibility' to public of Response object.&lt;br /&gt;
# Change the schema of Responses table (add the new column) and write db migrations.  &lt;br /&gt;
# Create new table, model, view, controller for &amp;quot;similar_assignments&amp;quot; and validate CRUD operations that access the table.&lt;br /&gt;
# Add HTML (checkbox) to uncheck the consent such that the reviews becomes private again. &lt;br /&gt;
# On the &amp;quot;popup/team_users_popup&amp;quot; page (where instructor/TA can view all reviews), we give a checkbox against every review with public visibility to allow instructors/TAs to select one or more reviews as sample reviews to be available for students.&lt;br /&gt;
# Once the instructor selects and submits some reviews as sample reviews, we give a popup containing a list of assignments with a checkbox against each of them and a submit button at the end to allow instructors to make sample reviews available for multiple assignments in one go. We perform validation checks also.&lt;br /&gt;
# On submit of the popup, we update the similar_assignments table.&lt;br /&gt;
# At the top of student_reviews/list page, we give an option for the student to preview all the available sample reviews. &lt;br /&gt;
# Create the MVC setup for this new page to list all the sample reviews. Students will be able to click on one particular review and preview it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''DB Design'''&lt;br /&gt;
&lt;br /&gt;
Currently, the Expertiza database design does not maintain any link between different assignments. An assignment of the current semester is completely independent of any other assignment of any other course having similar or exact objectives. For example, in a course C, the assignment named A1 in a semester Sx has no association to the same assignment given in an earlier semester Sy.&lt;br /&gt;
&lt;br /&gt;
Since our task involves using reviews from the past as samples for the present, we should create this association as a new table. Further, reviews may not be the only intention to associate assignments with each other, as future requirements might require associating them on other criteria too. Thus, we find it appropriate to name the table as &amp;quot;similar_assignments&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The table structure is defined here.&lt;br /&gt;
&lt;br /&gt;
This table can be visualized as a directed graph where vertices represent assignments. An edge (u,v) with a label L means u is similar to v for the intent of association, L.&lt;br /&gt;
&lt;br /&gt;
Consider a row (id = x, assignment_id = Ak, is_similar_for = An, association_intent = &amp;quot;review&amp;quot;). This means, given the intent of association as &amp;quot;review&amp;quot;, assignment Ak was chosen as a similar assignment for assignment An. That is, while marking some review for An as a sample, the instructor opted to have reviews of Ak as samples for An as well.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
&lt;br /&gt;
More details about each point mentioned in the approach section will be updated after the implementation. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== UML - Use Case Diagram ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:UseCase.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Power Users:''' Instructors, TAs, Admins and Super Admins&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Other details will be updated after the implementation'''&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
'''As a Power User (TA/Instructor/Admin/Super Admin)'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student, with a &amp;quot;Make as sample&amp;quot; button on the right of every review.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''As a Student'''&lt;br /&gt;
# Log in.&lt;br /&gt;
# Click on Assignments&lt;br /&gt;
# List of assignments is displayed.&lt;br /&gt;
# Click on any assignment for which the review has to be submitted.&lt;br /&gt;
# Assignment task page is displayed.&lt;br /&gt;
# Click on &amp;quot;Other's work&amp;quot; to open the reviews summary page (at /student_review).&lt;br /&gt;
# Below the heading &amp;quot;Reviews for ...&amp;quot;, click on the &amp;quot;Show sample reviews&amp;quot; link.&lt;br /&gt;
# This opens a page where the student can view all sample reviews for that assignment.&lt;br /&gt;
# Use the browser's back button to go back to Assignment review page.&lt;br /&gt;
# Chose to review any of the teams' assignments that are displayed.&lt;br /&gt;
# Select a team for review and fill in the review.&lt;br /&gt;
# Before submitting the review, select the check box that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;.&lt;br /&gt;
# After clicking on the submit button, the review submitted has been made public.&lt;br /&gt;
&lt;br /&gt;
=='''Additional Links and References'''==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1291 Link to the Git Pull Request]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/chinmaiks/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The Live Expertiza Website]&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
[mailto:aagniho@ncsu.edu Amogh Agnihotri Subbanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:ckaidab@ncsu.edu Chinmai Kaidabettu Srinivas]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:smadhur@ncsu.edu Siddu Madhure Jayanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:snaramb@ncsu.edu Suhas Naramballi Gururaja]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120458</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120458"/>
		<updated>2018-11-21T00:20:36Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;amp; Design ==&lt;br /&gt;
&lt;br /&gt;
# Consent to make the review public - add a checkbox and an oncheck event handlers (JS) that sets a new field 'visibility' to public of Response object.&lt;br /&gt;
# Change the schema of Responses table (add the new column) and write db migrations.  &lt;br /&gt;
# Create new table, model, view, controller for &amp;quot;similar_assignments&amp;quot; and validate CRUD operations that access the table.&lt;br /&gt;
# Add HTML (checkbox) to uncheck the consent such that the reviews becomes private again. &lt;br /&gt;
# On the &amp;quot;popup/team_users_popup&amp;quot; page (where instructor/TA can view all reviews), we give a checkbox against every review with public visibility to allow instructors/TAs to select one or more reviews as sample reviews to be available for students.&lt;br /&gt;
# Once the instructor selects and submits some reviews as sample reviews, we give a popup containing a list of assignments with a checkbox against each of them and a submit button at the end to allow instructors to make sample reviews available for multiple assignments in one go. We perform validation checks also.&lt;br /&gt;
# On submit of the popup, we update the similar_assignments table.&lt;br /&gt;
# At the top of student_reviews/list page, we give an option for the student to preview all the available sample reviews. &lt;br /&gt;
# Create the MVC setup for this new page to list all the sample reviews. Students will be able to click on one particular review and preview it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''DB Design'''&lt;br /&gt;
&lt;br /&gt;
Currently, the Expertiza database design does not maintain any link between different assignments. An assignment of the current semester is completely independent of any other assignment of any other course having similar or exact objectives. For example, in a course C, the assignment named A1 in a semester Sx has no association to the same assignment given in an earlier semester Sy.&lt;br /&gt;
&lt;br /&gt;
Since our task involves using reviews from the past as samples for the present, we should create this association as a new table. Further, reviews may not be the only intention to associate assignments with each other, as future requirements might require associating them on other criteria too. Thus, we find it appropriate to name the table as &amp;quot;similar_assignments&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The table structure is defined here.&lt;br /&gt;
&lt;br /&gt;
This table can be visualized as a directed graph where vertices represent assignments. An edge (u,v) with a label L means u is similar to v for the intent of association, L.&lt;br /&gt;
&lt;br /&gt;
Consider a row (id = x, assignment_id = Ak, is_similar_for = An, association_intent = &amp;quot;review&amp;quot;). This means, given the intent of association as &amp;quot;review&amp;quot;, assignment Ak was chosen as a similar assignment for assignment An. That is, while marking some review for An as a sample, the instructor opted to have reviews of Ak as samples for An as well.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
==== Changes intended ====&lt;br /&gt;
# For making a review as a sample for other reviews by power users&lt;br /&gt;
# For Making a review public by the student&lt;br /&gt;
'''(code snippets for this section will be added during implementation)'''&lt;br /&gt;
&lt;br /&gt;
==== UML - Use Case Diagram ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:UseCase.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Power Users:''' Instructors, TAs, Admins and Super Admins&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Other details will be updated after the implementation'''&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
'''As a Power User (TA/Instructor/Admin/Super Admin)'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student, with a &amp;quot;Make as sample&amp;quot; button on the right of every review.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''As a Student'''&lt;br /&gt;
# Log in.&lt;br /&gt;
# Click on Assignments&lt;br /&gt;
# List of assignments is displayed.&lt;br /&gt;
# Click on any assignment for which the review has to be submitted.&lt;br /&gt;
# Assignment task page is displayed.&lt;br /&gt;
# Click on &amp;quot;Other's work&amp;quot; to open the reviews summary page (at /student_review).&lt;br /&gt;
# Below the heading &amp;quot;Reviews for ...&amp;quot;, click on the &amp;quot;Show sample reviews&amp;quot; link.&lt;br /&gt;
# This opens a page where the student can view all sample reviews for that assignment.&lt;br /&gt;
# Use the browser's back button to go back to Assignment review page.&lt;br /&gt;
# Chose to review any of the teams' assignments that are displayed.&lt;br /&gt;
# Select a team for review and fill in the review.&lt;br /&gt;
# Before submitting the review, select the check box that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;.&lt;br /&gt;
# After clicking on the submit button, the review submitted has been made public.&lt;br /&gt;
&lt;br /&gt;
=='''Additional Links and References'''==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1291 Link to the Git Pull Request]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/chinmaiks/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The Live Expertiza Website]&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
[mailto:aagniho@ncsu.edu Amogh Agnihotri Subbanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:ckaidab@ncsu.edu Chinmai Kaidabettu Srinivas]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:smadhur@ncsu.edu Siddu Madhure Jayanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:snaramb@ncsu.edu Suhas Naramballi Gururaja]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120457</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120457"/>
		<updated>2018-11-21T00:20:23Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* DB Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;amp; Design ==&lt;br /&gt;
&lt;br /&gt;
# Consent to make the review public - add a checkbox and an oncheck event handlers (JS) that sets a new field 'visibility' to public of Response object.&lt;br /&gt;
# Change the schema of Responses table (add the new column) and write db migrations.  &lt;br /&gt;
# Create new table, model, view, controller for &amp;quot;similar_assignments&amp;quot; and validate CRUD operations that access the table.&lt;br /&gt;
# Add HTML (checkbox) to uncheck the consent such that the reviews becomes private again. &lt;br /&gt;
# On the &amp;quot;popup/team_users_popup&amp;quot; page (where instructor/TA can view all reviews), we give a checkbox against every review with public visibility to allow instructors/TAs to select one or more reviews as sample reviews to be available for students.&lt;br /&gt;
# Once the instructor selects and submits some reviews as sample reviews, we give a popup containing a list of assignments with a checkbox against each of them and a submit button at the end to allow instructors to make sample reviews available for multiple assignments in one go. We perform validation checks also.&lt;br /&gt;
# On submit of the popup, we update the similar_assignments table.&lt;br /&gt;
# At the top of student_reviews/list page, we give an option for the student to preview all the available sample reviews. &lt;br /&gt;
# Create the MVC setup for this new page to list all the sample reviews. Students will be able to click on one particular review and preview it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''DB Design'''&lt;br /&gt;
&lt;br /&gt;
Currently, the Expertiza database design does not maintain any link between different assignments. An assignment of the current semester is completely independent of any other assignment of any other course having similar or exact objectives. For example, in a course C, the assignment named A1 in a semester Sx has no association to the same assignment given in an earlier semester Sy.&lt;br /&gt;
&lt;br /&gt;
Since our task involves using reviews from the past as samples for the present, we should create this association as a new table. Further, reviews may not be the only intention to associate assignments with each other, as future requirements might require associating them on other criteria too. Thus, we find it appropriate to name the table as &amp;quot;similar_assignments&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The table structure is defined here.&lt;br /&gt;
&lt;br /&gt;
This table can be visualized as a directed graph where vertices represent assignments. An edge (u,v) with a label L means u is similar to v for the intent of association, L.&lt;br /&gt;
&lt;br /&gt;
Consider a row (id = x, assignment_id = Ak, is_similar_for = An, association_intent = &amp;quot;review&amp;quot;). This means, given the intent of association as &amp;quot;review&amp;quot;, assignment Ak was chosen as a similar assignment for assignment An. That is, while marking some review for An as a sample, the instructor opted to have reviews of Ak as samples for An as well.&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
Currently, the Expertiza database design does not maintain any link between different assignments. An assignment of the current semester is completely independent of any other assignment of any other course having similar or exact objectives. For example, in a course C, the assignment named A1 in a semester Sx has no association to the same assignment given in an earlier semester Sy.&lt;br /&gt;
&lt;br /&gt;
Since our task involves using reviews from the past as samples for the present, we should create this association as a new table. Further, reviews may not be the only intention to associate assignments with each other, as future requirements might require associating them on other criteria too. Thus, we find it appropriate to name the table as &amp;quot;similar_assignments&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The table structure is defined here.&lt;br /&gt;
&lt;br /&gt;
This table can visualized as a directed graph where vertices represent assignments. An edge (u,v) with a label L means u is similar to v for the intent of association, L.&lt;br /&gt;
&lt;br /&gt;
Consider a row (id = x, assignment_id = Ak, is_similar_for = An, association_intent = &amp;quot;review&amp;quot;). This means, given the intent of association as &amp;quot;review&amp;quot;, assignment Ak was chosen as a similar assignment for assignment An. That is, while marking some review for An as a sample, the instructor opted to have reviews of Ak as samples for An as well.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
==== Changes intended ====&lt;br /&gt;
# For making a review as a sample for other reviews by power users&lt;br /&gt;
# For Making a review public by the student&lt;br /&gt;
'''(code snippets for this section will be added during implementation)'''&lt;br /&gt;
&lt;br /&gt;
==== UML - Use Case Diagram ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:UseCase.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Power Users:''' Instructors, TAs, Admins and Super Admins&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Other details will be updated after the implementation'''&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
'''As a Power User (TA/Instructor/Admin/Super Admin)'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student, with a &amp;quot;Make as sample&amp;quot; button on the right of every review.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''As a Student'''&lt;br /&gt;
# Log in.&lt;br /&gt;
# Click on Assignments&lt;br /&gt;
# List of assignments is displayed.&lt;br /&gt;
# Click on any assignment for which the review has to be submitted.&lt;br /&gt;
# Assignment task page is displayed.&lt;br /&gt;
# Click on &amp;quot;Other's work&amp;quot; to open the reviews summary page (at /student_review).&lt;br /&gt;
# Below the heading &amp;quot;Reviews for ...&amp;quot;, click on the &amp;quot;Show sample reviews&amp;quot; link.&lt;br /&gt;
# This opens a page where the student can view all sample reviews for that assignment.&lt;br /&gt;
# Use the browser's back button to go back to Assignment review page.&lt;br /&gt;
# Chose to review any of the teams' assignments that are displayed.&lt;br /&gt;
# Select a team for review and fill in the review.&lt;br /&gt;
# Before submitting the review, select the check box that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;.&lt;br /&gt;
# After clicking on the submit button, the review submitted has been made public.&lt;br /&gt;
&lt;br /&gt;
=='''Additional Links and References'''==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1291 Link to the Git Pull Request]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/chinmaiks/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The Live Expertiza Website]&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
[mailto:aagniho@ncsu.edu Amogh Agnihotri Subbanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:ckaidab@ncsu.edu Chinmai Kaidabettu Srinivas]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:smadhur@ncsu.edu Siddu Madhure Jayanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:snaramb@ncsu.edu Suhas Naramballi Gururaja]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120455</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120455"/>
		<updated>2018-11-21T00:20:08Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Approach &amp;amp; Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;amp; Design ==&lt;br /&gt;
&lt;br /&gt;
# Consent to make the review public - add a checkbox and an oncheck event handlers (JS) that sets a new field 'visibility' to public of Response object.&lt;br /&gt;
# Change the schema of Responses table (add the new column) and write db migrations.  &lt;br /&gt;
# Create new table, model, view, controller for &amp;quot;similar_assignments&amp;quot; and validate CRUD operations that access the table.&lt;br /&gt;
# Add HTML (checkbox) to uncheck the consent such that the reviews becomes private again. &lt;br /&gt;
# On the &amp;quot;popup/team_users_popup&amp;quot; page (where instructor/TA can view all reviews), we give a checkbox against every review with public visibility to allow instructors/TAs to select one or more reviews as sample reviews to be available for students.&lt;br /&gt;
# Once the instructor selects and submits some reviews as sample reviews, we give a popup containing a list of assignments with a checkbox against each of them and a submit button at the end to allow instructors to make sample reviews available for multiple assignments in one go. We perform validation checks also.&lt;br /&gt;
# On submit of the popup, we update the similar_assignments table.&lt;br /&gt;
# At the top of student_reviews/list page, we give an option for the student to preview all the available sample reviews. &lt;br /&gt;
# Create the MVC setup for this new page to list all the sample reviews. Students will be able to click on one particular review and preview it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''DB Design'''&lt;br /&gt;
&lt;br /&gt;
Currently, the Expertiza database design does not maintain any link between different assignments. An assignment of the current semester is completely independent of any other assignment of any other course having similar or exact objectives. For example, in a course C, the assignment named A1 in a semester Sx has no association to the same assignment given in an earlier semester Sy.&lt;br /&gt;
&lt;br /&gt;
Since our task involves using reviews from the past as samples for the present, we should create this association as a new table. Further, reviews may not be the only intention to associate assignments with each other, as future requirements might require associating them on other criteria too. Thus, we find it appropriate to name the table as &amp;quot;similar_assignments&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The table structure is defined here.&lt;br /&gt;
&lt;br /&gt;
This table can be visualized as a directed graph where vertices represent assignments. An edge (u,v) with a label L means u is similar to v for the intent of association, L.&lt;br /&gt;
&lt;br /&gt;
Consider a row (id = x, assignment_id = Ak, is_similar_for = An, association_intent = &amp;quot;review&amp;quot;). This means, given the intent of association as &amp;quot;review&amp;quot;, assignment Ak was chosen as a similar assignment for assignment An. That is, while marking some review for An as a sample, the instructor opted to have reviews of Ak as samples for An as well.&lt;br /&gt;
&lt;br /&gt;
== DB Design ==&lt;br /&gt;
&lt;br /&gt;
Currently, the Expertiza database design does not maintain any link between different assignments. An assignment of the current semester is completely independent of any other assignment of any other course having similar or exact objectives. For example, in a course C, the assignment named A1 in a semester Sx has no association to the same assignment given in an earlier semester Sy.&lt;br /&gt;
&lt;br /&gt;
Since our task involves using reviews from the past as samples for the present, we should create this association as a new table. Further, reviews may not be the only intention to associate assignments with each other, as future requirements might require associating them on other criteria too. Thus, we find it appropriate to name the table as &amp;quot;similar_assignments&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The table structure is defined here.&lt;br /&gt;
&lt;br /&gt;
This table can visualized as a directed graph where vertices represent assignments. An edge (u,v) with a label L means u is similar to v for the intent of association, L.&lt;br /&gt;
&lt;br /&gt;
Consider a row (id = x, assignment_id = Ak, is_similar_for = An, association_intent = &amp;quot;review&amp;quot;). This means, given the intent of association as &amp;quot;review&amp;quot;, assignment Ak was chosen as a similar assignment for assignment An. That is, while marking some review for An as a sample, the instructor opted to have reviews of Ak as samples for An as well.&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
Currently, the Expertiza database design does not maintain any link between different assignments. An assignment of the current semester is completely independent of any other assignment of any other course having similar or exact objectives. For example, in a course C, the assignment named A1 in a semester Sx has no association to the same assignment given in an earlier semester Sy.&lt;br /&gt;
&lt;br /&gt;
Since our task involves using reviews from the past as samples for the present, we should create this association as a new table. Further, reviews may not be the only intention to associate assignments with each other, as future requirements might require associating them on other criteria too. Thus, we find it appropriate to name the table as &amp;quot;similar_assignments&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The table structure is defined here.&lt;br /&gt;
&lt;br /&gt;
This table can visualized as a directed graph where vertices represent assignments. An edge (u,v) with a label L means u is similar to v for the intent of association, L.&lt;br /&gt;
&lt;br /&gt;
Consider a row (id = x, assignment_id = Ak, is_similar_for = An, association_intent = &amp;quot;review&amp;quot;). This means, given the intent of association as &amp;quot;review&amp;quot;, assignment Ak was chosen as a similar assignment for assignment An. That is, while marking some review for An as a sample, the instructor opted to have reviews of Ak as samples for An as well.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
==== Changes intended ====&lt;br /&gt;
# For making a review as a sample for other reviews by power users&lt;br /&gt;
# For Making a review public by the student&lt;br /&gt;
'''(code snippets for this section will be added during implementation)'''&lt;br /&gt;
&lt;br /&gt;
==== UML - Use Case Diagram ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:UseCase.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Power Users:''' Instructors, TAs, Admins and Super Admins&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Other details will be updated after the implementation'''&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
'''As a Power User (TA/Instructor/Admin/Super Admin)'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student, with a &amp;quot;Make as sample&amp;quot; button on the right of every review.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''As a Student'''&lt;br /&gt;
# Log in.&lt;br /&gt;
# Click on Assignments&lt;br /&gt;
# List of assignments is displayed.&lt;br /&gt;
# Click on any assignment for which the review has to be submitted.&lt;br /&gt;
# Assignment task page is displayed.&lt;br /&gt;
# Click on &amp;quot;Other's work&amp;quot; to open the reviews summary page (at /student_review).&lt;br /&gt;
# Below the heading &amp;quot;Reviews for ...&amp;quot;, click on the &amp;quot;Show sample reviews&amp;quot; link.&lt;br /&gt;
# This opens a page where the student can view all sample reviews for that assignment.&lt;br /&gt;
# Use the browser's back button to go back to Assignment review page.&lt;br /&gt;
# Chose to review any of the teams' assignments that are displayed.&lt;br /&gt;
# Select a team for review and fill in the review.&lt;br /&gt;
# Before submitting the review, select the check box that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;.&lt;br /&gt;
# After clicking on the submit button, the review submitted has been made public.&lt;br /&gt;
&lt;br /&gt;
=='''Additional Links and References'''==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1291 Link to the Git Pull Request]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/chinmaiks/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The Live Expertiza Website]&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
[mailto:aagniho@ncsu.edu Amogh Agnihotri Subbanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:ckaidab@ncsu.edu Chinmai Kaidabettu Srinivas]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:smadhur@ncsu.edu Siddu Madhure Jayanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:snaramb@ncsu.edu Suhas Naramballi Gururaja]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120454</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120454"/>
		<updated>2018-11-21T00:19:45Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Approach &amp;amp; Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;amp; Design ==&lt;br /&gt;
&lt;br /&gt;
# Consent to make the review public - add a checkbox and an oncheck event handlers (JS) that sets a new field 'visibility' to public of Response object.&lt;br /&gt;
# Change the schema of Responses table (add the new column) and write db migrations.  &lt;br /&gt;
# Create new table, model, view, controller for &amp;quot;similar_assignments&amp;quot; and validate CRUD operations that access the table.&lt;br /&gt;
# Add HTML (checkbox) to uncheck the consent such that the reviews becomes private again. &lt;br /&gt;
# On the &amp;quot;popup/team_users_popup&amp;quot; page (where instructor/TA can view all reviews), we give a checkbox against every review with public visibility to allow instructors/TAs to select one or more reviews as sample reviews to be available for students.&lt;br /&gt;
# Once the instructor selects and submits some reviews as sample reviews, we give a popup containing a list of assignments with a checkbox against each of them and a submit button at the end to allow instructors to make sample reviews available for multiple assignments in one go. We perform validation checks also.&lt;br /&gt;
# On submit of the popup, we update the similar_assignments table.&lt;br /&gt;
# At the top of student_reviews/list page, we give an option for the student to preview all the available sample reviews. &lt;br /&gt;
# Create the MVC setup for this new page to list all the sample reviews. Students will be able to click on one particular review and preview it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''DB Design'''&lt;br /&gt;
&lt;br /&gt;
Currently, the Expertiza database design does not maintain any link between different assignments. An assignment of the current semester is completely independent of any other assignment of any other course having similar or exact objectives. For example, in a course C, the assignment named A1 in a semester Sx has no association to the same assignment given in an earlier semester Sy.&lt;br /&gt;
&lt;br /&gt;
Since our task involves using reviews from the past as samples for the present, we should create this association as a new table. Further, reviews may not be the only intention to associate assignments with each other, as future requirements might require associating them on other criteria too. Thus, we find it appropriate to name the table as &amp;quot;similar_assignments&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The table structure is defined here.&lt;br /&gt;
&lt;br /&gt;
This table e can visualized as a directed graph where vertices represent assignments. An edge (u,v) with a label L means u is similar to v for the intent of association, L.&lt;br /&gt;
&lt;br /&gt;
Consider a row (id = x, assignment_id = Ak, is_similar_for = An, association_intent = &amp;quot;review&amp;quot;). This means, given the intent of association as &amp;quot;review&amp;quot;, assignment Ak was chosen as a similar assignment for assignment An. That is, while marking some review for An as a sample, the instructor opted to have reviews of Ak as samples for An as well.&lt;br /&gt;
&lt;br /&gt;
== DB Design ==&lt;br /&gt;
&lt;br /&gt;
Currently, the Expertiza database design does not maintain any link between different assignments. An assignment of the current semester is completely independent of any other assignment of any other course having similar or exact objectives. For example, in a course C, the assignment named A1 in a semester Sx has no association to the same assignment given in an earlier semester Sy.&lt;br /&gt;
&lt;br /&gt;
Since our task involves using reviews from the past as samples for the present, we should create this association as a new table. Further, reviews may not be the only intention to associate assignments with each other, as future requirements might require associating them on other criteria too. Thus, we find it appropriate to name the table as &amp;quot;similar_assignments&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The table structure is defined here.&lt;br /&gt;
&lt;br /&gt;
This table can visualized as a directed graph where vertices represent assignments. An edge (u,v) with a label L means u is similar to v for the intent of association, L.&lt;br /&gt;
&lt;br /&gt;
Consider a row (id = x, assignment_id = Ak, is_similar_for = An, association_intent = &amp;quot;review&amp;quot;). This means, given the intent of association as &amp;quot;review&amp;quot;, assignment Ak was chosen as a similar assignment for assignment An. That is, while marking some review for An as a sample, the instructor opted to have reviews of Ak as samples for An as well.&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
Currently, the Expertiza database design does not maintain any link between different assignments. An assignment of the current semester is completely independent of any other assignment of any other course having similar or exact objectives. For example, in a course C, the assignment named A1 in a semester Sx has no association to the same assignment given in an earlier semester Sy.&lt;br /&gt;
&lt;br /&gt;
Since our task involves using reviews from the past as samples for the present, we should create this association as a new table. Further, reviews may not be the only intention to associate assignments with each other, as future requirements might require associating them on other criteria too. Thus, we find it appropriate to name the table as &amp;quot;similar_assignments&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The table structure is defined here.&lt;br /&gt;
&lt;br /&gt;
This table can visualized as a directed graph where vertices represent assignments. An edge (u,v) with a label L means u is similar to v for the intent of association, L.&lt;br /&gt;
&lt;br /&gt;
Consider a row (id = x, assignment_id = Ak, is_similar_for = An, association_intent = &amp;quot;review&amp;quot;). This means, given the intent of association as &amp;quot;review&amp;quot;, assignment Ak was chosen as a similar assignment for assignment An. That is, while marking some review for An as a sample, the instructor opted to have reviews of Ak as samples for An as well.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
==== Changes intended ====&lt;br /&gt;
# For making a review as a sample for other reviews by power users&lt;br /&gt;
# For Making a review public by the student&lt;br /&gt;
'''(code snippets for this section will be added during implementation)'''&lt;br /&gt;
&lt;br /&gt;
==== UML - Use Case Diagram ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:UseCase.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Power Users:''' Instructors, TAs, Admins and Super Admins&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Other details will be updated after the implementation'''&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
'''As a Power User (TA/Instructor/Admin/Super Admin)'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student, with a &amp;quot;Make as sample&amp;quot; button on the right of every review.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''As a Student'''&lt;br /&gt;
# Log in.&lt;br /&gt;
# Click on Assignments&lt;br /&gt;
# List of assignments is displayed.&lt;br /&gt;
# Click on any assignment for which the review has to be submitted.&lt;br /&gt;
# Assignment task page is displayed.&lt;br /&gt;
# Click on &amp;quot;Other's work&amp;quot; to open the reviews summary page (at /student_review).&lt;br /&gt;
# Below the heading &amp;quot;Reviews for ...&amp;quot;, click on the &amp;quot;Show sample reviews&amp;quot; link.&lt;br /&gt;
# This opens a page where the student can view all sample reviews for that assignment.&lt;br /&gt;
# Use the browser's back button to go back to Assignment review page.&lt;br /&gt;
# Chose to review any of the teams' assignments that are displayed.&lt;br /&gt;
# Select a team for review and fill in the review.&lt;br /&gt;
# Before submitting the review, select the check box that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;.&lt;br /&gt;
# After clicking on the submit button, the review submitted has been made public.&lt;br /&gt;
&lt;br /&gt;
=='''Additional Links and References'''==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1291 Link to the Git Pull Request]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/chinmaiks/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The Live Expertiza Website]&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
[mailto:aagniho@ncsu.edu Amogh Agnihotri Subbanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:ckaidab@ncsu.edu Chinmai Kaidabettu Srinivas]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:smadhur@ncsu.edu Siddu Madhure Jayanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:snaramb@ncsu.edu Suhas Naramballi Gururaja]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120453</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120453"/>
		<updated>2018-11-21T00:18:45Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Approach */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Approach &amp;amp; Design ==&lt;br /&gt;
&lt;br /&gt;
# Consent to make the review public - add a checkbox and an oncheck event handlers (JS) that sets a new field 'visibility' to public of Response object.&lt;br /&gt;
# Change the schema of Responses table (add the new column) and write db migrations.  &lt;br /&gt;
# Create new table, model, view, controller for &amp;quot;similar_assignments&amp;quot; and validate CRUD operations that access the table.&lt;br /&gt;
# Add HTML (checkbox) to uncheck the consent such that the reviews becomes private again. &lt;br /&gt;
# On the &amp;quot;popup/team_users_popup&amp;quot; page (where instructor/TA can view all reviews), we give a checkbox against every review with public visibility to allow instructors/TAs to select one or more reviews as sample reviews to be available for students.&lt;br /&gt;
# Once the instructor selects and submits some reviews as sample reviews, we give a popup containing a list of assignments with a checkbox against each of them and a submit button at the end to allow instructors to make sample reviews available for multiple assignments in one go. We perform validation checks also.&lt;br /&gt;
# On submit of the popup, we update the similar_assignments table.&lt;br /&gt;
# At the top of student_reviews/list page, we give an option for the student to preview all the available sample reviews. &lt;br /&gt;
# Create the MVC setup for this new page to list all the sample reviews. Students will be able to click on one particular review and preview it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DB Design ==&lt;br /&gt;
&lt;br /&gt;
Currently, the Expertiza database design does not maintain any link between different assignments. An assignment of the current semester is completely independent of any other assignment of any other course having similar or exact objectives. For example, in a course C, the assignment named A1 in a semester Sx has no association to the same assignment given in an earlier semester Sy.&lt;br /&gt;
&lt;br /&gt;
Since our task involves using reviews from the past as samples for the present, we should create this association as a new table. Further, reviews may not be the only intention to associate assignments with each other, as future requirements might require associating them on other criteria too. Thus, we find it appropriate to name the table as &amp;quot;similar_assignments&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The table structure is defined here.&lt;br /&gt;
&lt;br /&gt;
This table can visualized as a directed graph where vertices represent assignments. An edge (u,v) with a label L means u is similar to v for the intent of association, L.&lt;br /&gt;
&lt;br /&gt;
Consider a row (id = x, assignment_id = Ak, is_similar_for = An, association_intent = &amp;quot;review&amp;quot;). This means, given the intent of association as &amp;quot;review&amp;quot;, assignment Ak was chosen as a similar assignment for assignment An. That is, while marking some review for An as a sample, the instructor opted to have reviews of Ak as samples for An as well.&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
Currently, the Expertiza database design does not maintain any link between different assignments. An assignment of the current semester is completely independent of any other assignment of any other course having similar or exact objectives. For example, in a course C, the assignment named A1 in a semester Sx has no association to the same assignment given in an earlier semester Sy.&lt;br /&gt;
&lt;br /&gt;
Since our task involves using reviews from the past as samples for the present, we should create this association as a new table. Further, reviews may not be the only intention to associate assignments with each other, as future requirements might require associating them on other criteria too. Thus, we find it appropriate to name the table as &amp;quot;similar_assignments&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The table structure is defined here.&lt;br /&gt;
&lt;br /&gt;
This table can visualized as a directed graph where vertices represent assignments. An edge (u,v) with a label L means u is similar to v for the intent of association, L.&lt;br /&gt;
&lt;br /&gt;
Consider a row (id = x, assignment_id = Ak, is_similar_for = An, association_intent = &amp;quot;review&amp;quot;). This means, given the intent of association as &amp;quot;review&amp;quot;, assignment Ak was chosen as a similar assignment for assignment An. That is, while marking some review for An as a sample, the instructor opted to have reviews of Ak as samples for An as well.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
==== Changes intended ====&lt;br /&gt;
# For making a review as a sample for other reviews by power users&lt;br /&gt;
# For Making a review public by the student&lt;br /&gt;
'''(code snippets for this section will be added during implementation)'''&lt;br /&gt;
&lt;br /&gt;
==== UML - Use Case Diagram ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:UseCase.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Power Users:''' Instructors, TAs, Admins and Super Admins&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Other details will be updated after the implementation'''&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
'''As a Power User (TA/Instructor/Admin/Super Admin)'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student, with a &amp;quot;Make as sample&amp;quot; button on the right of every review.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''As a Student'''&lt;br /&gt;
# Log in.&lt;br /&gt;
# Click on Assignments&lt;br /&gt;
# List of assignments is displayed.&lt;br /&gt;
# Click on any assignment for which the review has to be submitted.&lt;br /&gt;
# Assignment task page is displayed.&lt;br /&gt;
# Click on &amp;quot;Other's work&amp;quot; to open the reviews summary page (at /student_review).&lt;br /&gt;
# Below the heading &amp;quot;Reviews for ...&amp;quot;, click on the &amp;quot;Show sample reviews&amp;quot; link.&lt;br /&gt;
# This opens a page where the student can view all sample reviews for that assignment.&lt;br /&gt;
# Use the browser's back button to go back to Assignment review page.&lt;br /&gt;
# Chose to review any of the teams' assignments that are displayed.&lt;br /&gt;
# Select a team for review and fill in the review.&lt;br /&gt;
# Before submitting the review, select the check box that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;.&lt;br /&gt;
# After clicking on the submit button, the review submitted has been made public.&lt;br /&gt;
&lt;br /&gt;
=='''Additional Links and References'''==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1291 Link to the Git Pull Request]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/chinmaiks/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The Live Expertiza Website]&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
[mailto:aagniho@ncsu.edu Amogh Agnihotri Subbanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:ckaidab@ncsu.edu Chinmai Kaidabettu Srinivas]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:smadhur@ncsu.edu Siddu Madhure Jayanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:snaramb@ncsu.edu Suhas Naramballi Gururaja]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120432</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120432"/>
		<updated>2018-11-20T23:48:54Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Test Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Approach ==&lt;br /&gt;
&lt;br /&gt;
# Consent to make the review public - add a checkbox and an oncheck event handlers (JS) that sets a new field 'visibility' to public of Response object.&lt;br /&gt;
# Change the schema of Responses table (add the new column) and write db migrations.  &lt;br /&gt;
# Create new table, model, view, controller for &amp;quot;similar_assignments&amp;quot; and validate CRUD operations that access the table.&lt;br /&gt;
# Add HTML (checkbox) to uncheck the consent such that the reviews becomes private again. &lt;br /&gt;
# On the &amp;quot;popup/team_users_popup&amp;quot; page (where instructor/TA can view all reviews), we give a checkbox against every review with public visibility to allow instructors/TAs to select one or more reviews as sample reviews to be available for students.&lt;br /&gt;
# Once the instructor selects and submits some reviews as sample reviews, we give a popup containing a list of assignments with a checkbox against each of them and a submit button at the end to allow instructors to make sample reviews available for multiple assignments in one go. We perform validation checks also.&lt;br /&gt;
# On submit of the popup, we update the similar_assignments table.&lt;br /&gt;
# At the top of student_reviews/list page, we give an option for the student to preview all the available sample reviews. &lt;br /&gt;
# Create the MVC setup for this new page to list all the sample reviews. Students will be able to click on one particular review and preview it.&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
test&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
==== Changes intended ====&lt;br /&gt;
# For making a review as a sample for other reviews by power users&lt;br /&gt;
# For Making a review public by the student&lt;br /&gt;
'''(code snippets for this section will be added during implementation)'''&lt;br /&gt;
&lt;br /&gt;
==== UML - Use Case Diagram ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:UseCase.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Power Users:''' Instructors, TAs, Admins and Super Admins&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Other details will be updated after the implementation'''&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
'''As a Power User (TA/Instructor/Admin/Super Admin)'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student, with a &amp;quot;Make as sample&amp;quot; button on the right of every review.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''As a Student'''&lt;br /&gt;
# Log in.&lt;br /&gt;
# Click on Assignments&lt;br /&gt;
# List of assignments is displayed.&lt;br /&gt;
# Click on any assignment for which the review has to be submitted.&lt;br /&gt;
# Assignment task page is displayed.&lt;br /&gt;
# Click on &amp;quot;Other's work&amp;quot; to open the reviews summary page (at /student_review).&lt;br /&gt;
# Below the heading &amp;quot;Reviews for ...&amp;quot;, click on the &amp;quot;Show sample reviews&amp;quot; link.&lt;br /&gt;
# This opens a page where the student can view all sample reviews for that assignment.&lt;br /&gt;
# Use the browser's back button to go back to Assignment review page.&lt;br /&gt;
# Chose to review any of the teams' assignments that are displayed.&lt;br /&gt;
# Select a team for review and fill in the review.&lt;br /&gt;
# Before submitting the review, select the check box that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;.&lt;br /&gt;
# After clicking on the submit button, the review submitted has been made public.&lt;br /&gt;
&lt;br /&gt;
=='''Additional Links and References'''==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1291 Link to the Git Pull Request]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/chinmaiks/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The Live Expertiza Website]&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
[mailto:aagniho@ncsu.edu Amogh Agnihotri Subbanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:ckaidab@ncsu.edu Chinmai Kaidabettu Srinivas]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:smadhur@ncsu.edu Siddu Madhure Jayanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:snaramb@ncsu.edu Suhas Naramballi Gururaja]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120431</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120431"/>
		<updated>2018-11-20T23:47:42Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* UML - Use Case Diagram */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Approach ==&lt;br /&gt;
&lt;br /&gt;
# Consent to make the review public - add a checkbox and an oncheck event handlers (JS) that sets a new field 'visibility' to public of Response object.&lt;br /&gt;
# Change the schema of Responses table (add the new column) and write db migrations.  &lt;br /&gt;
# Create new table, model, view, controller for &amp;quot;similar_assignments&amp;quot; and validate CRUD operations that access the table.&lt;br /&gt;
# Add HTML (checkbox) to uncheck the consent such that the reviews becomes private again. &lt;br /&gt;
# On the &amp;quot;popup/team_users_popup&amp;quot; page (where instructor/TA can view all reviews), we give a checkbox against every review with public visibility to allow instructors/TAs to select one or more reviews as sample reviews to be available for students.&lt;br /&gt;
# Once the instructor selects and submits some reviews as sample reviews, we give a popup containing a list of assignments with a checkbox against each of them and a submit button at the end to allow instructors to make sample reviews available for multiple assignments in one go. We perform validation checks also.&lt;br /&gt;
# On submit of the popup, we update the similar_assignments table.&lt;br /&gt;
# At the top of student_reviews/list page, we give an option for the student to preview all the available sample reviews. &lt;br /&gt;
# Create the MVC setup for this new page to list all the sample reviews. Students will be able to click on one particular review and preview it.&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
test&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
==== Changes intended ====&lt;br /&gt;
# For making a review as a sample for other reviews by power users&lt;br /&gt;
# For Making a review public by the student&lt;br /&gt;
'''(code snippets for this section will be added during implementation)'''&lt;br /&gt;
&lt;br /&gt;
==== UML - Use Case Diagram ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:UseCase.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Power Users:''' Instructors, TAs, Admins and Super Admins&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Other details will be updated after the implementation'''&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
'''As a Power User (TA/Instructor/Admin)'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student, with a &amp;quot;Make as sample&amp;quot; button on the right of every review.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''As a Student'''&lt;br /&gt;
# Log in.&lt;br /&gt;
# Click on Assignments&lt;br /&gt;
# List of assignments is displayed.&lt;br /&gt;
# Click on any assignment for which the review has to be submitted.&lt;br /&gt;
# Assignment task page is displayed.&lt;br /&gt;
# Click on &amp;quot;Other's work&amp;quot; to open the reviews summary page (at /student_review).&lt;br /&gt;
# Below the heading &amp;quot;Reviews for ...&amp;quot;, click on the &amp;quot;Show sample reviews&amp;quot; link.&lt;br /&gt;
# This opens a page where the student can view all sample reviews for that assignment.&lt;br /&gt;
# Use the browser's back button to go back to Assignment review page.&lt;br /&gt;
# Chose to review any of the teams' assignments that are displayed.&lt;br /&gt;
# Select a team for review and fill in the review.&lt;br /&gt;
# Before submitting the review, select the check box that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;.&lt;br /&gt;
# After clicking on the submit button, the review submitted has been made public.&lt;br /&gt;
&lt;br /&gt;
=='''Additional Links and References'''==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1291 Link to the Git Pull Request]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/chinmaiks/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The Live Expertiza Website]&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
[mailto:aagniho@ncsu.edu Amogh Agnihotri Subbanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:ckaidab@ncsu.edu Chinmai Kaidabettu Srinivas]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:smadhur@ncsu.edu Siddu Madhure Jayanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:snaramb@ncsu.edu Suhas Naramballi Gururaja]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120430</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120430"/>
		<updated>2018-11-20T23:47:16Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* UML - Use Case Diagram */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Approach ==&lt;br /&gt;
&lt;br /&gt;
# Consent to make the review public - add a checkbox and an oncheck event handlers (JS) that sets a new field 'visibility' to public of Response object.&lt;br /&gt;
# Change the schema of Responses table (add the new column) and write db migrations.  &lt;br /&gt;
# Create new table, model, view, controller for &amp;quot;similar_assignments&amp;quot; and validate CRUD operations that access the table.&lt;br /&gt;
# Add HTML (checkbox) to uncheck the consent such that the reviews becomes private again. &lt;br /&gt;
# On the &amp;quot;popup/team_users_popup&amp;quot; page (where instructor/TA can view all reviews), we give a checkbox against every review with public visibility to allow instructors/TAs to select one or more reviews as sample reviews to be available for students.&lt;br /&gt;
# Once the instructor selects and submits some reviews as sample reviews, we give a popup containing a list of assignments with a checkbox against each of them and a submit button at the end to allow instructors to make sample reviews available for multiple assignments in one go. We perform validation checks also.&lt;br /&gt;
# On submit of the popup, we update the similar_assignments table.&lt;br /&gt;
# At the top of student_reviews/list page, we give an option for the student to preview all the available sample reviews. &lt;br /&gt;
# Create the MVC setup for this new page to list all the sample reviews. Students will be able to click on one particular review and preview it.&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
test&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
==== Changes intended ====&lt;br /&gt;
# For making a review as a sample for other reviews by power users&lt;br /&gt;
# For Making a review public by the student&lt;br /&gt;
'''(code snippets for this section will be added during implementation)'''&lt;br /&gt;
&lt;br /&gt;
==== UML - Use Case Diagram ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:UseCase.png]]&lt;br /&gt;
&lt;br /&gt;
'''Power Users:''' Instructors, TAs, Admins and Super Admins&lt;br /&gt;
'''Other details will be updated after the implementation'''&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
'''As a Power User (TA/Instructor/Admin)'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student, with a &amp;quot;Make as sample&amp;quot; button on the right of every review.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''As a Student'''&lt;br /&gt;
# Log in.&lt;br /&gt;
# Click on Assignments&lt;br /&gt;
# List of assignments is displayed.&lt;br /&gt;
# Click on any assignment for which the review has to be submitted.&lt;br /&gt;
# Assignment task page is displayed.&lt;br /&gt;
# Click on &amp;quot;Other's work&amp;quot; to open the reviews summary page (at /student_review).&lt;br /&gt;
# Below the heading &amp;quot;Reviews for ...&amp;quot;, click on the &amp;quot;Show sample reviews&amp;quot; link.&lt;br /&gt;
# This opens a page where the student can view all sample reviews for that assignment.&lt;br /&gt;
# Use the browser's back button to go back to Assignment review page.&lt;br /&gt;
# Chose to review any of the teams' assignments that are displayed.&lt;br /&gt;
# Select a team for review and fill in the review.&lt;br /&gt;
# Before submitting the review, select the check box that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;.&lt;br /&gt;
# After clicking on the submit button, the review submitted has been made public.&lt;br /&gt;
&lt;br /&gt;
=='''Additional Links and References'''==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1291 Link to the Git Pull Request]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/chinmaiks/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The Live Expertiza Website]&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
[mailto:aagniho@ncsu.edu Amogh Agnihotri Subbanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:ckaidab@ncsu.edu Chinmai Kaidabettu Srinivas]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:smadhur@ncsu.edu Siddu Madhure Jayanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:snaramb@ncsu.edu Suhas Naramballi Gururaja]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120429</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120429"/>
		<updated>2018-11-20T23:46:30Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* UML - Use Case Diagram */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Approach ==&lt;br /&gt;
&lt;br /&gt;
# Consent to make the review public - add a checkbox and an oncheck event handlers (JS) that sets a new field 'visibility' to public of Response object.&lt;br /&gt;
# Change the schema of Responses table (add the new column) and write db migrations.  &lt;br /&gt;
# Create new table, model, view, controller for &amp;quot;similar_assignments&amp;quot; and validate CRUD operations that access the table.&lt;br /&gt;
# Add HTML (checkbox) to uncheck the consent such that the reviews becomes private again. &lt;br /&gt;
# On the &amp;quot;popup/team_users_popup&amp;quot; page (where instructor/TA can view all reviews), we give a checkbox against every review with public visibility to allow instructors/TAs to select one or more reviews as sample reviews to be available for students.&lt;br /&gt;
# Once the instructor selects and submits some reviews as sample reviews, we give a popup containing a list of assignments with a checkbox against each of them and a submit button at the end to allow instructors to make sample reviews available for multiple assignments in one go. We perform validation checks also.&lt;br /&gt;
# On submit of the popup, we update the similar_assignments table.&lt;br /&gt;
# At the top of student_reviews/list page, we give an option for the student to preview all the available sample reviews. &lt;br /&gt;
# Create the MVC setup for this new page to list all the sample reviews. Students will be able to click on one particular review and preview it.&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
test&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
==== Changes intended ====&lt;br /&gt;
# For making a review as a sample for other reviews by power users&lt;br /&gt;
# For Making a review public by the student&lt;br /&gt;
'''(code snippets for this section will be added during implementation)'''&lt;br /&gt;
&lt;br /&gt;
==== UML - Use Case Diagram ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:UseCase.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Other details will be updated after the implementation'''&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
'''As a Power User (TA/Instructor/Admin)'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student, with a &amp;quot;Make as sample&amp;quot; button on the right of every review.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''As a Student'''&lt;br /&gt;
# Log in.&lt;br /&gt;
# Click on Assignments&lt;br /&gt;
# List of assignments is displayed.&lt;br /&gt;
# Click on any assignment for which the review has to be submitted.&lt;br /&gt;
# Assignment task page is displayed.&lt;br /&gt;
# Click on &amp;quot;Other's work&amp;quot; to open the reviews summary page (at /student_review).&lt;br /&gt;
# Below the heading &amp;quot;Reviews for ...&amp;quot;, click on the &amp;quot;Show sample reviews&amp;quot; link.&lt;br /&gt;
# This opens a page where the student can view all sample reviews for that assignment.&lt;br /&gt;
# Use the browser's back button to go back to Assignment review page.&lt;br /&gt;
# Chose to review any of the teams' assignments that are displayed.&lt;br /&gt;
# Select a team for review and fill in the review.&lt;br /&gt;
# Before submitting the review, select the check box that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;.&lt;br /&gt;
# After clicking on the submit button, the review submitted has been made public.&lt;br /&gt;
&lt;br /&gt;
=='''Additional Links and References'''==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1291 Link to the Git Pull Request]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/chinmaiks/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The Live Expertiza Website]&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
[mailto:aagniho@ncsu.edu Amogh Agnihotri Subbanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:ckaidab@ncsu.edu Chinmai Kaidabettu Srinivas]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:smadhur@ncsu.edu Siddu Madhure Jayanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:snaramb@ncsu.edu Suhas Naramballi Gururaja]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:UseCase.png&amp;diff=120428</id>
		<title>File:UseCase.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:UseCase.png&amp;diff=120428"/>
		<updated>2018-11-20T23:45:58Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: uploaded a new version of &amp;amp;quot;File:UseCase.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120143</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120143"/>
		<updated>2018-11-16T18:26:23Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Approach */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is a web based open source peer reviewing tool developed and maintained by current and past students of [https://en.wikipedia.org/wiki/North_Carolina_State_University North Carolina State University]. Peer review is a great way for a student to learn how to approach a project and get ideas for their own projects. Currently, there is no way for a student to view another student's work, unless they are reviewing the other student's work.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Expected Flow ==&lt;br /&gt;
'''As a TA / Instructor'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''As a Student'''&lt;br /&gt;
# Log in.&lt;br /&gt;
# Click on Assignments&lt;br /&gt;
# List of assignments is displayed.&lt;br /&gt;
# Click on any assignment for which the review has to be submitted.&lt;br /&gt;
# Assignment description is displayed.&lt;br /&gt;
# Click on &amp;quot;Other's work&amp;quot; to submit review for other's work.&lt;br /&gt;
# At this point student can click on &amp;quot;Show sample reviews&amp;quot; to view all sample reviews for that assignment.&lt;br /&gt;
# On clicking this, it will display all the sample reviews.&lt;br /&gt;
# Student can click on back to go back to Assignment description page.&lt;br /&gt;
# Student can chose to review any of the team's assignment that is displayed.&lt;br /&gt;
# Student selects a team for review and fills in the review.&lt;br /&gt;
# Before submitting the review, student can select the check box that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;.&lt;br /&gt;
# After clicking on the submit button, the review submitted by the student has been made public.&lt;br /&gt;
&lt;br /&gt;
== Approach ==&lt;br /&gt;
&lt;br /&gt;
# Consent to make the review public - add a checkbox and an oncheck event handlers (JS) that sets a new field 'visibility' to public of Response object.&lt;br /&gt;
# Change the schema of Responses table (add the new column) and write db migrations.  &lt;br /&gt;
# Create new table, model, view, controller for similar_assignments and validate CRUD operations that access the table.&lt;br /&gt;
# Add HTML (checkbox) to uncheck the consent such that the reviews becomes private again. &lt;br /&gt;
# On the &amp;quot;popup/team_users_popup&amp;quot; page (where instructor/TA can view all reviews), we give a checkbox against every review with public visibility to allow instructors/TAs to select one or more reviews as sample reviews to be available for students.&lt;br /&gt;
# Once the instructor selects and submits some reviews as sample reviews, we give a popup containing a list of assignments with a checkbox against each of them and a submit button at the end to allow instructors to make sample reviews available for multiple assignments in one go. We perform validation checks also.&lt;br /&gt;
# On submit of the popup, we update the similar_assignments table.&lt;br /&gt;
# At the top of student_reviews/list page, we give an option for the student to preview all the available sample reviews. &lt;br /&gt;
# Create the MVC setup for this new page to list all the sample reviews. Students will be able to click on one particular review and preview it.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
&lt;br /&gt;
'''UML - Use Case Diagram'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Use_Case_Dia.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Other details will be updated after the implementation'''&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
'''To be updated'''&lt;br /&gt;
&lt;br /&gt;
=='''Additional Links and References'''==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1291 Link to the Git Pull Request]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/chinmaiks/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The Live Expertiza Website]&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
[mailto:aagniho@ncsu.edu Amogh Agnihotri Subbanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:ckaidab@ncsu.edu Chinmai Kaidabettu Srinivas]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:smadhur@ncsu.edu Siddu Madhure Jayanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:snaramb@ncsu.edu Suhas Naramballi Gururaja]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120112</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120112"/>
		<updated>2018-11-16T02:40:00Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Implementation Details */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is a web based open source peer reviewing tool developed and maintained by current and past students of [https://en.wikipedia.org/wiki/North_Carolina_State_University North Carolina State University]. Peer review is a great way for a student to learn how to approach a project and get ideas for their own projects. Currently, there is no way for a student to view another student's work, unless they are reviewing the other student's work.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Expected Flow ==&lt;br /&gt;
'''As a TA / Instructor'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''As a Student'''&lt;br /&gt;
# Log in.&lt;br /&gt;
# Click on Assignments&lt;br /&gt;
# List of assignments is displayed.&lt;br /&gt;
# Click on any assignment for which the review has to be submitted.&lt;br /&gt;
# Assignment description is displayed.&lt;br /&gt;
# Click on &amp;quot;Other's work&amp;quot; to submit review for other's work.&lt;br /&gt;
# At this point student can click on &amp;quot;Show sample reviews&amp;quot; to view all sample reviews for that assignment.&lt;br /&gt;
# On clicking this, it will display all the sample reviews.&lt;br /&gt;
# Student can click on back to go back to Assignment description page.&lt;br /&gt;
# Student can chose to review any of the team's assignment that is displayed.&lt;br /&gt;
# Student selects a team for review and fills in the review.&lt;br /&gt;
# Before submitting the review, student can select the check box that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;.&lt;br /&gt;
# After clicking on the submit button, the review submitted by the student has been made public.&lt;br /&gt;
&lt;br /&gt;
== Project Tasks ==&lt;br /&gt;
&lt;br /&gt;
# Consent to make the review public - add a checkbox and an oncheck event handlers (JS) that sets a new field 'visibility' to public of Response object.&lt;br /&gt;
# Change the schema of Responses table (add the new column) and write db migrations.  &lt;br /&gt;
# Create new table, model, view, controller for similar_assignments and validate CRUD operations that access the table.&lt;br /&gt;
# Add HTML (checkbox) to uncheck the consent such that the reviews becomes private again. &lt;br /&gt;
# On the &amp;quot;popup/team_users_popup&amp;quot; page (where instructor/TA can view all reviews), give a checkbox against every review with public visibility to allow instructors/TAs to select one or more reviews as sample reviews to be available for students.&lt;br /&gt;
# Once the instructor selects and submits some reviews as sample reviews, give a popup with a list of assignments with a checkbox against each and a submit button to allow instructors to make sample reviews available for multiple assignments in one go. Add validation checks also.&lt;br /&gt;
# On submit of the popup, update the similar_assignments table.&lt;br /&gt;
# At the top of student_reviews/list page, give an option for the student to preview all the available sample reviews. &lt;br /&gt;
# Create the MVC setup for this new page to list all the sample reviews. Students should be able to click on one particular review to preview it.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
&lt;br /&gt;
'''UML - Use Case Diagram'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Use_Case_Dia.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Other details will be updated after the implementation'''&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
'''To be updated'''&lt;br /&gt;
&lt;br /&gt;
=='''Additional Links and References'''==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1291 Link to the Git Pull Request]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/chinmaiks/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The Live Expertiza Website]&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
[mailto:aagniho@ncsu.edu Amogh Agnihotri Subbanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:ckaidab@ncsu.edu Chinmai Kaidabettu Srinivas]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:smadhur@ncsu.edu Siddu Madhure Jayanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:snaramb@ncsu.edu Suhas Naramballi Gururaja]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120111</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120111"/>
		<updated>2018-11-16T02:39:44Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Implementation Details */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is a web based open source peer reviewing tool developed and maintained by current and past students of [https://en.wikipedia.org/wiki/North_Carolina_State_University North Carolina State University]. Peer review is a great way for a student to learn how to approach a project and get ideas for their own projects. Currently, there is no way for a student to view another student's work, unless they are reviewing the other student's work.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Expected Flow ==&lt;br /&gt;
'''As a TA / Instructor'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''As a Student'''&lt;br /&gt;
# Log in.&lt;br /&gt;
# Click on Assignments&lt;br /&gt;
# List of assignments is displayed.&lt;br /&gt;
# Click on any assignment for which the review has to be submitted.&lt;br /&gt;
# Assignment description is displayed.&lt;br /&gt;
# Click on &amp;quot;Other's work&amp;quot; to submit review for other's work.&lt;br /&gt;
# At this point student can click on &amp;quot;Show sample reviews&amp;quot; to view all sample reviews for that assignment.&lt;br /&gt;
# On clicking this, it will display all the sample reviews.&lt;br /&gt;
# Student can click on back to go back to Assignment description page.&lt;br /&gt;
# Student can chose to review any of the team's assignment that is displayed.&lt;br /&gt;
# Student selects a team for review and fills in the review.&lt;br /&gt;
# Before submitting the review, student can select the check box that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;.&lt;br /&gt;
# After clicking on the submit button, the review submitted by the student has been made public.&lt;br /&gt;
&lt;br /&gt;
== Project Tasks ==&lt;br /&gt;
&lt;br /&gt;
# Consent to make the review public - add a checkbox and an oncheck event handlers (JS) that sets a new field 'visibility' to public of Response object.&lt;br /&gt;
# Change the schema of Responses table (add the new column) and write db migrations.  &lt;br /&gt;
# Create new table, model, view, controller for similar_assignments and validate CRUD operations that access the table.&lt;br /&gt;
# Add HTML (checkbox) to uncheck the consent such that the reviews becomes private again. &lt;br /&gt;
# On the &amp;quot;popup/team_users_popup&amp;quot; page (where instructor/TA can view all reviews), give a checkbox against every review with public visibility to allow instructors/TAs to select one or more reviews as sample reviews to be available for students.&lt;br /&gt;
# Once the instructor selects and submits some reviews as sample reviews, give a popup with a list of assignments with a checkbox against each and a submit button to allow instructors to make sample reviews available for multiple assignments in one go. Add validation checks also.&lt;br /&gt;
# On submit of the popup, update the similar_assignments table.&lt;br /&gt;
# At the top of student_reviews/list page, give an option for the student to preview all the available sample reviews. &lt;br /&gt;
# Create the MVC setup for this new page to list all the sample reviews. Students should be able to click on one particular review to preview it.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
'''&lt;br /&gt;
UML - Use Case Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[Image:Use_Case_Dia.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Other details will be updated after the implementation'''&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
'''To be updated'''&lt;br /&gt;
&lt;br /&gt;
=='''Additional Links and References'''==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1291 Link to the Git Pull Request]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/chinmaiks/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The Live Expertiza Website]&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
[mailto:aagniho@ncsu.edu Amogh Agnihotri Subbanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:ckaidab@ncsu.edu Chinmai Kaidabettu Srinivas]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:smadhur@ncsu.edu Siddu Madhure Jayanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:snaramb@ncsu.edu Suhas Naramballi Gururaja]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120110</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120110"/>
		<updated>2018-11-16T02:21:02Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Implementation Details */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is a web based open source peer reviewing tool developed and maintained by current and past students of [https://en.wikipedia.org/wiki/North_Carolina_State_University North Carolina State University]. Peer review is a great way for a student to learn how to approach a project and get ideas for their own projects. Currently, there is no way for a student to view another student's work, unless they are reviewing the other student's work.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Expected Flow ==&lt;br /&gt;
'''As a TA / Instructor'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''As a Student'''&lt;br /&gt;
# Log in.&lt;br /&gt;
# Click on Assignments&lt;br /&gt;
# List of assignments is displayed.&lt;br /&gt;
# Click on any assignment for which the review has to be submitted.&lt;br /&gt;
# Assignment description is displayed.&lt;br /&gt;
# Click on &amp;quot;Other's work&amp;quot; to submit review for other's work.&lt;br /&gt;
# At this point student can click on &amp;quot;Show sample reviews&amp;quot; to view all sample reviews for that assignment.&lt;br /&gt;
# On clicking this, it will display all the sample reviews.&lt;br /&gt;
# Student can click on back to go back to Assignment description page.&lt;br /&gt;
# Student can chose to review any of the team's assignment that is displayed.&lt;br /&gt;
# Student selects a team for review and fills in the review.&lt;br /&gt;
# Before submitting the review, student can select the check box that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;.&lt;br /&gt;
# After clicking on the submit button, the review submitted by the student has been made public.&lt;br /&gt;
&lt;br /&gt;
== Project Tasks ==&lt;br /&gt;
&lt;br /&gt;
# Consent to make the review public - add a checkbox and an oncheck event handlers (JS) that sets a new field 'visibility' to public of Response object.&lt;br /&gt;
# Change the schema of Responses table (add the new column) and write db migrations.  &lt;br /&gt;
# Create new table, model, view, controller for similar_assignments and validate CRUD operations that access the table.&lt;br /&gt;
# Add HTML (checkbox) to uncheck the consent such that the reviews becomes private again. &lt;br /&gt;
# On the &amp;quot;popup/team_users_popup&amp;quot; page (where instructor/TA can view all reviews), give a checkbox against every review with public visibility to allow instructors/TAs to select one or more reviews as sample reviews to be available for students.&lt;br /&gt;
# Once the instructor selects and submits some reviews as sample reviews, give a popup with a list of assignments with a checkbox against each and a submit button to allow instructors to make sample reviews available for multiple assignments in one go. Add validation checks also.&lt;br /&gt;
# On submit of the popup, update the similar_assignments table.&lt;br /&gt;
# At the top of student_reviews/list page, give an option for the student to preview all the available sample reviews. &lt;br /&gt;
# Create the MVC setup for this new page to list all the sample reviews. Students should be able to click on one particular review to preview it.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Use_Case_Dia.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Other details will be updated after the implementation'''&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
'''To be updated'''&lt;br /&gt;
&lt;br /&gt;
=='''Additional Links and References'''==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1291 Link to the Git Pull Request]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/chinmaiks/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The Live Expertiza Website]&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
[mailto:aagniho@ncsu.edu Amogh Agnihotri Subbanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:ckaidab@ncsu.edu Chinmai Kaidabettu Srinivas]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:smadhur@ncsu.edu Siddu Madhure Jayanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:snaramb@ncsu.edu Suhas Naramballi Gururaja]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Use_Case_Dia.png&amp;diff=120109</id>
		<title>File:Use Case Dia.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Use_Case_Dia.png&amp;diff=120109"/>
		<updated>2018-11-16T02:20:42Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120108</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120108"/>
		<updated>2018-11-16T02:19:05Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Implementation Details */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is a web based open source peer reviewing tool developed and maintained by current and past students of [https://en.wikipedia.org/wiki/North_Carolina_State_University North Carolina State University]. Peer review is a great way for a student to learn how to approach a project and get ideas for their own projects. Currently, there is no way for a student to view another student's work, unless they are reviewing the other student's work.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Expected Flow ==&lt;br /&gt;
'''As a TA / Instructor'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''As a Student'''&lt;br /&gt;
# Log in.&lt;br /&gt;
# Click on Assignments&lt;br /&gt;
# List of assignments is displayed.&lt;br /&gt;
# Click on any assignment for which the review has to be submitted.&lt;br /&gt;
# Assignment description is displayed.&lt;br /&gt;
# Click on &amp;quot;Other's work&amp;quot; to submit review for other's work.&lt;br /&gt;
# At this point student can click on &amp;quot;Show sample reviews&amp;quot; to view all sample reviews for that assignment.&lt;br /&gt;
# On clicking this, it will display all the sample reviews.&lt;br /&gt;
# Student can click on back to go back to Assignment description page.&lt;br /&gt;
# Student can chose to review any of the team's assignment that is displayed.&lt;br /&gt;
# Student selects a team for review and fills in the review.&lt;br /&gt;
# Before submitting the review, student can select the check box that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;.&lt;br /&gt;
# After clicking on the submit button, the review submitted by the student has been made public.&lt;br /&gt;
&lt;br /&gt;
== Project Tasks ==&lt;br /&gt;
&lt;br /&gt;
# Consent to make the review public - add a checkbox and an oncheck event handlers (JS) that sets a new field 'visibility' to public of Response object.&lt;br /&gt;
# Change the schema of Responses table (add the new column) and write db migrations.  &lt;br /&gt;
# Create new table, model, view, controller for similar_assignments and validate CRUD operations that access the table.&lt;br /&gt;
# Add HTML (checkbox) to uncheck the consent such that the reviews becomes private again. &lt;br /&gt;
# On the &amp;quot;popup/team_users_popup&amp;quot; page (where instructor/TA can view all reviews), give a checkbox against every review with public visibility to allow instructors/TAs to select one or more reviews as sample reviews to be available for students.&lt;br /&gt;
# Once the instructor selects and submits some reviews as sample reviews, give a popup with a list of assignments with a checkbox against each and a submit button to allow instructors to make sample reviews available for multiple assignments in one go. Add validation checks also.&lt;br /&gt;
# On submit of the popup, update the similar_assignments table.&lt;br /&gt;
# At the top of student_reviews/list page, give an option for the student to preview all the available sample reviews. &lt;br /&gt;
# Create the MVC setup for this new page to list all the sample reviews. Students should be able to click on one particular review to preview it.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Use_Case_Diag.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Other details will be updated after the implementation'''&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
'''To be updated'''&lt;br /&gt;
&lt;br /&gt;
=='''Additional Links and References'''==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1291 Link to the Git Pull Request]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/chinmaiks/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The Live Expertiza Website]&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
[mailto:aagniho@ncsu.edu Amogh Agnihotri Subbanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:ckaidab@ncsu.edu Chinmai Kaidabettu Srinivas]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:smadhur@ncsu.edu Siddu Madhure Jayanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:snaramb@ncsu.edu Suhas Naramballi Gururaja]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Use_Case_Diag.png&amp;diff=120107</id>
		<title>File:Use Case Diag.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Use_Case_Diag.png&amp;diff=120107"/>
		<updated>2018-11-16T02:18:48Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120106</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120106"/>
		<updated>2018-11-16T02:17:35Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Implementation Details */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is a web based open source peer reviewing tool developed and maintained by current and past students of [https://en.wikipedia.org/wiki/North_Carolina_State_University North Carolina State University]. Peer review is a great way for a student to learn how to approach a project and get ideas for their own projects. Currently, there is no way for a student to view another student's work, unless they are reviewing the other student's work.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Expected Flow ==&lt;br /&gt;
'''As a TA / Instructor'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''As a Student'''&lt;br /&gt;
# Log in.&lt;br /&gt;
# Click on Assignments&lt;br /&gt;
# List of assignments is displayed.&lt;br /&gt;
# Click on any assignment for which the review has to be submitted.&lt;br /&gt;
# Assignment description is displayed.&lt;br /&gt;
# Click on &amp;quot;Other's work&amp;quot; to submit review for other's work.&lt;br /&gt;
# At this point student can click on &amp;quot;Show sample reviews&amp;quot; to view all sample reviews for that assignment.&lt;br /&gt;
# On clicking this, it will display all the sample reviews.&lt;br /&gt;
# Student can click on back to go back to Assignment description page.&lt;br /&gt;
# Student can chose to review any of the team's assignment that is displayed.&lt;br /&gt;
# Student selects a team for review and fills in the review.&lt;br /&gt;
# Before submitting the review, student can select the check box that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;.&lt;br /&gt;
# After clicking on the submit button, the review submitted by the student has been made public.&lt;br /&gt;
&lt;br /&gt;
== Project Tasks ==&lt;br /&gt;
&lt;br /&gt;
# Consent to make the review public - add a checkbox and an oncheck event handlers (JS) that sets a new field 'visibility' to public of Response object.&lt;br /&gt;
# Change the schema of Responses table (add the new column) and write db migrations.  &lt;br /&gt;
# Create new table, model, view, controller for similar_assignments and validate CRUD operations that access the table.&lt;br /&gt;
# Add HTML (checkbox) to uncheck the consent such that the reviews becomes private again. &lt;br /&gt;
# On the &amp;quot;popup/team_users_popup&amp;quot; page (where instructor/TA can view all reviews), give a checkbox against every review with public visibility to allow instructors/TAs to select one or more reviews as sample reviews to be available for students.&lt;br /&gt;
# Once the instructor selects and submits some reviews as sample reviews, give a popup with a list of assignments with a checkbox against each and a submit button to allow instructors to make sample reviews available for multiple assignments in one go. Add validation checks also.&lt;br /&gt;
# On submit of the popup, update the similar_assignments table.&lt;br /&gt;
# At the top of student_reviews/list page, give an option for the student to preview all the available sample reviews. &lt;br /&gt;
# Create the MVC setup for this new page to list all the sample reviews. Students should be able to click on one particular review to preview it.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Use_Case.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Other details will be updated after the implementation'''&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
'''To be updated'''&lt;br /&gt;
&lt;br /&gt;
=='''Additional Links and References'''==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1291 Link to the Git Pull Request]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/chinmaiks/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The Live Expertiza Website]&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
[mailto:aagniho@ncsu.edu Amogh Agnihotri Subbanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:ckaidab@ncsu.edu Chinmai Kaidabettu Srinivas]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:smadhur@ncsu.edu Siddu Madhure Jayanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:snaramb@ncsu.edu Suhas Naramballi Gururaja]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Use_Case_Diagram.png&amp;diff=120105</id>
		<title>File:Use Case Diagram.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Use_Case_Diagram.png&amp;diff=120105"/>
		<updated>2018-11-16T02:16:27Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: uploaded a new version of &amp;amp;quot;File:Use Case Diagram.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120104</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120104"/>
		<updated>2018-11-16T01:43:48Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Implementation Details */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is a web based open source peer reviewing tool developed and maintained by current and past students of [https://en.wikipedia.org/wiki/North_Carolina_State_University North Carolina State University]. Peer review is a great way for a student to learn how to approach a project and get ideas for their own projects. Currently, there is no way for a student to view another student's work, unless they are reviewing the other student's work.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Expected Flow ==&lt;br /&gt;
'''As a TA / Instructor'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''As a Student'''&lt;br /&gt;
# Log in.&lt;br /&gt;
# Click on Assignments&lt;br /&gt;
# List of assignments is displayed.&lt;br /&gt;
# Click on any assignment for which the review has to be submitted.&lt;br /&gt;
# Assignment description is displayed.&lt;br /&gt;
# Click on &amp;quot;Other's work&amp;quot; to submit review for other's work.&lt;br /&gt;
# At this point student can click on &amp;quot;Show sample reviews&amp;quot; to view all sample reviews for that assignment.&lt;br /&gt;
# On clicking this, it will display all the sample reviews.&lt;br /&gt;
# Student can click on back to go back to Assignment description page.&lt;br /&gt;
# Student can chose to review any of the team's assignment that is displayed.&lt;br /&gt;
# Student selects a team for review and fills in the review.&lt;br /&gt;
# Before submitting the review, student can select the check box that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;.&lt;br /&gt;
# After clicking on the submit button, the review submitted by the student has been made public.&lt;br /&gt;
&lt;br /&gt;
== Project Tasks ==&lt;br /&gt;
&lt;br /&gt;
# Consent to make the review public - add a checkbox and an oncheck event handlers (JS) that sets a new field 'visibility' to public of Response object.&lt;br /&gt;
# Change the schema of Responses table (add the new column) and write db migrations.  &lt;br /&gt;
# Create new table, model, view, controller for similar_assignments and validate CRUD operations that access the table.&lt;br /&gt;
# Add HTML (checkbox) to uncheck the consent such that the reviews becomes private again. &lt;br /&gt;
# On the &amp;quot;popup/team_users_popup&amp;quot; page (where instructor/TA can view all reviews), give a checkbox against every review with public visibility to allow instructors/TAs to select one or more reviews as sample reviews to be available for students.&lt;br /&gt;
# Once the instructor selects and submits some reviews as sample reviews, give a popup with a list of assignments with a checkbox against each and a submit button to allow instructors to make sample reviews available for multiple assignments in one go. Add validation checks also.&lt;br /&gt;
# On submit of the popup, update the similar_assignments table.&lt;br /&gt;
# At the top of student_reviews/list page, give an option for the student to preview all the available sample reviews. &lt;br /&gt;
# Create the MVC setup for this new page to list all the sample reviews. Students should be able to click on one particular review to preview it.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Use_Case_Diagram.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Other details will be updated after the implementation'''&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
'''To be updated'''&lt;br /&gt;
&lt;br /&gt;
=='''Additional Links and References'''==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1291 Link to the Git Pull Request]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/chinmaiks/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The Live Expertiza Website]&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
[mailto:aagniho@ncsu.edu Amogh Agnihotri Subbanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:ckaidab@ncsu.edu Chinmai Kaidabettu Srinivas]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:smadhur@ncsu.edu Siddu Madhure Jayanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:snaramb@ncsu.edu Suhas Naramballi Gururaja]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120103</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120103"/>
		<updated>2018-11-16T01:43:11Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Implementation Details */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is a web based open source peer reviewing tool developed and maintained by current and past students of [https://en.wikipedia.org/wiki/North_Carolina_State_University North Carolina State University]. Peer review is a great way for a student to learn how to approach a project and get ideas for their own projects. Currently, there is no way for a student to view another student's work, unless they are reviewing the other student's work.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Expected Flow ==&lt;br /&gt;
'''As a TA / Instructor'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''As a Student'''&lt;br /&gt;
# Log in.&lt;br /&gt;
# Click on Assignments&lt;br /&gt;
# List of assignments is displayed.&lt;br /&gt;
# Click on any assignment for which the review has to be submitted.&lt;br /&gt;
# Assignment description is displayed.&lt;br /&gt;
# Click on &amp;quot;Other's work&amp;quot; to submit review for other's work.&lt;br /&gt;
# At this point student can click on &amp;quot;Show sample reviews&amp;quot; to view all sample reviews for that assignment.&lt;br /&gt;
# On clicking this, it will display all the sample reviews.&lt;br /&gt;
# Student can click on back to go back to Assignment description page.&lt;br /&gt;
# Student can chose to review any of the team's assignment that is displayed.&lt;br /&gt;
# Student selects a team for review and fills in the review.&lt;br /&gt;
# Before submitting the review, student can select the check box that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;.&lt;br /&gt;
# After clicking on the submit button, the review submitted by the student has been made public.&lt;br /&gt;
&lt;br /&gt;
== Project Tasks ==&lt;br /&gt;
&lt;br /&gt;
# Consent to make the review public - add a checkbox and an oncheck event handlers (JS) that sets a new field 'visibility' to public of Response object.&lt;br /&gt;
# Change the schema of Responses table (add the new column) and write db migrations.  &lt;br /&gt;
# Create new table, model, view, controller for similar_assignments and validate CRUD operations that access the table.&lt;br /&gt;
# Add HTML (checkbox) to uncheck the consent such that the reviews becomes private again. &lt;br /&gt;
# On the &amp;quot;popup/team_users_popup&amp;quot; page (where instructor/TA can view all reviews), give a checkbox against every review with public visibility to allow instructors/TAs to select one or more reviews as sample reviews to be available for students.&lt;br /&gt;
# Once the instructor selects and submits some reviews as sample reviews, give a popup with a list of assignments with a checkbox against each and a submit button to allow instructors to make sample reviews available for multiple assignments in one go. Add validation checks also.&lt;br /&gt;
# On submit of the popup, update the similar_assignments table.&lt;br /&gt;
# At the top of student_reviews/list page, give an option for the student to preview all the available sample reviews. &lt;br /&gt;
# Create the MVC setup for this new page to list all the sample reviews. Students should be able to click on one particular review to preview it.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Use_Case_Diagram.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Other details will be updated after the implementation'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use_Case_Diagram.png&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
'''To be updated'''&lt;br /&gt;
&lt;br /&gt;
=='''Additional Links and References'''==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1291 Link to the Git Pull Request]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/chinmaiks/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The Live Expertiza Website]&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
[mailto:aagniho@ncsu.edu Amogh Agnihotri Subbanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:ckaidab@ncsu.edu Chinmai Kaidabettu Srinivas]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:smadhur@ncsu.edu Siddu Madhure Jayanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:snaramb@ncsu.edu Suhas Naramballi Gururaja]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Use_Case_Diagram.png&amp;diff=120102</id>
		<title>File:Use Case Diagram.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Use_Case_Diagram.png&amp;diff=120102"/>
		<updated>2018-11-16T01:40:40Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120101</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120101"/>
		<updated>2018-11-16T01:20:03Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Project Tasks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is a web based open source peer reviewing tool developed and maintained by current and past students of [https://en.wikipedia.org/wiki/North_Carolina_State_University North Carolina State University]. Peer review is a great way for a student to learn how to approach a project and get ideas for their own projects. Currently, there is no way for a student to view another student's work, unless they are reviewing the other student's work.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Expected Flow ==&lt;br /&gt;
'''As a TA / Instructor'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''As a Student'''&lt;br /&gt;
# Log in.&lt;br /&gt;
# Click on Assignments&lt;br /&gt;
# List of assignments is displayed.&lt;br /&gt;
# Click on any assignment for which the review has to be submitted.&lt;br /&gt;
# Assignment description is displayed.&lt;br /&gt;
# Click on &amp;quot;Other's work&amp;quot; to submit review for other's work.&lt;br /&gt;
# At this point student can click on &amp;quot;Show sample reviews&amp;quot; to view all sample reviews for that assignment.&lt;br /&gt;
# On clicking this, it will display all the sample reviews.&lt;br /&gt;
# Student can click on back to go back to Assignment description page.&lt;br /&gt;
# Student can chose to review any of the team's assignment that is displayed.&lt;br /&gt;
# Student selects a team for review and fills in the review.&lt;br /&gt;
# Before submitting the review, student can select the check box that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;.&lt;br /&gt;
# After clicking on the submit button, the review submitted by the student has been made public.&lt;br /&gt;
&lt;br /&gt;
== Project Tasks ==&lt;br /&gt;
&lt;br /&gt;
# Consent to make the review public - add a checkbox and an oncheck event handlers (JS) that sets a new field 'visibility' to public of Response object.&lt;br /&gt;
# Change the schema of Responses table (add the new column) and write db migrations.  &lt;br /&gt;
# Create new table, model, view, controller for similar_assignments and validate CRUD operations that access the table.&lt;br /&gt;
# Add HTML (checkbox) to uncheck the consent such that the reviews becomes private again. &lt;br /&gt;
# On the &amp;quot;popup/team_users_popup&amp;quot; page (where instructor/TA can view all reviews), give a checkbox against every review with public visibility to allow instructors/TAs to select one or more reviews as sample reviews to be available for students.&lt;br /&gt;
# Once the instructor selects and submits some reviews as sample reviews, give a popup with a list of assignments with a checkbox against each and a submit button to allow instructors to make sample reviews available for multiple assignments in one go. Add validation checks also.&lt;br /&gt;
# On submit of the popup, update the similar_assignments table.&lt;br /&gt;
# At the top of student_reviews/list page, give an option for the student to preview all the available sample reviews. &lt;br /&gt;
# Create the MVC setup for this new page to list all the sample reviews. Students should be able to click on one particular review to preview it.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
&lt;br /&gt;
'''To be updated'''&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
'''To be updated'''&lt;br /&gt;
&lt;br /&gt;
=='''Additional Links and References'''==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1291 Link to the Git Pull Request]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/chinmaiks/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The Live Expertiza Website]&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
[mailto:aagniho@ncsu.edu Amogh Agnihotri Subbanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:ckaidab@ncsu.edu Chinmai Kaidabettu Srinivas]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:smadhur@ncsu.edu Siddu Madhure Jayanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:snaramb@ncsu.edu Suhas Naramballi Gururaja]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120024</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120024"/>
		<updated>2018-11-14T04:09:36Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Project Tasks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is a web based open source peer reviewing tool developed and maintained by current and past students of [https://en.wikipedia.org/wiki/North_Carolina_State_University North Carolina State University]. Peer review is a great way for a student to learn how to approach a project and get ideas for their own projects. Currently, there is no way for a student to view another student's work, unless they are reviewing the other student's work.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Expected Flow ==&lt;br /&gt;
'''As a TA / Instructor'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''As a Student'''&lt;br /&gt;
# Log in.&lt;br /&gt;
# Click on Assignments&lt;br /&gt;
# List of assignments is displayed.&lt;br /&gt;
# Click on any assignment for which the review has to be submitted.&lt;br /&gt;
# Assignment description is displayed.&lt;br /&gt;
# Click on &amp;quot;Other's work&amp;quot; to submit review for other's work.&lt;br /&gt;
# At this point student can click on &amp;quot;Show sample reviews&amp;quot; to view all sample reviews for that assignment.&lt;br /&gt;
# On clicking this, it will display all the sample reviews.&lt;br /&gt;
# Student can click on back to go back to Assignment description page.&lt;br /&gt;
# Student can chose to review any of the team's assignment that is displayed.&lt;br /&gt;
# Student selects a team for review and fills in the review.&lt;br /&gt;
# Before submitting the review, student can select the check box that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;.&lt;br /&gt;
# After clicking on the submit button, the review submitted by the student has been made public.&lt;br /&gt;
&lt;br /&gt;
== Project Tasks ==&lt;br /&gt;
&lt;br /&gt;
# Consent to make the review public - add a checkbox and an oncheck event handlers (JS) that sets a new field 'visibility' to public of Response object&lt;br /&gt;
# Change the schema of Responses table (add the new column) and write db migrations.  &lt;br /&gt;
# Create new table, model, view, controller for similar_assignments and validate CRUD operations that access the table.&lt;br /&gt;
# Add HTML (checkbox) to uncheck the consent such that the reviews becomes private. &lt;br /&gt;
# On the &amp;quot;popup/team_users_popup&amp;quot; page (where instructor/TA can view all reviews), for all reviews with public visibility set, add a button to mark a review as a sample.&lt;br /&gt;
# Write HTML for a popup that contains a list (of assignments) with checkboxes against each, and a submit button. Add validations for non-selection.&lt;br /&gt;
# Modify view for the instructor/TA to include this popup to make the review available as sample. On submit of popup, update the similar_assignments table.&lt;br /&gt;
# At the top of student_reviews/list page, add a link to a new page. &lt;br /&gt;
# Create new route, model, view, controller for this new page at 'student_reviews/samples?id=&amp;lt;assignment_id&amp;gt;'. Write HTML to display the list of sample reviews.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
&lt;br /&gt;
'''To be updated'''&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
'''To be updated'''&lt;br /&gt;
&lt;br /&gt;
=='''Additional Links and References'''==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1291 Link to the Git Pull Request]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/chinmaiks/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The Live Expertiza Website]&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
[mailto:aagniho@ncsu.edu Amogh Agnihotri Subbanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:ckaidab@ncsu.edu Chinmai Kaidabettu Srinivas]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:smadhur@ncsu.edu Siddu Madhure Jayanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:snaramb@ncsu.edu Suhas Naramballi Gururaja]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120023</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120023"/>
		<updated>2018-11-14T04:09:19Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Project Tasks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is a web based open source peer reviewing tool developed and maintained by current and past students of [https://en.wikipedia.org/wiki/North_Carolina_State_University North Carolina State University]. Peer review is a great way for a student to learn how to approach a project and get ideas for their own projects. Currently, there is no way for a student to view another student's work, unless they are reviewing the other student's work.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Expected Flow ==&lt;br /&gt;
'''As a TA / Instructor'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''As a Student'''&lt;br /&gt;
# Log in.&lt;br /&gt;
# Click on Assignments&lt;br /&gt;
# List of assignments is displayed.&lt;br /&gt;
# Click on any assignment for which the review has to be submitted.&lt;br /&gt;
# Assignment description is displayed.&lt;br /&gt;
# Click on &amp;quot;Other's work&amp;quot; to submit review for other's work.&lt;br /&gt;
# At this point student can click on &amp;quot;Show sample reviews&amp;quot; to view all sample reviews for that assignment.&lt;br /&gt;
# On clicking this, it will display all the sample reviews.&lt;br /&gt;
# Student can click on back to go back to Assignment description page.&lt;br /&gt;
# Student can chose to review any of the team's assignment that is displayed.&lt;br /&gt;
# Student selects a team for review and fills in the review.&lt;br /&gt;
# Before submitting the review, student can select the check box that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;.&lt;br /&gt;
# After clicking on the submit button, the review submitted by the student has been made public.&lt;br /&gt;
&lt;br /&gt;
== Project Tasks ==&lt;br /&gt;
&lt;br /&gt;
# Consent to make the review public - add a checkbox and an oncheck event handlers (JS) that sets a new field 'visibility' to public of Response object&lt;br /&gt;
# Change the schema of Responses table (add the new column) and write db migrations.  &lt;br /&gt;
# Create new table, model, view, controller for similar_assignments and validate CRUD operations that access the table.&lt;br /&gt;
# Add HTML (checkbox) to uncheck the consent such that the reviews becomes private. &lt;br /&gt;
# On the &amp;quot;popup/team_users_popup&amp;quot; page (where instructor/TA can view all reviews), for all reviews with public visibility set, add a button to mark a review as a sample.&lt;br /&gt;
# Write HTML for a popup that contains a list (of assignments) with checkboxes against each, and a submit button. Add validations for non-selection.&lt;br /&gt;
# Modify view for the instructor/TA to include this popup to make the review available as sample. On submit of popup, update the similar_assignments table.&lt;br /&gt;
# At the top of student_reviews/list page, add a link to a new page. &lt;br /&gt;
# Create new route, model, view, controller for this new page at 'student_reviews/samples?id=&amp;lt;assignment_id&amp;gt;'. Write HTML to display the list&lt;br /&gt;
of sample reviews.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
&lt;br /&gt;
'''To be updated'''&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
'''To be updated'''&lt;br /&gt;
&lt;br /&gt;
=='''Additional Links and References'''==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1291 Link to the Git Pull Request]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/chinmaiks/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The Live Expertiza Website]&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
[mailto:aagniho@ncsu.edu Amogh Agnihotri Subbanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:ckaidab@ncsu.edu Chinmai Kaidabettu Srinivas]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:smadhur@ncsu.edu Siddu Madhure Jayanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:snaramb@ncsu.edu Suhas Naramballi Gururaja]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120020</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120020"/>
		<updated>2018-11-14T04:07:54Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Project Tasks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is a web based open source peer reviewing tool developed and maintained by current and past students of [https://en.wikipedia.org/wiki/North_Carolina_State_University North Carolina State University]. Peer review is a great way for a student to learn how to approach a project and get ideas for their own projects. Currently, there is no way for a student to view another student's work, unless they are reviewing the other student's work.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Expected Flow ==&lt;br /&gt;
'''As a TA / Instructor'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''As a Student'''&lt;br /&gt;
# Log in.&lt;br /&gt;
# Click on Assignments&lt;br /&gt;
# List of assignments is displayed.&lt;br /&gt;
# Click on any assignment for which the review has to be submitted.&lt;br /&gt;
# Assignment description is displayed.&lt;br /&gt;
# Click on &amp;quot;Other's work&amp;quot; to submit review for other's work.&lt;br /&gt;
# At this point student can click on &amp;quot;Show sample reviews&amp;quot; to view all sample reviews for that assignment.&lt;br /&gt;
# On clicking this, it will display all the sample reviews.&lt;br /&gt;
# Student can click on back to go back to Assignment description page.&lt;br /&gt;
# Student can chose to review any of the team's assignment that is displayed.&lt;br /&gt;
# Student selects a team for review and fills in the review.&lt;br /&gt;
# Before submitting the review, student can select the check box that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Project Tasks ==&lt;br /&gt;
&lt;br /&gt;
# Consent to make the review public - add a checkbox and an oncheck event handlers (JS) that sets a new field 'visibility' to public of Response object&lt;br /&gt;
 &lt;br /&gt;
# Change the schema of Responses table (add the new column) and write db migrations.  &lt;br /&gt;
&lt;br /&gt;
# Create new table, model, view, controller for similar_assignments and validate CRUD operations that access the table.&lt;br /&gt;
&lt;br /&gt;
# Add HTML (checkbox) to uncheck the consent such that the reviews becomes private. &lt;br /&gt;
&lt;br /&gt;
# On the &amp;quot;popup/team_users_popup&amp;quot; page (where instructor/TA can view all reviews), for all reviews with public visibility set, add a button to mark a review as a sample.&lt;br /&gt;
&lt;br /&gt;
# Write HTML for a popup that contains a list (of assignments) with checkboxes against each, and a submit button. Add validations for non-selection.&lt;br /&gt;
&lt;br /&gt;
# Modify view for the instructor/TA to include this popup to make the review available as sample. On submit of popup, update the similar_assignments table.&lt;br /&gt;
&lt;br /&gt;
# At the top of student_reviews/list page, add a link to a new page. &lt;br /&gt;
&lt;br /&gt;
# Create new route, model, view, controller for this new page at 'student_reviews/samples?id=&amp;lt;assignment_id&amp;gt;'. Write HTML to display the list&lt;br /&gt;
of sample reviews.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
&lt;br /&gt;
'''To be updated'''&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
'''To be updated'''&lt;br /&gt;
&lt;br /&gt;
=='''Additional Links and References'''==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1291 Link to the Git Pull Request]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/chinmaiks/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The Live Expertiza Website]&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
[mailto:aagniho@ncsu.edu Amogh Agnihotri Subbanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:ckaidab@ncsu.edu Chinmai Kaidabettu Srinivas]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:smadhur@ncsu.edu Siddu Madhure Jayanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:snaramb@ncsu.edu Suhas Naramballi Gururaja]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120018</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120018"/>
		<updated>2018-11-14T04:06:47Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Project Tasks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is a web based open source peer reviewing tool developed and maintained by current and past students of [https://en.wikipedia.org/wiki/North_Carolina_State_University North Carolina State University]. Peer review is a great way for a student to learn how to approach a project and get ideas for their own projects. Currently, there is no way for a student to view another student's work, unless they are reviewing the other student's work.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Expected Flow ==&lt;br /&gt;
'''As a TA / Instructor'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
During each review, there will be a checkbox that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;, and students can decide to check this box or not just before they submit reviews. Behind the scenes, we need to set a &amp;quot;status&amp;quot; field to “public”of the Response object.&lt;br /&gt;
&lt;br /&gt;
'''As a Student'''&lt;br /&gt;
# Log in.&lt;br /&gt;
# Click on Assignments&lt;br /&gt;
# List of assignments is displayed.&lt;br /&gt;
# Click on any assignment for which the review has to be submitted.&lt;br /&gt;
# Assignment description is displayed.&lt;br /&gt;
# Click on &amp;quot;Other's work&amp;quot; to submit review for other's work.&lt;br /&gt;
# At this point student can click on &amp;quot;Show sample reviews&amp;quot; to view all sample reviews for that assignment.&lt;br /&gt;
# On clicking this, it will display all the sample reviews.&lt;br /&gt;
# Student can click on back to go back to Assignment description page.&lt;br /&gt;
# Student can chose to review any of the team's assignment that is displayed.&lt;br /&gt;
# Student selects a team for review and fills in the review.&lt;br /&gt;
# Before submitting the review, student can&lt;br /&gt;
&lt;br /&gt;
== Project Tasks ==&lt;br /&gt;
&lt;br /&gt;
1) Consent to make the review public - add a checkbox and an oncheck event handlers (JS) that sets a new field 'visibility' to public of Response object&lt;br /&gt;
 &lt;br /&gt;
2) Change the schema of Responses table (add the new column) and write db migrations.  &lt;br /&gt;
&lt;br /&gt;
3) Create new table, model, view, controller for similar_assignments and validate CRUD operations that access the table.&lt;br /&gt;
&lt;br /&gt;
4) Add HTML (checkbox) to uncheck the consent such that the reviews becomes private. &lt;br /&gt;
&lt;br /&gt;
5) On the &amp;quot;popup/team_users_popup&amp;quot; page (where instructor/TA can view all reviews), for all reviews with public visibility set, add a button to mark a review as a sample.&lt;br /&gt;
&lt;br /&gt;
6) Write HTML for a popup that contains a list (of assignments) with checkboxes against each, and a submit button. Add validations for non-selection.&lt;br /&gt;
&lt;br /&gt;
7) Modify view for the instructor/TA to include this popup to make the review available as sample. On submit of popup, update the similar_assignments table.&lt;br /&gt;
&lt;br /&gt;
8) At the top of student_reviews/list page, add a link to a new page. &lt;br /&gt;
&lt;br /&gt;
9) Create new route, model, view, controller for this new page at 'student_reviews/samples?id=&amp;lt;assignment_id&amp;gt;'. Write HTML to display the list&lt;br /&gt;
of sample reviews.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
&lt;br /&gt;
'''To be updated'''&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
'''To be updated'''&lt;br /&gt;
&lt;br /&gt;
=='''Additional Links and References'''==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1291 Link to the Git Pull Request]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/chinmaiks/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The Live Expertiza Website]&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
[mailto:aagniho@ncsu.edu Amogh Agnihotri Subbanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:ckaidab@ncsu.edu Chinmai Kaidabettu Srinivas]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:smadhur@ncsu.edu Siddu Madhure Jayanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:snaramb@ncsu.edu Suhas Naramballi Gururaja]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120009</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120009"/>
		<updated>2018-11-14T04:04:08Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Additional Links and References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is a web based open source peer reviewing tool developed and maintained by current and past students of [https://en.wikipedia.org/wiki/North_Carolina_State_University North Carolina State University]. Peer review is a great way for a student to learn how to approach a project and get ideas for their own projects. Currently, there is no way for a student to view another student's work, unless they are reviewing the other student's work.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Expected Flow ==&lt;br /&gt;
'''As a TA / Instructor'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
During each review, there will be a checkbox that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;, and students can decide to check this box or not just before they submit reviews. Behind the scenes, we need to set a &amp;quot;status&amp;quot; field to “public”of the Response object.&lt;br /&gt;
&lt;br /&gt;
'''As a Student'''&lt;br /&gt;
# Log in.&lt;br /&gt;
# Click on Assignments&lt;br /&gt;
# List of assignments is displayed.&lt;br /&gt;
# Click on any assignment for which the review has to be submitted.&lt;br /&gt;
# Assignment description is displayed.&lt;br /&gt;
# Click on &amp;quot;Other's work&amp;quot; to submit review for other's work.&lt;br /&gt;
# At this point student can click on &amp;quot;Show sample reviews&amp;quot; to view all sample reviews for that assignment.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
== Project Tasks ==&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
&lt;br /&gt;
'''To be updated'''&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
'''To be updated'''&lt;br /&gt;
&lt;br /&gt;
=='''Additional Links and References'''==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1291 Link to the Git Pull Request]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/chinmaiks/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The Live Expertiza Website]&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
[mailto:aagniho@ncsu.edu Amogh Agnihotri Subbanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:ckaidab@ncsu.edu Chinmai Kaidabettu Srinivas]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:smadhur@ncsu.edu Siddu Madhure Jayanna]&amp;lt;br&amp;gt;&lt;br /&gt;
[mailto:snaramb@ncsu.edu Suhas Naramballi Gururaja]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120008</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120008"/>
		<updated>2018-11-14T04:02:42Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is a web based open source peer reviewing tool developed and maintained by current and past students of [https://en.wikipedia.org/wiki/North_Carolina_State_University North Carolina State University]. Peer review is a great way for a student to learn how to approach a project and get ideas for their own projects. Currently, there is no way for a student to view another student's work, unless they are reviewing the other student's work.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Expected Flow ==&lt;br /&gt;
'''As a TA / Instructor'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
During each review, there will be a checkbox that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;, and students can decide to check this box or not just before they submit reviews. Behind the scenes, we need to set a &amp;quot;status&amp;quot; field to “public”of the Response object.&lt;br /&gt;
&lt;br /&gt;
'''As a Student'''&lt;br /&gt;
# Log in.&lt;br /&gt;
# Click on Assignments&lt;br /&gt;
# List of assignments is displayed.&lt;br /&gt;
# Click on any assignment for which the review has to be submitted.&lt;br /&gt;
# Assignment description is displayed.&lt;br /&gt;
# Click on &amp;quot;Other's work&amp;quot; to submit review for other's work.&lt;br /&gt;
# At this point student can click on &amp;quot;Show sample reviews&amp;quot; to view all sample reviews for that assignment.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
== Project Tasks ==&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
&lt;br /&gt;
'''To be updated'''&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
'''To be updated'''&lt;br /&gt;
&lt;br /&gt;
=='''Additional Links and References'''==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1291 Link to the Git Pull Request]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/chinmaiks/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The Live Expertiza Website]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120006</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120006"/>
		<updated>2018-11-14T04:02:08Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Additional Links and References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is a web based open source peer reviewing tool developed and maintained by current and past students of [https://en.wikipedia.org/wiki/North_Carolina_State_University North Carolina State University]. Peer review is a great way for a student to learn how to approach a project and get ideas for their own projects. Currently, there is no way for a student to view another student's work, unless they are reviewing the other student's work.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Expected Flow ==&lt;br /&gt;
'''As a TA / Instructor'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
During each review, there will be a checkbox that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;, and students can decide to check this box or not just before they submit reviews. Behind the scenes, we need to set a &amp;quot;status&amp;quot; field to “public”of the Response object.&lt;br /&gt;
&lt;br /&gt;
'''As a Student'''&lt;br /&gt;
# Log in.&lt;br /&gt;
# Click on Assignments&lt;br /&gt;
# List of assignments is displayed.&lt;br /&gt;
# Click on any assignment for which the review has to be submitted.&lt;br /&gt;
# Assignment description is displayed.&lt;br /&gt;
# Click on &amp;quot;Other's work&amp;quot; to submit review for other's work.&lt;br /&gt;
# At this point student can click on &amp;quot;Show sample reviews&amp;quot; to view all sample reviews for that assignment.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
== Project Tasks ==&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
&lt;br /&gt;
'''To be updated'''&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
'''To be updated'''&lt;br /&gt;
&lt;br /&gt;
=='''Additional Links and References'''==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1291 Link to the Git Pull Request]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/chinmaiks/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The Live Expertiza Website]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# Link to expertiza website: [https://expertiza.ncsu.edu/]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120000</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=120000"/>
		<updated>2018-11-14T03:55:09Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* External Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is a web based open source peer reviewing tool developed and maintained by current and past students of [https://en.wikipedia.org/wiki/North_Carolina_State_University North Carolina State University]. Peer review is a great way for a student to learn how to approach a project and get ideas for their own projects. Currently, there is no way for a student to view another student's work, unless they are reviewing the other student's work.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Expected Flow ==&lt;br /&gt;
'''As a TA / Instructor'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
During each review, there will be a checkbox that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;, and students can decide to check this box or not just before they submit reviews. Behind the scenes, we need to set a &amp;quot;status&amp;quot; field to “public”of the Response object.&lt;br /&gt;
&lt;br /&gt;
'''As a Student'''&lt;br /&gt;
# Log in.&lt;br /&gt;
# Click on Assignments&lt;br /&gt;
# List of assignments is displayed.&lt;br /&gt;
# Click on any assignment for which the review has to be submitted.&lt;br /&gt;
# Assignment description is displayed.&lt;br /&gt;
# Click on &amp;quot;Other's work&amp;quot; to submit review for other's work.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
== Project Tasks ==&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
&lt;br /&gt;
'''To be updated'''&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
'''To be updated'''&lt;br /&gt;
&lt;br /&gt;
=='''Additional Links and References'''==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1291 Link to the git pull request]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/chinmaiks/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# Link to expertiza website: [https://expertiza.ncsu.edu/]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=119994</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=119994"/>
		<updated>2018-11-14T03:51:16Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Test Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is a web based open source peer reviewing tool developed and maintained by current and past students of [https://en.wikipedia.org/wiki/North_Carolina_State_University North Carolina State University]. Peer review is a great way for a student to learn how to approach a project and get ideas for their own projects. Currently, there is no way for a student to view another student's work, unless they are reviewing the other student's work.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Expected Flow ==&lt;br /&gt;
'''As a TA / Instructor'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
During each review, there will be a checkbox that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;, and students can decide to check this box or not just before they submit reviews. Behind the scenes, we need to set a &amp;quot;status&amp;quot; field to “public”of the Response object.&lt;br /&gt;
&lt;br /&gt;
== Project Tasks ==&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
&lt;br /&gt;
'''To be updated'''&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
'''To be updated'''&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
# link to forked repository [https://github.com/chinmaiks/expertiza]&lt;br /&gt;
# link to the git pull request [https://github.com/expertiza/expertiza/pull/1291]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# Link to expertiza website: [https://expertiza.ncsu.edu/]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=119992</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=119992"/>
		<updated>2018-11-14T03:50:09Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Expected Flow */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is a web based open source peer reviewing tool developed and maintained by current and past students of [https://en.wikipedia.org/wiki/North_Carolina_State_University North Carolina State University]. Peer review is a great way for a student to learn how to approach a project and get ideas for their own projects. Currently, there is no way for a student to view another student's work, unless they are reviewing the other student's work.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Expected Flow ==&lt;br /&gt;
'''As a TA / Instructor'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
During each review, there will be a checkbox that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;, and students can decide to check this box or not just before they submit reviews. Behind the scenes, we need to set a &amp;quot;status&amp;quot; field to “public”of the Response object.&lt;br /&gt;
&lt;br /&gt;
== Project Tasks ==&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
To be updated&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
# link to forked repository [https://github.com/chinmaiks/expertiza]&lt;br /&gt;
# link to the git pull request [https://github.com/expertiza/expertiza/pull/1291]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# Link to expertiza website: [https://expertiza.ncsu.edu/]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=119988</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=119988"/>
		<updated>2018-11-14T03:45:33Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Implem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is a web based open source peer reviewing tool developed and maintained by current and past students of [https://en.wikipedia.org/wiki/North_Carolina_State_University North Carolina State University]. Peer review is a great way for a student to learn how to approach a project and get ideas for their own projects. Currently, there is no way for a student to view another student's work, unless they are reviewing the other student's work.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Expected Flow ==&lt;br /&gt;
'''As a TA/Instructor'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
During each review, there will be a checkbox that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;, and students can decide to check this box or not just before they submit reviews. Behind the scenes, we need to set a &amp;quot;status&amp;quot; field to “public”of the Response object.&lt;br /&gt;
&lt;br /&gt;
== Project Tasks ==&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
To be updated&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
# link to forked repository [https://github.com/chinmaiks/expertiza]&lt;br /&gt;
# link to the git pull request [https://github.com/expertiza/expertiza/pull/1291]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# Link to expertiza website: [https://expertiza.ncsu.edu/]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=119986</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=119986"/>
		<updated>2018-11-14T03:45:23Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Test Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is a web based open source peer reviewing tool developed and maintained by current and past students of [https://en.wikipedia.org/wiki/North_Carolina_State_University North Carolina State University]. Peer review is a great way for a student to learn how to approach a project and get ideas for their own projects. Currently, there is no way for a student to view another student's work, unless they are reviewing the other student's work.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Expected Flow ==&lt;br /&gt;
'''As a TA/Instructor'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
During each review, there will be a checkbox that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;, and students can decide to check this box or not just before they submit reviews. Behind the scenes, we need to set a &amp;quot;status&amp;quot; field to “public”of the Response object.&lt;br /&gt;
&lt;br /&gt;
== Project Tasks ==&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
To be updated&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implem ==&lt;br /&gt;
&lt;br /&gt;
To be updated&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
# link to forked repository [https://github.com/chinmaiks/expertiza]&lt;br /&gt;
# link to the git pull request [https://github.com/expertiza/expertiza/pull/1291]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# Link to expertiza website: [https://expertiza.ncsu.edu/]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=119980</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=119980"/>
		<updated>2018-11-14T03:43:36Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Current status of Development */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is a web based open source peer reviewing tool developed and maintained by current and past students of [https://en.wikipedia.org/wiki/North_Carolina_State_University North Carolina State University]. Peer review is a great way for a student to learn how to approach a project and get ideas for their own projects. Currently, there is no way for a student to view another student's work, unless they are reviewing the other student's work.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Expected Flow ==&lt;br /&gt;
'''As an Instructor'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
# A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
During each review, there will be a checkbox that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;, and students can decide to check this box or not just before they submit reviews. Behind the scenes, we need to set a &amp;quot;status&amp;quot; field to “public”of the Response object.&lt;br /&gt;
&lt;br /&gt;
== Project Tasks ==&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
To be updated&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
# link to forked repository [https://github.com/chinmaiks/expertiza]&lt;br /&gt;
# link to the git pull request [https://github.com/expertiza/expertiza/pull/1291]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# Link to expertiza website: [https://expertiza.ncsu.edu/]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=119977</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=119977"/>
		<updated>2018-11-14T03:42:42Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* External Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is a web based open source peer reviewing tool developed and maintained by current and past students of [https://en.wikipedia.org/wiki/North_Carolina_State_University North Carolina State University]. Peer review is a great way for a student to learn how to approach a project and get ideas for their own projects. Currently, there is no way for a student to view another student's work, unless they are reviewing the other student's work.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Expected Flow ==&lt;br /&gt;
'''As an Instructor'''&lt;br /&gt;
# Log in&lt;br /&gt;
# Click on Manage-&amp;gt;Assignments&lt;br /&gt;
# Displays list of Assignments&lt;br /&gt;
# Click View Report/Review for a particular assignment.&lt;br /&gt;
# Displays a list of reviews submitted by students.&lt;br /&gt;
# Click on any review in &amp;quot;team reviewed&amp;quot; column for a particular student.&lt;br /&gt;
# Displays the summary of reviews submitted by that student.&lt;br /&gt;
# Click on &amp;quot;Make as sample&amp;quot; for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.&lt;br /&gt;
# From this list select all assignments for which the review has to be shown as a sample.&lt;br /&gt;
# Click on 'Submit' after selection (this closes the popup).&lt;br /&gt;
# Navigate to view reviews of that particular assignment and click on &amp;quot;Sample Reviews&amp;quot;.&lt;br /&gt;
A new page is opened that lists out all the sample reviews of the assignment.&lt;br /&gt;
&lt;br /&gt;
During each review, there will be a checkbox that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;, and students can decide to check this box or not just before they submit reviews. Behind the scenes, we need to set a &amp;quot;status&amp;quot; field to “public”of the Response object.&lt;br /&gt;
&lt;br /&gt;
== Project Tasks ==&lt;br /&gt;
&lt;br /&gt;
== Current status of Development ==&lt;br /&gt;
In progress&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
To be updated&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
# link to forked repository [https://github.com/chinmaiks/expertiza]&lt;br /&gt;
# link to the git pull request [https://github.com/expertiza/expertiza/pull/1291]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# Link to expertiza website: [https://expertiza.ncsu.edu/]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=119971</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=119971"/>
		<updated>2018-11-14T03:40:28Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Project Tasks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is a web based open source peer reviewing tool developed and maintained by current and past students of [https://en.wikipedia.org/wiki/North_Carolina_State_University North Carolina State University]. Peer review is a great way for a student to learn how to approach a project and get ideas for their own projects. Currently, there is no way for a student to view another student's work, unless they are reviewing the other student's work.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Proposed Flow ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
During each review, there will be a checkbox that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;, and students can decide to check this box or not just before they submit reviews. Behind the scenes, we need to set a &amp;quot;status&amp;quot; field to “public”of the Response object.&lt;br /&gt;
&lt;br /&gt;
== Project Tasks ==&lt;br /&gt;
&lt;br /&gt;
== Current status of Development ==&lt;br /&gt;
In progress&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
To be updated&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
# link to forked repository [https://github.com/ashiskumar123/expertiza]&lt;br /&gt;
# link to the git pull request [https://github.com/expertiza/expertiza/pull/1169]&lt;br /&gt;
# link to the deployed application [http://ec2-13-59-7-94.us-east-2.compute.amazonaws.com:3000]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# Link to expertiza website: [https://expertiza.ncsu.edu/]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=119967</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=119967"/>
		<updated>2018-11-14T03:35:57Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Future Scope */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is a web based open source peer reviewing tool developed and maintained by current and past students of [https://en.wikipedia.org/wiki/North_Carolina_State_University North Carolina State University]. Peer review is a great way for a student to learn how to approach a project and get ideas for their own projects. Currently, there is no way for a student to view another student's work, unless they are reviewing the other student's work.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Proposed Flow ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
During each review, there will be a checkbox that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;, and students can decide to check this box or not just before they submit reviews. Behind the scenes, we need to set a &amp;quot;status&amp;quot; field to “public”of the Response object.&lt;br /&gt;
&lt;br /&gt;
== Project Tasks ==&lt;br /&gt;
The tasks that need to be completed as part of this project can be listed as follows:&lt;br /&gt;
# Add checkbox against each assignment in student_tasks/list view to allow student to publish their work&lt;br /&gt;
# Add column make_public to table teams for storing user permission (published or not) for each project.&lt;br /&gt;
# Add controller for Sample submissions and implement corresponding methods.&lt;br /&gt;
# Add views for sample submissions&lt;br /&gt;
# Make changes to  page student_task/view which would have link to sample submissions for each project.&lt;br /&gt;
# Add drop down in assignments/edit/_general view.&lt;br /&gt;
# Add controller code for the drop down.&lt;br /&gt;
# Add column sample_assignment_id to table assignment.&lt;br /&gt;
# Add test scripts for all the functionality.&lt;br /&gt;
&lt;br /&gt;
== Current status of Development ==&lt;br /&gt;
In progress&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
To be updated&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
# link to forked repository [https://github.com/ashiskumar123/expertiza]&lt;br /&gt;
# link to the git pull request [https://github.com/expertiza/expertiza/pull/1169]&lt;br /&gt;
# link to the deployed application [http://ec2-13-59-7-94.us-east-2.compute.amazonaws.com:3000]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# Link to expertiza website: [https://expertiza.ncsu.edu/]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=119965</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=119965"/>
		<updated>2018-11-14T03:35:38Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Test Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is a web based open source peer reviewing tool developed and maintained by current and past students of [https://en.wikipedia.org/wiki/North_Carolina_State_University North Carolina State University]. Peer review is a great way for a student to learn how to approach a project and get ideas for their own projects. Currently, there is no way for a student to view another student's work, unless they are reviewing the other student's work.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Proposed Flow ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
During each review, there will be a checkbox that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;, and students can decide to check this box or not just before they submit reviews. Behind the scenes, we need to set a &amp;quot;status&amp;quot; field to “public”of the Response object.&lt;br /&gt;
&lt;br /&gt;
== Project Tasks ==&lt;br /&gt;
The tasks that need to be completed as part of this project can be listed as follows:&lt;br /&gt;
# Add checkbox against each assignment in student_tasks/list view to allow student to publish their work&lt;br /&gt;
# Add column make_public to table teams for storing user permission (published or not) for each project.&lt;br /&gt;
# Add controller for Sample submissions and implement corresponding methods.&lt;br /&gt;
# Add views for sample submissions&lt;br /&gt;
# Make changes to  page student_task/view which would have link to sample submissions for each project.&lt;br /&gt;
# Add drop down in assignments/edit/_general view.&lt;br /&gt;
# Add controller code for the drop down.&lt;br /&gt;
# Add column sample_assignment_id to table assignment.&lt;br /&gt;
# Add test scripts for all the functionality.&lt;br /&gt;
&lt;br /&gt;
== Current status of Development ==&lt;br /&gt;
In progress&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
To be updated&lt;br /&gt;
&lt;br /&gt;
== Future Scope ==&lt;br /&gt;
# Publishing sample reviews made by students: This feature will require students to allow their review to be published as a sample review. This can then be made available to future students.&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
# link to forked repository [https://github.com/ashiskumar123/expertiza]&lt;br /&gt;
# link to the git pull request [https://github.com/expertiza/expertiza/pull/1169]&lt;br /&gt;
# link to the deployed application [http://ec2-13-59-7-94.us-east-2.compute.amazonaws.com:3000]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# Link to expertiza website: [https://expertiza.ncsu.edu/]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=119964</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=119964"/>
		<updated>2018-11-14T03:35:09Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Sample Submissions View */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is a web based open source peer reviewing tool developed and maintained by current and past students of [https://en.wikipedia.org/wiki/North_Carolina_State_University North Carolina State University]. Peer review is a great way for a student to learn how to approach a project and get ideas for their own projects. Currently, there is no way for a student to view another student's work, unless they are reviewing the other student's work.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Proposed Flow ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
During each review, there will be a checkbox that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;, and students can decide to check this box or not just before they submit reviews. Behind the scenes, we need to set a &amp;quot;status&amp;quot; field to “public”of the Response object.&lt;br /&gt;
&lt;br /&gt;
== Project Tasks ==&lt;br /&gt;
The tasks that need to be completed as part of this project can be listed as follows:&lt;br /&gt;
# Add checkbox against each assignment in student_tasks/list view to allow student to publish their work&lt;br /&gt;
# Add column make_public to table teams for storing user permission (published or not) for each project.&lt;br /&gt;
# Add controller for Sample submissions and implement corresponding methods.&lt;br /&gt;
# Add views for sample submissions&lt;br /&gt;
# Make changes to  page student_task/view which would have link to sample submissions for each project.&lt;br /&gt;
# Add drop down in assignments/edit/_general view.&lt;br /&gt;
# Add controller code for the drop down.&lt;br /&gt;
# Add column sample_assignment_id to table assignment.&lt;br /&gt;
# Add test scripts for all the functionality.&lt;br /&gt;
&lt;br /&gt;
== Current status of Development ==&lt;br /&gt;
In progress&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
Many of our changes are reflected on views (user interface). So we build tests with rspec/capybara. Following is the list of tests that conduct:&lt;br /&gt;
&lt;br /&gt;
# it &amp;quot;is able to make an assignment public&amp;quot;&lt;br /&gt;
# it &amp;quot;is able to view sample submissions page&amp;quot;&lt;br /&gt;
# it &amp;quot;should not see current assignment submissions if deadline is not met&amp;quot;&lt;br /&gt;
# it &amp;quot;should see current assignment submissions if deadline is met&amp;quot;&lt;br /&gt;
# it &amp;quot;should not see instructor selected submissions if instructor has not selected them&amp;quot;&lt;br /&gt;
# it &amp;quot;should see instructor selected submissions if instructor has selected them&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def create_assignment_team(assignment_name, parent_id)&lt;br /&gt;
  assignment_team = AssignmentTeam.new&lt;br /&gt;
  assignment_team.name = assignment_name&lt;br /&gt;
  assignment_team.parent_id = parent_id&lt;br /&gt;
  assignment_team.save!&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def init_test&lt;br /&gt;
  # create assignment and topic&lt;br /&gt;
  assignment = build(Assignment)&lt;br /&gt;
  course = Course.new&lt;br /&gt;
  course.name = &amp;quot;SampleSubmissionTestCourse&amp;quot;&lt;br /&gt;
  course.save&lt;br /&gt;
  assignment.course_id = course.id&lt;br /&gt;
  assignment.save&lt;br /&gt;
&lt;br /&gt;
  create_assignemnt_team(&amp;quot;ss_assignment_team_1&amp;quot;, assignment.id)&lt;br /&gt;
  create_assignemnt_team(&amp;quot;ss_assignment_team_2&amp;quot;, assignment.id)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def visit_sample_submissions_page&lt;br /&gt;
  visit '/student_task/list'&lt;br /&gt;
  click_on &amp;quot;Example Assignment&amp;quot;&lt;br /&gt;
  click_on &amp;quot;Sample Submissions&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
describe &amp;quot;sample submission test&amp;quot; do&lt;br /&gt;
  before(:each) { init_test }&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;is able to make an assignment public&amp;quot; do&lt;br /&gt;
    visit '/student_task/list'&lt;br /&gt;
    find(:css, &amp;quot;#makeSubPublic[teamid='6050']&amp;quot;).trigger(&amp;quot;click&amp;quot;)&lt;br /&gt;
    click_button 'OK'&lt;br /&gt;
    expect(page).to have_http_status(200)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;should not see current assignment submissions if deadline is not met&amp;quot; do # Set deadline after current time.&lt;br /&gt;
    visit_sample_submissions_page&lt;br /&gt;
    expect(page).to have_content &amp;quot;No sample submissions from current assignment made public yet&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;should see current assignment submissions if deadline is met&amp;quot; do # Set deadline before current time.&lt;br /&gt;
    visit_sample_submissions_page&lt;br /&gt;
    expect(page).to_not have_content &amp;quot;No sample submissions from current assignment made public yet&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;should not see instructor selected submissions if instructor has not selected them&amp;quot; do&lt;br /&gt;
    visit_sample_submissions_page&lt;br /&gt;
    expect(page).to have_content &amp;quot;No sample submissions from previous assignment made available yet&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;should see instructor selected submissions if instructor has selected them&amp;quot; do # Instructor makes submission available.&lt;br /&gt;
    visit_sample_submissions_page&lt;br /&gt;
    expect(page).to_not have_content &amp;quot;No sample submissions from previous assignment made available yet&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Future Scope ==&lt;br /&gt;
# Publishing sample reviews made by students: This feature will require students to allow their review to be published as a sample review. This can then be made available to future students.&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
# link to forked repository [https://github.com/ashiskumar123/expertiza]&lt;br /&gt;
# link to the git pull request [https://github.com/expertiza/expertiza/pull/1169]&lt;br /&gt;
# link to the deployed application [http://ec2-13-59-7-94.us-east-2.compute.amazonaws.com:3000]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# Link to expertiza website: [https://expertiza.ncsu.edu/]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=119962</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=119962"/>
		<updated>2018-11-14T03:34:51Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Developed Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is a web based open source peer reviewing tool developed and maintained by current and past students of [https://en.wikipedia.org/wiki/North_Carolina_State_University North Carolina State University]. Peer review is a great way for a student to learn how to approach a project and get ideas for their own projects. Currently, there is no way for a student to view another student's work, unless they are reviewing the other student's work.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Proposed Flow ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
During each review, there will be a checkbox that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;, and students can decide to check this box or not just before they submit reviews. Behind the scenes, we need to set a &amp;quot;status&amp;quot; field to “public”of the Response object.&lt;br /&gt;
&lt;br /&gt;
== Project Tasks ==&lt;br /&gt;
The tasks that need to be completed as part of this project can be listed as follows:&lt;br /&gt;
# Add checkbox against each assignment in student_tasks/list view to allow student to publish their work&lt;br /&gt;
# Add column make_public to table teams for storing user permission (published or not) for each project.&lt;br /&gt;
# Add controller for Sample submissions and implement corresponding methods.&lt;br /&gt;
# Add views for sample submissions&lt;br /&gt;
# Make changes to  page student_task/view which would have link to sample submissions for each project.&lt;br /&gt;
# Add drop down in assignments/edit/_general view.&lt;br /&gt;
# Add controller code for the drop down.&lt;br /&gt;
# Add column sample_assignment_id to table assignment.&lt;br /&gt;
# Add test scripts for all the functionality.&lt;br /&gt;
&lt;br /&gt;
== Current status of Development ==&lt;br /&gt;
In progress&lt;br /&gt;
&lt;br /&gt;
== Sample Submissions View ==&lt;br /&gt;
&lt;br /&gt;
1. The first screenshot of the application is taken when the deadline for the current assignment has not crossed and the instructor also has not given any sample assignment for this assignment.&lt;br /&gt;
&lt;br /&gt;
[[Image:Assignments not made public.PNG]]&lt;br /&gt;
&lt;br /&gt;
2. The second screenshot of the application is taken when the deadline for the current assignment has not crossed but the instructor has selected a sample assignment for viewing against this assignment.&lt;br /&gt;
&lt;br /&gt;
[[Image:Assignment submission date not passed.PNG]]&lt;br /&gt;
&lt;br /&gt;
3. The third screenshot of the application is taken when both the deadline for the current assignment has crossed and the instructor has selected a sample assignment for viewing.&lt;br /&gt;
&lt;br /&gt;
[[Image:Assignments available.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
Many of our changes are reflected on views (user interface). So we build tests with rspec/capybara. Following is the list of tests that conduct:&lt;br /&gt;
&lt;br /&gt;
# it &amp;quot;is able to make an assignment public&amp;quot;&lt;br /&gt;
# it &amp;quot;is able to view sample submissions page&amp;quot;&lt;br /&gt;
# it &amp;quot;should not see current assignment submissions if deadline is not met&amp;quot;&lt;br /&gt;
# it &amp;quot;should see current assignment submissions if deadline is met&amp;quot;&lt;br /&gt;
# it &amp;quot;should not see instructor selected submissions if instructor has not selected them&amp;quot;&lt;br /&gt;
# it &amp;quot;should see instructor selected submissions if instructor has selected them&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def create_assignment_team(assignment_name, parent_id)&lt;br /&gt;
  assignment_team = AssignmentTeam.new&lt;br /&gt;
  assignment_team.name = assignment_name&lt;br /&gt;
  assignment_team.parent_id = parent_id&lt;br /&gt;
  assignment_team.save!&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def init_test&lt;br /&gt;
  # create assignment and topic&lt;br /&gt;
  assignment = build(Assignment)&lt;br /&gt;
  course = Course.new&lt;br /&gt;
  course.name = &amp;quot;SampleSubmissionTestCourse&amp;quot;&lt;br /&gt;
  course.save&lt;br /&gt;
  assignment.course_id = course.id&lt;br /&gt;
  assignment.save&lt;br /&gt;
&lt;br /&gt;
  create_assignemnt_team(&amp;quot;ss_assignment_team_1&amp;quot;, assignment.id)&lt;br /&gt;
  create_assignemnt_team(&amp;quot;ss_assignment_team_2&amp;quot;, assignment.id)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def visit_sample_submissions_page&lt;br /&gt;
  visit '/student_task/list'&lt;br /&gt;
  click_on &amp;quot;Example Assignment&amp;quot;&lt;br /&gt;
  click_on &amp;quot;Sample Submissions&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
describe &amp;quot;sample submission test&amp;quot; do&lt;br /&gt;
  before(:each) { init_test }&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;is able to make an assignment public&amp;quot; do&lt;br /&gt;
    visit '/student_task/list'&lt;br /&gt;
    find(:css, &amp;quot;#makeSubPublic[teamid='6050']&amp;quot;).trigger(&amp;quot;click&amp;quot;)&lt;br /&gt;
    click_button 'OK'&lt;br /&gt;
    expect(page).to have_http_status(200)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;should not see current assignment submissions if deadline is not met&amp;quot; do # Set deadline after current time.&lt;br /&gt;
    visit_sample_submissions_page&lt;br /&gt;
    expect(page).to have_content &amp;quot;No sample submissions from current assignment made public yet&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;should see current assignment submissions if deadline is met&amp;quot; do # Set deadline before current time.&lt;br /&gt;
    visit_sample_submissions_page&lt;br /&gt;
    expect(page).to_not have_content &amp;quot;No sample submissions from current assignment made public yet&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;should not see instructor selected submissions if instructor has not selected them&amp;quot; do&lt;br /&gt;
    visit_sample_submissions_page&lt;br /&gt;
    expect(page).to have_content &amp;quot;No sample submissions from previous assignment made available yet&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;should see instructor selected submissions if instructor has selected them&amp;quot; do # Instructor makes submission available.&lt;br /&gt;
    visit_sample_submissions_page&lt;br /&gt;
    expect(page).to_not have_content &amp;quot;No sample submissions from previous assignment made available yet&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Future Scope ==&lt;br /&gt;
# Publishing sample reviews made by students: This feature will require students to allow their review to be published as a sample review. This can then be made available to future students.&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
# link to forked repository [https://github.com/ashiskumar123/expertiza]&lt;br /&gt;
# link to the git pull request [https://github.com/expertiza/expertiza/pull/1169]&lt;br /&gt;
# link to the deployed application [http://ec2-13-59-7-94.us-east-2.compute.amazonaws.com:3000]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# Link to expertiza website: [https://expertiza.ncsu.edu/]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=119961</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=119961"/>
		<updated>2018-11-14T03:34:33Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Current status of Development */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is a web based open source peer reviewing tool developed and maintained by current and past students of [https://en.wikipedia.org/wiki/North_Carolina_State_University North Carolina State University]. Peer review is a great way for a student to learn how to approach a project and get ideas for their own projects. Currently, there is no way for a student to view another student's work, unless they are reviewing the other student's work.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Proposed Flow ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
During each review, there will be a checkbox that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;, and students can decide to check this box or not just before they submit reviews. Behind the scenes, we need to set a &amp;quot;status&amp;quot; field to “public”of the Response object.&lt;br /&gt;
&lt;br /&gt;
== Project Tasks ==&lt;br /&gt;
The tasks that need to be completed as part of this project can be listed as follows:&lt;br /&gt;
# Add checkbox against each assignment in student_tasks/list view to allow student to publish their work&lt;br /&gt;
# Add column make_public to table teams for storing user permission (published or not) for each project.&lt;br /&gt;
# Add controller for Sample submissions and implement corresponding methods.&lt;br /&gt;
# Add views for sample submissions&lt;br /&gt;
# Make changes to  page student_task/view which would have link to sample submissions for each project.&lt;br /&gt;
# Add drop down in assignments/edit/_general view.&lt;br /&gt;
# Add controller code for the drop down.&lt;br /&gt;
# Add column sample_assignment_id to table assignment.&lt;br /&gt;
# Add test scripts for all the functionality.&lt;br /&gt;
&lt;br /&gt;
== Current status of Development ==&lt;br /&gt;
In progress&lt;br /&gt;
&lt;br /&gt;
== Developed Code ==&lt;br /&gt;
1. Add checkbox against each assignment in student_tasks/list view to allow student to publish their work&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if !participant.team.nil? %&amp;gt;&lt;br /&gt;
    &amp;lt;td align=center&amp;gt;&lt;br /&gt;
        &amp;lt;input id=&amp;quot;makeSubPublic&amp;quot; teamid=&amp;quot;&amp;lt;%= participant.team.id %&amp;gt;&amp;quot; type=&amp;quot;checkbox&amp;quot; onclick=&amp;quot;publishConfirmation(this)&amp;quot; &amp;lt;% if participant.team.make_public %&amp;gt;checked&amp;lt;% end %&amp;gt;&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Add column make_public to table teams for storing user permission (published or not) for each project.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class AddSampleAssignmentToAssignments &amp;lt; ActiveRecord::Migration&lt;br /&gt;
  def change&lt;br /&gt;
    add_column :assignments, :sample_assignment_id, :integer, index: true&lt;br /&gt;
    add_foreign_key :assignments, :assignments, column: :sample_assignment_id&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3. Add controller for Sample submissions and implement corresponding methods.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To give permission for making a submission available to others&lt;br /&gt;
  def make_public&lt;br /&gt;
    @team = Team.find(params[:id])&lt;br /&gt;
    @team.make_public = params[:status]&lt;br /&gt;
    @team.save&lt;br /&gt;
    respond_to do |format|&lt;br /&gt;
      format.html { head :no_content }&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
4. Add views for sample submissions&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- View to display sample submissions to the student --&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Sample Submissions for &amp;lt;%= @assignment.name%&amp;gt;:&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- Displaying sample submissions by students of the current course --&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Submissions made public by peers:&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;% if @assignment_due_date==nil or @assignment_due_date&amp;gt;Time.new() %&amp;gt;&lt;br /&gt;
    &amp;lt;br&amp;gt;&amp;lt;i&amp;gt;Will be available once the assignment submission is completed&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;% elsif @assignment_teams==[] %&amp;gt;&lt;br /&gt;
    &amp;lt;br&amp;gt;&amp;lt;i&amp;gt;No sample submissions from current assignment made public yet&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;% else %&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;% @assignment_teams.each do |assignment_team| %&amp;gt;&lt;br /&gt;
          &amp;lt;% if assignment_team.hyperlinks != [] %&amp;gt;&lt;br /&gt;
              &amp;lt;li&amp;gt;&lt;br /&gt;
                &amp;lt;ul&amp;gt;&lt;br /&gt;
                  &amp;lt;h4&amp;gt;Team name : &amp;lt;%=assignment_team.name%&amp;gt;&amp;lt;/h4&amp;gt;&lt;br /&gt;
                  &amp;lt;% assignment_team.hyperlinks.each do |assignment_link| %&amp;gt;&lt;br /&gt;
                      &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;&amp;lt;%=assignment_link%&amp;gt;&amp;quot;&amp;gt;&amp;lt;%=assignment_link%&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;%end%&amp;gt;&lt;br /&gt;
                &amp;lt;/ul&amp;gt;&lt;br /&gt;
              &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;%end%&amp;gt;&lt;br /&gt;
      &amp;lt;% end%&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;hr/&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Displaying sample submissions from a previous assignment chosen by the instructor --&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Submissions made public by instructor:&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;% if @assignment_teams_professor == [] %&amp;gt;&lt;br /&gt;
    &amp;lt;br&amp;gt;&amp;lt;i&amp;gt;No sample submissions from previous assignments made available yet&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;% else %&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;% @assignment_teams_professor.each do |assignment_team| %&amp;gt;&lt;br /&gt;
          &amp;lt;% if assignment_team.hyperlinks != [] %&amp;gt;&lt;br /&gt;
              &amp;lt;ul&amp;gt;&lt;br /&gt;
                &amp;lt;li&amp;gt;&lt;br /&gt;
                  &amp;lt;h4&amp;gt;Team name : &amp;lt;%=assignment_team.name%&amp;gt;&amp;lt;/h4&amp;gt;&lt;br /&gt;
                  &amp;lt;% assignment_team.hyperlinks.each do |assignment_link| %&amp;gt;&lt;br /&gt;
                    &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;&amp;lt;%=assignment_link%&amp;gt;&amp;quot;&amp;gt;&amp;lt;%=assignment_link%&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;%end%&amp;gt;&lt;br /&gt;
                &amp;lt;/li&amp;gt;&lt;br /&gt;
              &amp;lt;/ul&amp;gt;&lt;br /&gt;
          &amp;lt;%end%&amp;gt;&lt;br /&gt;
      &amp;lt;% end%&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a href=&amp;quot;javascript:window.history.back()&amp;quot;&amp;gt;Back&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
5. Make changes to  page student_task/view which would have link to sample submissions for each project.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
  &amp;lt;%= link_to &amp;quot;Sample Submissions&amp;quot;, controller: 'sample_submissions', :action =&amp;gt; 'index', :id =&amp;gt; @assignment.id %&amp;gt;&lt;br /&gt;
    (View sample work submitted by other participants/teams)&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
6. Add drop down in assignments/edit/_general view.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- Adding sample submissions for students to refer to --&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td style='padding:5px'&amp;gt;&amp;lt;%= label_tag('assignment_form[assignment][sample_assignment_id]', 'Sample Assignment:') %&amp;gt;&lt;br /&gt;
      &amp;lt;img src=&amp;quot;/assets/info.png&amp;quot; title='- Select an assignment that students can refer sample submission from.'&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style='padding:5px'&amp;gt;&amp;lt;%= select('assignment_form[assignment]', 'sample_assignment_id', sample_sub_options, :selected =&amp;gt; @assignment_form.assignment.sample_assignment_id) %&amp;gt; &lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
7. Add controller code for the drop down.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   def sample_sub_options&lt;br /&gt;
    assignments = Assignment.all&lt;br /&gt;
    options = []&lt;br /&gt;
    assignments.each do |assignment|&lt;br /&gt;
      course_name = &amp;quot;&amp;quot;&lt;br /&gt;
      if assignment.course_id and assignment.course_id != 0 and !Course.find(assignment.course_id).nil?&lt;br /&gt;
        course_name = Course.find(assignment.course_id).name&lt;br /&gt;
      end&lt;br /&gt;
      options &amp;lt;&amp;lt; [course_name + '- ' + assignment.name, assignment.id]&lt;br /&gt;
    end&lt;br /&gt;
    options.uniq.sort&lt;br /&gt;
    options.unshift(['-----------', nil])&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
8. Add column sample_assignment_id to table assignment.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class AddSampleAssignmentToAssignments &amp;lt; ActiveRecord::Migration&lt;br /&gt;
  def change&lt;br /&gt;
    add_column :assignments, :sample_assignment_id, :integer, index: true&lt;br /&gt;
    add_foreign_key :assignments, :assignments, column: :sample_assignment_id&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
9. Add test scripts for all the functionality.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def create_assignment_team(assignment_name, parent_id)&lt;br /&gt;
  assignment_team = AssignmentTeam.new&lt;br /&gt;
  assignment_team.name = assignment_name&lt;br /&gt;
  assignment_team.parent_id = parent_id&lt;br /&gt;
  assignment_team.save!&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def init_test&lt;br /&gt;
  # create assignment and topic&lt;br /&gt;
  assignment = build(Assignment)&lt;br /&gt;
  course = Course.new&lt;br /&gt;
  course.name = &amp;quot;SampleSubmissionTestCourse&amp;quot;&lt;br /&gt;
  course.save&lt;br /&gt;
  assignment.course_id = course.id&lt;br /&gt;
  assignment.save&lt;br /&gt;
&lt;br /&gt;
  create_assignemnt_team(&amp;quot;ss_assignment_team_1&amp;quot;, assignment.id)&lt;br /&gt;
  create_assignemnt_team(&amp;quot;ss_assignment_team_2&amp;quot;, assignment.id)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def visit_sample_submissions_page&lt;br /&gt;
  visit '/student_task/list'&lt;br /&gt;
  click_on &amp;quot;Example Assignment&amp;quot;&lt;br /&gt;
  click_on &amp;quot;Sample Submissions&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
describe &amp;quot;sample submission test&amp;quot; do&lt;br /&gt;
  before(:each) { init_test }&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;is able to make an assignment public&amp;quot; do&lt;br /&gt;
    visit '/student_task/list'&lt;br /&gt;
    find(:css, &amp;quot;#makeSubPublic[teamid='6050']&amp;quot;).trigger(&amp;quot;click&amp;quot;)&lt;br /&gt;
    click_button 'OK'&lt;br /&gt;
    expect(page).to have_http_status(200)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;should not see current assignment submissions if deadline is not met&amp;quot; do # Set deadline after current time.&lt;br /&gt;
    visit_sample_submissions_page&lt;br /&gt;
    expect(page).to have_content &amp;quot;No sample submissions from current assignment made public yet&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;should see current assignment submissions if deadline is met&amp;quot; do # Set deadline before current time.&lt;br /&gt;
    visit_sample_submissions_page&lt;br /&gt;
    expect(page).to_not have_content &amp;quot;No sample submissions from current assignment made public yet&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;should not see instructor selected submissions if instructor has not selected them&amp;quot; do&lt;br /&gt;
    visit_sample_submissions_page&lt;br /&gt;
    expect(page).to have_content &amp;quot;No sample submissions from previous assignment made available yet&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;should see instructor selected submissions if instructor has selected them&amp;quot; do # Instructor makes submission available.&lt;br /&gt;
    visit_sample_submissions_page&lt;br /&gt;
    expect(page).to_not have_content &amp;quot;No sample submissions from previous assignment made available yet&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sample Submissions View ==&lt;br /&gt;
&lt;br /&gt;
1. The first screenshot of the application is taken when the deadline for the current assignment has not crossed and the instructor also has not given any sample assignment for this assignment.&lt;br /&gt;
&lt;br /&gt;
[[Image:Assignments not made public.PNG]]&lt;br /&gt;
&lt;br /&gt;
2. The second screenshot of the application is taken when the deadline for the current assignment has not crossed but the instructor has selected a sample assignment for viewing against this assignment.&lt;br /&gt;
&lt;br /&gt;
[[Image:Assignment submission date not passed.PNG]]&lt;br /&gt;
&lt;br /&gt;
3. The third screenshot of the application is taken when both the deadline for the current assignment has crossed and the instructor has selected a sample assignment for viewing.&lt;br /&gt;
&lt;br /&gt;
[[Image:Assignments available.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
Many of our changes are reflected on views (user interface). So we build tests with rspec/capybara. Following is the list of tests that conduct:&lt;br /&gt;
&lt;br /&gt;
# it &amp;quot;is able to make an assignment public&amp;quot;&lt;br /&gt;
# it &amp;quot;is able to view sample submissions page&amp;quot;&lt;br /&gt;
# it &amp;quot;should not see current assignment submissions if deadline is not met&amp;quot;&lt;br /&gt;
# it &amp;quot;should see current assignment submissions if deadline is met&amp;quot;&lt;br /&gt;
# it &amp;quot;should not see instructor selected submissions if instructor has not selected them&amp;quot;&lt;br /&gt;
# it &amp;quot;should see instructor selected submissions if instructor has selected them&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def create_assignment_team(assignment_name, parent_id)&lt;br /&gt;
  assignment_team = AssignmentTeam.new&lt;br /&gt;
  assignment_team.name = assignment_name&lt;br /&gt;
  assignment_team.parent_id = parent_id&lt;br /&gt;
  assignment_team.save!&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def init_test&lt;br /&gt;
  # create assignment and topic&lt;br /&gt;
  assignment = build(Assignment)&lt;br /&gt;
  course = Course.new&lt;br /&gt;
  course.name = &amp;quot;SampleSubmissionTestCourse&amp;quot;&lt;br /&gt;
  course.save&lt;br /&gt;
  assignment.course_id = course.id&lt;br /&gt;
  assignment.save&lt;br /&gt;
&lt;br /&gt;
  create_assignemnt_team(&amp;quot;ss_assignment_team_1&amp;quot;, assignment.id)&lt;br /&gt;
  create_assignemnt_team(&amp;quot;ss_assignment_team_2&amp;quot;, assignment.id)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def visit_sample_submissions_page&lt;br /&gt;
  visit '/student_task/list'&lt;br /&gt;
  click_on &amp;quot;Example Assignment&amp;quot;&lt;br /&gt;
  click_on &amp;quot;Sample Submissions&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
describe &amp;quot;sample submission test&amp;quot; do&lt;br /&gt;
  before(:each) { init_test }&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;is able to make an assignment public&amp;quot; do&lt;br /&gt;
    visit '/student_task/list'&lt;br /&gt;
    find(:css, &amp;quot;#makeSubPublic[teamid='6050']&amp;quot;).trigger(&amp;quot;click&amp;quot;)&lt;br /&gt;
    click_button 'OK'&lt;br /&gt;
    expect(page).to have_http_status(200)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;should not see current assignment submissions if deadline is not met&amp;quot; do # Set deadline after current time.&lt;br /&gt;
    visit_sample_submissions_page&lt;br /&gt;
    expect(page).to have_content &amp;quot;No sample submissions from current assignment made public yet&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;should see current assignment submissions if deadline is met&amp;quot; do # Set deadline before current time.&lt;br /&gt;
    visit_sample_submissions_page&lt;br /&gt;
    expect(page).to_not have_content &amp;quot;No sample submissions from current assignment made public yet&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;should not see instructor selected submissions if instructor has not selected them&amp;quot; do&lt;br /&gt;
    visit_sample_submissions_page&lt;br /&gt;
    expect(page).to have_content &amp;quot;No sample submissions from previous assignment made available yet&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;should see instructor selected submissions if instructor has selected them&amp;quot; do # Instructor makes submission available.&lt;br /&gt;
    visit_sample_submissions_page&lt;br /&gt;
    expect(page).to_not have_content &amp;quot;No sample submissions from previous assignment made available yet&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Future Scope ==&lt;br /&gt;
# Publishing sample reviews made by students: This feature will require students to allow their review to be published as a sample review. This can then be made available to future students.&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
# link to forked repository [https://github.com/ashiskumar123/expertiza]&lt;br /&gt;
# link to the git pull request [https://github.com/expertiza/expertiza/pull/1169]&lt;br /&gt;
# link to the deployed application [http://ec2-13-59-7-94.us-east-2.compute.amazonaws.com:3000]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# Link to expertiza website: [https://expertiza.ncsu.edu/]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=119960</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=119960"/>
		<updated>2018-11-14T03:33:40Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Proposed Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is a web based open source peer reviewing tool developed and maintained by current and past students of [https://en.wikipedia.org/wiki/North_Carolina_State_University North Carolina State University]. Peer review is a great way for a student to learn how to approach a project and get ideas for their own projects. Currently, there is no way for a student to view another student's work, unless they are reviewing the other student's work.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Proposed Flow ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
During each review, there will be a checkbox that says &amp;quot;I agree to share this review anonymously as an example to the entire class&amp;quot;, and students can decide to check this box or not just before they submit reviews. Behind the scenes, we need to set a &amp;quot;status&amp;quot; field to “public”of the Response object.&lt;br /&gt;
&lt;br /&gt;
== Project Tasks ==&lt;br /&gt;
The tasks that need to be completed as part of this project can be listed as follows:&lt;br /&gt;
# Add checkbox against each assignment in student_tasks/list view to allow student to publish their work&lt;br /&gt;
# Add column make_public to table teams for storing user permission (published or not) for each project.&lt;br /&gt;
# Add controller for Sample submissions and implement corresponding methods.&lt;br /&gt;
# Add views for sample submissions&lt;br /&gt;
# Make changes to  page student_task/view which would have link to sample submissions for each project.&lt;br /&gt;
# Add drop down in assignments/edit/_general view.&lt;br /&gt;
# Add controller code for the drop down.&lt;br /&gt;
# Add column sample_assignment_id to table assignment.&lt;br /&gt;
# Add test scripts for all the functionality.&lt;br /&gt;
&lt;br /&gt;
== Current status of Development ==&lt;br /&gt;
All tasks mentioned in Project tasks are completed.&lt;br /&gt;
&lt;br /&gt;
== Developed Code ==&lt;br /&gt;
1. Add checkbox against each assignment in student_tasks/list view to allow student to publish their work&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if !participant.team.nil? %&amp;gt;&lt;br /&gt;
    &amp;lt;td align=center&amp;gt;&lt;br /&gt;
        &amp;lt;input id=&amp;quot;makeSubPublic&amp;quot; teamid=&amp;quot;&amp;lt;%= participant.team.id %&amp;gt;&amp;quot; type=&amp;quot;checkbox&amp;quot; onclick=&amp;quot;publishConfirmation(this)&amp;quot; &amp;lt;% if participant.team.make_public %&amp;gt;checked&amp;lt;% end %&amp;gt;&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Add column make_public to table teams for storing user permission (published or not) for each project.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class AddSampleAssignmentToAssignments &amp;lt; ActiveRecord::Migration&lt;br /&gt;
  def change&lt;br /&gt;
    add_column :assignments, :sample_assignment_id, :integer, index: true&lt;br /&gt;
    add_foreign_key :assignments, :assignments, column: :sample_assignment_id&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3. Add controller for Sample submissions and implement corresponding methods.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To give permission for making a submission available to others&lt;br /&gt;
  def make_public&lt;br /&gt;
    @team = Team.find(params[:id])&lt;br /&gt;
    @team.make_public = params[:status]&lt;br /&gt;
    @team.save&lt;br /&gt;
    respond_to do |format|&lt;br /&gt;
      format.html { head :no_content }&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
4. Add views for sample submissions&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- View to display sample submissions to the student --&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Sample Submissions for &amp;lt;%= @assignment.name%&amp;gt;:&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- Displaying sample submissions by students of the current course --&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Submissions made public by peers:&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;% if @assignment_due_date==nil or @assignment_due_date&amp;gt;Time.new() %&amp;gt;&lt;br /&gt;
    &amp;lt;br&amp;gt;&amp;lt;i&amp;gt;Will be available once the assignment submission is completed&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;% elsif @assignment_teams==[] %&amp;gt;&lt;br /&gt;
    &amp;lt;br&amp;gt;&amp;lt;i&amp;gt;No sample submissions from current assignment made public yet&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;% else %&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;% @assignment_teams.each do |assignment_team| %&amp;gt;&lt;br /&gt;
          &amp;lt;% if assignment_team.hyperlinks != [] %&amp;gt;&lt;br /&gt;
              &amp;lt;li&amp;gt;&lt;br /&gt;
                &amp;lt;ul&amp;gt;&lt;br /&gt;
                  &amp;lt;h4&amp;gt;Team name : &amp;lt;%=assignment_team.name%&amp;gt;&amp;lt;/h4&amp;gt;&lt;br /&gt;
                  &amp;lt;% assignment_team.hyperlinks.each do |assignment_link| %&amp;gt;&lt;br /&gt;
                      &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;&amp;lt;%=assignment_link%&amp;gt;&amp;quot;&amp;gt;&amp;lt;%=assignment_link%&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;%end%&amp;gt;&lt;br /&gt;
                &amp;lt;/ul&amp;gt;&lt;br /&gt;
              &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;%end%&amp;gt;&lt;br /&gt;
      &amp;lt;% end%&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;hr/&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Displaying sample submissions from a previous assignment chosen by the instructor --&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Submissions made public by instructor:&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;% if @assignment_teams_professor == [] %&amp;gt;&lt;br /&gt;
    &amp;lt;br&amp;gt;&amp;lt;i&amp;gt;No sample submissions from previous assignments made available yet&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;% else %&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;% @assignment_teams_professor.each do |assignment_team| %&amp;gt;&lt;br /&gt;
          &amp;lt;% if assignment_team.hyperlinks != [] %&amp;gt;&lt;br /&gt;
              &amp;lt;ul&amp;gt;&lt;br /&gt;
                &amp;lt;li&amp;gt;&lt;br /&gt;
                  &amp;lt;h4&amp;gt;Team name : &amp;lt;%=assignment_team.name%&amp;gt;&amp;lt;/h4&amp;gt;&lt;br /&gt;
                  &amp;lt;% assignment_team.hyperlinks.each do |assignment_link| %&amp;gt;&lt;br /&gt;
                    &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;&amp;lt;%=assignment_link%&amp;gt;&amp;quot;&amp;gt;&amp;lt;%=assignment_link%&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;%end%&amp;gt;&lt;br /&gt;
                &amp;lt;/li&amp;gt;&lt;br /&gt;
              &amp;lt;/ul&amp;gt;&lt;br /&gt;
          &amp;lt;%end%&amp;gt;&lt;br /&gt;
      &amp;lt;% end%&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a href=&amp;quot;javascript:window.history.back()&amp;quot;&amp;gt;Back&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
5. Make changes to  page student_task/view which would have link to sample submissions for each project.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
  &amp;lt;%= link_to &amp;quot;Sample Submissions&amp;quot;, controller: 'sample_submissions', :action =&amp;gt; 'index', :id =&amp;gt; @assignment.id %&amp;gt;&lt;br /&gt;
    (View sample work submitted by other participants/teams)&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
6. Add drop down in assignments/edit/_general view.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- Adding sample submissions for students to refer to --&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td style='padding:5px'&amp;gt;&amp;lt;%= label_tag('assignment_form[assignment][sample_assignment_id]', 'Sample Assignment:') %&amp;gt;&lt;br /&gt;
      &amp;lt;img src=&amp;quot;/assets/info.png&amp;quot; title='- Select an assignment that students can refer sample submission from.'&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style='padding:5px'&amp;gt;&amp;lt;%= select('assignment_form[assignment]', 'sample_assignment_id', sample_sub_options, :selected =&amp;gt; @assignment_form.assignment.sample_assignment_id) %&amp;gt; &lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
7. Add controller code for the drop down.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   def sample_sub_options&lt;br /&gt;
    assignments = Assignment.all&lt;br /&gt;
    options = []&lt;br /&gt;
    assignments.each do |assignment|&lt;br /&gt;
      course_name = &amp;quot;&amp;quot;&lt;br /&gt;
      if assignment.course_id and assignment.course_id != 0 and !Course.find(assignment.course_id).nil?&lt;br /&gt;
        course_name = Course.find(assignment.course_id).name&lt;br /&gt;
      end&lt;br /&gt;
      options &amp;lt;&amp;lt; [course_name + '- ' + assignment.name, assignment.id]&lt;br /&gt;
    end&lt;br /&gt;
    options.uniq.sort&lt;br /&gt;
    options.unshift(['-----------', nil])&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
8. Add column sample_assignment_id to table assignment.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class AddSampleAssignmentToAssignments &amp;lt; ActiveRecord::Migration&lt;br /&gt;
  def change&lt;br /&gt;
    add_column :assignments, :sample_assignment_id, :integer, index: true&lt;br /&gt;
    add_foreign_key :assignments, :assignments, column: :sample_assignment_id&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
9. Add test scripts for all the functionality.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def create_assignment_team(assignment_name, parent_id)&lt;br /&gt;
  assignment_team = AssignmentTeam.new&lt;br /&gt;
  assignment_team.name = assignment_name&lt;br /&gt;
  assignment_team.parent_id = parent_id&lt;br /&gt;
  assignment_team.save!&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def init_test&lt;br /&gt;
  # create assignment and topic&lt;br /&gt;
  assignment = build(Assignment)&lt;br /&gt;
  course = Course.new&lt;br /&gt;
  course.name = &amp;quot;SampleSubmissionTestCourse&amp;quot;&lt;br /&gt;
  course.save&lt;br /&gt;
  assignment.course_id = course.id&lt;br /&gt;
  assignment.save&lt;br /&gt;
&lt;br /&gt;
  create_assignemnt_team(&amp;quot;ss_assignment_team_1&amp;quot;, assignment.id)&lt;br /&gt;
  create_assignemnt_team(&amp;quot;ss_assignment_team_2&amp;quot;, assignment.id)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def visit_sample_submissions_page&lt;br /&gt;
  visit '/student_task/list'&lt;br /&gt;
  click_on &amp;quot;Example Assignment&amp;quot;&lt;br /&gt;
  click_on &amp;quot;Sample Submissions&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
describe &amp;quot;sample submission test&amp;quot; do&lt;br /&gt;
  before(:each) { init_test }&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;is able to make an assignment public&amp;quot; do&lt;br /&gt;
    visit '/student_task/list'&lt;br /&gt;
    find(:css, &amp;quot;#makeSubPublic[teamid='6050']&amp;quot;).trigger(&amp;quot;click&amp;quot;)&lt;br /&gt;
    click_button 'OK'&lt;br /&gt;
    expect(page).to have_http_status(200)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;should not see current assignment submissions if deadline is not met&amp;quot; do # Set deadline after current time.&lt;br /&gt;
    visit_sample_submissions_page&lt;br /&gt;
    expect(page).to have_content &amp;quot;No sample submissions from current assignment made public yet&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;should see current assignment submissions if deadline is met&amp;quot; do # Set deadline before current time.&lt;br /&gt;
    visit_sample_submissions_page&lt;br /&gt;
    expect(page).to_not have_content &amp;quot;No sample submissions from current assignment made public yet&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;should not see instructor selected submissions if instructor has not selected them&amp;quot; do&lt;br /&gt;
    visit_sample_submissions_page&lt;br /&gt;
    expect(page).to have_content &amp;quot;No sample submissions from previous assignment made available yet&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;should see instructor selected submissions if instructor has selected them&amp;quot; do # Instructor makes submission available.&lt;br /&gt;
    visit_sample_submissions_page&lt;br /&gt;
    expect(page).to_not have_content &amp;quot;No sample submissions from previous assignment made available yet&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sample Submissions View ==&lt;br /&gt;
&lt;br /&gt;
1. The first screenshot of the application is taken when the deadline for the current assignment has not crossed and the instructor also has not given any sample assignment for this assignment.&lt;br /&gt;
&lt;br /&gt;
[[Image:Assignments not made public.PNG]]&lt;br /&gt;
&lt;br /&gt;
2. The second screenshot of the application is taken when the deadline for the current assignment has not crossed but the instructor has selected a sample assignment for viewing against this assignment.&lt;br /&gt;
&lt;br /&gt;
[[Image:Assignment submission date not passed.PNG]]&lt;br /&gt;
&lt;br /&gt;
3. The third screenshot of the application is taken when both the deadline for the current assignment has crossed and the instructor has selected a sample assignment for viewing.&lt;br /&gt;
&lt;br /&gt;
[[Image:Assignments available.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
Many of our changes are reflected on views (user interface). So we build tests with rspec/capybara. Following is the list of tests that conduct:&lt;br /&gt;
&lt;br /&gt;
# it &amp;quot;is able to make an assignment public&amp;quot;&lt;br /&gt;
# it &amp;quot;is able to view sample submissions page&amp;quot;&lt;br /&gt;
# it &amp;quot;should not see current assignment submissions if deadline is not met&amp;quot;&lt;br /&gt;
# it &amp;quot;should see current assignment submissions if deadline is met&amp;quot;&lt;br /&gt;
# it &amp;quot;should not see instructor selected submissions if instructor has not selected them&amp;quot;&lt;br /&gt;
# it &amp;quot;should see instructor selected submissions if instructor has selected them&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def create_assignment_team(assignment_name, parent_id)&lt;br /&gt;
  assignment_team = AssignmentTeam.new&lt;br /&gt;
  assignment_team.name = assignment_name&lt;br /&gt;
  assignment_team.parent_id = parent_id&lt;br /&gt;
  assignment_team.save!&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def init_test&lt;br /&gt;
  # create assignment and topic&lt;br /&gt;
  assignment = build(Assignment)&lt;br /&gt;
  course = Course.new&lt;br /&gt;
  course.name = &amp;quot;SampleSubmissionTestCourse&amp;quot;&lt;br /&gt;
  course.save&lt;br /&gt;
  assignment.course_id = course.id&lt;br /&gt;
  assignment.save&lt;br /&gt;
&lt;br /&gt;
  create_assignemnt_team(&amp;quot;ss_assignment_team_1&amp;quot;, assignment.id)&lt;br /&gt;
  create_assignemnt_team(&amp;quot;ss_assignment_team_2&amp;quot;, assignment.id)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def visit_sample_submissions_page&lt;br /&gt;
  visit '/student_task/list'&lt;br /&gt;
  click_on &amp;quot;Example Assignment&amp;quot;&lt;br /&gt;
  click_on &amp;quot;Sample Submissions&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
describe &amp;quot;sample submission test&amp;quot; do&lt;br /&gt;
  before(:each) { init_test }&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;is able to make an assignment public&amp;quot; do&lt;br /&gt;
    visit '/student_task/list'&lt;br /&gt;
    find(:css, &amp;quot;#makeSubPublic[teamid='6050']&amp;quot;).trigger(&amp;quot;click&amp;quot;)&lt;br /&gt;
    click_button 'OK'&lt;br /&gt;
    expect(page).to have_http_status(200)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;should not see current assignment submissions if deadline is not met&amp;quot; do # Set deadline after current time.&lt;br /&gt;
    visit_sample_submissions_page&lt;br /&gt;
    expect(page).to have_content &amp;quot;No sample submissions from current assignment made public yet&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;should see current assignment submissions if deadline is met&amp;quot; do # Set deadline before current time.&lt;br /&gt;
    visit_sample_submissions_page&lt;br /&gt;
    expect(page).to_not have_content &amp;quot;No sample submissions from current assignment made public yet&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;should not see instructor selected submissions if instructor has not selected them&amp;quot; do&lt;br /&gt;
    visit_sample_submissions_page&lt;br /&gt;
    expect(page).to have_content &amp;quot;No sample submissions from previous assignment made available yet&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;should see instructor selected submissions if instructor has selected them&amp;quot; do # Instructor makes submission available.&lt;br /&gt;
    visit_sample_submissions_page&lt;br /&gt;
    expect(page).to_not have_content &amp;quot;No sample submissions from previous assignment made available yet&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Future Scope ==&lt;br /&gt;
# Publishing sample reviews made by students: This feature will require students to allow their review to be published as a sample review. This can then be made available to future students.&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
# link to forked repository [https://github.com/ashiskumar123/expertiza]&lt;br /&gt;
# link to the git pull request [https://github.com/expertiza/expertiza/pull/1169]&lt;br /&gt;
# link to the deployed application [http://ec2-13-59-7-94.us-east-2.compute.amazonaws.com:3000]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# Link to expertiza website: [https://expertiza.ncsu.edu/]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=119956</id>
		<title>E1867 allow reviewer to say review can be shown to class as an example</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example&amp;diff=119956"/>
		<updated>2018-11-14T03:20:20Z</updated>

		<summary type="html">&lt;p&gt;Smadhur: /* Problem Statement */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is a web based open source peer reviewing tool developed and maintained by current and past students of [https://en.wikipedia.org/wiki/North_Carolina_State_University North Carolina State University]. Peer review is a great way for a student to learn how to approach a project and get ideas for their own projects. Currently, there is no way for a student to view another student's work, unless they are reviewing the other student's work.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The objective of this project is to:&lt;br /&gt;
# Add a feature for students to make their reviews 'public', that is, allow other students to view them.&lt;br /&gt;
# Add a feature for TA to select a subset of 'public' reviews, and make those reviews visible as sample reviews of the particular assignment.&lt;br /&gt;
# Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.&lt;br /&gt;
# Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.&lt;br /&gt;
# Allow the student to toggle the visibility of a review he/she has submitted.&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
The proposed features will involve two kinds of users : Students and Instructors.  &lt;br /&gt;
Students will use the application to make their submissions public and view published reviews.&lt;br /&gt;
&lt;br /&gt;
[[File:Application Flow Student.png]]&lt;br /&gt;
&lt;br /&gt;
Instructors will use the application to make submissions from a previous assignment available as sample submissions for a current assignment. Only those submissions will be visible which were previously made public by the students.&lt;br /&gt;
&lt;br /&gt;
[[Image:Application Flow Instructor.png]]&lt;br /&gt;
&lt;br /&gt;
== Project Tasks ==&lt;br /&gt;
The tasks that need to be completed as part of this project can be listed as follows:&lt;br /&gt;
# Add checkbox against each assignment in student_tasks/list view to allow student to publish their work&lt;br /&gt;
# Add column make_public to table teams for storing user permission (published or not) for each project.&lt;br /&gt;
# Add controller for Sample submissions and implement corresponding methods.&lt;br /&gt;
# Add views for sample submissions&lt;br /&gt;
# Make changes to  page student_task/view which would have link to sample submissions for each project.&lt;br /&gt;
# Add drop down in assignments/edit/_general view.&lt;br /&gt;
# Add controller code for the drop down.&lt;br /&gt;
# Add column sample_assignment_id to table assignment.&lt;br /&gt;
# Add test scripts for all the functionality.&lt;br /&gt;
&lt;br /&gt;
== Current status of Development ==&lt;br /&gt;
All tasks mentioned in Project tasks are completed.&lt;br /&gt;
&lt;br /&gt;
== Developed Code ==&lt;br /&gt;
1. Add checkbox against each assignment in student_tasks/list view to allow student to publish their work&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if !participant.team.nil? %&amp;gt;&lt;br /&gt;
    &amp;lt;td align=center&amp;gt;&lt;br /&gt;
        &amp;lt;input id=&amp;quot;makeSubPublic&amp;quot; teamid=&amp;quot;&amp;lt;%= participant.team.id %&amp;gt;&amp;quot; type=&amp;quot;checkbox&amp;quot; onclick=&amp;quot;publishConfirmation(this)&amp;quot; &amp;lt;% if participant.team.make_public %&amp;gt;checked&amp;lt;% end %&amp;gt;&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Add column make_public to table teams for storing user permission (published or not) for each project.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class AddSampleAssignmentToAssignments &amp;lt; ActiveRecord::Migration&lt;br /&gt;
  def change&lt;br /&gt;
    add_column :assignments, :sample_assignment_id, :integer, index: true&lt;br /&gt;
    add_foreign_key :assignments, :assignments, column: :sample_assignment_id&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3. Add controller for Sample submissions and implement corresponding methods.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To give permission for making a submission available to others&lt;br /&gt;
  def make_public&lt;br /&gt;
    @team = Team.find(params[:id])&lt;br /&gt;
    @team.make_public = params[:status]&lt;br /&gt;
    @team.save&lt;br /&gt;
    respond_to do |format|&lt;br /&gt;
      format.html { head :no_content }&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
4. Add views for sample submissions&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- View to display sample submissions to the student --&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Sample Submissions for &amp;lt;%= @assignment.name%&amp;gt;:&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- Displaying sample submissions by students of the current course --&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Submissions made public by peers:&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;% if @assignment_due_date==nil or @assignment_due_date&amp;gt;Time.new() %&amp;gt;&lt;br /&gt;
    &amp;lt;br&amp;gt;&amp;lt;i&amp;gt;Will be available once the assignment submission is completed&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;% elsif @assignment_teams==[] %&amp;gt;&lt;br /&gt;
    &amp;lt;br&amp;gt;&amp;lt;i&amp;gt;No sample submissions from current assignment made public yet&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;% else %&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;% @assignment_teams.each do |assignment_team| %&amp;gt;&lt;br /&gt;
          &amp;lt;% if assignment_team.hyperlinks != [] %&amp;gt;&lt;br /&gt;
              &amp;lt;li&amp;gt;&lt;br /&gt;
                &amp;lt;ul&amp;gt;&lt;br /&gt;
                  &amp;lt;h4&amp;gt;Team name : &amp;lt;%=assignment_team.name%&amp;gt;&amp;lt;/h4&amp;gt;&lt;br /&gt;
                  &amp;lt;% assignment_team.hyperlinks.each do |assignment_link| %&amp;gt;&lt;br /&gt;
                      &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;&amp;lt;%=assignment_link%&amp;gt;&amp;quot;&amp;gt;&amp;lt;%=assignment_link%&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;%end%&amp;gt;&lt;br /&gt;
                &amp;lt;/ul&amp;gt;&lt;br /&gt;
              &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;%end%&amp;gt;&lt;br /&gt;
      &amp;lt;% end%&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;hr/&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Displaying sample submissions from a previous assignment chosen by the instructor --&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Submissions made public by instructor:&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;% if @assignment_teams_professor == [] %&amp;gt;&lt;br /&gt;
    &amp;lt;br&amp;gt;&amp;lt;i&amp;gt;No sample submissions from previous assignments made available yet&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;% else %&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;% @assignment_teams_professor.each do |assignment_team| %&amp;gt;&lt;br /&gt;
          &amp;lt;% if assignment_team.hyperlinks != [] %&amp;gt;&lt;br /&gt;
              &amp;lt;ul&amp;gt;&lt;br /&gt;
                &amp;lt;li&amp;gt;&lt;br /&gt;
                  &amp;lt;h4&amp;gt;Team name : &amp;lt;%=assignment_team.name%&amp;gt;&amp;lt;/h4&amp;gt;&lt;br /&gt;
                  &amp;lt;% assignment_team.hyperlinks.each do |assignment_link| %&amp;gt;&lt;br /&gt;
                    &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;&amp;lt;%=assignment_link%&amp;gt;&amp;quot;&amp;gt;&amp;lt;%=assignment_link%&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;%end%&amp;gt;&lt;br /&gt;
                &amp;lt;/li&amp;gt;&lt;br /&gt;
              &amp;lt;/ul&amp;gt;&lt;br /&gt;
          &amp;lt;%end%&amp;gt;&lt;br /&gt;
      &amp;lt;% end%&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a href=&amp;quot;javascript:window.history.back()&amp;quot;&amp;gt;Back&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
5. Make changes to  page student_task/view which would have link to sample submissions for each project.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
  &amp;lt;%= link_to &amp;quot;Sample Submissions&amp;quot;, controller: 'sample_submissions', :action =&amp;gt; 'index', :id =&amp;gt; @assignment.id %&amp;gt;&lt;br /&gt;
    (View sample work submitted by other participants/teams)&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
6. Add drop down in assignments/edit/_general view.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- Adding sample submissions for students to refer to --&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td style='padding:5px'&amp;gt;&amp;lt;%= label_tag('assignment_form[assignment][sample_assignment_id]', 'Sample Assignment:') %&amp;gt;&lt;br /&gt;
      &amp;lt;img src=&amp;quot;/assets/info.png&amp;quot; title='- Select an assignment that students can refer sample submission from.'&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style='padding:5px'&amp;gt;&amp;lt;%= select('assignment_form[assignment]', 'sample_assignment_id', sample_sub_options, :selected =&amp;gt; @assignment_form.assignment.sample_assignment_id) %&amp;gt; &lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
7. Add controller code for the drop down.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   def sample_sub_options&lt;br /&gt;
    assignments = Assignment.all&lt;br /&gt;
    options = []&lt;br /&gt;
    assignments.each do |assignment|&lt;br /&gt;
      course_name = &amp;quot;&amp;quot;&lt;br /&gt;
      if assignment.course_id and assignment.course_id != 0 and !Course.find(assignment.course_id).nil?&lt;br /&gt;
        course_name = Course.find(assignment.course_id).name&lt;br /&gt;
      end&lt;br /&gt;
      options &amp;lt;&amp;lt; [course_name + '- ' + assignment.name, assignment.id]&lt;br /&gt;
    end&lt;br /&gt;
    options.uniq.sort&lt;br /&gt;
    options.unshift(['-----------', nil])&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
8. Add column sample_assignment_id to table assignment.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class AddSampleAssignmentToAssignments &amp;lt; ActiveRecord::Migration&lt;br /&gt;
  def change&lt;br /&gt;
    add_column :assignments, :sample_assignment_id, :integer, index: true&lt;br /&gt;
    add_foreign_key :assignments, :assignments, column: :sample_assignment_id&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
9. Add test scripts for all the functionality.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def create_assignment_team(assignment_name, parent_id)&lt;br /&gt;
  assignment_team = AssignmentTeam.new&lt;br /&gt;
  assignment_team.name = assignment_name&lt;br /&gt;
  assignment_team.parent_id = parent_id&lt;br /&gt;
  assignment_team.save!&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def init_test&lt;br /&gt;
  # create assignment and topic&lt;br /&gt;
  assignment = build(Assignment)&lt;br /&gt;
  course = Course.new&lt;br /&gt;
  course.name = &amp;quot;SampleSubmissionTestCourse&amp;quot;&lt;br /&gt;
  course.save&lt;br /&gt;
  assignment.course_id = course.id&lt;br /&gt;
  assignment.save&lt;br /&gt;
&lt;br /&gt;
  create_assignemnt_team(&amp;quot;ss_assignment_team_1&amp;quot;, assignment.id)&lt;br /&gt;
  create_assignemnt_team(&amp;quot;ss_assignment_team_2&amp;quot;, assignment.id)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def visit_sample_submissions_page&lt;br /&gt;
  visit '/student_task/list'&lt;br /&gt;
  click_on &amp;quot;Example Assignment&amp;quot;&lt;br /&gt;
  click_on &amp;quot;Sample Submissions&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
describe &amp;quot;sample submission test&amp;quot; do&lt;br /&gt;
  before(:each) { init_test }&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;is able to make an assignment public&amp;quot; do&lt;br /&gt;
    visit '/student_task/list'&lt;br /&gt;
    find(:css, &amp;quot;#makeSubPublic[teamid='6050']&amp;quot;).trigger(&amp;quot;click&amp;quot;)&lt;br /&gt;
    click_button 'OK'&lt;br /&gt;
    expect(page).to have_http_status(200)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;should not see current assignment submissions if deadline is not met&amp;quot; do # Set deadline after current time.&lt;br /&gt;
    visit_sample_submissions_page&lt;br /&gt;
    expect(page).to have_content &amp;quot;No sample submissions from current assignment made public yet&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;should see current assignment submissions if deadline is met&amp;quot; do # Set deadline before current time.&lt;br /&gt;
    visit_sample_submissions_page&lt;br /&gt;
    expect(page).to_not have_content &amp;quot;No sample submissions from current assignment made public yet&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;should not see instructor selected submissions if instructor has not selected them&amp;quot; do&lt;br /&gt;
    visit_sample_submissions_page&lt;br /&gt;
    expect(page).to have_content &amp;quot;No sample submissions from previous assignment made available yet&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;should see instructor selected submissions if instructor has selected them&amp;quot; do # Instructor makes submission available.&lt;br /&gt;
    visit_sample_submissions_page&lt;br /&gt;
    expect(page).to_not have_content &amp;quot;No sample submissions from previous assignment made available yet&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sample Submissions View ==&lt;br /&gt;
&lt;br /&gt;
1. The first screenshot of the application is taken when the deadline for the current assignment has not crossed and the instructor also has not given any sample assignment for this assignment.&lt;br /&gt;
&lt;br /&gt;
[[Image:Assignments not made public.PNG]]&lt;br /&gt;
&lt;br /&gt;
2. The second screenshot of the application is taken when the deadline for the current assignment has not crossed but the instructor has selected a sample assignment for viewing against this assignment.&lt;br /&gt;
&lt;br /&gt;
[[Image:Assignment submission date not passed.PNG]]&lt;br /&gt;
&lt;br /&gt;
3. The third screenshot of the application is taken when both the deadline for the current assignment has crossed and the instructor has selected a sample assignment for viewing.&lt;br /&gt;
&lt;br /&gt;
[[Image:Assignments available.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
Many of our changes are reflected on views (user interface). So we build tests with rspec/capybara. Following is the list of tests that conduct:&lt;br /&gt;
&lt;br /&gt;
# it &amp;quot;is able to make an assignment public&amp;quot;&lt;br /&gt;
# it &amp;quot;is able to view sample submissions page&amp;quot;&lt;br /&gt;
# it &amp;quot;should not see current assignment submissions if deadline is not met&amp;quot;&lt;br /&gt;
# it &amp;quot;should see current assignment submissions if deadline is met&amp;quot;&lt;br /&gt;
# it &amp;quot;should not see instructor selected submissions if instructor has not selected them&amp;quot;&lt;br /&gt;
# it &amp;quot;should see instructor selected submissions if instructor has selected them&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def create_assignment_team(assignment_name, parent_id)&lt;br /&gt;
  assignment_team = AssignmentTeam.new&lt;br /&gt;
  assignment_team.name = assignment_name&lt;br /&gt;
  assignment_team.parent_id = parent_id&lt;br /&gt;
  assignment_team.save!&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def init_test&lt;br /&gt;
  # create assignment and topic&lt;br /&gt;
  assignment = build(Assignment)&lt;br /&gt;
  course = Course.new&lt;br /&gt;
  course.name = &amp;quot;SampleSubmissionTestCourse&amp;quot;&lt;br /&gt;
  course.save&lt;br /&gt;
  assignment.course_id = course.id&lt;br /&gt;
  assignment.save&lt;br /&gt;
&lt;br /&gt;
  create_assignemnt_team(&amp;quot;ss_assignment_team_1&amp;quot;, assignment.id)&lt;br /&gt;
  create_assignemnt_team(&amp;quot;ss_assignment_team_2&amp;quot;, assignment.id)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def visit_sample_submissions_page&lt;br /&gt;
  visit '/student_task/list'&lt;br /&gt;
  click_on &amp;quot;Example Assignment&amp;quot;&lt;br /&gt;
  click_on &amp;quot;Sample Submissions&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
describe &amp;quot;sample submission test&amp;quot; do&lt;br /&gt;
  before(:each) { init_test }&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;is able to make an assignment public&amp;quot; do&lt;br /&gt;
    visit '/student_task/list'&lt;br /&gt;
    find(:css, &amp;quot;#makeSubPublic[teamid='6050']&amp;quot;).trigger(&amp;quot;click&amp;quot;)&lt;br /&gt;
    click_button 'OK'&lt;br /&gt;
    expect(page).to have_http_status(200)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;should not see current assignment submissions if deadline is not met&amp;quot; do # Set deadline after current time.&lt;br /&gt;
    visit_sample_submissions_page&lt;br /&gt;
    expect(page).to have_content &amp;quot;No sample submissions from current assignment made public yet&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;should see current assignment submissions if deadline is met&amp;quot; do # Set deadline before current time.&lt;br /&gt;
    visit_sample_submissions_page&lt;br /&gt;
    expect(page).to_not have_content &amp;quot;No sample submissions from current assignment made public yet&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;should not see instructor selected submissions if instructor has not selected them&amp;quot; do&lt;br /&gt;
    visit_sample_submissions_page&lt;br /&gt;
    expect(page).to have_content &amp;quot;No sample submissions from previous assignment made available yet&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  it &amp;quot;should see instructor selected submissions if instructor has selected them&amp;quot; do # Instructor makes submission available.&lt;br /&gt;
    visit_sample_submissions_page&lt;br /&gt;
    expect(page).to_not have_content &amp;quot;No sample submissions from previous assignment made available yet&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Future Scope ==&lt;br /&gt;
# Publishing sample reviews made by students: This feature will require students to allow their review to be published as a sample review. This can then be made available to future students.&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
# link to forked repository [https://github.com/ashiskumar123/expertiza]&lt;br /&gt;
# link to the git pull request [https://github.com/expertiza/expertiza/pull/1169]&lt;br /&gt;
# link to the deployed application [http://ec2-13-59-7-94.us-east-2.compute.amazonaws.com:3000]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# Link to expertiza website: [https://expertiza.ncsu.edu/]&lt;/div&gt;</summary>
		<author><name>Smadhur</name></author>
	</entry>
</feed>