<?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=Apkulka2</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=Apkulka2"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Apkulka2"/>
	<updated>2026-08-19T20:42:16Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki2_4_2q&amp;diff=137840</id>
		<title>CSC/ECE 517 Fall 2007/wiki2 4 2q</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki2_4_2q&amp;diff=137840"/>
		<updated>2021-01-21T20:31:47Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''A Guide to Use Cases on the WEB'''&lt;br /&gt;
&lt;br /&gt;
''Topic :Use cases. There are even more pages on the Web on use cases than on [https://www.codecademy.com/articles/mvc MVC]. If someone wants to learn about them, what should (s)he do? Look at the first few hits in Google? I expect we can do better than that. Write a review of the use-case sites on the Web. Which are best for learning about the concept? Which have the most instructive examples? Which teach advanced concepts that are not apparent in perusing most use-case sites? Read at least several dozen pages before deciding how to organize your overview.'' &lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This page tries to review the use-case sites on the Web which can be useful to best understand the concept. Also a few instructive examples are covered paying attention to the basic use case as well as advanced concepts that are not apparent in perusing most use-case sites.&lt;br /&gt;
 &lt;br /&gt;
=What is a Use Case?=&lt;br /&gt;
&lt;br /&gt;
==Definition==&lt;br /&gt;
&amp;lt;blockquote&amp;gt; &amp;quot;'''''Use case''' is a methodology used in software and systems engineering to understand and identify the functional requirements of a system. Use cases describe the interaction between a primary actor, the initiator of the interaction and the system itself, represented as a sequence of simple steps.''&amp;quot;[1][2]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Simply put, a use case is a description of how a person will interact with the system to achieve a certain goal. It helps to learn if any errors could occur in the process and design features to resolve those errors. &lt;br /&gt;
&lt;br /&gt;
It consists of 3 primary elements:&lt;br /&gt;
* Actor: They are generally the user of the system or an external entity and can be a person or another system itself. A use case can be best described as what happens when the actor is using the system to achieve some goal. &lt;br /&gt;
* System: It describes the process/steps to reach the final outcome.&lt;br /&gt;
* Goal: A goal is an end result which follows the sequence of events as described in the use cases. &lt;br /&gt;
&lt;br /&gt;
Every use case gives a complete list of events which occur from the time the actor starts interacting with the system till the time the final goal is achieved. A use case also records all the possible scenarios that may occur while trying to reach the desired goal. We can think of it as existence of a main course of events that will occur in normal circumstances, to which the exceptional cases are added. Anything that is not relevant to the actor/user is not a part of the use case.&lt;br /&gt;
&lt;br /&gt;
Listed below are a few links to external websites which further illustrate this concept.&lt;br /&gt;
&lt;br /&gt;
* [https://www.ibm.com/developerworks/library/ws-using-oo/ OO design process: Use cases, an introduction]&lt;br /&gt;
* [http://www.cs.uno.edu/~jaime/Courses/4210/useCaseFundamentals.html Use Case Fundamentals]&lt;br /&gt;
&lt;br /&gt;
==UML Diagrams and Use Case Diagrams==&lt;br /&gt;
&amp;lt;blockquote&amp;gt; &amp;quot;''The Use case diagram is used to identify the primary elements and processes that form the system. The primary elements are termed as 'actors' and the processes are called &amp;quot;use cases.&amp;quot; The Use case diagram shows which actors interact with each use case.&amp;quot;''[3]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
UML is a collection of diagrams which visually represents a software or a system. A use case diagram is one of its types. They are useful in providing a pictorial view of the interactions between the users (actors) and sets of events (use cases) associated with the system.They also evolve as the projects or system change with time. The standard elements of a use case diagram makes comprehension easy for anyone trying to understand the use case.&lt;br /&gt;
&lt;br /&gt;
Listed below are useful links in understanding how to draw typical use case diagrams.&lt;br /&gt;
&lt;br /&gt;
* [https://www.smartdraw.com/uml-diagram/ An introduction to UML diagrams &amp;amp; Tutorial] &lt;br /&gt;
* [http://www.developer.com/design/article.php/2109801 Elements of a Use Case Diagram]&lt;br /&gt;
* [https://www.andrew.cmu.edu/course/90-754/umlucdfaq.html Tips and FAQ]&lt;br /&gt;
&lt;br /&gt;
=How to Write a Use Case?=&lt;br /&gt;
&lt;br /&gt;
==Writing Effective Use Cases==&lt;br /&gt;
&lt;br /&gt;
One of the most difficult problem in software development is capturing precisely what you want to build. Inaccurate requirement will end-up with significant delay, rework or even abandonment of the project. Effective applying use case technique helps your team capturing requirements in user point of view which can be easily understood by both the end-user and your team. Use case driven development support subsequent development activities such as analysis and design and testing.&lt;br /&gt;
&lt;br /&gt;
Listed below are useful links in understanding how to write effective use cases.&lt;br /&gt;
* [https://www.usability.gov/how-to-and-tools/methods/use-cases.html How to write a use case (1)]&lt;br /&gt;
* [https://www.wikihow.com/Write-a-Use-Case How to write a use case (2)]&lt;br /&gt;
* [http://www.utm.mx/~caff/doc/OpenUPWeb/openup/guidances/guidelines/detail_ucs_and_scenarios_6BC56BB7.html Efficient way to write use cases]&lt;br /&gt;
* [https://www.visual-paradigm.com/tutorials/writingeffectiveusecase.jsp Drawing use cases using a tool]&lt;br /&gt;
&lt;br /&gt;
=Examples using Use Cases=&lt;br /&gt;
In this section, a few instructive examples have been outlined along with their references which illustrate different ways in which use cases can be written. The first example is a basic use-case template.&lt;br /&gt;
&lt;br /&gt;
===Basic use case template===&lt;br /&gt;
Described below are some the characteristics of a typical use case.&lt;br /&gt;
  '''CHARACTERISTIC INFORMATION'''&lt;br /&gt;
  * ''Goal in Context'':   Buyer issues request directly to our company, expects goods shipped and to be billed.&lt;br /&gt;
  * ''Scope'':  Company&lt;br /&gt;
  * ''Preconditions'':  We know Buyer, their address, etc.&lt;br /&gt;
  * ''Success End Condition'':  Buyer has goods, we have money for the goods.&lt;br /&gt;
  * ''Failed End Condition'':  We have not sent the goods, Buyer has not spent the money.&lt;br /&gt;
  * ''Primary Actor'':  Buyer, any agent (or computer) acting for the customer&lt;br /&gt;
  * ''Trigger'':  purchase request comes in.&lt;br /&gt;
  &lt;br /&gt;
  '''MAIN SUCCESS SCENARIO'''&lt;br /&gt;
  1. Buyer calls in with a purchase request.&lt;br /&gt;
  2. Company captures buyer’s name, address, requested goods, etc.&lt;br /&gt;
  3. Company gives buyer information on goods, prices, delivery dates, etc.&lt;br /&gt;
  4. Buyer signs for order.&lt;br /&gt;
  5. Company creates order, ships order to buyer.&lt;br /&gt;
  6. Company ships invoice to buyer.&lt;br /&gt;
  7. Buyers pays invoice.&lt;br /&gt;
  &lt;br /&gt;
  '''EXTENSIONS'''&lt;br /&gt;
  3a. Company is out of one of the ordered items: &lt;br /&gt;
      3a1. Renegotiate order.&lt;br /&gt;
  4a. Buyer pays directly with credit card:&lt;br /&gt;
      4a1. Take payment by credit card (use case 44)&lt;br /&gt;
  7a. Buyer returns goods:&lt;br /&gt;
      7a. Handle returned goods (use case 105)&lt;br /&gt;
The basic steps that can be followed so as to ensure writing an effective use case has been described well in [https://www.wikihow.com/Write-a-Use-Case How to Write a use case].[4]&lt;br /&gt;
&lt;br /&gt;
===Restaurant===&lt;br /&gt;
This example provides one use case but distinctly provides a step by step analysis of the events that constitute a use case. It mentions the actors, pre-conditions, exceptions and alternative scenarios.&lt;br /&gt;
&lt;br /&gt;
* [http://www.uml-diagrams.org/restaurant-uml-use-case-diagram-example.html Restaurant]&lt;br /&gt;
&lt;br /&gt;
===Purchase order===&lt;br /&gt;
This example provides a typical use case specification by listing the activity, result, constraints and extensions involved with a purchase order from a Finance web page.&lt;br /&gt;
&lt;br /&gt;
* [https://creately.com/diagram/example/ifq4uulr/Purchase%20Order Purchase order System]&lt;br /&gt;
&lt;br /&gt;
===ATM system===&lt;br /&gt;
This example is a little more involved in that it provides a number of use cases associated with using an ATM system including cash withdrawal,&lt;br /&gt;
transfers, deposits, balance inquiry, etc.  &lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.fsu.edu/~baker/swe1/restricted/templates/rr631gv1_stuwrk_withdraw_cash_use-case_spec.pdf ATM System]&lt;br /&gt;
&lt;br /&gt;
===A shopping website order Process===&lt;br /&gt;
This is a very good example that describes the scenarios and extensions involved in writing a use case for a online shopping order. It also describes the UML diagram.  &lt;br /&gt;
&lt;br /&gt;
* [http://www.uml-diagrams.org/examples/online-shopping-use-case-diagram-example.html?context=uc-examples Shopping website order]&lt;br /&gt;
&lt;br /&gt;
===Self Service Machine===&lt;br /&gt;
This example provides typical use cases of a self service machine like supermarket barcode scanners, online banking services, check-in kiosks and so on. Some of the aspects of using a self service machine are: buying a product, re-stocking the machine, collecting the money etc. The following link provides a UML diagram which depicts the interaction between the users and system through the use case of self-service kiosks.&lt;br /&gt;
  &lt;br /&gt;
* [https://creately.com/diagram/example/hy8pucc5/Self-Service%20Kiosk Self Service Machine]&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
* [1] Ivar Jacobson (1992). Object-Oriented Software Engineering. Addison Wesley Professional. ISBN 0-201-54435.&lt;br /&gt;
* [2] [http://en.wikipedia.org/wiki/Use_case Wikipedia Page] Basic definition of Use Case&lt;br /&gt;
* [3] [http://www.developer.com/design/article.php/2109801 Use Case Diagrams]&lt;br /&gt;
* [4] [https://www.wikihow.com/Write-a-Use-Case How to Write a use case]&lt;br /&gt;
&lt;br /&gt;
=External Links=&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.uno.edu/~jaime/Courses/4210/useCaseFundamentals.html Use Case Fundamentals]&lt;br /&gt;
* [http://www.developer.com/design/article.php/2109801 Elements of a Use Case Diagram]&lt;br /&gt;
* [http://www.cs.rug.nl/search/uploads/Teaching/RE2009Fall/paper/1999_Lilly_TOOLS_Use%20Case%20Pitfalls%20Top%2010%20Problems%20from%20Real%20Projects%20Using%20Use%20Cases.pdf Use Case Pitfalls]&lt;br /&gt;
* [https://www.visual-paradigm.com/tutorials/writingeffectiveusecase.jsp Writing effective Use Cases]&lt;br /&gt;
* [https://www.wikihow.com/Write-a-Use-Case How to Write a use case]&lt;br /&gt;
* [http://www.utm.mx/~caff/doc/OpenUPWeb/openup/guidances/guidelines/detail_ucs_and_scenarios_6BC56BB7.html Writing Use Case]&lt;br /&gt;
* [https://www.andrew.cmu.edu/course/90-754/umlucdfaq.html Tips and FAQ]&lt;br /&gt;
* [https://www.codecademy.com/articles/mvc MVC]&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki2_4_2q&amp;diff=137839</id>
		<title>CSC/ECE 517 Fall 2007/wiki2 4 2q</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki2_4_2q&amp;diff=137839"/>
		<updated>2021-01-21T18:30:13Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: /* Self Service Machine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''A Guide to Use Cases on the WEB'''&lt;br /&gt;
&lt;br /&gt;
''Topic :Use cases. There are even more pages on the Web on use cases than on [https://www.codecademy.com/articles/mvc MVC]. If someone wants to learn about them, what should (s)he do? Look at the first few hits in Google? I expect we can do better than that. Write a review of the use-case sites on the Web. Which are best for learning about the concept? Which have the most instructive examples? Which teach advanced concepts that are not apparent in perusing most use-case sites? Read at least several dozen pages before deciding how to organize your overview.'' &lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This page tries to review the use-case sites on the Web which can be useful to best understand the concept. Also a few instructive examples are covered paying attention to the basic use case as well as advanced concepts that are not apparent in perusing most use-case sites.&lt;br /&gt;
 &lt;br /&gt;
=What is a Use Case?=&lt;br /&gt;
&lt;br /&gt;
==Definition==&lt;br /&gt;
&amp;lt;blockquote&amp;gt; &amp;quot;'''''Use case''' is a methodology used in software and systems engineering to understand and identify the functional requirements of a system. Use cases describe the interaction between a primary actor, the initiator of the interaction and the system itself, represented as a sequence of simple steps.''&amp;quot;[1][2]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An actor who can more generally be described as the user of the system, is the external entity and can be a person or another system itself. A use case can be best described as what happens when the actor is using the system to achieve some goal. This goal is nothing but the end result which follows the sequence of events as described in the use cases. &lt;br /&gt;
&lt;br /&gt;
Every use case gives a complete list of events which occur from the time the actor starts interacting with the system till the time the final goal is achieved. A use case also records all the possible scenarios that may occur while trying to reach the desired goal. We can think of it as existence of a main course of events that will occur in normal circumstances, to which the exceptional cases are added. Anything that is not relevant to the actor/user is not a part of the use case.&lt;br /&gt;
&lt;br /&gt;
Listed below are a few links to external websites which further illustrate this concept.&lt;br /&gt;
&lt;br /&gt;
* [https://www.ibm.com/developerworks/library/ws-using-oo/ OO design process: Use cases, an introduction]&lt;br /&gt;
* [http://www.cs.uno.edu/~jaime/Courses/4210/useCaseFundamentals.html Use Case Fundamentals]&lt;br /&gt;
&lt;br /&gt;
==UML Diagrams and Use cases==&lt;br /&gt;
&amp;lt;blockquote&amp;gt; &amp;quot;''The Use case diagram is used to identify the primary elements and processes that form the system. The primary elements are termed as 'actors' and the processes are called &amp;quot;use cases.&amp;quot; The Use case diagram shows which actors interact with each use case.&amp;quot;''[3]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
They are useful in providing a pictorial view of the interactions between the users (actors) and sets of events (use cases) associated with the system.They also evolve as the projects or system change with time. The standard elements of a use case diagram makes comprehension easy for anyone trying to understand the use case.&lt;br /&gt;
&lt;br /&gt;
Listed below are useful links in understanding how to draw typical use case diagrams.&lt;br /&gt;
&lt;br /&gt;
* [https://www.smartdraw.com/uml-diagram/ An introduction to UML diagrams &amp;amp; Tutorial] &lt;br /&gt;
* [http://www.developer.com/design/article.php/2109801 Elements of a Use Case Diagram]&lt;br /&gt;
* [https://www.andrew.cmu.edu/course/90-754/umlucdfaq.html Tips and FAQ]&lt;br /&gt;
&lt;br /&gt;
=Examples using Use Cases=&lt;br /&gt;
In this section, a few instructive examples have been outlined along with their references which illustrate different ways in which use cases can be written. The first example is a basic use-case template.&lt;br /&gt;
&lt;br /&gt;
===Basic use case template===&lt;br /&gt;
Described below are some the characteristics of a typical use case.&lt;br /&gt;
  '''CHARACTERISTIC INFORMATION'''&lt;br /&gt;
  * ''Goal in Context'':   Buyer issues request directly to our company, expects goods shipped and to be billed.&lt;br /&gt;
  * ''Scope'':  Company&lt;br /&gt;
  * ''Preconditions'':  We know Buyer, their address, etc.&lt;br /&gt;
  * ''Success End Condition'':  Buyer has goods, we have money for the goods.&lt;br /&gt;
  * ''Failed End Condition'':  We have not sent the goods, Buyer has not spent the money.&lt;br /&gt;
  * ''Primary Actor'':  Buyer, any agent (or computer) acting for the customer&lt;br /&gt;
  * ''Trigger'':  purchase request comes in.&lt;br /&gt;
  &lt;br /&gt;
  '''MAIN SUCCESS SCENARIO'''&lt;br /&gt;
  1. Buyer calls in with a purchase request.&lt;br /&gt;
  2. Company captures buyer’s name, address, requested goods, etc.&lt;br /&gt;
  3. Company gives buyer information on goods, prices, delivery dates, etc.&lt;br /&gt;
  4. Buyer signs for order.&lt;br /&gt;
  5. Company creates order, ships order to buyer.&lt;br /&gt;
  6. Company ships invoice to buyer.&lt;br /&gt;
  7. Buyers pays invoice.&lt;br /&gt;
  &lt;br /&gt;
  '''EXTENSIONS'''&lt;br /&gt;
  3a. Company is out of one of the ordered items: &lt;br /&gt;
      3a1. Renegotiate order.&lt;br /&gt;
  4a. Buyer pays directly with credit card:&lt;br /&gt;
      4a1. Take payment by credit card (use case 44)&lt;br /&gt;
  7a. Buyer returns goods:&lt;br /&gt;
      7a. Handle returned goods (use case 105)&lt;br /&gt;
The basic steps that can be followed so as to ensure writing an effective use case has been described well in [https://www.wikihow.com/Write-a-Use-Case How to Write a use case].[4]&lt;br /&gt;
&lt;br /&gt;
===Restaurant===&lt;br /&gt;
This example provides one use case but distinctly provides a step by step analysis of the events that constitute a Use Case. It mentions the actors, pre-conditions, Exceptions and Alternative scenarios.&lt;br /&gt;
&lt;br /&gt;
* [http://www.uml-diagrams.org/restaurant-uml-use-case-diagram-example.html Restaurant]&lt;br /&gt;
&lt;br /&gt;
===Purchase order===&lt;br /&gt;
This example provides a typical use case specification by listing the Activity, Result, Constraints and Extensions involved with a purchase order from a Finance web page.&lt;br /&gt;
&lt;br /&gt;
* [https://creately.com/diagram/example/ifq4uulr/Purchase%20Order Purchase order System]&lt;br /&gt;
&lt;br /&gt;
===ATM system===&lt;br /&gt;
This example is a little more involved in that it provides a number of use cases associated with using an ATM system including cash withdrawal,&lt;br /&gt;
transfers, deposits, balance inquiry, etc.  &lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.fsu.edu/~baker/swe1/restricted/templates/rr631gv1_stuwrk_withdraw_cash_use-case_spec.pdf ATM System]&lt;br /&gt;
&lt;br /&gt;
===A shopping website order Process===&lt;br /&gt;
This is a very good example that describes the scenarios and extensions involved in writing a use case for a online shopping order. It also describes the UML diagram.  &lt;br /&gt;
&lt;br /&gt;
* [http://www.uml-diagrams.org/examples/online-shopping-use-case-diagram-example.html?context=uc-examples Shopping website order]&lt;br /&gt;
&lt;br /&gt;
===Self Service Machine===&lt;br /&gt;
This example provides typical use cases of a self service machine like supermarket barcode scanners, online banking services, check-in kiosks and so on. Some of the aspects of using a self service machine are: buying a product, re-stocking the machine, collecting the money etc. The following link provides a UML diagram which depicts the interaction between the users and system through the use case of self-service kiosks.&lt;br /&gt;
  &lt;br /&gt;
* [https://creately.com/diagram/example/hy8pucc5/Self-Service%20Kiosk Self Service Machine]&lt;br /&gt;
&lt;br /&gt;
=How to Write a Use Case?=&lt;br /&gt;
&lt;br /&gt;
==Writing Effective Use Cases==&lt;br /&gt;
&lt;br /&gt;
One of the most difficult problem in software development is capturing precisely what you want to build. Inaccurate requirement will end-up with significant delay, rework or even abandonment of the project. Effective applying use case technique helps your team capturing requirements in user point of view which can be easily understood by both the end-user and your team. Use case driven development support subsequent development activities such as analysis and design and testing.&lt;br /&gt;
&lt;br /&gt;
Listed below are useful links in understanding how to write effective use cases.&lt;br /&gt;
* [https://www.visual-paradigm.com/tutorials/writingeffectiveusecase.jsp Writing Effective Use Cases]&lt;br /&gt;
* [https://www.wikihow.com/Write-a-Use-Case How to Write a use case]&lt;br /&gt;
* [http://www.utm.mx/~caff/doc/OpenUPWeb/openup/guidances/guidelines/detail_ucs_and_scenarios_6BC56BB7.html Writing Use Case]&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
* [1] Ivar Jacobson (1992). Object-Oriented Software Engineering. Addison Wesley Professional. ISBN 0-201-54435.&lt;br /&gt;
* [2] [http://en.wikipedia.org/wiki/Use_case Wikipidea Page] Basic definition of Use Case&lt;br /&gt;
* [3] [http://www.developer.com/design/article.php/2109801 Use Case Diagrams]&lt;br /&gt;
* [4] [https://www.wikihow.com/Write-a-Use-Case How to Write a use case]&lt;br /&gt;
&lt;br /&gt;
=External Links=&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.uno.edu/~jaime/Courses/4210/useCaseFundamentals.html Use Case Fundamentals]&lt;br /&gt;
* [http://www.developer.com/design/article.php/2109801 Elements of a Use Case Diagram]&lt;br /&gt;
* [https://www.visual-paradigm.com/tutorials/writingeffectiveusecase.jsp Writing effective Use Cases]&lt;br /&gt;
* [https://www.wikihow.com/Write-a-Use-Case How to Write a use case]&lt;br /&gt;
* [http://www.utm.mx/~caff/doc/OpenUPWeb/openup/guidances/guidelines/detail_ucs_and_scenarios_6BC56BB7.html Writing Use Case]&lt;br /&gt;
* [https://www.andrew.cmu.edu/course/90-754/umlucdfaq.html Tips and FAQ]&lt;br /&gt;
* [https://www.codecademy.com/articles/mvc MVC]&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129931</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129931"/>
		<updated>2019-12-06T02:42:43Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However, sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development. &lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience. Currently, there exists no method for the instructor/TA to perform reviews of assignments submitted by the students. Hence this is what this project aims at, allowing instructor/TA to perform reviews.&lt;br /&gt;
&lt;br /&gt;
Thus, the primary aim of this project is to allow instructors to submit reviews of student work, using the same review form that students use to do reviews.&lt;br /&gt;
&lt;br /&gt;
=='''Implementation Details''' ==&lt;br /&gt;
Our project aims at enabling the instructor/TA to review the submissions using the same form that a student uses while peer-reviewing. For this, our implementation has been divided into 3 parts, and can be described as follows:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The first part involves the primary functionality of letting the staff perform a review on students submission.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The second part involves allowing the students to identify from their end, which review has been performed by an instructor/TA. This will help students improve their project as the opinions presented by a staff member would be valid.&amp;lt;/li&amp;gt;  &lt;br /&gt;
&amp;lt;li&amp;gt;Thirdly, we implemented an additional feature that allows the instructor/TA to add himself as a participant while creating/editing an Assignment (This way seemed to be more convenient rather than going to the “Add Participant” page and adding themselves as a participant.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Part 1: Allowing instructor/TA to perform review===&lt;br /&gt;
Note 1: “Instructor/TA” will be referred to by “user” here onwards.&lt;br /&gt;
&lt;br /&gt;
Note 2: To be able to perform a review, the user has to be a participant of that assignment. We have implemented “Add as Participant” as an additional feature which is explained in Part 3. If the user is not a participant, he will only see the link to “Assign grade” that too after the assignment deadline passes.&lt;br /&gt;
Now, for each assignment, there is a page called “List Submissions” where the user can view all the submissions. So we have modified this page so that for each team submission a link for “Begin review,” “Edit review,” “View review,” “Update review,” or “Assign grade” may appear depending on the [http://wiki.expertiza.ncsu.edu/index.php/Deadline_types stage] in which the assignment is. &lt;br /&gt;
&lt;br /&gt;
The following describes the flow of our project considering a fresh assignment.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the assignment is created, it is by default is in the “submission” stage. Hence the user will not see any link on the list submission page.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the first deadline passes, the assignment goes into the “review” stage. Hence the link “Begin review” will be visible for each team submission, where the instructor/TA can click on to submit the review. Two cases can occur here:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “submits” a review, they will be redirected to the list submission page where they’ll see the option “View review” or “Update review.” Being an instructor/TA, they are given the flexibility to update their review at any time during the “review” stage.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “saves” a review, they will be redirected to the list submission page where they’ll see the option “View review” and “Edit Review (as they have not submitted it yet.)”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;After the first review is over, if more stages of “submissions” and “reviews” exist, it will follow the above 2 steps until the final assignment deadline does not pass. Note that at any round of the review, the user can “Begin review” for a submission which they had not reviewed in the previous rounds. This is to provide flexibility to them as per the requirement.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally, after the assignment deadline passes, the assignment goes into the “Finished” stage. This is when the “Assign grade” link will be visible to the user. Along with this, depending on whether they have reviewed a particular submission or not, the begin, view, update links will be visible to them as they should be able to perform the review even after the assignment deadline for the students has passed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Files Edited&amp;lt;/b&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
The following are the files (controllers and views) edited for the implementation of the review process. The comments are given along with the code to explain what is being done.&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Controller: ''' ''app/controllers/response_controller.rb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    # Ensuring recent submission is not nil&lt;br /&gt;
    team_most_recent_submission = AssignmentTeam.find(@map.reviewee_id).most_recent_submission      &lt;br /&gt;
    if @response.nil? || (!team_most_recent_submission.nil? &amp;amp;&amp;amp; team_most_recent_submission.updated_at &amp;gt; @response.updated_at)&lt;br /&gt;
    ...&lt;br /&gt;
    # Page should be directed to list_submissions if TA/instructor performs the review&lt;br /&gt;
    when &amp;quot;ta_review&amp;quot;      &lt;br /&gt;
      redirect_to controller: 'assignments', action: 'list_submissions', id: @map.response_map.assignment.id&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Controller: ''' ''app/helpers/assignment_helper.rb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    topic_id = topic.try :id&lt;br /&gt;
    ...&lt;br /&gt;
    # Needed topic ID for review implpementation, so added it to return list of the function&lt;br /&gt;
    [topic_id, topic_identifier ||= &amp;quot;&amp;quot;, topic_name ||= &amp;quot;&amp;quot;, users_for_curr_team, participants]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''View: ''' ''app/views/assignments/list_submissions.html.erb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    # Retrieved topic ID for review implpementation&lt;br /&gt;
    &amp;lt;% topic_id, topic_identifier, topic_name, users_for_curr_team, participants = get_data_for_list_submissions(team) %&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
    &amp;lt;!-- Display &amp;quot;Assign Grade&amp;quot; link after final deadline of assignment has passed --&amp;gt;&lt;br /&gt;
    &amp;lt;% if @assignment.get_current_stage() == &amp;quot;Finished&amp;quot; %&amp;gt;&lt;br /&gt;
      &amp;lt;%= link_to 'Assign Grade', { controller: 'grades', action: 'view_team', id: participants.first.id}, target: '_blank' %&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
    &amp;lt;% end %&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Checking if logged in user (instructor/TA) is participant in assignment --&amp;gt;&lt;br /&gt;
    &amp;lt;% reviewer = Participant.find_by(:parent_id =&amp;gt; @assignment.id, :user_id =&amp;gt; session[:user].id)%&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Reviewing options are available only to &amp;quot;participants&amp;quot; of assignment --&amp;gt;&lt;br /&gt;
    &amp;lt;!-- So only if reviewer is not nil, following applicable links will be displayed --&amp;gt;&lt;br /&gt;
    &amp;lt;% if !reviewer.nil? %&amp;gt;&lt;br /&gt;
      &amp;lt;!-- Checking if instructor/TA has been mapped to current team --&amp;gt;&lt;br /&gt;
      &amp;lt;% @mapping = ReviewResponseMap.find_by(:reviewed_object_id =&amp;gt; @assignment.id, :reviewer_id =&amp;gt; reviewer.id, :reviewee_id =&amp;gt; team.id) %&amp;gt;&lt;br /&gt;
      &amp;lt;!-- If mapping is nil, a response cannot be created. So user should be able to &amp;quot;Begin Review&amp;quot; during any review stage, or after deadline has passed --&amp;gt;&lt;br /&gt;
      &amp;lt;% if @mapping.nil? &amp;amp;&amp;amp; (@assignment.get_current_stage() == &amp;quot;review&amp;quot; || @assignment.get_current_stage() == &amp;quot;Finished&amp;quot;)  %&amp;gt;&lt;br /&gt;
        &amp;lt;% ReviewResponseMap.create(reviewee_id: team.id, reviewer_id: reviewer.id, reviewed_object_id: @assignment.id) %&amp;gt;&lt;br /&gt;
        &amp;lt;% map = ReviewResponseMap.find_by(reviewee_id: team.id, reviewer_id: reviewer.id, reviewed_object_id: @assignment.id) %&amp;gt;&lt;br /&gt;
        &amp;lt;%= link_to 'Begin Review', { controller: 'response', action: 'new', :id =&amp;gt; map.id, :return =&amp;gt; &amp;quot;ta_review&amp;quot; } %&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Any time during review or after deadline, user is given the flexibility to begin, edit or update their review --&amp;gt;&lt;br /&gt;
      &amp;lt;% elsif @assignment.get_current_stage() == &amp;quot;review&amp;quot; ||  @assignment.get_current_stage() == &amp;quot;Finished&amp;quot; %&amp;gt;&lt;br /&gt;
        &amp;lt;% map1 = ReviewResponseMap.find_by(reviewee_id: team.id, reviewer_id: reviewer.id, reviewed_object_id: @assignment.id) %&amp;gt;&lt;br /&gt;
        &amp;lt;% @sorted_responses = Array.new %&amp;gt;&lt;br /&gt;
        &amp;lt;% @sorted_responses = Response.where(:map_id =&amp;gt; map1.id) %&amp;gt;&lt;br /&gt;
        &amp;lt;!-- This means that mapping is created, but user never began the review. Hence linking to &amp;quot;Begin Review&amp;quot; --&amp;gt;&lt;br /&gt;
        &amp;lt;% if @sorted_responses.empty?%&amp;gt;&lt;br /&gt;
          &amp;lt;%= link_to 'Begin Review', { controller: 'response', action: 'new', :id =&amp;gt; map1.id, :return =&amp;gt; &amp;quot;ta_review&amp;quot; } %&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
        &amp;lt;% else %&amp;gt;&lt;br /&gt;
          &amp;lt;!-- There is at least more than one response. Hence we obtain latest response of them all. --&amp;gt;&lt;br /&gt;
          &amp;lt;% @sorted_responses = @sorted_responses.sort_by {|obj| obj.updated_at} # the latest should be at the last %&amp;gt;&lt;br /&gt;
          &amp;lt;% @latest_response = @sorted_responses.last %&amp;gt;&lt;br /&gt;
          &amp;lt;%if @latest_response.round.nil?%&amp;gt;        &amp;lt;!-- Getting current round as last response round in unavailable --&amp;gt;&lt;br /&gt;
            &amp;lt;% last_response_round = AssignmentDueDate.done_in_assignment_round(@assignment.id, @latest_response) %&amp;gt;&lt;br /&gt;
          &amp;lt;%else%&amp;gt;                                  &amp;lt;!-- Getting round in which the last response was given --&amp;gt;&lt;br /&gt;
            &amp;lt;% last_response_round = @latest_response.round %&amp;gt;&lt;br /&gt;
          &amp;lt;%end%&amp;gt;&lt;br /&gt;
          &amp;lt;% current_round = @assignment.number_of_current_round(topic_id) %&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Always displaying &amp;quot;View Review&amp;quot; link for latest response, as long as at least one response exists --&amp;gt;&lt;br /&gt;
          &amp;lt;%= link_to &amp;quot;View Review&amp;quot;, {:controller =&amp;gt; 'response', :action =&amp;gt; 'view', :id =&amp;gt; @latest_response.id} %&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
          &amp;lt;% if last_response_round == current_round %&amp;gt;&lt;br /&gt;
            &amp;lt;% latest_submission = team.most_recent_submission %&amp;gt;&lt;br /&gt;
            &amp;lt;% if !@latest_response.is_submitted %&amp;gt;               &amp;lt;!-- Allow to &amp;quot;Edit&amp;quot; review which has not been submitted yet --&amp;gt;&lt;br /&gt;
              &amp;lt;%= link_to &amp;quot;Edit Review&amp;quot;, {:controller =&amp;gt; 'response', :action =&amp;gt; 'edit', :id =&amp;gt; @latest_response.id, :return =&amp;gt; &amp;quot;ta_review&amp;quot; } %&amp;gt;&lt;br /&gt;
            &amp;lt;% else %&amp;gt;                                            &amp;lt;!-- Allow to &amp;quot;Update&amp;quot; review if team has updated their submission --&amp;gt;&lt;br /&gt;
              &amp;lt;%= link_to &amp;quot;Update Review&amp;quot;, {:controller =&amp;gt; 'response', :action =&amp;gt; 'new', :id =&amp;gt; map1.id, :return =&amp;gt; &amp;quot;ta_review&amp;quot; } %&amp;gt;&lt;br /&gt;
            &amp;lt;%end%&amp;gt;&lt;br /&gt;
          &amp;lt;% else %&amp;gt;                                              &amp;lt;!-- Allow to &amp;quot;Update&amp;quot; review when round changes --&amp;gt;&lt;br /&gt;
            &amp;lt;%= link_to &amp;quot;Update Review&amp;quot;, {:controller =&amp;gt; 'response', :action =&amp;gt; 'new', :id =&amp;gt; map1.id, :return =&amp;gt; &amp;quot;ta_review&amp;quot; } %&amp;gt;&lt;br /&gt;
          &amp;lt;% end %&amp;gt;&lt;br /&gt;
        &amp;lt;% end %&amp;gt;&lt;br /&gt;
      &amp;lt;% end %&amp;gt;&lt;br /&gt;
    &amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''View: ''' ''app/views/grades/view_team.html.erb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;!--Obtain topic name and topic_id from assignment helper--&amp;gt;&lt;br /&gt;
    &amp;lt;% topic_id_num, topic_id, topic_name, users_for_curr_team, participants = get_data_for_list_submissions(@team) %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''View: ''' ''app/views/student_review/_responses.html.erb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    # Ensuring recent submission is not nil&lt;br /&gt;
    &amp;lt;% elsif !latest_submission.nil? &amp;amp;&amp;amp; @latest_response.updated_at &amp;lt; latest_submission.updated_at %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Part 2: Allow students to identify that their submission has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file &amp;lt;b&amp;gt;app/assets/stylesheets/grades.scss&amp;lt;/b&amp;gt; to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Part 3: Add instructor/TA as a participant while creating the assignment (Extra Feature) ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Current scenario''' &amp;lt;br&amp;gt;&lt;br /&gt;
The instructor/TA will be able to perform student reviews (after implementation of Part 1) for the assignment, only when he is a participant of the same assignment. Thus, every time he creates an assignment and wants to add himself as a participant in order to perform student reviews, he is supposed to do the following &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Go to list of assignments -&amp;gt; Find the required assignment -&amp;gt; Click on add participant -&amp;gt; Type user Id -&amp;gt; Click on add&lt;br /&gt;
The same flow is as shown below where the instructor/TA has created a new assignment say “Program 1 Github” wherein he wants himself as a participant to be able to perform student reviews :&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Addinstructor1.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AddInstructor2.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Add Instructor 3.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To overcome the hassle, we added a check box through which the instructor/TA will get an option to add himself as a participant while creating the assignment. Also, he will be able to add/remove himself as a participant while editing the assignment. &lt;br /&gt;
&lt;br /&gt;
'''Implementation''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The checkbox has been provided to Create New Assignment’s page under the Review strategy tab.&lt;br /&gt;
It is added as follows: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Add instructor 4.png]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the instructor/TA selects the box while creating the assignment, then he will be added as a participant for the same assignment. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Files edited: &lt;br /&gt;
&lt;br /&gt;
* '''View: ''' ''app/views/assignments/edit/_review_strategy.html.erb'' &amp;lt;br&amp;gt;&lt;br /&gt;
In this file, code for displaying the checkbox has been added which is as follows : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;input name='add_instructor' type=&amp;quot;hidden&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;%= check_box_tag('add_instructor', value = &amp;quot;1&amp;quot;, checked = is_instructor_a_participant?)%&amp;gt;&lt;br /&gt;
      &amp;lt;%= label_tag('add_instructor', 'Add yourself as a participant?') %&amp;gt;&lt;br /&gt;
      &amp;lt;img src=&amp;quot;/assets/info.png&amp;quot; title='If you add yourself as a participant then you will be able to perform reviews of students for this assignment'&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;
&lt;br /&gt;
Thus the checkbox &amp;quot;add_instructor&amp;quot; if selected adds the instructor as a participant to the currently being created assignment. Thus, instructor being a participant allows him to perform reviews for the students for this assignment.&lt;br /&gt;
&lt;br /&gt;
* '''Controller: ''' ''app/controllers/assignments_controller.rb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The file contains extra code which adds the instructor/TA as a participant if the checkbox has been selected while creating the assignment. Also, while editing the assignment, he will be able to add/remove himself as a participant for this assignment. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following methods are added to the controller :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 def is_instructor_a_participant?&lt;br /&gt;
    instructor_id = session[:user].id&lt;br /&gt;
    assignment_id = @assignment_form.assignment.id.to_s&lt;br /&gt;
&lt;br /&gt;
    if assignment_id != nil&lt;br /&gt;
      @is_instructor_a_participant = Participant.where(user_id: instructor_id , parent_id: assignment_id)&lt;br /&gt;
      if @is_instructor_a_participant.present?&lt;br /&gt;
        return true&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    return false&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
The method &amp;quot;is_instructor_a_participant?&amp;quot; returns true if the instructor is already a participant for the assignment, else returns false. This method is required to verify that the instructor/TA is not a participant of the assignment, and thus he can be added as a participant if the checkbox has been selected. Also, during editing the assignment, we need to show checkbox being selected if the instructor is a participant and vice versa. Thus, this method serves that purpose as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def add_instructor_as_participant(assignment_id)&lt;br /&gt;
    if params[:add_instructor] == 'false' and is_instructor_a_participant? == true&lt;br /&gt;
      delete_instructor_as_participant(assignment_id,session[:user].id)&lt;br /&gt;
    elsif params[:add_instructor] == '1' and is_instructor_a_participant? == false&lt;br /&gt;
      current_assignment = Object.const_get(&amp;quot;Assignment&amp;quot;).find(assignment_id)&lt;br /&gt;
      current_assignment.add_participant(session[:user].name, true, true, true)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The method &amp;quot;add_instructor_as_participant&amp;quot; is been called from create and update methods in the Assignment controller. It checks if the &amp;quot;Add yourself as participant&amp;quot; checkbox is selected for the currently created/edited assignment. If it is selected during creation or editing, then the instructor is added as a participant to the currently created/edited assignment. The participant is added by using the already existing method &amp;quot;add_participant&amp;quot; in the model assignment.rb Also, if the option is unchecked during editing, then the instructor is removed as a participant.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def delete_instructor_as_participant(assignment_id , instructor_id)&lt;br /&gt;
    Participant.where(user_id: instructor_id , parent_id: assignment_id).destroy_all&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The method &amp;quot;delete_instructor_as_participant&amp;quot; removes instructor as a participant for the assignment when the checkbox is unchecked during the editing of the assignment.&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
The following activity diagram summarizes our proposed implementation for the above mentioned issue:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Testing''' ==&lt;br /&gt;
=== UI Testing ===&lt;br /&gt;
==== Part 1: Allowing instructor/TA to perform review ====&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Login in as an instructor. &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Username: instructor6&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Password: password&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt; &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Choose any assignment from the list of assignments which involves teams; since an assignment without teams does not include the review procedure. For example, “Final project (design and doc)” is a good assignment to choose.&lt;br /&gt;
&amp;lt;li&amp;gt;Now, while testing this functionality, it is recommended to keep the following pages opened in different tabs by clicking on the small icons in the same row as the assignment that you want to test: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a. “Edit” -&amp;gt; “Due Dates” tab &lt;br /&gt;
[[File:edit_assignment.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
b. “Add participants”&lt;br /&gt;
[[File:add_as_participant.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
c. “View Submissions” 	&lt;br /&gt;
[[File:list_submissions.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now add the instructor as a participant (3.b). and edit the ALL due dates (3.a.) of different stages to any date later from now (hence the assignment goes into the “submission” stage by default). Save both these changes. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now refresh the view submissions page (3.c.), you will see a list of assignments with no link to review or assign grade.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now switch to edit due dates tab (3.a.) again. Set the due date for submission to a previous date which has passed, hence the next due date will be for the “review” stage by default (which will have a later due date from now.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Refresh view submissions page (3.c.), you will see a list of assignments with a link to “Begin Review.”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can click on it. If you “save” your response, you will see that the link has been replace by “View review” and “Edit review” now. Whereas, if you “submit” the response, the link will be replaced by “View review” and “Update review.”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Depending on the number of stages that an assignment has, you can edit the due date at every stage and check whether the links are displayed appropriately.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally when the last deadline of the assignment is set to a previous date which has passed, you will see the link to “Assign grade” in view submissions (3.c.), and the user will still be able to begin, edit or update a review in order to provide flexibility as per the requirements.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Edge Cases:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user is not a participant of the current assignment, they are shown a list of all submissions made by all teams of the current assignment. They are shown the link to “Assign Grade” only when the final deadline of the assignment passes.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;During any review stage or even after the deadline, the user is offered the flexibility to Begin, Edit, View or Update their review.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Part 3: Add instructor/TA as a participant while creating the assignment===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Login in as an instructor. &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Username: instructor6&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Password: password&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt; &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Team Members''' ==&lt;br /&gt;
Mentor: Prof. Edward Gehringer (efg@ncsu.edu)&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anuja Kulkarni - apkulka2@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mark Trawick - mtrawic@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Parvathy Menon - pharida@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Samruddhi Khandale - sskhanda@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129930</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129930"/>
		<updated>2019-12-06T02:42:08Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However, sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development. &lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience. Currently, there exists no method for the instructor/TA to perform reviews of assignments submitted by the students. Hence this is what this project aims at, allowing instructor/TA to perform reviews.&lt;br /&gt;
&lt;br /&gt;
Thus, the primary aim of this project is to allow instructors to submit reviews of student work, using the same review form that students use to do reviews.&lt;br /&gt;
&lt;br /&gt;
=='''Implementation Details''' ==&lt;br /&gt;
Our project aims at enabling the instructor/TA to review the submissions using the same form that a student uses while peer-reviewing. For this, our implementation has been divided into 3 parts, and can be described as follows:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The first part involves the primary functionality of letting the staff perform a review on students submission.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The second part involves allowing the students to identify from their end, which review has been performed by an instructor/TA. This will help students improve their project as the opinions presented by a staff member would be valid.&amp;lt;/li&amp;gt;  &lt;br /&gt;
&amp;lt;li&amp;gt;Thirdly, we implemented an additional feature that allows the instructor/TA to add himself as a participant while creating/editing an Assignment (This way seemed to be more convenient rather than going to the “Add Participant” page and adding themselves as a participant.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Part 1: Allowing instructor/TA to perform review===&lt;br /&gt;
Note 1: “Instructor/TA” will be referred to by “user” here onwards.&lt;br /&gt;
&lt;br /&gt;
Note 2: To be able to perform a review, the user has to be a participant of that assignment. We have implemented “Add as Participant” as an additional feature which is explained in Part 3. If the user is not a participant, he will only see the link to “Assign grade” that too after the assignment deadline passes.&lt;br /&gt;
Now, for each assignment, there is a page called “List Submissions” where the user can view all the submissions. So we have modified this page so that for each team submission a link for “Begin review,” “Edit review,” “View review,” “Update review,” or “Assign grade” may appear depending on the [http://wiki.expertiza.ncsu.edu/index.php/Deadline_types stage] in which the assignment is. &lt;br /&gt;
&lt;br /&gt;
The following describes the flow of our project considering a fresh assignment.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the assignment is created, it is by default is in the “submission” stage. Hence the user will not see any link on the list submission page.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the first deadline passes, the assignment goes into the “review” stage. Hence the link “Begin review” will be visible for each team submission, where the instructor/TA can click on to submit the review. Two cases can occur here:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “submits” a review, they will be redirected to the list submission page where they’ll see the option “View review” or “Update review.” Being an instructor/TA, they are given the flexibility to update their review at any time during the “review” stage.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “saves” a review, they will be redirected to the list submission page where they’ll see the option “View review” and “Edit Review (as they have not submitted it yet.)”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;After the first review is over, if more stages of “submissions” and “reviews” exist, it will follow the above 2 steps until the final assignment deadline does not pass. Note that at any round of the review, the user can “Begin review” for a submission which they had not reviewed in the previous rounds. This is to provide flexibility to them as per the requirement.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally, after the assignment deadline passes, the assignment goes into the “Finished” stage. This is when the “Assign grade” link will be visible to the user. Along with this, depending on whether they have reviewed a particular submission or not, the begin, view, update links will be visible to them as they should be able to perform the review even after the assignment deadline for the students has passed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Files Edited&amp;lt;/b&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
The following are the files (controllers and views) edited for the review process. The comments are given along with the code to explain what is begin done.&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Controller: ''' ''app/controllers/response_controller.rb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    # Ensuring recent submission is not nil&lt;br /&gt;
    team_most_recent_submission = AssignmentTeam.find(@map.reviewee_id).most_recent_submission      &lt;br /&gt;
    if @response.nil? || (!team_most_recent_submission.nil? &amp;amp;&amp;amp; team_most_recent_submission.updated_at &amp;gt; @response.updated_at)&lt;br /&gt;
    ...&lt;br /&gt;
    # Page should be directed to list_submissions if TA/instructor performs the review&lt;br /&gt;
    when &amp;quot;ta_review&amp;quot;      &lt;br /&gt;
      redirect_to controller: 'assignments', action: 'list_submissions', id: @map.response_map.assignment.id&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Controller: ''' ''app/helpers/assignment_helper.rb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    topic_id = topic.try :id&lt;br /&gt;
    ...&lt;br /&gt;
    # Needed topic ID for review implpementation, so added it to return list of the function&lt;br /&gt;
    [topic_id, topic_identifier ||= &amp;quot;&amp;quot;, topic_name ||= &amp;quot;&amp;quot;, users_for_curr_team, participants]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''View: ''' ''app/views/assignments/list_submissions.html.erb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    # Retrieved topic ID for review implpementation&lt;br /&gt;
    &amp;lt;% topic_id, topic_identifier, topic_name, users_for_curr_team, participants = get_data_for_list_submissions(team) %&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
    &amp;lt;!-- Display &amp;quot;Assign Grade&amp;quot; link after final deadline of assignment has passed --&amp;gt;&lt;br /&gt;
    &amp;lt;% if @assignment.get_current_stage() == &amp;quot;Finished&amp;quot; %&amp;gt;&lt;br /&gt;
      &amp;lt;%= link_to 'Assign Grade', { controller: 'grades', action: 'view_team', id: participants.first.id}, target: '_blank' %&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
    &amp;lt;% end %&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Checking if logged in user (instructor/TA) is participant in assignment --&amp;gt;&lt;br /&gt;
    &amp;lt;% reviewer = Participant.find_by(:parent_id =&amp;gt; @assignment.id, :user_id =&amp;gt; session[:user].id)%&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Reviewing options are available only to &amp;quot;participants&amp;quot; of assignment --&amp;gt;&lt;br /&gt;
    &amp;lt;!-- So only if reviewer is not nil, following applicable links will be displayed --&amp;gt;&lt;br /&gt;
    &amp;lt;% if !reviewer.nil? %&amp;gt;&lt;br /&gt;
      &amp;lt;!-- Checking if instructor/TA has been mapped to current team --&amp;gt;&lt;br /&gt;
      &amp;lt;% @mapping = ReviewResponseMap.find_by(:reviewed_object_id =&amp;gt; @assignment.id, :reviewer_id =&amp;gt; reviewer.id, :reviewee_id =&amp;gt; team.id) %&amp;gt;&lt;br /&gt;
      &amp;lt;!-- If mapping is nil, a response cannot be created. So user should be able to &amp;quot;Begin Review&amp;quot; during any review stage, or after deadline has passed --&amp;gt;&lt;br /&gt;
      &amp;lt;% if @mapping.nil? &amp;amp;&amp;amp; (@assignment.get_current_stage() == &amp;quot;review&amp;quot; || @assignment.get_current_stage() == &amp;quot;Finished&amp;quot;)  %&amp;gt;&lt;br /&gt;
        &amp;lt;% ReviewResponseMap.create(reviewee_id: team.id, reviewer_id: reviewer.id, reviewed_object_id: @assignment.id) %&amp;gt;&lt;br /&gt;
        &amp;lt;% map = ReviewResponseMap.find_by(reviewee_id: team.id, reviewer_id: reviewer.id, reviewed_object_id: @assignment.id) %&amp;gt;&lt;br /&gt;
        &amp;lt;%= link_to 'Begin Review', { controller: 'response', action: 'new', :id =&amp;gt; map.id, :return =&amp;gt; &amp;quot;ta_review&amp;quot; } %&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Any time during review or after deadline, user is given the flexibility to begin, edit or update their review --&amp;gt;&lt;br /&gt;
      &amp;lt;% elsif @assignment.get_current_stage() == &amp;quot;review&amp;quot; ||  @assignment.get_current_stage() == &amp;quot;Finished&amp;quot; %&amp;gt;&lt;br /&gt;
        &amp;lt;% map1 = ReviewResponseMap.find_by(reviewee_id: team.id, reviewer_id: reviewer.id, reviewed_object_id: @assignment.id) %&amp;gt;&lt;br /&gt;
        &amp;lt;% @sorted_responses = Array.new %&amp;gt;&lt;br /&gt;
        &amp;lt;% @sorted_responses = Response.where(:map_id =&amp;gt; map1.id) %&amp;gt;&lt;br /&gt;
        &amp;lt;!-- This means that mapping is created, but user never began the review. Hence linking to &amp;quot;Begin Review&amp;quot; --&amp;gt;&lt;br /&gt;
        &amp;lt;% if @sorted_responses.empty?%&amp;gt;&lt;br /&gt;
          &amp;lt;%= link_to 'Begin Review', { controller: 'response', action: 'new', :id =&amp;gt; map1.id, :return =&amp;gt; &amp;quot;ta_review&amp;quot; } %&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
        &amp;lt;% else %&amp;gt;&lt;br /&gt;
          &amp;lt;!-- There is at least more than one response. Hence we obtain latest response of them all. --&amp;gt;&lt;br /&gt;
          &amp;lt;% @sorted_responses = @sorted_responses.sort_by {|obj| obj.updated_at} # the latest should be at the last %&amp;gt;&lt;br /&gt;
          &amp;lt;% @latest_response = @sorted_responses.last %&amp;gt;&lt;br /&gt;
          &amp;lt;%if @latest_response.round.nil?%&amp;gt;        &amp;lt;!-- Getting current round as last response round in unavailable --&amp;gt;&lt;br /&gt;
            &amp;lt;% last_response_round = AssignmentDueDate.done_in_assignment_round(@assignment.id, @latest_response) %&amp;gt;&lt;br /&gt;
          &amp;lt;%else%&amp;gt;                                  &amp;lt;!-- Getting round in which the last response was given --&amp;gt;&lt;br /&gt;
            &amp;lt;% last_response_round = @latest_response.round %&amp;gt;&lt;br /&gt;
          &amp;lt;%end%&amp;gt;&lt;br /&gt;
          &amp;lt;% current_round = @assignment.number_of_current_round(topic_id) %&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Always displaying &amp;quot;View Review&amp;quot; link for latest response, as long as at least one response exists --&amp;gt;&lt;br /&gt;
          &amp;lt;%= link_to &amp;quot;View Review&amp;quot;, {:controller =&amp;gt; 'response', :action =&amp;gt; 'view', :id =&amp;gt; @latest_response.id} %&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
          &amp;lt;% if last_response_round == current_round %&amp;gt;&lt;br /&gt;
            &amp;lt;% latest_submission = team.most_recent_submission %&amp;gt;&lt;br /&gt;
            &amp;lt;% if !@latest_response.is_submitted %&amp;gt;               &amp;lt;!-- Allow to &amp;quot;Edit&amp;quot; review which has not been submitted yet --&amp;gt;&lt;br /&gt;
              &amp;lt;%= link_to &amp;quot;Edit Review&amp;quot;, {:controller =&amp;gt; 'response', :action =&amp;gt; 'edit', :id =&amp;gt; @latest_response.id, :return =&amp;gt; &amp;quot;ta_review&amp;quot; } %&amp;gt;&lt;br /&gt;
            &amp;lt;% else %&amp;gt;                                            &amp;lt;!-- Allow to &amp;quot;Update&amp;quot; review if team has updated their submission --&amp;gt;&lt;br /&gt;
              &amp;lt;%= link_to &amp;quot;Update Review&amp;quot;, {:controller =&amp;gt; 'response', :action =&amp;gt; 'new', :id =&amp;gt; map1.id, :return =&amp;gt; &amp;quot;ta_review&amp;quot; } %&amp;gt;&lt;br /&gt;
            &amp;lt;%end%&amp;gt;&lt;br /&gt;
          &amp;lt;% else %&amp;gt;                                              &amp;lt;!-- Allow to &amp;quot;Update&amp;quot; review when round changes --&amp;gt;&lt;br /&gt;
            &amp;lt;%= link_to &amp;quot;Update Review&amp;quot;, {:controller =&amp;gt; 'response', :action =&amp;gt; 'new', :id =&amp;gt; map1.id, :return =&amp;gt; &amp;quot;ta_review&amp;quot; } %&amp;gt;&lt;br /&gt;
          &amp;lt;% end %&amp;gt;&lt;br /&gt;
        &amp;lt;% end %&amp;gt;&lt;br /&gt;
      &amp;lt;% end %&amp;gt;&lt;br /&gt;
    &amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''View: ''' ''app/views/grades/view_team.html.erb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;!--Obtain topic name and topic_id from assignment helper--&amp;gt;&lt;br /&gt;
    &amp;lt;% topic_id_num, topic_id, topic_name, users_for_curr_team, participants = get_data_for_list_submissions(@team) %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''View: ''' ''app/views/student_review/_responses.html.erb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    # Ensuring recent submission is not nil&lt;br /&gt;
    &amp;lt;% elsif !latest_submission.nil? &amp;amp;&amp;amp; @latest_response.updated_at &amp;lt; latest_submission.updated_at %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Part 2: Allow students to identify that their submission has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file &amp;lt;b&amp;gt;app/assets/stylesheets/grades.scss&amp;lt;/b&amp;gt; to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Part 3: Add instructor/TA as a participant while creating the assignment (Extra Feature) ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Current scenario''' &amp;lt;br&amp;gt;&lt;br /&gt;
The instructor/TA will be able to perform student reviews (after implementation of Part 1) for the assignment, only when he is a participant of the same assignment. Thus, every time he creates an assignment and wants to add himself as a participant in order to perform student reviews, he is supposed to do the following &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Go to list of assignments -&amp;gt; Find the required assignment -&amp;gt; Click on add participant -&amp;gt; Type user Id -&amp;gt; Click on add&lt;br /&gt;
The same flow is as shown below where the instructor/TA has created a new assignment say “Program 1 Github” wherein he wants himself as a participant to be able to perform student reviews :&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Addinstructor1.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AddInstructor2.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Add Instructor 3.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To overcome the hassle, we added a check box through which the instructor/TA will get an option to add himself as a participant while creating the assignment. Also, he will be able to add/remove himself as a participant while editing the assignment. &lt;br /&gt;
&lt;br /&gt;
'''Implementation''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The checkbox has been provided to Create New Assignment’s page under the Review strategy tab.&lt;br /&gt;
It is added as follows: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Add instructor 4.png]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the instructor/TA selects the box while creating the assignment, then he will be added as a participant for the same assignment. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Files edited: &lt;br /&gt;
&lt;br /&gt;
* '''View: ''' ''app/views/assignments/edit/_review_strategy.html.erb'' &amp;lt;br&amp;gt;&lt;br /&gt;
In this file, code for displaying the checkbox has been added which is as follows : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;input name='add_instructor' type=&amp;quot;hidden&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;%= check_box_tag('add_instructor', value = &amp;quot;1&amp;quot;, checked = is_instructor_a_participant?)%&amp;gt;&lt;br /&gt;
      &amp;lt;%= label_tag('add_instructor', 'Add yourself as a participant?') %&amp;gt;&lt;br /&gt;
      &amp;lt;img src=&amp;quot;/assets/info.png&amp;quot; title='If you add yourself as a participant then you will be able to perform reviews of students for this assignment'&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;
&lt;br /&gt;
Thus the checkbox &amp;quot;add_instructor&amp;quot; if selected adds the instructor as a participant to the currently being created assignment. Thus, instructor being a participant allows him to perform reviews for the students for this assignment.&lt;br /&gt;
&lt;br /&gt;
* '''Controller: ''' ''app/controllers/assignments_controller.rb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The file contains extra code which adds the instructor/TA as a participant if the checkbox has been selected while creating the assignment. Also, while editing the assignment, he will be able to add/remove himself as a participant for this assignment. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following methods are added to the controller :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 def is_instructor_a_participant?&lt;br /&gt;
    instructor_id = session[:user].id&lt;br /&gt;
    assignment_id = @assignment_form.assignment.id.to_s&lt;br /&gt;
&lt;br /&gt;
    if assignment_id != nil&lt;br /&gt;
      @is_instructor_a_participant = Participant.where(user_id: instructor_id , parent_id: assignment_id)&lt;br /&gt;
      if @is_instructor_a_participant.present?&lt;br /&gt;
        return true&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    return false&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
The method &amp;quot;is_instructor_a_participant?&amp;quot; returns true if the instructor is already a participant for the assignment, else returns false. This method is required to verify that the instructor/TA is not a participant of the assignment, and thus he can be added as a participant if the checkbox has been selected. Also, during editing the assignment, we need to show checkbox being selected if the instructor is a participant and vice versa. Thus, this method serves that purpose as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def add_instructor_as_participant(assignment_id)&lt;br /&gt;
    if params[:add_instructor] == 'false' and is_instructor_a_participant? == true&lt;br /&gt;
      delete_instructor_as_participant(assignment_id,session[:user].id)&lt;br /&gt;
    elsif params[:add_instructor] == '1' and is_instructor_a_participant? == false&lt;br /&gt;
      current_assignment = Object.const_get(&amp;quot;Assignment&amp;quot;).find(assignment_id)&lt;br /&gt;
      current_assignment.add_participant(session[:user].name, true, true, true)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The method &amp;quot;add_instructor_as_participant&amp;quot; is been called from create and update methods in the Assignment controller. It checks if the &amp;quot;Add yourself as participant&amp;quot; checkbox is selected for the currently created/edited assignment. If it is selected during creation or editing, then the instructor is added as a participant to the currently created/edited assignment. The participant is added by using the already existing method &amp;quot;add_participant&amp;quot; in the model assignment.rb Also, if the option is unchecked during editing, then the instructor is removed as a participant.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def delete_instructor_as_participant(assignment_id , instructor_id)&lt;br /&gt;
    Participant.where(user_id: instructor_id , parent_id: assignment_id).destroy_all&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The method &amp;quot;delete_instructor_as_participant&amp;quot; removes instructor as a participant for the assignment when the checkbox is unchecked during the editing of the assignment.&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
The following activity diagram summarizes our proposed implementation for the above mentioned issue:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Testing''' ==&lt;br /&gt;
=== UI Testing ===&lt;br /&gt;
==== Part 1: Allowing instructor/TA to perform review ====&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Login in as an instructor. &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Username: instructor6&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Password: password&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt; &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Choose any assignment from the list of assignments which involves teams; since an assignment without teams does not include the review procedure. For example, “Final project (design and doc)” is a good assignment to choose.&lt;br /&gt;
&amp;lt;li&amp;gt;Now, while testing this functionality, it is recommended to keep the following pages opened in different tabs by clicking on the small icons in the same row as the assignment that you want to test: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a. “Edit” -&amp;gt; “Due Dates” tab &lt;br /&gt;
[[File:edit_assignment.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
b. “Add participants”&lt;br /&gt;
[[File:add_as_participant.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
c. “View Submissions” 	&lt;br /&gt;
[[File:list_submissions.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now add the instructor as a participant (3.b). and edit the ALL due dates (3.a.) of different stages to any date later from now (hence the assignment goes into the “submission” stage by default). Save both these changes. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now refresh the view submissions page (3.c.), you will see a list of assignments with no link to review or assign grade.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now switch to edit due dates tab (3.a.) again. Set the due date for submission to a previous date which has passed, hence the next due date will be for the “review” stage by default (which will have a later due date from now.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Refresh view submissions page (3.c.), you will see a list of assignments with a link to “Begin Review.”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can click on it. If you “save” your response, you will see that the link has been replace by “View review” and “Edit review” now. Whereas, if you “submit” the response, the link will be replaced by “View review” and “Update review.”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Depending on the number of stages that an assignment has, you can edit the due date at every stage and check whether the links are displayed appropriately.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally when the last deadline of the assignment is set to a previous date which has passed, you will see the link to “Assign grade” in view submissions (3.c.), and the user will still be able to begin, edit or update a review in order to provide flexibility as per the requirements.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Edge Cases:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user is not a participant of the current assignment, they are shown a list of all submissions made by all teams of the current assignment. They are shown the link to “Assign Grade” only when the final deadline of the assignment passes.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;During any review stage or even after the deadline, the user is offered the flexibility to Begin, Edit, View or Update their review.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Part 3: Add instructor/TA as a participant while creating the assignment===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Login in as an instructor. &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Username: instructor6&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Password: password&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt; &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Team Members''' ==&lt;br /&gt;
Mentor: Prof. Edward Gehringer (efg@ncsu.edu)&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anuja Kulkarni - apkulka2@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mark Trawick - mtrawic@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Parvathy Menon - pharida@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Samruddhi Khandale - sskhanda@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129928</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129928"/>
		<updated>2019-12-06T02:41:34Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However, sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development. &lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience. Currently, there exists no method for the instructor/TA to perform reviews of assignments submitted by the students. Hence this is what this project aims at, allowing instructor/TA to perform reviews.&lt;br /&gt;
&lt;br /&gt;
Thus, the primary aim of this project is to allow instructors to submit reviews of student work, using the same review form that students use to do reviews.&lt;br /&gt;
&lt;br /&gt;
=='''Implementation Details''' ==&lt;br /&gt;
Our project aims at enabling the instructor/TA to review the submissions using the same form that a student uses while peer-reviewing. For this, our implementation has been divided into 3 parts, and can be described as follows:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The first part involves the primary functionality of letting the staff perform a review on students submission.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The second part involves allowing the students to identify from their end, which review has been performed by an instructor/TA. This will help students improve their project as the opinions presented by a staff member would be valid.&amp;lt;/li&amp;gt;  &lt;br /&gt;
&amp;lt;li&amp;gt;Thirdly, we implemented an additional feature that allows the instructor/TA to add himself as a participant while creating/editing an Assignment (This way seemed to be more convenient rather than going to the “Add Participant” page and adding themselves as a participant.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Part 1: Allowing instructor/TA to perform review===&lt;br /&gt;
Note 1: “Instructor/TA” will be referred to by “user” here onwards.&lt;br /&gt;
&lt;br /&gt;
Note 2: To be able to perform a review, the user has to be a participant of that assignment. We have implemented “Add as Participant” as an additional feature which is explained in Part 3. If the user is not a participant, he will only see the link to “Assign grade” that too after the assignment deadline passes.&lt;br /&gt;
Now, for each assignment, there is a page called “List Submissions” where the user can view all the submissions. So we have modified this page so that for each team submission a link for “Begin review,” “Edit review,” “View review,” “Update review,” or “Assign grade” may appear depending on the [http://wiki.expertiza.ncsu.edu/index.php/Deadline_types stage] in which the assignment is. &lt;br /&gt;
&lt;br /&gt;
The following describes the flow of our project considering a fresh assignment.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the assignment is created, it is by default is in the “submission” stage. Hence the user will not see any link on the list submission page.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the first deadline passes, the assignment goes into the “review” stage. Hence the link “Begin review” will be visible for each team submission, where the instructor/TA can click on to submit the review. Two cases can occur here:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “submits” a review, they will be redirected to the list submission page where they’ll see the option “View review” or “Update review.” Being an instructor/TA, they are given the flexibility to update their review at any time during the “review” stage.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “saves” a review, they will be redirected to the list submission page where they’ll see the option “View review” and “Edit Review (as they have not submitted it yet.)”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;After the first review is over, if more stages of “submissions” and “reviews” exist, it will follow the above 2 steps until the final assignment deadline does not pass. Note that at any round of the review, the user can “Begin review” for a submission which they had not reviewed in the previous rounds. This is to provide flexibility to them as per the requirement.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally, after the assignment deadline passes, the assignment goes into the “Finished” stage. This is when the “Assign grade” link will be visible to the user. Along with this, depending on whether they have reviewed a particular submission or not, the begin, view, update links will be visible to them as they should be able to perform the review even after the assignment deadline for the students has passed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Files Edited&amp;lt;/b&amp;gt;&lt;br /&gt;
The following are the files (controllers and views) edited for the review process. The comments are given along with the code to explain what is begin done.&lt;br /&gt;
* '''Controller: ''' ''app/controllers/response_controller.rb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    # Ensuring recent submission is not nil&lt;br /&gt;
    team_most_recent_submission = AssignmentTeam.find(@map.reviewee_id).most_recent_submission      &lt;br /&gt;
    if @response.nil? || (!team_most_recent_submission.nil? &amp;amp;&amp;amp; team_most_recent_submission.updated_at &amp;gt; @response.updated_at)&lt;br /&gt;
    ...&lt;br /&gt;
    # Page should be directed to list_submissions if TA/instructor performs the review&lt;br /&gt;
    when &amp;quot;ta_review&amp;quot;      &lt;br /&gt;
      redirect_to controller: 'assignments', action: 'list_submissions', id: @map.response_map.assignment.id&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Controller: ''' ''app/helpers/assignment_helper.rb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    topic_id = topic.try :id&lt;br /&gt;
    ...&lt;br /&gt;
    # Needed topic ID for review implpementation, so added it to return list of the function&lt;br /&gt;
    [topic_id, topic_identifier ||= &amp;quot;&amp;quot;, topic_name ||= &amp;quot;&amp;quot;, users_for_curr_team, participants]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''View: ''' ''app/views/assignments/list_submissions.html.erb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    # Retrieved topic ID for review implpementation&lt;br /&gt;
    &amp;lt;% topic_id, topic_identifier, topic_name, users_for_curr_team, participants = get_data_for_list_submissions(team) %&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
    &amp;lt;!-- Display &amp;quot;Assign Grade&amp;quot; link after final deadline of assignment has passed --&amp;gt;&lt;br /&gt;
    &amp;lt;% if @assignment.get_current_stage() == &amp;quot;Finished&amp;quot; %&amp;gt;&lt;br /&gt;
      &amp;lt;%= link_to 'Assign Grade', { controller: 'grades', action: 'view_team', id: participants.first.id}, target: '_blank' %&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
    &amp;lt;% end %&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Checking if logged in user (instructor/TA) is participant in assignment --&amp;gt;&lt;br /&gt;
    &amp;lt;% reviewer = Participant.find_by(:parent_id =&amp;gt; @assignment.id, :user_id =&amp;gt; session[:user].id)%&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Reviewing options are available only to &amp;quot;participants&amp;quot; of assignment --&amp;gt;&lt;br /&gt;
    &amp;lt;!-- So only if reviewer is not nil, following applicable links will be displayed --&amp;gt;&lt;br /&gt;
    &amp;lt;% if !reviewer.nil? %&amp;gt;&lt;br /&gt;
      &amp;lt;!-- Checking if instructor/TA has been mapped to current team --&amp;gt;&lt;br /&gt;
      &amp;lt;% @mapping = ReviewResponseMap.find_by(:reviewed_object_id =&amp;gt; @assignment.id, :reviewer_id =&amp;gt; reviewer.id, :reviewee_id =&amp;gt; team.id) %&amp;gt;&lt;br /&gt;
      &amp;lt;!-- If mapping is nil, a response cannot be created. So user should be able to &amp;quot;Begin Review&amp;quot; during any review stage, or after deadline has passed --&amp;gt;&lt;br /&gt;
      &amp;lt;% if @mapping.nil? &amp;amp;&amp;amp; (@assignment.get_current_stage() == &amp;quot;review&amp;quot; || @assignment.get_current_stage() == &amp;quot;Finished&amp;quot;)  %&amp;gt;&lt;br /&gt;
        &amp;lt;% ReviewResponseMap.create(reviewee_id: team.id, reviewer_id: reviewer.id, reviewed_object_id: @assignment.id) %&amp;gt;&lt;br /&gt;
        &amp;lt;% map = ReviewResponseMap.find_by(reviewee_id: team.id, reviewer_id: reviewer.id, reviewed_object_id: @assignment.id) %&amp;gt;&lt;br /&gt;
        &amp;lt;%= link_to 'Begin Review', { controller: 'response', action: 'new', :id =&amp;gt; map.id, :return =&amp;gt; &amp;quot;ta_review&amp;quot; } %&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Any time during review or after deadline, user is given the flexibility to begin, edit or update their review --&amp;gt;&lt;br /&gt;
      &amp;lt;% elsif @assignment.get_current_stage() == &amp;quot;review&amp;quot; ||  @assignment.get_current_stage() == &amp;quot;Finished&amp;quot; %&amp;gt;&lt;br /&gt;
        &amp;lt;% map1 = ReviewResponseMap.find_by(reviewee_id: team.id, reviewer_id: reviewer.id, reviewed_object_id: @assignment.id) %&amp;gt;&lt;br /&gt;
        &amp;lt;% @sorted_responses = Array.new %&amp;gt;&lt;br /&gt;
        &amp;lt;% @sorted_responses = Response.where(:map_id =&amp;gt; map1.id) %&amp;gt;&lt;br /&gt;
        &amp;lt;!-- This means that mapping is created, but user never began the review. Hence linking to &amp;quot;Begin Review&amp;quot; --&amp;gt;&lt;br /&gt;
        &amp;lt;% if @sorted_responses.empty?%&amp;gt;&lt;br /&gt;
          &amp;lt;%= link_to 'Begin Review', { controller: 'response', action: 'new', :id =&amp;gt; map1.id, :return =&amp;gt; &amp;quot;ta_review&amp;quot; } %&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
        &amp;lt;% else %&amp;gt;&lt;br /&gt;
          &amp;lt;!-- There is at least more than one response. Hence we obtain latest response of them all. --&amp;gt;&lt;br /&gt;
          &amp;lt;% @sorted_responses = @sorted_responses.sort_by {|obj| obj.updated_at} # the latest should be at the last %&amp;gt;&lt;br /&gt;
          &amp;lt;% @latest_response = @sorted_responses.last %&amp;gt;&lt;br /&gt;
          &amp;lt;%if @latest_response.round.nil?%&amp;gt;        &amp;lt;!-- Getting current round as last response round in unavailable --&amp;gt;&lt;br /&gt;
            &amp;lt;% last_response_round = AssignmentDueDate.done_in_assignment_round(@assignment.id, @latest_response) %&amp;gt;&lt;br /&gt;
          &amp;lt;%else%&amp;gt;                                  &amp;lt;!-- Getting round in which the last response was given --&amp;gt;&lt;br /&gt;
            &amp;lt;% last_response_round = @latest_response.round %&amp;gt;&lt;br /&gt;
          &amp;lt;%end%&amp;gt;&lt;br /&gt;
          &amp;lt;% current_round = @assignment.number_of_current_round(topic_id) %&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Always displaying &amp;quot;View Review&amp;quot; link for latest response, as long as at least one response exists --&amp;gt;&lt;br /&gt;
          &amp;lt;%= link_to &amp;quot;View Review&amp;quot;, {:controller =&amp;gt; 'response', :action =&amp;gt; 'view', :id =&amp;gt; @latest_response.id} %&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
          &amp;lt;% if last_response_round == current_round %&amp;gt;&lt;br /&gt;
            &amp;lt;% latest_submission = team.most_recent_submission %&amp;gt;&lt;br /&gt;
            &amp;lt;% if !@latest_response.is_submitted %&amp;gt;               &amp;lt;!-- Allow to &amp;quot;Edit&amp;quot; review which has not been submitted yet --&amp;gt;&lt;br /&gt;
              &amp;lt;%= link_to &amp;quot;Edit Review&amp;quot;, {:controller =&amp;gt; 'response', :action =&amp;gt; 'edit', :id =&amp;gt; @latest_response.id, :return =&amp;gt; &amp;quot;ta_review&amp;quot; } %&amp;gt;&lt;br /&gt;
            &amp;lt;% else %&amp;gt;                                            &amp;lt;!-- Allow to &amp;quot;Update&amp;quot; review if team has updated their submission --&amp;gt;&lt;br /&gt;
              &amp;lt;%= link_to &amp;quot;Update Review&amp;quot;, {:controller =&amp;gt; 'response', :action =&amp;gt; 'new', :id =&amp;gt; map1.id, :return =&amp;gt; &amp;quot;ta_review&amp;quot; } %&amp;gt;&lt;br /&gt;
            &amp;lt;%end%&amp;gt;&lt;br /&gt;
          &amp;lt;% else %&amp;gt;                                              &amp;lt;!-- Allow to &amp;quot;Update&amp;quot; review when round changes --&amp;gt;&lt;br /&gt;
            &amp;lt;%= link_to &amp;quot;Update Review&amp;quot;, {:controller =&amp;gt; 'response', :action =&amp;gt; 'new', :id =&amp;gt; map1.id, :return =&amp;gt; &amp;quot;ta_review&amp;quot; } %&amp;gt;&lt;br /&gt;
          &amp;lt;% end %&amp;gt;&lt;br /&gt;
        &amp;lt;% end %&amp;gt;&lt;br /&gt;
      &amp;lt;% end %&amp;gt;&lt;br /&gt;
    &amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''View: ''' ''app/views/grades/view_team.html.erb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;!--Obtain topic name and topic_id from assignment helper--&amp;gt;&lt;br /&gt;
    &amp;lt;% topic_id_num, topic_id, topic_name, users_for_curr_team, participants = get_data_for_list_submissions(@team) %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''View: ''' ''app/views/student_review/_responses.html.erb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    # Ensuring recent submission is not nil&lt;br /&gt;
    &amp;lt;% elsif !latest_submission.nil? &amp;amp;&amp;amp; @latest_response.updated_at &amp;lt; latest_submission.updated_at %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Part 2: Allow students to identify that their submission has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file &amp;lt;b&amp;gt;app/assets/stylesheets/grades.scss&amp;lt;/b&amp;gt; to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Part 3: Add instructor/TA as a participant while creating the assignment (Extra Feature) ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Current scenario''' &amp;lt;br&amp;gt;&lt;br /&gt;
The instructor/TA will be able to perform student reviews (after implementation of Part 1) for the assignment, only when he is a participant of the same assignment. Thus, every time he creates an assignment and wants to add himself as a participant in order to perform student reviews, he is supposed to do the following &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Go to list of assignments -&amp;gt; Find the required assignment -&amp;gt; Click on add participant -&amp;gt; Type user Id -&amp;gt; Click on add&lt;br /&gt;
The same flow is as shown below where the instructor/TA has created a new assignment say “Program 1 Github” wherein he wants himself as a participant to be able to perform student reviews :&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Addinstructor1.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AddInstructor2.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Add Instructor 3.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To overcome the hassle, we added a check box through which the instructor/TA will get an option to add himself as a participant while creating the assignment. Also, he will be able to add/remove himself as a participant while editing the assignment. &lt;br /&gt;
&lt;br /&gt;
'''Implementation''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The checkbox has been provided to Create New Assignment’s page under the Review strategy tab.&lt;br /&gt;
It is added as follows: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Add instructor 4.png]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the instructor/TA selects the box while creating the assignment, then he will be added as a participant for the same assignment. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Files edited: &lt;br /&gt;
&lt;br /&gt;
* '''View: ''' ''app/views/assignments/edit/_review_strategy.html.erb'' &amp;lt;br&amp;gt;&lt;br /&gt;
In this file, code for displaying the checkbox has been added which is as follows : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;input name='add_instructor' type=&amp;quot;hidden&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;%= check_box_tag('add_instructor', value = &amp;quot;1&amp;quot;, checked = is_instructor_a_participant?)%&amp;gt;&lt;br /&gt;
      &amp;lt;%= label_tag('add_instructor', 'Add yourself as a participant?') %&amp;gt;&lt;br /&gt;
      &amp;lt;img src=&amp;quot;/assets/info.png&amp;quot; title='If you add yourself as a participant then you will be able to perform reviews of students for this assignment'&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;
&lt;br /&gt;
Thus the checkbox &amp;quot;add_instructor&amp;quot; if selected adds the instructor as a participant to the currently being created assignment. Thus, instructor being a participant allows him to perform reviews for the students for this assignment.&lt;br /&gt;
&lt;br /&gt;
* '''Controller: ''' ''app/controllers/assignments_controller.rb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The file contains extra code which adds the instructor/TA as a participant if the checkbox has been selected while creating the assignment. Also, while editing the assignment, he will be able to add/remove himself as a participant for this assignment. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following methods are added to the controller :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 def is_instructor_a_participant?&lt;br /&gt;
    instructor_id = session[:user].id&lt;br /&gt;
    assignment_id = @assignment_form.assignment.id.to_s&lt;br /&gt;
&lt;br /&gt;
    if assignment_id != nil&lt;br /&gt;
      @is_instructor_a_participant = Participant.where(user_id: instructor_id , parent_id: assignment_id)&lt;br /&gt;
      if @is_instructor_a_participant.present?&lt;br /&gt;
        return true&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    return false&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
The method &amp;quot;is_instructor_a_participant?&amp;quot; returns true if the instructor is already a participant for the assignment, else returns false. This method is required to verify that the instructor/TA is not a participant of the assignment, and thus he can be added as a participant if the checkbox has been selected. Also, during editing the assignment, we need to show checkbox being selected if the instructor is a participant and vice versa. Thus, this method serves that purpose as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def add_instructor_as_participant(assignment_id)&lt;br /&gt;
    if params[:add_instructor] == 'false' and is_instructor_a_participant? == true&lt;br /&gt;
      delete_instructor_as_participant(assignment_id,session[:user].id)&lt;br /&gt;
    elsif params[:add_instructor] == '1' and is_instructor_a_participant? == false&lt;br /&gt;
      current_assignment = Object.const_get(&amp;quot;Assignment&amp;quot;).find(assignment_id)&lt;br /&gt;
      current_assignment.add_participant(session[:user].name, true, true, true)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The method &amp;quot;add_instructor_as_participant&amp;quot; is been called from create and update methods in the Assignment controller. It checks if the &amp;quot;Add yourself as participant&amp;quot; checkbox is selected for the currently created/edited assignment. If it is selected during creation or editing, then the instructor is added as a participant to the currently created/edited assignment. The participant is added by using the already existing method &amp;quot;add_participant&amp;quot; in the model assignment.rb Also, if the option is unchecked during editing, then the instructor is removed as a participant.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def delete_instructor_as_participant(assignment_id , instructor_id)&lt;br /&gt;
    Participant.where(user_id: instructor_id , parent_id: assignment_id).destroy_all&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The method &amp;quot;delete_instructor_as_participant&amp;quot; removes instructor as a participant for the assignment when the checkbox is unchecked during the editing of the assignment.&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
The following activity diagram summarizes our proposed implementation for the above mentioned issue:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Testing''' ==&lt;br /&gt;
=== UI Testing ===&lt;br /&gt;
==== Part 1: Allowing instructor/TA to perform review ====&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Login in as an instructor. &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Username: instructor6&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Password: password&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt; &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Choose any assignment from the list of assignments which involves teams; since an assignment without teams does not include the review procedure. For example, “Final project (design and doc)” is a good assignment to choose.&lt;br /&gt;
&amp;lt;li&amp;gt;Now, while testing this functionality, it is recommended to keep the following pages opened in different tabs by clicking on the small icons in the same row as the assignment that you want to test: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a. “Edit” -&amp;gt; “Due Dates” tab &lt;br /&gt;
[[File:edit_assignment.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
b. “Add participants”&lt;br /&gt;
[[File:add_as_participant.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
c. “View Submissions” 	&lt;br /&gt;
[[File:list_submissions.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now add the instructor as a participant (3.b). and edit the ALL due dates (3.a.) of different stages to any date later from now (hence the assignment goes into the “submission” stage by default). Save both these changes. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now refresh the view submissions page (3.c.), you will see a list of assignments with no link to review or assign grade.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now switch to edit due dates tab (3.a.) again. Set the due date for submission to a previous date which has passed, hence the next due date will be for the “review” stage by default (which will have a later due date from now.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Refresh view submissions page (3.c.), you will see a list of assignments with a link to “Begin Review.”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can click on it. If you “save” your response, you will see that the link has been replace by “View review” and “Edit review” now. Whereas, if you “submit” the response, the link will be replaced by “View review” and “Update review.”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Depending on the number of stages that an assignment has, you can edit the due date at every stage and check whether the links are displayed appropriately.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally when the last deadline of the assignment is set to a previous date which has passed, you will see the link to “Assign grade” in view submissions (3.c.), and the user will still be able to begin, edit or update a review in order to provide flexibility as per the requirements.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Edge Cases:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user is not a participant of the current assignment, they are shown a list of all submissions made by all teams of the current assignment. They are shown the link to “Assign Grade” only when the final deadline of the assignment passes.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;During any review stage or even after the deadline, the user is offered the flexibility to Begin, Edit, View or Update their review.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Part 3: Add instructor/TA as a participant while creating the assignment===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Login in as an instructor. &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Username: instructor6&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Password: password&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt; &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Team Members''' ==&lt;br /&gt;
Mentor: Prof. Edward Gehringer (efg@ncsu.edu)&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anuja Kulkarni - apkulka2@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mark Trawick - mtrawic@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Parvathy Menon - pharida@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Samruddhi Khandale - sskhanda@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129927</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129927"/>
		<updated>2019-12-06T02:38:16Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However, sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development. &lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience. Currently, there exists no method for the instructor/TA to perform reviews of assignments submitted by the students. Hence this is what this project aims at, allowing instructor/TA to perform reviews.&lt;br /&gt;
&lt;br /&gt;
Thus, the primary aim of this project is to allow instructors to submit reviews of student work, using the same review form that students use to do reviews.&lt;br /&gt;
&lt;br /&gt;
=='''Implementation Details''' ==&lt;br /&gt;
Our project aims at enabling the instructor/TA to review the submissions using the same form that a student uses while peer-reviewing. For this, our implementation has been divided into 3 parts, and can be described as follows:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The first part involves the primary functionality of letting the staff perform a review on students submission.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The second part involves allowing the students to identify from their end, which review has been performed by an instructor/TA. This will help students improve their project as the opinions presented by a staff member would be valid.&amp;lt;/li&amp;gt;  &lt;br /&gt;
&amp;lt;li&amp;gt;Thirdly, we implemented an additional feature that allows the instructor/TA to add himself as a participant while creating/editing an Assignment (This way seemed to be more convenient rather than going to the “Add Participant” page and adding themselves as a participant.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Part 1: Allowing instructor/TA to perform review===&lt;br /&gt;
Note 1: “Instructor/TA” will be referred to by “user” here onwards.&lt;br /&gt;
&lt;br /&gt;
Note 2: To be able to perform a review, the user has to be a participant of that assignment. We have implemented “Add as Participant” as an additional feature which is explained in Part 3. If the user is not a participant, he will only see the link to “Assign grade” that too after the assignment deadline passes.&lt;br /&gt;
Now, for each assignment, there is a page called “List Submissions” where the user can view all the submissions. So we have modified this page so that for each team submission a link for “Begin review,” “Edit review,” “View review,” “Update review,” or “Assign grade” may appear depending on the [http://wiki.expertiza.ncsu.edu/index.php/Deadline_types stage] in which the assignment is. &lt;br /&gt;
&lt;br /&gt;
The following describes the flow of our project considering a fresh assignment.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the assignment is created, it is by default is in the “submission” stage. Hence the user will not see any link on the list submission page.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the first deadline passes, the assignment goes into the “review” stage. Hence the link “Begin review” will be visible for each team submission, where the instructor/TA can click on to submit the review. Two cases can occur here:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “submits” a review, they will be redirected to the list submission page where they’ll see the option “View review” or “Update review.” Being an instructor/TA, they are given the flexibility to update their review at any time during the “review” stage.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “saves” a review, they will be redirected to the list submission page where they’ll see the option “View review” and “Edit Review (as they have not submitted it yet.)”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;After the first review is over, if more stages of “submissions” and “reviews” exist, it will follow the above 2 steps until the final assignment deadline does not pass. Note that at any round of the review, the user can “Begin review” for a submission which they had not reviewed in the previous rounds. This is to provide flexibility to them as per the requirement.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally, after the assignment deadline passes, the assignment goes into the “Finished” stage. This is when the “Assign grade” link will be visible to the user. Along with this, depending on whether they have reviewed a particular submission or not, the begin, view, update links will be visible to them as they should be able to perform the review even after the assignment deadline for the students has passed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Files Edited&amp;lt;/b&amp;gt;&lt;br /&gt;
* '''Controller: ''' ''app/controllers/response_controller.rb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    # Ensuring recent submission is not nil&lt;br /&gt;
    team_most_recent_submission = AssignmentTeam.find(@map.reviewee_id).most_recent_submission      &lt;br /&gt;
    if @response.nil? || (!team_most_recent_submission.nil? &amp;amp;&amp;amp; team_most_recent_submission.updated_at &amp;gt; @response.updated_at)&lt;br /&gt;
    ...&lt;br /&gt;
    # Page should be directed to list_submissions if TA/instructor performs the review&lt;br /&gt;
    when &amp;quot;ta_review&amp;quot;      &lt;br /&gt;
      redirect_to controller: 'assignments', action: 'list_submissions', id: @map.response_map.assignment.id&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Controller: ''' ''app/helpers/assignment_helper.rb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    topic_id = topic.try :id&lt;br /&gt;
    ...&lt;br /&gt;
    # Needed topic ID for review implpementation, so added it to return list of the function&lt;br /&gt;
    [topic_id, topic_identifier ||= &amp;quot;&amp;quot;, topic_name ||= &amp;quot;&amp;quot;, users_for_curr_team, participants]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''View: ''' ''pp/views/assignments/list_submissions.html.erb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    # Retrieved topic ID for review implpementation&lt;br /&gt;
    &amp;lt;% topic_id, topic_identifier, topic_name, users_for_curr_team, participants = get_data_for_list_submissions(team) %&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
    &amp;lt;!-- Display &amp;quot;Assign Grade&amp;quot; link after final deadline of assignment has passed --&amp;gt;&lt;br /&gt;
    &amp;lt;% if @assignment.get_current_stage() == &amp;quot;Finished&amp;quot; %&amp;gt;&lt;br /&gt;
      &amp;lt;%= link_to 'Assign Grade', { controller: 'grades', action: 'view_team', id: participants.first.id}, target: '_blank' %&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
    &amp;lt;% end %&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Checking if logged in user (instructor/TA) is participant in assignment --&amp;gt;&lt;br /&gt;
    &amp;lt;% reviewer = Participant.find_by(:parent_id =&amp;gt; @assignment.id, :user_id =&amp;gt; session[:user].id)%&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Reviewing options are available only to &amp;quot;participants&amp;quot; of assignment --&amp;gt;&lt;br /&gt;
    &amp;lt;!-- So only if reviewer is not nil, following applicable links will be displayed --&amp;gt;&lt;br /&gt;
    &amp;lt;% if !reviewer.nil? %&amp;gt;&lt;br /&gt;
      &amp;lt;!-- Checking if instructor/TA has been mapped to current team --&amp;gt;&lt;br /&gt;
      &amp;lt;% @mapping = ReviewResponseMap.find_by(:reviewed_object_id =&amp;gt; @assignment.id, :reviewer_id =&amp;gt; reviewer.id, :reviewee_id =&amp;gt; team.id) %&amp;gt;&lt;br /&gt;
      &amp;lt;!-- If mapping is nil, a response cannot be created. So user should be able to &amp;quot;Begin Review&amp;quot; during any review stage, or after deadline has passed --&amp;gt;&lt;br /&gt;
      &amp;lt;% if @mapping.nil? &amp;amp;&amp;amp; (@assignment.get_current_stage() == &amp;quot;review&amp;quot; || @assignment.get_current_stage() == &amp;quot;Finished&amp;quot;)  %&amp;gt;&lt;br /&gt;
        &amp;lt;% ReviewResponseMap.create(reviewee_id: team.id, reviewer_id: reviewer.id, reviewed_object_id: @assignment.id) %&amp;gt;&lt;br /&gt;
        &amp;lt;% map = ReviewResponseMap.find_by(reviewee_id: team.id, reviewer_id: reviewer.id, reviewed_object_id: @assignment.id) %&amp;gt;&lt;br /&gt;
        &amp;lt;%= link_to 'Begin Review', { controller: 'response', action: 'new', :id =&amp;gt; map.id, :return =&amp;gt; &amp;quot;ta_review&amp;quot; } %&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Any time during review or after deadline, user is given the flexibility to begin, edit or update their review --&amp;gt;&lt;br /&gt;
      &amp;lt;% elsif @assignment.get_current_stage() == &amp;quot;review&amp;quot; ||  @assignment.get_current_stage() == &amp;quot;Finished&amp;quot; %&amp;gt;&lt;br /&gt;
        &amp;lt;% map1 = ReviewResponseMap.find_by(reviewee_id: team.id, reviewer_id: reviewer.id, reviewed_object_id: @assignment.id) %&amp;gt;&lt;br /&gt;
        &amp;lt;% @sorted_responses = Array.new %&amp;gt;&lt;br /&gt;
        &amp;lt;% @sorted_responses = Response.where(:map_id =&amp;gt; map1.id) %&amp;gt;&lt;br /&gt;
        &amp;lt;!-- This means that mapping is created, but user never began the review. Hence linking to &amp;quot;Begin Review&amp;quot; --&amp;gt;&lt;br /&gt;
        &amp;lt;% if @sorted_responses.empty?%&amp;gt;&lt;br /&gt;
          &amp;lt;%= link_to 'Begin Review', { controller: 'response', action: 'new', :id =&amp;gt; map1.id, :return =&amp;gt; &amp;quot;ta_review&amp;quot; } %&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
        &amp;lt;% else %&amp;gt;&lt;br /&gt;
          &amp;lt;!-- There is at least more than one response. Hence we obtain latest response of them all. --&amp;gt;&lt;br /&gt;
          &amp;lt;% @sorted_responses = @sorted_responses.sort_by {|obj| obj.updated_at} # the latest should be at the last %&amp;gt;&lt;br /&gt;
          &amp;lt;% @latest_response = @sorted_responses.last %&amp;gt;&lt;br /&gt;
          &amp;lt;%if @latest_response.round.nil?%&amp;gt;        &amp;lt;!-- Getting current round as last response round in unavailable --&amp;gt;&lt;br /&gt;
            &amp;lt;% last_response_round = AssignmentDueDate.done_in_assignment_round(@assignment.id, @latest_response) %&amp;gt;&lt;br /&gt;
          &amp;lt;%else%&amp;gt;                                  &amp;lt;!-- Getting round in which the last response was given --&amp;gt;&lt;br /&gt;
            &amp;lt;% last_response_round = @latest_response.round %&amp;gt;&lt;br /&gt;
          &amp;lt;%end%&amp;gt;&lt;br /&gt;
          &amp;lt;% current_round = @assignment.number_of_current_round(topic_id) %&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Always displaying &amp;quot;View Review&amp;quot; link for latest response, as long as at least one response exists --&amp;gt;&lt;br /&gt;
          &amp;lt;%= link_to &amp;quot;View Review&amp;quot;, {:controller =&amp;gt; 'response', :action =&amp;gt; 'view', :id =&amp;gt; @latest_response.id} %&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
          &amp;lt;% if last_response_round == current_round %&amp;gt;&lt;br /&gt;
            &amp;lt;% latest_submission = team.most_recent_submission %&amp;gt;&lt;br /&gt;
            &amp;lt;% if !@latest_response.is_submitted %&amp;gt;               &amp;lt;!-- Allow to &amp;quot;Edit&amp;quot; review which has not been submitted yet --&amp;gt;&lt;br /&gt;
              &amp;lt;%= link_to &amp;quot;Edit Review&amp;quot;, {:controller =&amp;gt; 'response', :action =&amp;gt; 'edit', :id =&amp;gt; @latest_response.id, :return =&amp;gt; &amp;quot;ta_review&amp;quot; } %&amp;gt;&lt;br /&gt;
            &amp;lt;% else %&amp;gt;                                            &amp;lt;!-- Allow to &amp;quot;Update&amp;quot; review if team has updated their submission --&amp;gt;&lt;br /&gt;
              &amp;lt;%= link_to &amp;quot;Update Review&amp;quot;, {:controller =&amp;gt; 'response', :action =&amp;gt; 'new', :id =&amp;gt; map1.id, :return =&amp;gt; &amp;quot;ta_review&amp;quot; } %&amp;gt;&lt;br /&gt;
            &amp;lt;%end%&amp;gt;&lt;br /&gt;
          &amp;lt;% else %&amp;gt;                                              &amp;lt;!-- Allow to &amp;quot;Update&amp;quot; review when round changes --&amp;gt;&lt;br /&gt;
            &amp;lt;%= link_to &amp;quot;Update Review&amp;quot;, {:controller =&amp;gt; 'response', :action =&amp;gt; 'new', :id =&amp;gt; map1.id, :return =&amp;gt; &amp;quot;ta_review&amp;quot; } %&amp;gt;&lt;br /&gt;
          &amp;lt;% end %&amp;gt;&lt;br /&gt;
        &amp;lt;% end %&amp;gt;&lt;br /&gt;
      &amp;lt;% end %&amp;gt;&lt;br /&gt;
    &amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''View: ''' ''app/views/grades/view_team.html.erb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;!--Obtain topic name and topic_id from assignment helper--&amp;gt;&lt;br /&gt;
    &amp;lt;% topic_id_num, topic_id, topic_name, users_for_curr_team, participants = get_data_for_list_submissions(@team) %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''View: ''' ''app/views/student_review/_responses.html.erb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    # Ensuring recent submission is not nil&lt;br /&gt;
    &amp;lt;% elsif !latest_submission.nil? &amp;amp;&amp;amp; @latest_response.updated_at &amp;lt; latest_submission.updated_at %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Part 2: Allow students to identify that their submission has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file &amp;lt;b&amp;gt;app/assets/stylesheets/grades.scss&amp;lt;/b&amp;gt; to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Part 3: Add instructor/TA as a participant while creating the assignment (Extra Feature) ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Current scenario''' &amp;lt;br&amp;gt;&lt;br /&gt;
The instructor/TA will be able to perform student reviews (after implementation of Part 1) for the assignment, only when he is a participant of the same assignment. Thus, every time he creates an assignment and wants to add himself as a participant in order to perform student reviews, he is supposed to do the following &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Go to list of assignments -&amp;gt; Find the required assignment -&amp;gt; Click on add participant -&amp;gt; Type user Id -&amp;gt; Click on add&lt;br /&gt;
The same flow is as shown below where the instructor/TA has created a new assignment say “Program 1 Github” wherein he wants himself as a participant to be able to perform student reviews :&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Addinstructor1.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AddInstructor2.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Add Instructor 3.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To overcome the hassle, we added a check box through which the instructor/TA will get an option to add himself as a participant while creating the assignment. Also, he will be able to add/remove himself as a participant while editing the assignment. &lt;br /&gt;
&lt;br /&gt;
'''Implementation''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The checkbox has been provided to Create New Assignment’s page under the Review strategy tab.&lt;br /&gt;
It is added as follows: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Add instructor 4.png]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the instructor/TA selects the box while creating the assignment, then he will be added as a participant for the same assignment. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Files edited: &lt;br /&gt;
&lt;br /&gt;
* '''View: ''' ''app/views/assignments/edit/_review_strategy.html.erb'' &amp;lt;br&amp;gt;&lt;br /&gt;
In this file, code for displaying the checkbox has been added which is as follows : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;input name='add_instructor' type=&amp;quot;hidden&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;%= check_box_tag('add_instructor', value = &amp;quot;1&amp;quot;, checked = is_instructor_a_participant?)%&amp;gt;&lt;br /&gt;
      &amp;lt;%= label_tag('add_instructor', 'Add yourself as a participant?') %&amp;gt;&lt;br /&gt;
      &amp;lt;img src=&amp;quot;/assets/info.png&amp;quot; title='If you add yourself as a participant then you will be able to perform reviews of students for this assignment'&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;
&lt;br /&gt;
Thus the checkbox &amp;quot;add_instructor&amp;quot; if selected adds the instructor as a participant to the currently being created assignment. Thus, instructor being a participant allows him to perform reviews for the students for this assignment.&lt;br /&gt;
&lt;br /&gt;
* '''Controller: ''' ''app/controllers/assignments_controller.rb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The file contains extra code which adds the instructor/TA as a participant if the checkbox has been selected while creating the assignment. Also, while editing the assignment, he will be able to add/remove himself as a participant for this assignment. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following methods are added to the controller :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 def is_instructor_a_participant?&lt;br /&gt;
    instructor_id = session[:user].id&lt;br /&gt;
    assignment_id = @assignment_form.assignment.id.to_s&lt;br /&gt;
&lt;br /&gt;
    if assignment_id != nil&lt;br /&gt;
      @is_instructor_a_participant = Participant.where(user_id: instructor_id , parent_id: assignment_id)&lt;br /&gt;
      if @is_instructor_a_participant.present?&lt;br /&gt;
        return true&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    return false&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
The method &amp;quot;is_instructor_a_participant?&amp;quot; returns true if the instructor is already a participant for the assignment, else returns false. This method is required to verify that the instructor/TA is not a participant of the assignment, and thus he can be added as a participant if the checkbox has been selected. Also, during editing the assignment, we need to show checkbox being selected if the instructor is a participant and vice versa. Thus, this method serves that purpose as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def add_instructor_as_participant(assignment_id)&lt;br /&gt;
    if params[:add_instructor] == 'false' and is_instructor_a_participant? == true&lt;br /&gt;
      delete_instructor_as_participant(assignment_id,session[:user].id)&lt;br /&gt;
    elsif params[:add_instructor] == '1' and is_instructor_a_participant? == false&lt;br /&gt;
      current_assignment = Object.const_get(&amp;quot;Assignment&amp;quot;).find(assignment_id)&lt;br /&gt;
      current_assignment.add_participant(session[:user].name, true, true, true)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The method &amp;quot;add_instructor_as_participant&amp;quot; is been called from create and update methods in the Assignment controller. It checks if the &amp;quot;Add yourself as participant&amp;quot; checkbox is selected for the currently created/edited assignment. If it is selected during creation or editing, then the instructor is added as a participant to the currently created/edited assignment. The participant is added by using the already existing method &amp;quot;add_participant&amp;quot; in the model assignment.rb Also, if the option is unchecked during editing, then the instructor is removed as a participant.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def delete_instructor_as_participant(assignment_id , instructor_id)&lt;br /&gt;
    Participant.where(user_id: instructor_id , parent_id: assignment_id).destroy_all&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The method &amp;quot;delete_instructor_as_participant&amp;quot; removes instructor as a participant for the assignment when the checkbox is unchecked during the editing of the assignment.&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
The following activity diagram summarizes our proposed implementation for the above mentioned issue:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Testing''' ==&lt;br /&gt;
=== UI Testing ===&lt;br /&gt;
==== Part 1: Allowing instructor/TA to perform review ====&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Login in as an instructor. &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Username: instructor6&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Password: password&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt; &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Choose any assignment from the list of assignments which involves teams; since an assignment without teams does not include the review procedure. For example, “Final project (design and doc)” is a good assignment to choose.&lt;br /&gt;
&amp;lt;li&amp;gt;Now, while testing this functionality, it is recommended to keep the following pages opened in different tabs by clicking on the small icons in the same row as the assignment that you want to test: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a. “Edit” -&amp;gt; “Due Dates” tab &lt;br /&gt;
[[File:edit_assignment.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
b. “Add participants”&lt;br /&gt;
[[File:add_as_participant.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
c. “View Submissions” 	&lt;br /&gt;
[[File:list_submissions.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now add the instructor as a participant (3.b). and edit the ALL due dates (3.a.) of different stages to any date later from now (hence the assignment goes into the “submission” stage by default). Save both these changes. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now refresh the view submissions page (3.c.), you will see a list of assignments with no link to review or assign grade.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now switch to edit due dates tab (3.a.) again. Set the due date for submission to a previous date which has passed, hence the next due date will be for the “review” stage by default (which will have a later due date from now.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Refresh view submissions page (3.c.), you will see a list of assignments with a link to “Begin Review.”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can click on it. If you “save” your response, you will see that the link has been replace by “View review” and “Edit review” now. Whereas, if you “submit” the response, the link will be replaced by “View review” and “Update review.”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Depending on the number of stages that an assignment has, you can edit the due date at every stage and check whether the links are displayed appropriately.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally when the last deadline of the assignment is set to a previous date which has passed, you will see the link to “Assign grade” in view submissions (3.c.), and the user will still be able to begin, edit or update a review in order to provide flexibility as per the requirements.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Edge Cases:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user is not a participant of the current assignment, they are shown a list of all submissions made by all teams of the current assignment. They are shown the link to “Assign Grade” only when the final deadline of the assignment passes.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;During any review stage or even after the deadline, the user is offered the flexibility to Begin, Edit, View or Update their review.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Part 3: Add instructor/TA as a participant while creating the assignment===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Login in as an instructor. &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Username: instructor6&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Password: password&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt; &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Team Members''' ==&lt;br /&gt;
Mentor: Prof. Edward Gehringer (efg@ncsu.edu)&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anuja Kulkarni - apkulka2@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mark Trawick - mtrawic@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Parvathy Menon - pharida@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Samruddhi Khandale - sskhanda@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129926</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129926"/>
		<updated>2019-12-06T02:35:28Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However, sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development. &lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience. Currently, there exists no method for the instructor/TA to perform reviews of assignments submitted by the students. Hence this is what this project aims at, allowing instructor/TA to perform reviews.&lt;br /&gt;
&lt;br /&gt;
Thus, the primary aim of this project is to allow instructors to submit reviews of student work, using the same review form that students use to do reviews.&lt;br /&gt;
&lt;br /&gt;
=='''Implementation Details''' ==&lt;br /&gt;
Our project aims at enabling the instructor/TA to review the submissions using the same form that a student uses while peer-reviewing. For this, our implementation has been divided into 3 parts, and can be described as follows:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The first part involves the primary functionality of letting the staff perform a review on students submission.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The second part involves allowing the students to identify from their end, which review has been performed by an instructor/TA. This will help students improve their project as the opinions presented by a staff member would be valid.&amp;lt;/li&amp;gt;  &lt;br /&gt;
&amp;lt;li&amp;gt;Thirdly, we implemented an additional feature that allows the instructor/TA to add himself as a participant while creating/editing an Assignment (This way seemed to be more convenient rather than going to the “Add Participant” page and adding themselves as a participant.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Part 1: Allowing instructor/TA to perform review===&lt;br /&gt;
Note 1: “Instructor/TA” will be referred to by “user” here onwards.&lt;br /&gt;
&lt;br /&gt;
Note 2: To be able to perform a review, the user has to be a participant of that assignment. We have implemented “Add as Participant” as an additional feature which is explained in Part 3. If the user is not a participant, he will only see the link to “Assign grade” that too after the assignment deadline passes.&lt;br /&gt;
Now, for each assignment, there is a page called “List Submissions” where the user can view all the submissions. So we have modified this page so that for each team submission a link for “Begin review,” “Edit review,” “View review,” “Update review,” or “Assign grade” may appear depending on the [http://wiki.expertiza.ncsu.edu/index.php/Deadline_types stage] in which the assignment is. &lt;br /&gt;
&lt;br /&gt;
The following describes the flow of our project considering a fresh assignment.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the assignment is created, it is by default is in the “submission” stage. Hence the user will not see any link on the list submission page.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the first deadline passes, the assignment goes into the “review” stage. Hence the link “Begin review” will be visible for each team submission, where the instructor/TA can click on to submit the review. Two cases can occur here:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “submits” a review, they will be redirected to the list submission page where they’ll see the option “View review” or “Update review.” Being an instructor/TA, they are given the flexibility to update their review at any time during the “review” stage.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “saves” a review, they will be redirected to the list submission page where they’ll see the option “View review” and “Edit Review (as they have not submitted it yet.)”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;After the first review is over, if more stages of “submissions” and “reviews” exist, it will follow the above 2 steps until the final assignment deadline does not pass. Note that at any round of the review, the user can “Begin review” for a submission which they had not reviewed in the previous rounds. This is to provide flexibility to them as per the requirement.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally, after the assignment deadline passes, the assignment goes into the “Finished” stage. This is when the “Assign grade” link will be visible to the user. Along with this, depending on whether they have reviewed a particular submission or not, the begin, view, update links will be visible to them as they should be able to perform the review even after the assignment deadline for the students has passed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Files Edited&amp;lt;/b&amp;gt;&lt;br /&gt;
* '''Controller: ''' ''app/controllers/response_controller.rb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    # Ensuring recent submission is not nil&lt;br /&gt;
    team_most_recent_submission = AssignmentTeam.find(@map.reviewee_id).most_recent_submission      &lt;br /&gt;
    if @response.nil? || (!team_most_recent_submission.nil? &amp;amp;&amp;amp; team_most_recent_submission.updated_at &amp;gt; @response.updated_at)&lt;br /&gt;
    ...&lt;br /&gt;
    # Page should be directed to list_submissions if TA/instructor performs the review&lt;br /&gt;
    when &amp;quot;ta_review&amp;quot;      &lt;br /&gt;
      redirect_to controller: 'assignments', action: 'list_submissions', id: @map.response_map.assignment.id&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Controller: ''' ''app/helpers/assignment_helper.rb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    topic_id = topic.try :id&lt;br /&gt;
    ...&lt;br /&gt;
    # Needed topic ID for review implpementation, so added it to return list of the function&lt;br /&gt;
    [topic_id, topic_identifier ||= &amp;quot;&amp;quot;, topic_name ||= &amp;quot;&amp;quot;, users_for_curr_team, participants]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''View: ''' ''pp/views/assignments/list_submissions.html.erb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    # Retrieved topic ID for review implpementation&lt;br /&gt;
    &amp;lt;% topic_id, topic_identifier, topic_name, users_for_curr_team, participants = get_data_for_list_submissions(team) %&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
    &amp;lt;!-- Display &amp;quot;Assign Grade&amp;quot; link after final deadline of assignment has passed --&amp;gt;&lt;br /&gt;
    &amp;lt;% if @assignment.get_current_stage() == &amp;quot;Finished&amp;quot; %&amp;gt;&lt;br /&gt;
      &amp;lt;%= link_to 'Assign Grade', { controller: 'grades', action: 'view_team', id: participants.first.id}, target: '_blank' %&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
    &amp;lt;% end %&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Checking if logged in user (instructor/TA) is participant in assignment --&amp;gt;&lt;br /&gt;
    &amp;lt;% reviewer = Participant.find_by(:parent_id =&amp;gt; @assignment.id, :user_id =&amp;gt; session[:user].id)%&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Reviewing options are available only to &amp;quot;participants&amp;quot; of assignment --&amp;gt;&lt;br /&gt;
    &amp;lt;!-- So only if reviewer is not nil, following applicable links will be displayed --&amp;gt;&lt;br /&gt;
    &amp;lt;% if !reviewer.nil? %&amp;gt;&lt;br /&gt;
      &amp;lt;!-- Checking if instructor/TA has been mapped to current team --&amp;gt;&lt;br /&gt;
      &amp;lt;% @mapping = ReviewResponseMap.find_by(:reviewed_object_id =&amp;gt; @assignment.id, :reviewer_id =&amp;gt; reviewer.id, :reviewee_id =&amp;gt; team.id) %&amp;gt;&lt;br /&gt;
      &amp;lt;!-- If mapping is nil, a response cannot be created. So user should be able to &amp;quot;Begin Review&amp;quot; during any review stage, or after deadline has passed --&amp;gt;&lt;br /&gt;
      &amp;lt;% if @mapping.nil? &amp;amp;&amp;amp; (@assignment.get_current_stage() == &amp;quot;review&amp;quot; || @assignment.get_current_stage() == &amp;quot;Finished&amp;quot;)  %&amp;gt;&lt;br /&gt;
        &amp;lt;% ReviewResponseMap.create(reviewee_id: team.id, reviewer_id: reviewer.id, reviewed_object_id: @assignment.id) %&amp;gt;&lt;br /&gt;
        &amp;lt;% map = ReviewResponseMap.find_by(reviewee_id: team.id, reviewer_id: reviewer.id, reviewed_object_id: @assignment.id) %&amp;gt;&lt;br /&gt;
        &amp;lt;%= link_to 'Begin Review', { controller: 'response', action: 'new', :id =&amp;gt; map.id, :return =&amp;gt; &amp;quot;ta_review&amp;quot; } %&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Any time during review or after deadline, user is given the flexibility to begin, edit or update their review --&amp;gt;&lt;br /&gt;
      &amp;lt;% elsif @assignment.get_current_stage() == &amp;quot;review&amp;quot; ||  @assignment.get_current_stage() == &amp;quot;Finished&amp;quot; %&amp;gt;&lt;br /&gt;
        &amp;lt;% map1 = ReviewResponseMap.find_by(reviewee_id: team.id, reviewer_id: reviewer.id, reviewed_object_id: @assignment.id) %&amp;gt;&lt;br /&gt;
        &amp;lt;% @sorted_responses = Array.new %&amp;gt;&lt;br /&gt;
        &amp;lt;% @sorted_responses = Response.where(:map_id =&amp;gt; map1.id) %&amp;gt;&lt;br /&gt;
        &amp;lt;!-- This means that mapping is created, but user never began the review. Hence linking to &amp;quot;Begin Review&amp;quot; --&amp;gt;&lt;br /&gt;
        &amp;lt;% if @sorted_responses.empty?%&amp;gt;&lt;br /&gt;
          &amp;lt;%= link_to 'Begin Review', { controller: 'response', action: 'new', :id =&amp;gt; map1.id, :return =&amp;gt; &amp;quot;ta_review&amp;quot; } %&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
        &amp;lt;% else %&amp;gt;&lt;br /&gt;
          &amp;lt;!-- There is at least more than one response. Hence we obtain latest response of them all. --&amp;gt;&lt;br /&gt;
          &amp;lt;% @sorted_responses = @sorted_responses.sort_by {|obj| obj.updated_at} # the latest should be at the last %&amp;gt;&lt;br /&gt;
          &amp;lt;% @latest_response = @sorted_responses.last %&amp;gt;&lt;br /&gt;
          &amp;lt;%if @latest_response.round.nil?%&amp;gt;        &amp;lt;!-- Getting current round as last response round in unavailable --&amp;gt;&lt;br /&gt;
            &amp;lt;% last_response_round = AssignmentDueDate.done_in_assignment_round(@assignment.id, @latest_response) %&amp;gt;&lt;br /&gt;
          &amp;lt;%else%&amp;gt;                                  &amp;lt;!-- Getting round in which the last response was given --&amp;gt;&lt;br /&gt;
            &amp;lt;% last_response_round = @latest_response.round %&amp;gt;&lt;br /&gt;
          &amp;lt;%end%&amp;gt;&lt;br /&gt;
          &amp;lt;% current_round = @assignment.number_of_current_round(topic_id) %&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Always displaying &amp;quot;View Review&amp;quot; link for latest response, as long as at least one response exists --&amp;gt;&lt;br /&gt;
          &amp;lt;%= link_to &amp;quot;View Review&amp;quot;, {:controller =&amp;gt; 'response', :action =&amp;gt; 'view', :id =&amp;gt; @latest_response.id} %&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
          &amp;lt;% if last_response_round == current_round %&amp;gt;&lt;br /&gt;
            &amp;lt;% latest_submission = team.most_recent_submission %&amp;gt;&lt;br /&gt;
            &amp;lt;% if !@latest_response.is_submitted %&amp;gt;               &amp;lt;!-- Allow to &amp;quot;Edit&amp;quot; review which has not been submitted yet --&amp;gt;&lt;br /&gt;
              &amp;lt;%= link_to &amp;quot;Edit Review&amp;quot;, {:controller =&amp;gt; 'response', :action =&amp;gt; 'edit', :id =&amp;gt; @latest_response.id, :return =&amp;gt; &amp;quot;ta_review&amp;quot; } %&amp;gt;&lt;br /&gt;
            &amp;lt;% else %&amp;gt;                                            &amp;lt;!-- Allow to &amp;quot;Update&amp;quot; review if team has updated their submission --&amp;gt;&lt;br /&gt;
              &amp;lt;%= link_to &amp;quot;Update Review&amp;quot;, {:controller =&amp;gt; 'response', :action =&amp;gt; 'new', :id =&amp;gt; map1.id, :return =&amp;gt; &amp;quot;ta_review&amp;quot; } %&amp;gt;&lt;br /&gt;
            &amp;lt;%end%&amp;gt;&lt;br /&gt;
          &amp;lt;% else %&amp;gt;                                              &amp;lt;!-- Allow to &amp;quot;Update&amp;quot; review when round changes --&amp;gt;&lt;br /&gt;
            &amp;lt;%= link_to &amp;quot;Update Review&amp;quot;, {:controller =&amp;gt; 'response', :action =&amp;gt; 'new', :id =&amp;gt; map1.id, :return =&amp;gt; &amp;quot;ta_review&amp;quot; } %&amp;gt;&lt;br /&gt;
          &amp;lt;% end %&amp;gt;&lt;br /&gt;
        &amp;lt;% end %&amp;gt;&lt;br /&gt;
      &amp;lt;% end %&amp;gt;&lt;br /&gt;
    &amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Part 2: Allow students to identify that their submission has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file &amp;lt;b&amp;gt;app/assets/stylesheets/grades.scss&amp;lt;/b&amp;gt; to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Part 3: Add instructor/TA as a participant while creating the assignment (Extra Feature) ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Current scenario''' &amp;lt;br&amp;gt;&lt;br /&gt;
The instructor/TA will be able to perform student reviews (after implementation of Part 1) for the assignment, only when he is a participant of the same assignment. Thus, every time he creates an assignment and wants to add himself as a participant in order to perform student reviews, he is supposed to do the following &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Go to list of assignments -&amp;gt; Find the required assignment -&amp;gt; Click on add participant -&amp;gt; Type user Id -&amp;gt; Click on add&lt;br /&gt;
The same flow is as shown below where the instructor/TA has created a new assignment say “Program 1 Github” wherein he wants himself as a participant to be able to perform student reviews :&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Addinstructor1.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AddInstructor2.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Add Instructor 3.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To overcome the hassle, we added a check box through which the instructor/TA will get an option to add himself as a participant while creating the assignment. Also, he will be able to add/remove himself as a participant while editing the assignment. &lt;br /&gt;
&lt;br /&gt;
'''Implementation''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The checkbox has been provided to Create New Assignment’s page under the Review strategy tab.&lt;br /&gt;
It is added as follows: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Add instructor 4.png]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the instructor/TA selects the box while creating the assignment, then he will be added as a participant for the same assignment. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Files edited: &lt;br /&gt;
&lt;br /&gt;
* '''View: ''' ''app/views/assignments/edit/_review_strategy.html.erb'' &amp;lt;br&amp;gt;&lt;br /&gt;
In this file, code for displaying the checkbox has been added which is as follows : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;input name='add_instructor' type=&amp;quot;hidden&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;%= check_box_tag('add_instructor', value = &amp;quot;1&amp;quot;, checked = is_instructor_a_participant?)%&amp;gt;&lt;br /&gt;
      &amp;lt;%= label_tag('add_instructor', 'Add yourself as a participant?') %&amp;gt;&lt;br /&gt;
      &amp;lt;img src=&amp;quot;/assets/info.png&amp;quot; title='If you add yourself as a participant then you will be able to perform reviews of students for this assignment'&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;
&lt;br /&gt;
Thus the checkbox &amp;quot;add_instructor&amp;quot; if selected adds the instructor as a participant to the currently being created assignment. Thus, instructor being a participant allows him to perform reviews for the students for this assignment.&lt;br /&gt;
&lt;br /&gt;
* '''Controller: ''' ''app/controllers/assignments_controller.rb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The file contains extra code which adds the instructor/TA as a participant if the checkbox has been selected while creating the assignment. Also, while editing the assignment, he will be able to add/remove himself as a participant for this assignment. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following methods are added to the controller :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 def is_instructor_a_participant?&lt;br /&gt;
    instructor_id = session[:user].id&lt;br /&gt;
    assignment_id = @assignment_form.assignment.id.to_s&lt;br /&gt;
&lt;br /&gt;
    if assignment_id != nil&lt;br /&gt;
      @is_instructor_a_participant = Participant.where(user_id: instructor_id , parent_id: assignment_id)&lt;br /&gt;
      if @is_instructor_a_participant.present?&lt;br /&gt;
        return true&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    return false&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
The method &amp;quot;is_instructor_a_participant?&amp;quot; returns true if the instructor is already a participant for the assignment, else returns false. This method is required to verify that the instructor/TA is not a participant of the assignment, and thus he can be added as a participant if the checkbox has been selected. Also, during editing the assignment, we need to show checkbox being selected if the instructor is a participant and vice versa. Thus, this method serves that purpose as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def add_instructor_as_participant(assignment_id)&lt;br /&gt;
    if params[:add_instructor] == 'false' and is_instructor_a_participant? == true&lt;br /&gt;
      delete_instructor_as_participant(assignment_id,session[:user].id)&lt;br /&gt;
    elsif params[:add_instructor] == '1' and is_instructor_a_participant? == false&lt;br /&gt;
      current_assignment = Object.const_get(&amp;quot;Assignment&amp;quot;).find(assignment_id)&lt;br /&gt;
      current_assignment.add_participant(session[:user].name, true, true, true)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The method &amp;quot;add_instructor_as_participant&amp;quot; is been called from create and update methods in the Assignment controller. It checks if the &amp;quot;Add yourself as participant&amp;quot; checkbox is selected for the currently created/edited assignment. If it is selected during creation or editing, then the instructor is added as a participant to the currently created/edited assignment. The participant is added by using the already existing method &amp;quot;add_participant&amp;quot; in the model assignment.rb Also, if the option is unchecked during editing, then the instructor is removed as a participant.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def delete_instructor_as_participant(assignment_id , instructor_id)&lt;br /&gt;
    Participant.where(user_id: instructor_id , parent_id: assignment_id).destroy_all&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The method &amp;quot;delete_instructor_as_participant&amp;quot; removes instructor as a participant for the assignment when the checkbox is unchecked during the editing of the assignment.&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
The following activity diagram summarizes our proposed implementation for the above mentioned issue:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Testing''' ==&lt;br /&gt;
=== UI Testing ===&lt;br /&gt;
==== Part 1: Allowing instructor/TA to perform review ====&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Login in as an instructor. &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Username: instructor6&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Password: password&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt; &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Choose any assignment from the list of assignments which involves teams; since an assignment without teams does not include the review procedure. For example, “Final project (design and doc)” is a good assignment to choose.&lt;br /&gt;
&amp;lt;li&amp;gt;Now, while testing this functionality, it is recommended to keep the following pages opened in different tabs by clicking on the small icons in the same row as the assignment that you want to test: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a. “Edit” -&amp;gt; “Due Dates” tab &lt;br /&gt;
[[File:edit_assignment.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
b. “Add participants”&lt;br /&gt;
[[File:add_as_participant.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
c. “View Submissions” 	&lt;br /&gt;
[[File:list_submissions.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now add the instructor as a participant (3.b). and edit the ALL due dates (3.a.) of different stages to any date later from now (hence the assignment goes into the “submission” stage by default). Save both these changes. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now refresh the view submissions page (3.c.), you will see a list of assignments with no link to review or assign grade.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now switch to edit due dates tab (3.a.) again. Set the due date for submission to a previous date which has passed, hence the next due date will be for the “review” stage by default (which will have a later due date from now.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Refresh view submissions page (3.c.), you will see a list of assignments with a link to “Begin Review.”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can click on it. If you “save” your response, you will see that the link has been replace by “View review” and “Edit review” now. Whereas, if you “submit” the response, the link will be replaced by “View review” and “Update review.”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Depending on the number of stages that an assignment has, you can edit the due date at every stage and check whether the links are displayed appropriately.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally when the last deadline of the assignment is set to a previous date which has passed, you will see the link to “Assign grade” in view submissions (3.c.), and the user will still be able to begin, edit or update a review in order to provide flexibility as per the requirements.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Edge Cases:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user is not a participant of the current assignment, they are shown a list of all submissions made by all teams of the current assignment. They are shown the link to “Assign Grade” only when the final deadline of the assignment passes.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;During any review stage or even after the deadline, the user is offered the flexibility to Begin, Edit, View or Update their review.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Part 3: Add instructor/TA as a participant while creating the assignment===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Login in as an instructor. &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Username: instructor6&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Password: password&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt; &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Team Members''' ==&lt;br /&gt;
Mentor: Prof. Edward Gehringer (efg@ncsu.edu)&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anuja Kulkarni - apkulka2@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mark Trawick - mtrawic@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Parvathy Menon - pharida@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Samruddhi Khandale - sskhanda@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129919</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129919"/>
		<updated>2019-12-06T02:18:00Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However, sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development. &lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience. Currently, there exists no method for the instructor/TA to perform reviews of assignments submitted by the students. Hence this is what this project aims at, allowing instructor/TA to perform reviews.&lt;br /&gt;
&lt;br /&gt;
Thus, the primary aim of this project is to allow instructors to submit reviews of student work, using the same review form that students use to do reviews.&lt;br /&gt;
&lt;br /&gt;
=='''Implementation Details''' ==&lt;br /&gt;
Our project aims at enabling the instructor/TA to review the submissions using the same form that a student uses while peer-reviewing. For this, our implementation has been divided into 3 parts, and can be described as follows:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The first part involves the primary functionality of letting the staff perform a review on students submission.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The second part involves allowing the students to identify from their end, which review has been performed by an instructor/TA. This will help students improve their project as the opinions presented by a staff member would be valid.&amp;lt;/li&amp;gt;  &lt;br /&gt;
&amp;lt;li&amp;gt;Thirdly, we implemented an additional feature that allows the instructor/TA to add himself as a participant while creating/editing an Assignment (This way seemed to be more convenient rather than going to the “Add Participant” page and adding themselves as a participant.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Part 1: Allowing instructor/TA to perform review===&lt;br /&gt;
Note 1: “Instructor/TA” will be referred to by “user” here onwards.&lt;br /&gt;
&lt;br /&gt;
Note 2: To be able to perform a review, the user has to be a participant of that assignment. We have implemented “Add as Participant” as an additional feature which is explained in Part 3. If the user is not a participant, he will only see the link to “Assign grade” that too after the assignment deadline passes.&lt;br /&gt;
Now, for each assignment, there is a page called “List Submissions” where the user can view all the submissions. So we have modified this page so that for each team submission a link for “Begin review,” “Edit review,” “View review,” “Update review,” or “Assign grade” may appear depending on the [http://wiki.expertiza.ncsu.edu/index.php/Deadline_types stage] in which the assignment is. &lt;br /&gt;
&lt;br /&gt;
The following describes the flow of our project considering a fresh assignment.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the assignment is created, it is by default is in the “submission” stage. Hence the user will not see any link on the list submission page.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the first deadline passes, the assignment goes into the “review” stage. Hence the link “Begin review” will be visible for each team submission, where the instructor/TA can click on to submit the review. Two cases can occur here:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “submits” a review, they will be redirected to the list submission page where they’ll see the option “View review” or “Update review.” Being an instructor/TA, they are given the flexibility to update their review at any time during the “review” stage.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “saves” a review, they will be redirected to the list submission page where they’ll see the option “View review” and “Edit Review (as they have not submitted it yet.)”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;After the first review is over, if more stages of “submissions” and “reviews” exist, it will follow the above 2 steps until the final assignment deadline does not pass. Note that at any round of the review, the user can “Begin review” for a submission which they had not reviewed in the previous rounds. This is to provide flexibility to them as per the requirement.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally, after the assignment deadline passes, the assignment goes into the “Finished” stage. This is when the “Assign grade” link will be visible to the user. Along with this, depending on whether they have reviewed a particular submission or not, the begin, view, update links will be visible to them as they should be able to perform the review even after the assignment deadline for the students has passed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Part 2: Allow students to identify that their submission has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file &amp;lt;b&amp;gt;app/assets/stylesheets/grades.scss&amp;lt;/b&amp;gt; to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Part 3: Add instructor/TA as a participant while creating the assignment (Extra Feature) ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Current scenario''' &amp;lt;br&amp;gt;&lt;br /&gt;
The instructor/TA will be able to perform student reviews (after implementation of Part 1) for the assignment, only when he is a participant of the same assignment. Thus, every time he creates an assignment and wants to add himself as a participant in order to perform student reviews, he is supposed to do the following &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Go to list of assignments -&amp;gt; Find the required assignment -&amp;gt; Click on add participant -&amp;gt; Type user Id -&amp;gt; Click on add&lt;br /&gt;
The same flow is as shown below where the instructor/TA has created a new assignment say “Program 1 Github” wherein he wants himself as a participant to be able to perform student reviews :&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Addinstructor1.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AddInstructor2.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Add Instructor 3.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To overcome the hassle, we added a check box through which the instructor/TA will get an option to add himself as a participant while creating the assignment. Also, he will be able to add/remove himself as a participant while editing the assignment. &lt;br /&gt;
&lt;br /&gt;
'''Implementation''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The checkbox has been provided to Create New Assignment’s page under the Review strategy tab.&lt;br /&gt;
It is added as follows: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Add instructor 4.png]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the instructor/TA selects the box while creating the assignment, then he will be added as a participant for the same assignment. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Files edited: &lt;br /&gt;
&lt;br /&gt;
* '''View: ''' ''app/views/assignments/edit/_review_strategy.html.erb'' &amp;lt;br&amp;gt;&lt;br /&gt;
In this file, code for displaying the checkbox has been added which is as follows : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;input name='add_instructor' type=&amp;quot;hidden&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;%= check_box_tag('add_instructor', value = &amp;quot;1&amp;quot;, checked = is_instructor_a_participant?)%&amp;gt;&lt;br /&gt;
      &amp;lt;%= label_tag('add_instructor', 'Add yourself as a participant?') %&amp;gt;&lt;br /&gt;
      &amp;lt;img src=&amp;quot;/assets/info.png&amp;quot; title='If you add yourself as a participant then you will be able to perform reviews of students for this assignment'&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;
&lt;br /&gt;
Thus the checkbox &amp;quot;add_instructor&amp;quot; if selected adds the instructor as a participant to the currently being created assignment. Thus, instructor being a participant allows him to perform reviews for the students for this assignment.&lt;br /&gt;
&lt;br /&gt;
* '''Controller: ''' ''app/controllers/assignments_controller.rb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The file contains extra code which adds the instructor/TA as a participant if the checkbox has been selected while creating the assignment. Also, while editing the assignment, he will be able to add/remove himself as a participant for this assignment. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following methods are added to the controller :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 def is_instructor_a_participant?&lt;br /&gt;
    instructor_id = session[:user].id&lt;br /&gt;
    assignment_id = @assignment_form.assignment.id.to_s&lt;br /&gt;
&lt;br /&gt;
    if assignment_id != nil&lt;br /&gt;
      @is_instructor_a_participant = Participant.where(user_id: instructor_id , parent_id: assignment_id)&lt;br /&gt;
      if @is_instructor_a_participant.present?&lt;br /&gt;
        return true&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    return false&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
The method &amp;quot;is_instructor_a_participant?&amp;quot; returns true if the instructor is already a participant for the assignment, else returns false. This method is required to verify that the instructor/TA is not a participant of the assignment, and thus he can be added as a participant if the checkbox has been selected. Also, during editing the assignment, we need to show checkbox being selected if the instructor is a participant and vice versa. Thus, this method serves that purpose as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def add_instructor_as_participant(assignment_id)&lt;br /&gt;
    if params[:add_instructor] == 'false' and is_instructor_a_participant? == true&lt;br /&gt;
      delete_instructor_as_participant(assignment_id,session[:user].id)&lt;br /&gt;
    elsif params[:add_instructor] == '1' and is_instructor_a_participant? == false&lt;br /&gt;
      current_assignment = Object.const_get(&amp;quot;Assignment&amp;quot;).find(assignment_id)&lt;br /&gt;
      current_assignment.add_participant(session[:user].name, true, true, true)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The method &amp;quot;add_instructor_as_participant&amp;quot; is been called from create and update methods in the Assignment controller. It checks if the &amp;quot;Add yourself as participant&amp;quot; checkbox is selected for the currently created/edited assignment. If it is selected during creation or editing, then the instructor is added as a participant to the currently created/edited assignment. The participant is added by using the already existing method &amp;quot;add_participant&amp;quot; in the model assignment.rb Also, if the option is unchecked during editing, then the instructor is removed as a participant.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def delete_instructor_as_participant(assignment_id , instructor_id)&lt;br /&gt;
    Participant.where(user_id: instructor_id , parent_id: assignment_id).destroy_all&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The method &amp;quot;delete_instructor_as_participant&amp;quot; removes instructor as a participant for the assignment when the checkbox is unchecked during the editing of the assignment.&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
The following activity diagram summarizes our proposed implementation for the above mentioned issue:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Testing''' ==&lt;br /&gt;
=== UI Testing ===&lt;br /&gt;
==== Part 1: Allowing instructor/TA to perform review ====&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Login in as an instructor. &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Username: instructor6&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Password: password&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt; &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Choose any assignment from the list of assignments which involves teams; since an assignment without teams does not include the review procedure. For example, “Final project (design and doc)” is a good assignment to choose.&lt;br /&gt;
&amp;lt;li&amp;gt;Now, while testing this functionality, it is recommended to keep the following pages opened in different tabs by clicking on the small icons in the same row as the assignment that you want to test: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a. “Edit” -&amp;gt; “Due Dates” tab &lt;br /&gt;
[[File:edit_assignment.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
b. “Add participants”&lt;br /&gt;
[[File:add_as_participant.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
c. “View Submissions” 	&lt;br /&gt;
[[File:list_submissions.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now add the instructor as a participant (3.b). and edit the ALL due dates (3.a.) of different stages to any date later from now (hence the assignment goes into the “submission” stage by default). Save both these changes. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now refresh the view submissions page (3.c.), you will see a list of assignments with no link to review or assign grade.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now switch to edit due dates tab (3.a.) again. Set the due date for submission to a previous date which has passed, hence the next due date will be for the “review” stage by default (which will have a later due date from now.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Refresh view submissions page (3.c.), you will see a list of assignments with a link to “Begin Review.”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can click on it. If you “save” your response, you will see that the link has been replace by “View review” and “Edit review” now. Whereas, if you “submit” the response, the link will be replaced by “View review” and “Update review.”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Depending on the number of stages that an assignment has, you can edit the due date at every stage and check whether the links are displayed appropriately.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally when the last deadline of the assignment is set to a previous date which has passed, you will see the link to “Assign grade” in view submissions (3.c.), and the user will still be able to begin, edit or update a review in order to provide flexibility as per the requirements.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Edge Cases:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user is not a participant of the current assignment, they are shown a list of all submissions made by all teams of the current assignment. They are shown the link to “Assign Grade” only when the final deadline of the assignment passes.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;During any review stage or even after the deadline, the user is offered the flexibility to Begin, Edit, View or Update their review.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Part 3: Add instructor/TA as a participant while creating the assignment===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Login in as an instructor. &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Username: instructor6&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Password: password&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt; &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Team Members''' ==&lt;br /&gt;
Mentor: Prof. Edward Gehringer (efg@ncsu.edu)&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anuja Kulkarni - apkulka2@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mark Trawick - mtrawic@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Parvathy Menon - pharida@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Samruddhi Khandale - sskhanda@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129918</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129918"/>
		<updated>2019-12-06T02:17:32Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However, sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development. &lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience. Currently, there exists no method for the instructor/TA to perform reviews of assignments submitted by the students. Hence this is what this project aims at, allowing instructor/TA to perform reviews.&lt;br /&gt;
&lt;br /&gt;
Thus, the primary aim of this project is to allow instructors to submit reviews of student work, using the same review form that students use to do reviews.&lt;br /&gt;
&lt;br /&gt;
=='''Implementation Details''' ==&lt;br /&gt;
Our project aims at enabling the instructor/TA to review the submissions using the same form that a student uses while peer-reviewing. For this, our implementation has been divided into 3 parts, and can be described as follows:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The first part involves the primary functionality of letting the staff perform a review on students submission.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The second part involves allowing the students to identify from their end, which review has been performed by an instructor/TA. This will help students improve their project as the opinions presented by a staff member would be valid.&amp;lt;/li&amp;gt;  &lt;br /&gt;
&amp;lt;li&amp;gt;Thirdly, we implemented an additional feature that allows the instructor/TA to add himself as a participant while creating/editing an Assignment (This way seemed to be more convenient rather than going to the “Add Participant” page and adding themselves as a participant.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Part 1: Allowing instructor/TA to perform review===&lt;br /&gt;
Note 1: “Instructor/TA” will be referred to by “user” here onwards.&lt;br /&gt;
&lt;br /&gt;
Note 2: To be able to perform a review, the user has to be a participant of that assignment. We have implemented “Add as Participant” as an additional feature which is explained in Part 3. If the user is not a participant, he will only see the link to “Assign grade” that too after the assignment deadline passes.&lt;br /&gt;
Now, for each assignment, there is a page called “List Submissions” where the user can view all the submissions. So we have modified this page so that for each team submission a link for “Begin review,” “Edit review,” “View review,” “Update review,” or “Assign grade” may appear depending on the [http://wiki.expertiza.ncsu.edu/index.php/Deadline_types stage] in which the assignment is. &lt;br /&gt;
&lt;br /&gt;
The following describes the flow of our project considering a fresh assignment.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the assignment is created, it is by default is in the “submission” stage. Hence the user will not see any link on the list submission page.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the first deadline passes, the assignment goes into the “review” stage. Hence the link “Begin review” will be visible for each team submission, where the instructor/TA can click on to submit the review. Two cases can occur here:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “submits” a review, they will be redirected to the list submission page where they’ll see the option “View review” or “Update review.” Being an instructor/TA, they are given the flexibility to update their review at any time during the “review” stage.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “saves” a review, they will be redirected to the list submission page where they’ll see the option “View review” and “Edit Review (as they have not submitted it yet.)”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;After the first review is over, if more stages of “submissions” and “reviews” exist, it will follow the above 2 steps until the final assignment deadline does not pass. Note that at any round of the review, the user can “Begin review” for a submission which they had not reviewed in the previous rounds. This is to provide flexibility to them as per the requirement.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally, after the assignment deadline passes, the assignment goes into the “Finished” stage. This is when the “Assign grade” link will be visible to the user. Along with this, depending on whether they have reviewed a particular submission or not, the begin, view, update links will be visible to them as they should be able to perform the review even after the assignment deadline for the students has passed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Part 2: Allow students to identify that their submission has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file &amp;lt;b&amp;gt;app/assets/stylesheets/grades.scss&amp;lt;/b&amp;gt; to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Part 3: Add instructor/TA as a participant while creating the assignment (Extra Feature) ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Current scenario''' &amp;lt;br&amp;gt;&lt;br /&gt;
The instructor/TA will be able to perform student reviews (after implementation of Part 1) for the assignment, only when he is a participant of the same assignment. Thus, every time he creates an assignment and wants to add himself as a participant in order to perform student reviews, he is supposed to do the following &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Go to list of assignments -&amp;gt; Find the required assignment -&amp;gt; Click on add participant -&amp;gt; Type user Id -&amp;gt; Click on add&lt;br /&gt;
The same flow is as shown below where the instructor/TA has created a new assignment say “Program 1 Github” wherein he wants himself as a participant to be able to perform student reviews :&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Addinstructor1.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AddInstructor2.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Add Instructor 3.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To overcome the hassle, we added a check box through which the instructor/TA will get an option to add himself as a participant while creating the assignment. Also, he will be able to add/remove himself as a participant while editing the assignment. &lt;br /&gt;
&lt;br /&gt;
'''Implementation''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The checkbox has been provided to Create New Assignment’s page under the Review strategy tab.&lt;br /&gt;
It is added as follows: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Add instructor 4.png]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the instructor/TA selects the box while creating the assignment, then he will be added as a participant for the same assignment. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Files edited: &lt;br /&gt;
&lt;br /&gt;
* '''View: ''' ''app/views/assignments/edit/_review_strategy.html.erb'' &amp;lt;br&amp;gt;&lt;br /&gt;
In this file, code for displaying the checkbox has been added which is as follows : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;input name='add_instructor' type=&amp;quot;hidden&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;%= check_box_tag('add_instructor', value = &amp;quot;1&amp;quot;, checked = is_instructor_a_participant?)%&amp;gt;&lt;br /&gt;
      &amp;lt;%= label_tag('add_instructor', 'Add yourself as a participant?') %&amp;gt;&lt;br /&gt;
      &amp;lt;img src=&amp;quot;/assets/info.png&amp;quot; title='If you add yourself as a participant then you will be able to perform reviews of students for this assignment'&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;
&lt;br /&gt;
Thus the checkbox &amp;quot;add_instructor&amp;quot; if selected adds the instructor as a participant to the currently being created assignment. Thus, instructor being a participant allows him to perform reviews for the students for this assignment.&lt;br /&gt;
&lt;br /&gt;
* '''Controller: ''' ''app/controllers/assignments_controller.rb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The file contains extra code which adds the instructor/TA as a participant if the checkbox has been selected while creating the assignment. Also, while editing the assignment, he will be able to add/remove himself as a participant for this assignment. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following methods are added to the controller :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 def is_instructor_a_participant?&lt;br /&gt;
    instructor_id = session[:user].id&lt;br /&gt;
    assignment_id = @assignment_form.assignment.id.to_s&lt;br /&gt;
&lt;br /&gt;
    if assignment_id != nil&lt;br /&gt;
      @is_instructor_a_participant = Participant.where(user_id: instructor_id , parent_id: assignment_id)&lt;br /&gt;
      if @is_instructor_a_participant.present?&lt;br /&gt;
        return true&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    return false&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
The method &amp;quot;is_instructor_a_participant?&amp;quot; returns true if the instructor is already a participant for the assignment, else returns false. This method is required to verify that the instructor/TA is not a participant of the assignment, and thus he can be added as a participant if the checkbox has been selected. Also, during editing the assignment, we need to show checkbox being selected if the instructor is a participant and vice versa. Thus, this method serves that purpose as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def add_instructor_as_participant(assignment_id)&lt;br /&gt;
    if params[:add_instructor] == 'false' and is_instructor_a_participant? == true&lt;br /&gt;
      delete_instructor_as_participant(assignment_id,session[:user].id)&lt;br /&gt;
    elsif params[:add_instructor] == '1' and is_instructor_a_participant? == false&lt;br /&gt;
      current_assignment = Object.const_get(&amp;quot;Assignment&amp;quot;).find(assignment_id)&lt;br /&gt;
      current_assignment.add_participant(session[:user].name, true, true, true)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The method &amp;quot;add_instructor_as_participant&amp;quot; is been called from create and update methods in the Assignment controller. It checks if the &amp;quot;Add yourself as participant&amp;quot; checkbox is selected for the currently created/edited assignment. If it is selected during creation or editing, then the instructor is added as a participant to the currently created/edited assignment. The participant is added by using the already existing method &amp;quot;add_participant&amp;quot; in the model assignment.rb Also, if the option is unchecked during editing, then the instructor is removed as a participant.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def delete_instructor_as_participant(assignment_id , instructor_id)&lt;br /&gt;
    Participant.where(user_id: instructor_id , parent_id: assignment_id).destroy_all&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The method &amp;quot;delete_instructor_as_participant&amp;quot; removes instructor as a participant for the assignment when the checkbox is unchecked during the editing of the assignment.&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
The following activity diagram summarizes our proposed implementation for the above mentioned issue:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Testing''' ==&lt;br /&gt;
=== UI Testing ===&lt;br /&gt;
==== Part 1: Allowing instructor/TA to perform review ====&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Login in as an instructor. &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Username: instructor6&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Password: password&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt; &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Choose any assignment from the list of assignments which involves teams; since an assignment without teams does not include the review procedure. For example, “Final project (design and doc)” is a good assignment to choose.&lt;br /&gt;
&amp;lt;li&amp;gt;Now, while testing this functionality, it is recommended to keep the following pages opened in different tabs by clicking on the small icons in the same row as the assignment that you want to test: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a. “Edit” -&amp;gt; “Due Dates” tab &lt;br /&gt;
[[File:edit_assignment.png|200px]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
b. “Add participants”&lt;br /&gt;
[[File:add_as_participant.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
c. “View Submissions” 	&lt;br /&gt;
[[File:list_submissions.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now add the instructor as a participant (3.b). and edit the ALL due dates (3.a.) of different stages to any date later from now (hence the assignment goes into the “submission” stage by default). Save both these changes. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now refresh the view submissions page (3.c.), you will see a list of assignments with no link to review or assign grade.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now switch to edit due dates tab (3.a.) again. Set the due date for submission to a previous date which has passed, hence the next due date will be for the “review” stage by default (which will have a later due date from now.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Refresh view submissions page (3.c.), you will see a list of assignments with a link to “Begin Review.”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can click on it. If you “save” your response, you will see that the link has been replace by “View review” and “Edit review” now. Whereas, if you “submit” the response, the link will be replaced by “View review” and “Update review.”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Depending on the number of stages that an assignment has, you can edit the due date at every stage and check whether the links are displayed appropriately.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally when the last deadline of the assignment is set to a previous date which has passed, you will see the link to “Assign grade” in view submissions (3.c.), and the user will still be able to begin, edit or update a review in order to provide flexibility as per the requirements.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Edge Cases:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user is not a participant of the current assignment, they are shown a list of all submissions made by all teams of the current assignment. They are shown the link to “Assign Grade” only when the final deadline of the assignment passes.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;During any review stage or even after the deadline, the user is offered the flexibility to Begin, Edit, View or Update their review.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Part 3: Add instructor/TA as a participant while creating the assignment===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Login in as an instructor. &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Username: instructor6&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Password: password&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt; &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Team Members''' ==&lt;br /&gt;
Mentor: Prof. Edward Gehringer (efg@ncsu.edu)&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anuja Kulkarni - apkulka2@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mark Trawick - mtrawic@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Parvathy Menon - pharida@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Samruddhi Khandale - sskhanda@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129917</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129917"/>
		<updated>2019-12-06T02:17:01Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However, sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development. &lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience. Currently, there exists no method for the instructor/TA to perform reviews of assignments submitted by the students. Hence this is what this project aims at, allowing instructor/TA to perform reviews.&lt;br /&gt;
&lt;br /&gt;
Thus, the primary aim of this project is to allow instructors to submit reviews of student work, using the same review form that students use to do reviews.&lt;br /&gt;
&lt;br /&gt;
=='''Implementation Details''' ==&lt;br /&gt;
Our project aims at enabling the instructor/TA to review the submissions using the same form that a student uses while peer-reviewing. For this, our implementation has been divided into 3 parts, and can be described as follows:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The first part involves the primary functionality of letting the staff perform a review on students submission.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The second part involves allowing the students to identify from their end, which review has been performed by an instructor/TA. This will help students improve their project as the opinions presented by a staff member would be valid.&amp;lt;/li&amp;gt;  &lt;br /&gt;
&amp;lt;li&amp;gt;Thirdly, we implemented an additional feature that allows the instructor/TA to add himself as a participant while creating/editing an Assignment (This way seemed to be more convenient rather than going to the “Add Participant” page and adding themselves as a participant.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Part 1: Allowing instructor/TA to perform review===&lt;br /&gt;
Note 1: “Instructor/TA” will be referred to by “user” here onwards.&lt;br /&gt;
&lt;br /&gt;
Note 2: To be able to perform a review, the user has to be a participant of that assignment. We have implemented “Add as Participant” as an additional feature which is explained in Part 3. If the user is not a participant, he will only see the link to “Assign grade” that too after the assignment deadline passes.&lt;br /&gt;
Now, for each assignment, there is a page called “List Submissions” where the user can view all the submissions. So we have modified this page so that for each team submission a link for “Begin review,” “Edit review,” “View review,” “Update review,” or “Assign grade” may appear depending on the [http://wiki.expertiza.ncsu.edu/index.php/Deadline_types stage] in which the assignment is. &lt;br /&gt;
&lt;br /&gt;
The following describes the flow of our project considering a fresh assignment.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the assignment is created, it is by default is in the “submission” stage. Hence the user will not see any link on the list submission page.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the first deadline passes, the assignment goes into the “review” stage. Hence the link “Begin review” will be visible for each team submission, where the instructor/TA can click on to submit the review. Two cases can occur here:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “submits” a review, they will be redirected to the list submission page where they’ll see the option “View review” or “Update review.” Being an instructor/TA, they are given the flexibility to update their review at any time during the “review” stage.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “saves” a review, they will be redirected to the list submission page where they’ll see the option “View review” and “Edit Review (as they have not submitted it yet.)”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;After the first review is over, if more stages of “submissions” and “reviews” exist, it will follow the above 2 steps until the final assignment deadline does not pass. Note that at any round of the review, the user can “Begin review” for a submission which they had not reviewed in the previous rounds. This is to provide flexibility to them as per the requirement.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally, after the assignment deadline passes, the assignment goes into the “Finished” stage. This is when the “Assign grade” link will be visible to the user. Along with this, depending on whether they have reviewed a particular submission or not, the begin, view, update links will be visible to them as they should be able to perform the review even after the assignment deadline for the students has passed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Part 2: Allow students to identify that their submission has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file &amp;lt;b&amp;gt;app/assets/stylesheets/grades.scss&amp;lt;/b&amp;gt; to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Part 3: Add instructor/TA as a participant while creating the assignment (Extra Feature) ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Current scenario''' &amp;lt;br&amp;gt;&lt;br /&gt;
The instructor/TA will be able to perform student reviews (after implementation of Part 1) for the assignment, only when he is a participant of the same assignment. Thus, every time he creates an assignment and wants to add himself as a participant in order to perform student reviews, he is supposed to do the following &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Go to list of assignments -&amp;gt; Find the required assignment -&amp;gt; Click on add participant -&amp;gt; Type user Id -&amp;gt; Click on add&lt;br /&gt;
The same flow is as shown below where the instructor/TA has created a new assignment say “Program 1 Github” wherein he wants himself as a participant to be able to perform student reviews :&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Addinstructor1.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AddInstructor2.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Add Instructor 3.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To overcome the hassle, we added a check box through which the instructor/TA will get an option to add himself as a participant while creating the assignment. Also, he will be able to add/remove himself as a participant while editing the assignment. &lt;br /&gt;
&lt;br /&gt;
'''Implementation''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The checkbox has been provided to Create New Assignment’s page under the Review strategy tab.&lt;br /&gt;
It is added as follows: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Add instructor 4.png]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the instructor/TA selects the box while creating the assignment, then he will be added as a participant for the same assignment. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Files edited: &lt;br /&gt;
&lt;br /&gt;
* '''View: ''' ''app/views/assignments/edit/_review_strategy.html.erb'' &amp;lt;br&amp;gt;&lt;br /&gt;
In this file, code for displaying the checkbox has been added which is as follows : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;input name='add_instructor' type=&amp;quot;hidden&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;%= check_box_tag('add_instructor', value = &amp;quot;1&amp;quot;, checked = is_instructor_a_participant?)%&amp;gt;&lt;br /&gt;
      &amp;lt;%= label_tag('add_instructor', 'Add yourself as a participant?') %&amp;gt;&lt;br /&gt;
      &amp;lt;img src=&amp;quot;/assets/info.png&amp;quot; title='If you add yourself as a participant then you will be able to perform reviews of students for this assignment'&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;
&lt;br /&gt;
Thus the checkbox &amp;quot;add_instructor&amp;quot; if selected adds the instructor as a participant to the currently being created assignment. Thus, instructor being a participant allows him to perform reviews for the students for this assignment.&lt;br /&gt;
&lt;br /&gt;
* '''Controller: ''' ''app/controllers/assignments_controller.rb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The file contains extra code which adds the instructor/TA as a participant if the checkbox has been selected while creating the assignment. Also, while editing the assignment, he will be able to add/remove himself as a participant for this assignment. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following methods are added to the controller :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 def is_instructor_a_participant?&lt;br /&gt;
    instructor_id = session[:user].id&lt;br /&gt;
    assignment_id = @assignment_form.assignment.id.to_s&lt;br /&gt;
&lt;br /&gt;
    if assignment_id != nil&lt;br /&gt;
      @is_instructor_a_participant = Participant.where(user_id: instructor_id , parent_id: assignment_id)&lt;br /&gt;
      if @is_instructor_a_participant.present?&lt;br /&gt;
        return true&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    return false&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
The method &amp;quot;is_instructor_a_participant?&amp;quot; returns true if the instructor is already a participant for the assignment, else returns false. This method is required to verify that the instructor/TA is not a participant of the assignment, and thus he can be added as a participant if the checkbox has been selected. Also, during editing the assignment, we need to show checkbox being selected if the instructor is a participant and vice versa. Thus, this method serves that purpose as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def add_instructor_as_participant(assignment_id)&lt;br /&gt;
    if params[:add_instructor] == 'false' and is_instructor_a_participant? == true&lt;br /&gt;
      delete_instructor_as_participant(assignment_id,session[:user].id)&lt;br /&gt;
    elsif params[:add_instructor] == '1' and is_instructor_a_participant? == false&lt;br /&gt;
      current_assignment = Object.const_get(&amp;quot;Assignment&amp;quot;).find(assignment_id)&lt;br /&gt;
      current_assignment.add_participant(session[:user].name, true, true, true)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The method &amp;quot;add_instructor_as_participant&amp;quot; is been called from create and update methods in the Assignment controller. It checks if the &amp;quot;Add yourself as participant&amp;quot; checkbox is selected for the currently created/edited assignment. If it is selected during creation or editing, then the instructor is added as a participant to the currently created/edited assignment. The participant is added by using the already existing method &amp;quot;add_participant&amp;quot; in the model assignment.rb Also, if the option is unchecked during editing, then the instructor is removed as a participant.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def delete_instructor_as_participant(assignment_id , instructor_id)&lt;br /&gt;
    Participant.where(user_id: instructor_id , parent_id: assignment_id).destroy_all&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The method &amp;quot;delete_instructor_as_participant&amp;quot; removes instructor as a participant for the assignment when the checkbox is unchecked during the editing of the assignment.&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
The following activity diagram summarizes our proposed implementation for the above mentioned issue:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Testing''' ==&lt;br /&gt;
=== UI Testing ===&lt;br /&gt;
==== Part 1: Allowing instructor/TA to perform review ====&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Login in as an instructor. &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Username: instructor6&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Password: password&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt; &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Choose any assignment from the list of assignments which involves teams; since an assignment without teams does not include the review procedure. For example, “Final project (design and doc)” is a good assignment to choose.&lt;br /&gt;
&amp;lt;li&amp;gt;Now, while testing this functionality, it is recommended to keep the following pages opened in different tabs by clicking on the small icons in the same row as the assignment that you want to test: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a. “Edit” -&amp;gt; “Due Dates” tab &lt;br /&gt;
&lt;br /&gt;
b. “Add participants”&lt;br /&gt;
[[File:add_as_participant.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
c. “View Submissions” 	&lt;br /&gt;
[[File:list_submissions.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now add the instructor as a participant (3.b). and edit the ALL due dates (3.a.) of different stages to any date later from now (hence the assignment goes into the “submission” stage by default). Save both these changes. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now refresh the view submissions page (3.c.), you will see a list of assignments with no link to review or assign grade.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now switch to edit due dates tab (3.a.) again. Set the due date for submission to a previous date which has passed, hence the next due date will be for the “review” stage by default (which will have a later due date from now.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Refresh view submissions page (3.c.), you will see a list of assignments with a link to “Begin Review.”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can click on it. If you “save” your response, you will see that the link has been replace by “View review” and “Edit review” now. Whereas, if you “submit” the response, the link will be replaced by “View review” and “Update review.”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Depending on the number of stages that an assignment has, you can edit the due date at every stage and check whether the links are displayed appropriately.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally when the last deadline of the assignment is set to a previous date which has passed, you will see the link to “Assign grade” in view submissions (3.c.), and the user will still be able to begin, edit or update a review in order to provide flexibility as per the requirements.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Edge Cases:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user is not a participant of the current assignment, they are shown a list of all submissions made by all teams of the current assignment. They are shown the link to “Assign Grade” only when the final deadline of the assignment passes.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;During any review stage or even after the deadline, the user is offered the flexibility to Begin, Edit, View or Update their review.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Part 3: Add instructor/TA as a participant while creating the assignment===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Login in as an instructor. &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Username: instructor6&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Password: password&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt; &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Team Members''' ==&lt;br /&gt;
Mentor: Prof. Edward Gehringer (efg@ncsu.edu)&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anuja Kulkarni - apkulka2@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mark Trawick - mtrawic@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Parvathy Menon - pharida@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Samruddhi Khandale - sskhanda@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129914</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129914"/>
		<updated>2019-12-06T02:15:40Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However, sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development. &lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience. Currently, there exists no method for the instructor/TA to perform reviews of assignments submitted by the students. Hence this is what this project aims at, allowing instructor/TA to perform reviews.&lt;br /&gt;
&lt;br /&gt;
Thus, the primary aim of this project is to allow instructors to submit reviews of student work, using the same review form that students use to do reviews.&lt;br /&gt;
&lt;br /&gt;
=='''Implementation Details''' ==&lt;br /&gt;
Our project aims at enabling the instructor/TA to review the submissions using the same form that a student uses while peer-reviewing. For this, our implementation has been divided into 3 parts, and can be described as follows:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The first part involves the primary functionality of letting the staff perform a review on students submission.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The second part involves allowing the students to identify from their end, which review has been performed by an instructor/TA. This will help students improve their project as the opinions presented by a staff member would be valid.&amp;lt;/li&amp;gt;  &lt;br /&gt;
&amp;lt;li&amp;gt;Thirdly, we implemented an additional feature that allows the instructor/TA to add himself as a participant while creating/editing an Assignment (This way seemed to be more convenient rather than going to the “Add Participant” page and adding themselves as a participant.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Part 1: Allowing instructor/TA to perform review===&lt;br /&gt;
Note 1: “Instructor/TA” will be referred to by “user” here onwards.&lt;br /&gt;
&lt;br /&gt;
Note 2: To be able to perform a review, the user has to be a participant of that assignment. We have implemented “Add as Participant” as an additional feature which is explained in Part 3. If the user is not a participant, he will only see the link to “Assign grade” that too after the assignment deadline passes.&lt;br /&gt;
Now, for each assignment, there is a page called “List Submissions” where the user can view all the submissions. So we have modified this page so that for each team submission a link for “Begin review,” “Edit review,” “View review,” “Update review,” or “Assign grade” may appear depending on the [http://wiki.expertiza.ncsu.edu/index.php/Deadline_types stage] in which the assignment is. &lt;br /&gt;
&lt;br /&gt;
The following describes the flow of our project considering a fresh assignment.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the assignment is created, it is by default is in the “submission” stage. Hence the user will not see any link on the list submission page.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the first deadline passes, the assignment goes into the “review” stage. Hence the link “Begin review” will be visible for each team submission, where the instructor/TA can click on to submit the review. Two cases can occur here:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “submits” a review, they will be redirected to the list submission page where they’ll see the option “View review” or “Update review.” Being an instructor/TA, they are given the flexibility to update their review at any time during the “review” stage.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “saves” a review, they will be redirected to the list submission page where they’ll see the option “View review” and “Edit Review (as they have not submitted it yet.)”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;After the first review is over, if more stages of “submissions” and “reviews” exist, it will follow the above 2 steps until the final assignment deadline does not pass. Note that at any round of the review, the user can “Begin review” for a submission which they had not reviewed in the previous rounds. This is to provide flexibility to them as per the requirement.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally, after the assignment deadline passes, the assignment goes into the “Finished” stage. This is when the “Assign grade” link will be visible to the user. Along with this, depending on whether they have reviewed a particular submission or not, the begin, view, update links will be visible to them as they should be able to perform the review even after the assignment deadline for the students has passed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Part 2: Allow students to identify that their submission has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file &amp;lt;b&amp;gt;app/assets/stylesheets/grades.scss&amp;lt;/b&amp;gt; to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Part 3: Add instructor/TA as a participant while creating the assignment (Extra Feature) ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Current scenario''' &amp;lt;br&amp;gt;&lt;br /&gt;
The instructor/TA will be able to perform student reviews (after implementation of Part 1) for the assignment, only when he is a participant of the same assignment. Thus, every time he creates an assignment and wants to add himself as a participant in order to perform student reviews, he is supposed to do the following &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Go to list of assignments -&amp;gt; Find the required assignment -&amp;gt; Click on add participant -&amp;gt; Type user Id -&amp;gt; Click on add&lt;br /&gt;
The same flow is as shown below where the instructor/TA has created a new assignment say “Program 1 Github” wherein he wants himself as a participant to be able to perform student reviews :&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Addinstructor1.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AddInstructor2.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Add Instructor 3.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To overcome the hassle, we added a check box through which the instructor/TA will get an option to add himself as a participant while creating the assignment. Also, he will be able to add/remove himself as a participant while editing the assignment. &lt;br /&gt;
&lt;br /&gt;
'''Implementation''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The checkbox has been provided to Create New Assignment’s page under the Review strategy tab.&lt;br /&gt;
It is added as follows: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Add instructor 4.png]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the instructor/TA selects the box while creating the assignment, then he will be added as a participant for the same assignment. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Files edited: &lt;br /&gt;
&lt;br /&gt;
* '''View: ''' ''app/views/assignments/edit/_review_strategy.html.erb'' &amp;lt;br&amp;gt;&lt;br /&gt;
In this file, code for displaying the checkbox has been added which is as follows : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;input name='add_instructor' type=&amp;quot;hidden&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;%= check_box_tag('add_instructor', value = &amp;quot;1&amp;quot;, checked = is_instructor_a_participant?)%&amp;gt;&lt;br /&gt;
      &amp;lt;%= label_tag('add_instructor', 'Add yourself as a participant?') %&amp;gt;&lt;br /&gt;
      &amp;lt;img src=&amp;quot;/assets/info.png&amp;quot; title='If you add yourself as a participant then you will be able to perform reviews of students for this assignment'&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;
&lt;br /&gt;
Thus the checkbox &amp;quot;add_instructor&amp;quot; if selected adds the instructor as a participant to the currently being created assignment. Thus, instructor being a participant allows him to perform reviews for the students for this assignment.&lt;br /&gt;
&lt;br /&gt;
* '''Controller: ''' ''app/controllers/assignments_controller.rb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The file contains extra code which adds the instructor/TA as a participant if the checkbox has been selected while creating the assignment. Also, while editing the assignment, he will be able to add/remove himself as a participant for this assignment. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following methods are added to the controller :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 def is_instructor_a_participant?&lt;br /&gt;
    instructor_id = session[:user].id&lt;br /&gt;
    assignment_id = @assignment_form.assignment.id.to_s&lt;br /&gt;
&lt;br /&gt;
    if assignment_id != nil&lt;br /&gt;
      @is_instructor_a_participant = Participant.where(user_id: instructor_id , parent_id: assignment_id)&lt;br /&gt;
      if @is_instructor_a_participant.present?&lt;br /&gt;
        return true&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    return false&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
The method &amp;quot;is_instructor_a_participant?&amp;quot; returns true if the instructor is already a participant for the assignment, else returns false. This method is required to verify that the instructor/TA is not a participant of the assignment, and thus he can be added as a participant if the checkbox has been selected. Also, during editing the assignment, we need to show checkbox being selected if the instructor is a participant and vice versa. Thus, this method serves that purpose as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def add_instructor_as_participant(assignment_id)&lt;br /&gt;
    if params[:add_instructor] == 'false' and is_instructor_a_participant? == true&lt;br /&gt;
      delete_instructor_as_participant(assignment_id,session[:user].id)&lt;br /&gt;
    elsif params[:add_instructor] == '1' and is_instructor_a_participant? == false&lt;br /&gt;
      current_assignment = Object.const_get(&amp;quot;Assignment&amp;quot;).find(assignment_id)&lt;br /&gt;
      current_assignment.add_participant(session[:user].name, true, true, true)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The method &amp;quot;add_instructor_as_participant&amp;quot; is been called from create and update methods in the Assignment controller. It checks if the &amp;quot;Add yourself as participant&amp;quot; checkbox is selected for the currently created/edited assignment. If it is selected during creation or editing, then the instructor is added as a participant to the currently created/edited assignment. The participant is added by using the already existing method &amp;quot;add_participant&amp;quot; in the model assignment.rb Also, if the option is unchecked during editing, then the instructor is removed as a participant.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def delete_instructor_as_participant(assignment_id , instructor_id)&lt;br /&gt;
    Participant.where(user_id: instructor_id , parent_id: assignment_id).destroy_all&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The method &amp;quot;delete_instructor_as_participant&amp;quot; removes instructor as a participant for the assignment when the checkbox is unchecked during the editing of the assignment.&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
The following activity diagram summarizes our proposed implementation for the above mentioned issue:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Testing''' ==&lt;br /&gt;
=== UI Testing ===&lt;br /&gt;
==== Part 1: Allowing instructor/TA to perform review ====&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Login in as an instructor. &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Username: instructor6&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Password: password&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt; &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Choose any assignment from the list of assignments which involves teams; since an assignment without teams does not include the review procedure. For example, “Final project (design and doc)” is a good assignment to choose.&lt;br /&gt;
&amp;lt;li&amp;gt;Now, while testing this functionality, it is recommended to keep the following pages opened in different tabs by clicking on the small icons in the same row as the assignment that you want to test: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a. “Edit” -&amp;gt; “Due Dates” tab &lt;br /&gt;
[[File:edit_assignment.png|200px]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
b. “Add participants”&lt;br /&gt;
[[File:add_as_participant.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
c. “View Submissions” 	&lt;br /&gt;
[[File:list_submissions.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now add the instructor as a participant (3.b). and edit the ALL due dates (3.a.) of different stages to any date later from now (hence the assignment goes into the “submission” stage by default). Save both these changes. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now refresh the view submissions page (3.c.), you will see a list of assignments with no link to review or assign grade.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now switch to edit due dates tab (3.a.) again. Set the due date for submission to a previous date which has passed, hence the next due date will be for the “review” stage by default (which will have a later due date from now.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Refresh view submissions page (3.c.), you will see a list of assignments with a link to “Begin Review.”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can click on it. If you “save” your response, you will see that the link has been replace by “View review” and “Edit review” now. Whereas, if you “submit” the response, the link will be replaced by “View review” and “Update review.”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Depending on the number of stages that an assignment has, you can edit the due date at every stage and check whether the links are displayed appropriately.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally when the last deadline of the assignment is set to a previous date which has passed, you will see the link to “Assign grade” in view submissions (3.c.), and the user will still be able to begin, edit or update a review in order to provide flexibility as per the requirements.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Edge Cases:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user is not a participant of the current assignment, they are shown a list of all submissions made by all teams of the current assignment. They are shown the link to “Assign Grade” only when the final deadline of the assignment passes.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;During any review stage or even after the deadline, the user is offered the flexibility to Begin, Edit, View or Update their review.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Part 3: Add instructor/TA as a participant while creating the assignment===&lt;br /&gt;
&lt;br /&gt;
== '''Team Members''' ==&lt;br /&gt;
Mentor: Prof. Edward Gehringer (efg@ncsu.edu)&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anuja Kulkarni - apkulka2@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mark Trawick - mtrawic@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Parvathy Menon - pharida@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Samruddhi Khandale - sskhanda@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129913</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129913"/>
		<updated>2019-12-06T02:14:45Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However, sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development. &lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience. Currently, there exists no method for the instructor/TA to perform reviews of assignments submitted by the students. Hence this is what this project aims at, allowing instructor/TA to perform reviews.&lt;br /&gt;
&lt;br /&gt;
Thus, the primary aim of this project is to allow instructors to submit reviews of student work, using the same review form that students use to do reviews.&lt;br /&gt;
&lt;br /&gt;
=='''Implementation Details''' ==&lt;br /&gt;
Our project aims at enabling the instructor/TA to review the submissions using the same form that a student uses while peer-reviewing. For this, our implementation has been divided into 3 parts, and can be described as follows:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The first part involves the primary functionality of letting the staff perform a review on students submission.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The second part involves allowing the students to identify from their end, which review has been performed by an instructor/TA. This will help students improve their project as the opinions presented by a staff member would be valid.&amp;lt;/li&amp;gt;  &lt;br /&gt;
&amp;lt;li&amp;gt;Thirdly, we implemented an additional feature that allows the instructor/TA to add himself as a participant while creating/editing an Assignment (This way seemed to be more convenient rather than going to the “Add Participant” page and adding themselves as a participant.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Part 1: Allowing instructor/TA to perform review===&lt;br /&gt;
Note 1: “Instructor/TA” will be referred to by “user” here onwards.&lt;br /&gt;
&lt;br /&gt;
Note 2: To be able to perform a review, the user has to be a participant of that assignment. We have implemented “Add as Participant” as an additional feature which is explained in Part 3. If the user is not a participant, he will only see the link to “Assign grade” that too after the assignment deadline passes.&lt;br /&gt;
Now, for each assignment, there is a page called “List Submissions” where the user can view all the submissions. So we have modified this page so that for each team submission a link for “Begin review,” “Edit review,” “View review,” “Update review,” or “Assign grade” may appear depending on the [http://wiki.expertiza.ncsu.edu/index.php/Deadline_types stage] in which the assignment is. &lt;br /&gt;
&lt;br /&gt;
The following describes the flow of our project considering a fresh assignment.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the assignment is created, it is by default is in the “submission” stage. Hence the user will not see any link on the list submission page.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the first deadline passes, the assignment goes into the “review” stage. Hence the link “Begin review” will be visible for each team submission, where the instructor/TA can click on to submit the review. Two cases can occur here:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “submits” a review, they will be redirected to the list submission page where they’ll see the option “View review” or “Update review.” Being an instructor/TA, they are given the flexibility to update their review at any time during the “review” stage.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “saves” a review, they will be redirected to the list submission page where they’ll see the option “View review” and “Edit Review (as they have not submitted it yet.)”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;After the first review is over, if more stages of “submissions” and “reviews” exist, it will follow the above 2 steps until the final assignment deadline does not pass. Note that at any round of the review, the user can “Begin review” for a submission which they had not reviewed in the previous rounds. This is to provide flexibility to them as per the requirement.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally, after the assignment deadline passes, the assignment goes into the “Finished” stage. This is when the “Assign grade” link will be visible to the user. Along with this, depending on whether they have reviewed a particular submission or not, the begin, view, update links will be visible to them as they should be able to perform the review even after the assignment deadline for the students has passed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Part 2: Allow students to identify that their submission has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file &amp;lt;b&amp;gt;app/assets/stylesheets/grades.scss&amp;lt;/b&amp;gt; to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Part 3: Add instructor/TA as a participant while creating the assignment (Extra Feature) ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Current scenario''' &amp;lt;br&amp;gt;&lt;br /&gt;
The instructor/TA will be able to perform student reviews (after implementation of Part 1) for the assignment, only when he is a participant of the same assignment. Thus, every time he creates an assignment and wants to add himself as a participant in order to perform student reviews, he is supposed to do the following &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Go to list of assignments -&amp;gt; Find the required assignment -&amp;gt; Click on add participant -&amp;gt; Type user Id -&amp;gt; Click on add&lt;br /&gt;
The same flow is as shown below where the instructor/TA has created a new assignment say “Program 1 Github” wherein he wants himself as a participant to be able to perform student reviews :&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Addinstructor1.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AddInstructor2.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Add Instructor 3.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To overcome the hassle, we added a check box through which the instructor/TA will get an option to add himself as a participant while creating the assignment. Also, he will be able to add/remove himself as a participant while editing the assignment. &lt;br /&gt;
&lt;br /&gt;
'''Implementation''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The checkbox has been provided to Create New Assignment’s page under the Review strategy tab.&lt;br /&gt;
It is added as follows: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Add instructor 4.png]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the instructor/TA selects the box while creating the assignment, then he will be added as a participant for the same assignment. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Files edited: &lt;br /&gt;
&lt;br /&gt;
* '''View: ''' ''app/views/assignments/edit/_review_strategy.html.erb'' &amp;lt;br&amp;gt;&lt;br /&gt;
In this file, code for displaying the checkbox has been added which is as follows : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;input name='add_instructor' type=&amp;quot;hidden&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;%= check_box_tag('add_instructor', value = &amp;quot;1&amp;quot;, checked = is_instructor_a_participant?)%&amp;gt;&lt;br /&gt;
      &amp;lt;%= label_tag('add_instructor', 'Add yourself as a participant?') %&amp;gt;&lt;br /&gt;
      &amp;lt;img src=&amp;quot;/assets/info.png&amp;quot; title='If you add yourself as a participant then you will be able to perform reviews of students for this assignment'&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;
&lt;br /&gt;
Thus the checkbox &amp;quot;add_instructor&amp;quot; if selected adds the instructor as a participant to the currently being created assignment. Thus, instructor being a participant allows him to perform reviews for the students for this assignment.&lt;br /&gt;
&lt;br /&gt;
* '''Controller: ''' ''app/controllers/assignments_controller.rb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The file contains extra code which adds the instructor/TA as a participant if the checkbox has been selected while creating the assignment. Also, while editing the assignment, he will be able to add/remove himself as a participant for this assignment. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following methods are added to the controller :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 def is_instructor_a_participant?&lt;br /&gt;
    instructor_id = session[:user].id&lt;br /&gt;
    assignment_id = @assignment_form.assignment.id.to_s&lt;br /&gt;
&lt;br /&gt;
    if assignment_id != nil&lt;br /&gt;
      @is_instructor_a_participant = Participant.where(user_id: instructor_id , parent_id: assignment_id)&lt;br /&gt;
      if @is_instructor_a_participant.present?&lt;br /&gt;
        return true&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    return false&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
The method &amp;quot;is_instructor_a_participant?&amp;quot; returns true if the instructor is already a participant for the assignment, else returns false. This method is required to verify that the instructor/TA is not a participant of the assignment, and thus he can be added as a participant if the checkbox has been selected. Also, during editing the assignment, we need to show checkbox being selected if the instructor is a participant and vice versa. Thus, this method serves that purpose as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def add_instructor_as_participant(assignment_id)&lt;br /&gt;
    if params[:add_instructor] == 'false' and is_instructor_a_participant? == true&lt;br /&gt;
      delete_instructor_as_participant(assignment_id,session[:user].id)&lt;br /&gt;
    elsif params[:add_instructor] == '1' and is_instructor_a_participant? == false&lt;br /&gt;
      current_assignment = Object.const_get(&amp;quot;Assignment&amp;quot;).find(assignment_id)&lt;br /&gt;
      current_assignment.add_participant(session[:user].name, true, true, true)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The method &amp;quot;add_instructor_as_participant&amp;quot; is been called from create and update methods in the Assignment controller. It checks if the &amp;quot;Add yourself as participant&amp;quot; checkbox is selected for the currently created/edited assignment. If it is selected during creation or editing, then the instructor is added as a participant to the currently created/edited assignment. The participant is added by using the already existing method &amp;quot;add_participant&amp;quot; in the model assignment.rb Also, if the option is unchecked during editing, then the instructor is removed as a participant.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def delete_instructor_as_participant(assignment_id , instructor_id)&lt;br /&gt;
    Participant.where(user_id: instructor_id , parent_id: assignment_id).destroy_all&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The method &amp;quot;delete_instructor_as_participant&amp;quot; removes instructor as a participant for the assignment when the checkbox is unchecked during the editing of the assignment.&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
The following activity diagram summarizes our proposed implementation for the above mentioned issue:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Testing''' ==&lt;br /&gt;
=== UI Testing ===&lt;br /&gt;
==== Part 1: Allowing instructor/TA to perform review ====&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Login in as an instructor. &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Username: instructor6&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Password: password&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt; &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Choose any assignment from the list of assignments which involves teams; since an assignment without teams does not include the review procedure. For example, “Final project (design and doc)” is a good assignment to choose.&lt;br /&gt;
&amp;lt;li&amp;gt;Now, while testing this functionality, it is recommended to keep the following pages opened in different tabs by clicking on the small icons in the same row as the assignment that you want to test: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a. “Edit” -&amp;gt; “Due Dates” tab &lt;br /&gt;
[[File:edit_assignment.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
b. “Add participants”&lt;br /&gt;
[[File:add_as_participant.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
c. “View Submissions” 	&lt;br /&gt;
[[File:list_submissions.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now add the instructor as a participant (3.b). and edit the ALL due dates (3.a.) of different stages to any date later from now (hence the assignment goes into the “submission” stage by default). Save both these changes. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now refresh the view submissions page (3.c.), you will see a list of assignments with no link to review or assign grade.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now switch to edit due dates tab (3.a.) again. Set the due date for submission to a previous date which has passed, hence the next due date will be for the “review” stage by default (which will have a later due date from now.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Refresh view submissions page (3.c.), you will see a list of assignments with a link to “Begin Review.”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can click on it. If you “save” your response, you will see that the link has been replace by “View review” and “Edit review” now. Whereas, if you “submit” the response, the link will be replaced by “View review” and “Update review.”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Depending on the number of stages that an assignment has, you can edit the due date at every stage and check whether the links are displayed appropriately.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally when the last deadline of the assignment is set to a previous date which has passed, you will see the link to “Assign grade” in view submissions (3.c.), and the user will still be able to begin, edit or update a review in order to provide flexibility as per the requirements.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Edge Cases:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user is not a participant of the current assignment, they are shown a list of all submissions made by all teams of the current assignment. They are shown the link to “Assign Grade” only when the final deadline of the assignment passes.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;During any review stage or even after the deadline, the user is offered the flexibility to Begin, Edit, View or Update their review.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Part 3: Add instructor/TA as a participant while creating the assignment===&lt;br /&gt;
&lt;br /&gt;
== '''Team Members''' ==&lt;br /&gt;
Mentor: Prof. Edward Gehringer (efg@ncsu.edu)&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anuja Kulkarni - apkulka2@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mark Trawick - mtrawic@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Parvathy Menon - pharida@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Samruddhi Khandale - sskhanda@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:List_submissions.png&amp;diff=129912</id>
		<title>File:List submissions.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:List_submissions.png&amp;diff=129912"/>
		<updated>2019-12-06T02:14:17Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Add_as_participant.png&amp;diff=129911</id>
		<title>File:Add as participant.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Add_as_participant.png&amp;diff=129911"/>
		<updated>2019-12-06T02:14:01Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Edit_assignment.png&amp;diff=129910</id>
		<title>File:Edit assignment.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Edit_assignment.png&amp;diff=129910"/>
		<updated>2019-12-06T02:13:13Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129909</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129909"/>
		<updated>2019-12-06T02:12:50Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However, sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development. &lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience. Currently, there exists no method for the instructor/TA to perform reviews of assignments submitted by the students. Hence this is what this project aims at, allowing instructor/TA to perform reviews.&lt;br /&gt;
&lt;br /&gt;
Thus, the primary aim of this project is to allow instructors to submit reviews of student work, using the same review form that students use to do reviews.&lt;br /&gt;
&lt;br /&gt;
=='''Implementation Details''' ==&lt;br /&gt;
Our project aims at enabling the instructor/TA to review the submissions using the same form that a student uses while peer-reviewing. For this, our implementation has been divided into 3 parts, and can be described as follows:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The first part involves the primary functionality of letting the staff perform a review on students submission.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The second part involves allowing the students to identify from their end, which review has been performed by an instructor/TA. This will help students improve their project as the opinions presented by a staff member would be valid.&amp;lt;/li&amp;gt;  &lt;br /&gt;
&amp;lt;li&amp;gt;Thirdly, we implemented an additional feature that allows the instructor/TA to add himself as a participant while creating/editing an Assignment (This way seemed to be more convenient rather than going to the “Add Participant” page and adding themselves as a participant.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Part 1: Allowing instructor/TA to perform review===&lt;br /&gt;
Note 1: “Instructor/TA” will be referred to by “user” here onwards.&lt;br /&gt;
&lt;br /&gt;
Note 2: To be able to perform a review, the user has to be a participant of that assignment. We have implemented “Add as Participant” as an additional feature which is explained in Part 3. If the user is not a participant, he will only see the link to “Assign grade” that too after the assignment deadline passes.&lt;br /&gt;
Now, for each assignment, there is a page called “List Submissions” where the user can view all the submissions. So we have modified this page so that for each team submission a link for “Begin review,” “Edit review,” “View review,” “Update review,” or “Assign grade” may appear depending on the [http://wiki.expertiza.ncsu.edu/index.php/Deadline_types stage] in which the assignment is. &lt;br /&gt;
&lt;br /&gt;
The following describes the flow of our project considering a fresh assignment.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the assignment is created, it is by default is in the “submission” stage. Hence the user will not see any link on the list submission page.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the first deadline passes, the assignment goes into the “review” stage. Hence the link “Begin review” will be visible for each team submission, where the instructor/TA can click on to submit the review. Two cases can occur here:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “submits” a review, they will be redirected to the list submission page where they’ll see the option “View review” or “Update review.” Being an instructor/TA, they are given the flexibility to update their review at any time during the “review” stage.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “saves” a review, they will be redirected to the list submission page where they’ll see the option “View review” and “Edit Review (as they have not submitted it yet.)”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;After the first review is over, if more stages of “submissions” and “reviews” exist, it will follow the above 2 steps until the final assignment deadline does not pass. Note that at any round of the review, the user can “Begin review” for a submission which they had not reviewed in the previous rounds. This is to provide flexibility to them as per the requirement.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally, after the assignment deadline passes, the assignment goes into the “Finished” stage. This is when the “Assign grade” link will be visible to the user. Along with this, depending on whether they have reviewed a particular submission or not, the begin, view, update links will be visible to them as they should be able to perform the review even after the assignment deadline for the students has passed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Part 2: Allow students to identify that their submission has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file &amp;lt;b&amp;gt;app/assets/stylesheets/grades.scss&amp;lt;/b&amp;gt; to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Part 3: Add instructor/TA as a participant while creating the assignment (Extra Feature) ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Current scenario''' &amp;lt;br&amp;gt;&lt;br /&gt;
The instructor/TA will be able to perform student reviews (after implementation of Part 1) for the assignment, only when he is a participant of the same assignment. Thus, every time he creates an assignment and wants to add himself as a participant in order to perform student reviews, he is supposed to do the following &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Go to list of assignments -&amp;gt; Find the required assignment -&amp;gt; Click on add participant -&amp;gt; Type user Id -&amp;gt; Click on add&lt;br /&gt;
The same flow is as shown below where the instructor/TA has created a new assignment say “Program 1 Github” wherein he wants himself as a participant to be able to perform student reviews :&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Addinstructor1.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AddInstructor2.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Add Instructor 3.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To overcome the hassle, we added a check box through which the instructor/TA will get an option to add himself as a participant while creating the assignment. Also, he will be able to add/remove himself as a participant while editing the assignment. &lt;br /&gt;
&lt;br /&gt;
'''Implementation''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The checkbox has been provided to Create New Assignment’s page under the Review strategy tab.&lt;br /&gt;
It is added as follows: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Add instructor 4.png]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the instructor/TA selects the box while creating the assignment, then he will be added as a participant for the same assignment. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Files edited: &lt;br /&gt;
&lt;br /&gt;
* '''View: ''' ''app/views/assignments/edit/_review_strategy.html.erb'' &amp;lt;br&amp;gt;&lt;br /&gt;
In this file, code for displaying the checkbox has been added which is as follows : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;input name='add_instructor' type=&amp;quot;hidden&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;%= check_box_tag('add_instructor', value = &amp;quot;1&amp;quot;, checked = is_instructor_a_participant?)%&amp;gt;&lt;br /&gt;
      &amp;lt;%= label_tag('add_instructor', 'Add yourself as a participant?') %&amp;gt;&lt;br /&gt;
      &amp;lt;img src=&amp;quot;/assets/info.png&amp;quot; title='If you add yourself as a participant then you will be able to perform reviews of students for this assignment'&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;
&lt;br /&gt;
Thus the checkbox &amp;quot;add_instructor&amp;quot; if selected adds the instructor as a participant to the currently being created assignment. Thus, instructor being a participant allows him to perform reviews for the students for this assignment.&lt;br /&gt;
&lt;br /&gt;
* '''Controller: ''' ''app/controllers/assignments_controller.rb'' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The file contains extra code which adds the instructor/TA as a participant if the checkbox has been selected while creating the assignment. Also, while editing the assignment, he will be able to add/remove himself as a participant for this assignment. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following methods are added to the controller :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 def is_instructor_a_participant?&lt;br /&gt;
    instructor_id = session[:user].id&lt;br /&gt;
    assignment_id = @assignment_form.assignment.id.to_s&lt;br /&gt;
&lt;br /&gt;
    if assignment_id != nil&lt;br /&gt;
      @is_instructor_a_participant = Participant.where(user_id: instructor_id , parent_id: assignment_id)&lt;br /&gt;
      if @is_instructor_a_participant.present?&lt;br /&gt;
        return true&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    return false&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
The method &amp;quot;is_instructor_a_participant?&amp;quot; returns true if the instructor is already a participant for the assignment, else returns false. This method is required to verify that the instructor/TA is not a participant of the assignment, and thus he can be added as a participant if the checkbox has been selected. Also, during editing the assignment, we need to show checkbox being selected if the instructor is a participant and vice versa. Thus, this method serves that purpose as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def add_instructor_as_participant(assignment_id)&lt;br /&gt;
    if params[:add_instructor] == 'false' and is_instructor_a_participant? == true&lt;br /&gt;
      delete_instructor_as_participant(assignment_id,session[:user].id)&lt;br /&gt;
    elsif params[:add_instructor] == '1' and is_instructor_a_participant? == false&lt;br /&gt;
      current_assignment = Object.const_get(&amp;quot;Assignment&amp;quot;).find(assignment_id)&lt;br /&gt;
      current_assignment.add_participant(session[:user].name, true, true, true)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The method &amp;quot;add_instructor_as_participant&amp;quot; is been called from create and update methods in the Assignment controller. It checks if the &amp;quot;Add yourself as participant&amp;quot; checkbox is selected for the currently created/edited assignment. If it is selected during creation or editing, then the instructor is added as a participant to the currently created/edited assignment. The participant is added by using the already existing method &amp;quot;add_participant&amp;quot; in the model assignment.rb Also, if the option is unchecked during editing, then the instructor is removed as a participant.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def delete_instructor_as_participant(assignment_id , instructor_id)&lt;br /&gt;
    Participant.where(user_id: instructor_id , parent_id: assignment_id).destroy_all&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The method &amp;quot;delete_instructor_as_participant&amp;quot; removes instructor as a participant for the assignment when the checkbox is unchecked during the editing of the assignment.&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
The following activity diagram summarizes our proposed implementation for the above mentioned issue:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Testing''' ==&lt;br /&gt;
=== UI Testing ===&lt;br /&gt;
==== Part 1: Allowing instructor/TA to perform review ====&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Login in as an instructor. &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Username: instructor6&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Password: password&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt; &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Choose any assignment from the list of assignments which involves teams; since an assignment without teams does not include the review procedure. For example, “Final project (design and doc)” is a good assignment to choose.&lt;br /&gt;
&amp;lt;li&amp;gt;Now, while testing this functionality, it is recommended to keep the following pages opened in different tabs by clicking on the small icons in the same row as the assignment that you want to test:&lt;br /&gt;
&lt;br /&gt;
a. “Edit” -&amp;gt; “Due Dates” tab &lt;br /&gt;
[[File:edit_assignment.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
b. “Add participants”&lt;br /&gt;
[[File:add_as_participant.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
c. “View Submissions” 	&lt;br /&gt;
[[File:list_submissions.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now add the instructor as a participant (3.b). and edit the ALL due dates (3.a.) of different stages to any date later from now (hence the assignment goes into the “submission” stage by default). Save both these changes. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now refresh the view submissions page (3.c.), you will see a list of assignments with no link to review or assign grade.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now switch to edit due dates tab (3.a.) again. Set the due date for submission to a previous date which has passed, hence the next due date will be for the “review” stage by default (which will have a later due date from now.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Refresh view submissions page (3.c.), you will see a list of assignments with a link to “Begin Review.”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can click on it. If you “save” your response, you will see that the link has been replace by “View review” and “Edit review” now. Whereas, if you “submit” the response, the link will be replaced by “View review” and “Update review.”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Depending on the number of stages that an assignment has, you can edit the due date at every stage and check whether the links are displayed appropriately.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally when the last deadline of the assignment is set to a previous date which has passed, you will see the link to “Assign grade” in view submissions (3.c.), and the user will still be able to begin, edit or update a review in order to provide flexibility as per the requirements.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Edge Cases:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user is not a participant of the current assignment, they are shown a list of all submissions made by all teams of the current assignment. They are shown the link to “Assign Grade” only when the final deadline of the assignment passes.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;During any review stage or even after the deadline, the user is offered the flexibility to Begin, Edit, View or Update their review.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Part 3: Add instructor/TA as a participant while creating the assignment===&lt;br /&gt;
&lt;br /&gt;
== '''Team Members''' ==&lt;br /&gt;
Mentor: Prof. Edward Gehringer (efg@ncsu.edu)&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anuja Kulkarni - apkulka2@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mark Trawick - mtrawic@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Parvathy Menon - pharida@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Samruddhi Khandale - sskhanda@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129901</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129901"/>
		<updated>2019-12-06T01:52:28Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However, sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development. &lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience. Currently, there exists no method for the instructor/TA to perform reviews of assignments submitted by the students. Hence this is what this project aims at, allowing instructor/TA to perform reviews.&lt;br /&gt;
&lt;br /&gt;
Thus, the primary aim of this project is to allow instructors to submit reviews of student work, using the same review form that students use to do reviews.&lt;br /&gt;
&lt;br /&gt;
=='''Implementation Details''' ==&lt;br /&gt;
Our project aims at enabling the instructor/TA to review the submissions using the same form that a student uses while peer-reviewing. For this, our implementation has been divided into 3 parts, and can be described as follows:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The first part involves the primary functionality of letting the staff perform a review on students submission.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The second part involves allowing the students to identify from their end, which review has been performed by an instructor/TA. This will help students improve their project as the opinions presented by a staff member would be valid.&amp;lt;/li&amp;gt;  &lt;br /&gt;
&amp;lt;li&amp;gt;Thirdly, we implemented an additional feature that allows the instructor/TA to add himself as a participant while creating/editing an Assignment (This way seemed to be more convenient rather than going to the “Add Participant” page and adding themselves as a participant.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Part 1: Allowing instructor/TA to perform review===&lt;br /&gt;
Note 1: “Instructor/TA” will be referred to by “user” here onwards.&lt;br /&gt;
&lt;br /&gt;
Note 2: To be able to perform a review, the user has to be a participant of that assignment. We have implemented “Add as Participant” as an additional feature which is explained in Part 3. If the user is not a participant, he will only see the link to “Assign grade” that too after the assignment deadline passes.&lt;br /&gt;
Now, for each assignment, there is a page called “List Submissions” where the user can view all the submissions. So we have modified this page so that for each team submission a link for “Begin review,” “Edit review,” “View review,” “Update review,” or “Assign grade” may appear depending on the [http://wiki.expertiza.ncsu.edu/index.php/Deadline_types stage] in which the assignment is. &lt;br /&gt;
&lt;br /&gt;
The following describes the flow of our project considering a fresh assignment.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the assignment is created, it is by default is in the “submission” stage. Hence the user will not see any link on the list submission page.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the first deadline passes, the assignment goes into the “review” stage. Hence the link “Begin review” will be visible for each team submission, where the instructor/TA can click on to submit the review. Two cases can occur here:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “submits” a review, they will be redirected to the list submission page where they’ll see the option “View review” or “Update review.” Being an instructor/TA, they are given the flexibility to update their review at any time during the “review” stage.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “saves” a review, they will be redirected to the list submission page where they’ll see the option “View review” and “Edit Review (as they have not submitted it yet.)”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;After the first review is over, if more stages of “submissions” and “reviews” exist, it will follow the above 2 steps until the final assignment deadline does not pass. Note that at any round of the review, the user can “Begin review” for a submission which they had not reviewed in the previous rounds. This is to provide flexibility to them as per the requirement.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally, after the assignment deadline passes, the assignment goes into the “Finished” stage. This is when the “Assign grade” link will be visible to the user. Along with this, depending on whether they have reviewed a particular submission or not, the begin, view, update links will be visible to them as they should be able to perform the review even after the assignment deadline for the students has passed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Part 2: Allow students to identify that their submission has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file &amp;lt;b&amp;gt;app/assets/stylesheets/grades.scss&amp;lt;/b&amp;gt; to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Part 3: Add instructor/TA as a participant while creating/editing assignment ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Current scenario''' &amp;lt;br&amp;gt;&lt;br /&gt;
The instructor/TA will be able to perform student reviews (after implementation of Part 1) for the assignment, only when he is a participant of the same assignment. Thus, every time he creates an assignment and wants to add himself as a participant in order to perform student reviews, he is supposed to do the following &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Go to list of assignments -&amp;gt; Find the required assignment -&amp;gt; Click on add participant -&amp;gt; Type user Id -&amp;gt; Click on add&lt;br /&gt;
The same flow is as shown below where the instructor/TA has created a new assignment say “Program 1 Github” wherein he wants himself as a participant to be able to perform student reviews :&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Addinstructor1.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AddInstructor2.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Add Instructor 3.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To overcome the hassle, we added a check box through which the instructor/TA will get an option to add himself as a participant while creating the assignment. Also, he will be able to add/remove himself as a participant while editing the assignment. &lt;br /&gt;
&lt;br /&gt;
'''Implementation''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The checkbox has been provided to Create New Assignment’s page under the Review strategy tab.&lt;br /&gt;
It is added as follows: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Add instructor 4.png]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the instructor/TA selects the box while creating the assignment, then he will be added as a participant for the same assignment. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Files edited: &lt;br /&gt;
&lt;br /&gt;
* '''View: ''' ''app/views/assignments/edit/_review_strategy.html.erb'' &amp;lt;br&amp;gt;&lt;br /&gt;
In this file, code for displaying the checkbox has been added which is as follows : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;input name='add_instructor' type=&amp;quot;hidden&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;%= check_box_tag('add_instructor', value = &amp;quot;1&amp;quot;, checked = is_instructor_a_participant?)%&amp;gt;&lt;br /&gt;
      &amp;lt;%= label_tag('add_instructor', 'Add yourself as a participant?') %&amp;gt;&lt;br /&gt;
      &amp;lt;img src=&amp;quot;/assets/info.png&amp;quot; title='If you add yourself as a participant then you will be able to perform reviews of students for this assignment'&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;
&lt;br /&gt;
This checkbox if selected adds the instructor as a participant to the currently being created assignment. Thus, instructor being a participant allows him to perform reviews for the students for this assignment&lt;br /&gt;
&lt;br /&gt;
* '''Controller: ''' ''app/controllers/assignments_controller.rb''&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
The following activity diagram summarizes our proposed implementation for the above mentioned issue:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Testing''' ==&lt;br /&gt;
=== UI Testing ===&lt;br /&gt;
==== Part 1: Allowing instructor/TA to perform review ====&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Login in as an instructor. &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Username: instructor6&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Password: password&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt; &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Choose any assignment from the list of assignments which involves teams; since an assignment without teams does not include the review procedure. For example, “Final project (design and doc)” is a good assignment to choose.&lt;br /&gt;
&amp;lt;li&amp;gt;Now, while testing this functionality, it is recommended to keep the following pages opened in different tabs by clicking on the small icons in the same row as the assignment that you want to test:&lt;br /&gt;
a. “Edit” -&amp;gt; “Due Dates” tab (SS)&lt;br /&gt;
&lt;br /&gt;
b. “Add participants” (SS)&lt;br /&gt;
&lt;br /&gt;
c. “View Submissions” (SS)	&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now add the instructor as a participant (3.b). and edit the ALL due dates (3.a.) of different stages to any date later from now (hence the assignment goes into the “submission” stage by default). Save both these changes. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now refresh the view submissions page (3.c.), you will see a list of assignments with no link to review or assign grade.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now switch to edit due dates tab (3.a.) again. Set the due date for submission to a previous date which has passed, hence the next due date will be for the “review” stage by default (which will have a later due date from now.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Refresh view submissions page (3.c.), you will see a list of assignments with a link to “Begin Review.”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can click on it. If you “save” your response, you will see that the link has been replace by “View review” and “Edit review” now. Whereas, if you “submit” the response, the link will be replaced by “View review” and “Update review.”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Depending on the number of stages that an assignment has, you can edit the due date at every stage and check whether the links are displayed appropriately.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally when the last deadline of the assignment is set to a previous date which has passed, you will see the link to “Assign grade” in view submissions (3.c.), and the user will still be able to begin, edit or update a review in order to provide flexibility as per the requirements.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Edge Cases:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user is not a participant of the current assignment, they are shown a list of all submissions made by all teams of the current assignment. They are shown the link to “Assign Grade” only when the final deadline of the assignment passes.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;During any review stage or even after the deadline, the user is offered the flexibility to Begin, Edit, View or Update their review.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Team Members''' ==&lt;br /&gt;
Mentor: Prof. Edward Gehringer (efg@ncsu.edu)&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anuja Kulkarni - apkulka2@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mark Trawick - mtrawic@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Parvathy Menon - pharida@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Samruddhi Khandale - sskhanda@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129900</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129900"/>
		<updated>2019-12-06T01:51:49Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However, sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development. &lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience. Currently, there exists no method for the instructor/TA to perform reviews of assignments submitted by the students. Hence this is what this project aims at, allowing instructor/TA to perform reviews.&lt;br /&gt;
&lt;br /&gt;
Thus, the primary aim of this project is to allow instructors to submit reviews of student work, using the same review form that students use to do reviews.&lt;br /&gt;
&lt;br /&gt;
=='''Implementation Details''' ==&lt;br /&gt;
Our project aims at enabling the instructor/TA to review the submissions using the same form that a student uses while peer-reviewing. For this, our implementation has been divided into 3 parts, and can be described as follows:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The first part involves the primary functionality of letting the staff perform a review on students submission.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The second part involves allowing the students to identify from their end, which review has been performed by an instructor/TA. This will help students improve their project as the opinions presented by a staff member would be valid.&amp;lt;/li&amp;gt;  &lt;br /&gt;
&amp;lt;li&amp;gt;Thirdly, we implemented an additional feature that allows the instructor/TA to add himself as a participant while creating/editing an Assignment (This way seemed to be more convenient rather than going to the “Add Participant” page and adding themselves as a participant.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Part 1: Allowing instructor/TA to perform review===&lt;br /&gt;
Note 1: “Instructor/TA” will be referred to by “user” here onwards.&lt;br /&gt;
&lt;br /&gt;
Note 2: To be able to perform a review, the user has to be a participant of that assignment. We have implemented “Add as Participant” as an additional feature which is explained in Part 3. If the user is not a participant, he will only see the link to “Assign grade” that too after the assignment deadline passes.&lt;br /&gt;
Now, for each assignment there is a page called “List Submissions” where the user can view all the submissions. So we have modified this page so that for each team submission a link for “Begin review,” “Edit review,” “View review,” “Update review,” or “Assign grade” may appear depending on the [http://wiki.expertiza.ncsu.edu/index.php/Deadline_types Stage] in which the assignment is. &lt;br /&gt;
&lt;br /&gt;
The following describes the flow of our project considering a fresh assignment.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the assignment is created, it is by default is in the “submission” stage. Hence the user will not see any link on the list submission page. &lt;br /&gt;
(Add a screenshot if possible.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the first deadline passes, the assignment goes into the “review” stage. Hence the link “Begin review” will be visible for each team submission, where the instructor/TA can click on to submit the review. Two cases can occur here:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “submits” a review, they will be redirected to the list submission page where they’ll see the option “View review” or “Update review.” Being an instructor/TA, they are given the flexibility to update their review at any time during the “review” stage.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “saves” a review, they will be redirected to the list submission page where they’ll see the option “View review” and “Edit Review (as they have not submitted it yet.)”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;After the first review is over, if more stages of “submissions” and “reviews” exist, it will follow the above 2 steps until the final assignment deadline does not pass. Note that at any round of the review, the user can “Begin review” for a submission which they had not reviewed in the previous rounds. This is to provide flexibility to them as per the requirement.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally, after the assignment deadline passes, the assignment goes into the “Finished” stage. This is when the “Assign grade” link will be visible to the user. Along with this, depending on whether they have reviewed a particular submission or not, the begin, view, update links will be visible to them as they should be able to perform the review even after the assignment deadline for the students has passed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Part 2: Allow students to identify that their submission has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file &amp;lt;b&amp;gt;app/assets/stylesheets/grades.scss&amp;lt;/b&amp;gt; to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Part 3: Add instructor/TA as a participant while creating/editing assignment ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Current scenario''' &amp;lt;br&amp;gt;&lt;br /&gt;
The instructor/TA will be able to perform student reviews (after implementation of Part 1) for the assignment, only when he is a participant of the same assignment. Thus, every time he creates an assignment and wants to add himself as a participant in order to perform student reviews, he is supposed to do the following &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Go to list of assignments -&amp;gt; Find the required assignment -&amp;gt; Click on add participant -&amp;gt; Type user Id -&amp;gt; Click on add&lt;br /&gt;
The same flow is as shown below where the instructor/TA has created a new assignment say “Program 1 Github” wherein he wants himself as a participant to be able to perform student reviews :&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Addinstructor1.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AddInstructor2.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Add Instructor 3.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To overcome the hassle, we added a check box through which the instructor/TA will get an option to add himself as a participant while creating the assignment. Also, he will be able to add/remove himself as a participant while editing the assignment. &lt;br /&gt;
&lt;br /&gt;
'''Implementation''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The checkbox has been provided to Create New Assignment’s page under the Review strategy tab.&lt;br /&gt;
It is added as follows: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Add instructor 4.png]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the instructor/TA selects the box while creating the assignment, then he will be added as a participant for the same assignment. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Files edited: &lt;br /&gt;
&lt;br /&gt;
* '''View: ''' ''app/views/assignments/edit/_review_strategy.html.erb'' &amp;lt;br&amp;gt;&lt;br /&gt;
In this file, code for displaying the checkbox has been added which is as follows : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;input name='add_instructor' type=&amp;quot;hidden&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;%= check_box_tag('add_instructor', value = &amp;quot;1&amp;quot;, checked = is_instructor_a_participant?)%&amp;gt;&lt;br /&gt;
      &amp;lt;%= label_tag('add_instructor', 'Add yourself as a participant?') %&amp;gt;&lt;br /&gt;
      &amp;lt;img src=&amp;quot;/assets/info.png&amp;quot; title='If you add yourself as a participant then you will be able to perform reviews of students for this assignment'&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;
&lt;br /&gt;
This checkbox if selected adds the instructor as a participant to the currently being created assignment. Thus, instructor being a participant allows him to perform reviews for the students for this assignment&lt;br /&gt;
&lt;br /&gt;
* '''Controller: ''' ''app/controllers/assignments_controller.rb''&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
The following activity diagram summarizes our proposed implementation for the above mentioned issue:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Testing''' ==&lt;br /&gt;
=== UI Testing ===&lt;br /&gt;
==== Part 1: Allowing instructor/TA to perform review ====&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Login in as an instructor. &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Username: instructor6&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Password: password&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt; &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Choose any assignment from the list of assignments which involves teams; since an assignment without teams does not include the review procedure. For example, “Final project (design and doc)” is a good assignment to choose.&lt;br /&gt;
&amp;lt;li&amp;gt;Now, while testing this functionality, it is recommended to keep the following pages opened in different tabs by clicking on the small icons in the same row as the assignment that you want to test:&lt;br /&gt;
a. “Edit” -&amp;gt; “Due Dates” tab (SS)&lt;br /&gt;
&lt;br /&gt;
b. “Add participants” (SS)&lt;br /&gt;
&lt;br /&gt;
c. “View Submissions” (SS)	&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now add the instructor as a participant (3.b). and edit the ALL due dates (3.a.) of different stages to any date later from now (hence the assignment goes into the “submission” stage by default). Save both these changes. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now refresh the view submissions page (3.c.), you will see a list of assignments with no link to review or assign grade.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now switch to edit due dates tab (3.a.) again. Set the due date for submission to a previous date which has passed, hence the next due date will be for the “review” stage by default (which will have a later due date from now.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Refresh view submissions page (3.c.), you will see a list of assignments with a link to “Begin Review.”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can click on it. If you “save” your response, you will see that the link has been replace by “View review” and “Edit review” now. Whereas, if you “submit” the response, the link will be replaced by “View review” and “Update review.”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Depending on the number of stages that an assignment has, you can edit the due date at every stage and check whether the links are displayed appropriately.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally when the last deadline of the assignment is set to a previous date which has passed, you will see the link to “Assign grade” in view submissions (3.c.), and the user will still be able to begin, edit or update a review in order to provide flexibility as per the requirements.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Edge Cases:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user is not a participant of the current assignment, they are shown a list of all submissions made by all teams of the current assignment. They are shown the link to “Assign Grade” only when the final deadline of the assignment passes.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;During any review stage or even after the deadline, the user is offered the flexibility to Begin, Edit, View or Update their review.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Team Members''' ==&lt;br /&gt;
Mentor: Prof. Edward Gehringer (efg@ncsu.edu)&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anuja Kulkarni - apkulka2@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mark Trawick - mtrawic@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Parvathy Menon - pharida@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Samruddhi Khandale - sskhanda@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129899</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129899"/>
		<updated>2019-12-06T01:48:11Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However, sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development. &lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience. Currently, there exists no method for the instructor/TA to perform reviews of assignments submitted by the students. Hence this is what this project aims at, allowing instructor/TA to perform reviews.&lt;br /&gt;
&lt;br /&gt;
Thus, the primary aim of this project is to allow instructors to submit reviews of student work, using the same review form that students use to do reviews.&lt;br /&gt;
&lt;br /&gt;
=='''Implementation Details''' ==&lt;br /&gt;
Our project aims at enabling the instructor/TA to review the submissions using the same form that a student uses while peer-reviewing. For this, our implementation has been divided into 3 parts, and can be described as follows:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The first part involves the primary functionality of letting the staff perform a review on students submission.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The second part involves allowing the students to identify from their end, which review has been performed by an instructor/TA. This will help students improve their project as the opinions presented by a staff member would be valid.&amp;lt;/li&amp;gt;  &lt;br /&gt;
&amp;lt;li&amp;gt;Thirdly, we implemented an additional feature that allows the instructor/TA to add himself as a participant while creating/editing an Assignment (This way seemed to be more convenient rather than going to the “Add Participant” page and adding themselves as a participant.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Part 1: Allowing instructor/TA to perform review===&lt;br /&gt;
Note 1: “Instructor/TA” will be referred to by “user” here onwards.&lt;br /&gt;
&lt;br /&gt;
Note 2: To be able to perform a review, the user has to be a participant of that assignment. We have implemented “Add as Participant” as an additional feature which is explained in Part 3. If the user is not a participant, he will only see the link to “Assign grade” that too after the assignment deadline passes.&lt;br /&gt;
Now, for each assignment there is a page called “List Submissions” where the user can view all the submissions. So we have modified this page so that for each team submission a link for “Begin review,” “Edit review,” “View review,” “Update review,” or “Assign grade” may appear depending on the [http://wiki.expertiza.ncsu.edu/index.php/Deadline_types Stage] in which the assignment is. &lt;br /&gt;
&lt;br /&gt;
The following describes the flow of our project considering a fresh assignment.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the assignment is created, it is by default is in the “submission” stage. Hence the user will not see any link on the list submission page. &lt;br /&gt;
(Add a screenshot if possible.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the first deadline passes, the assignment goes into the “review” stage. Hence the link “Begin review” will be visible for each team submission, where the instructor/TA can click on to submit the review. Two cases can occur here:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “submits” a review, they will be redirected to the list submission page where they’ll see the option “View review” or “Update review.” Being an instructor/TA, they are given the flexibility to update their review at any time during the “review” stage.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “saves” a review, they will be redirected to the list submission page where they’ll see the option “View review” and “Edit Review (as they have not submitted it yet.)”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;After the first review is over, if more stages of “submissions” and “reviews” exist, it will follow the above 2 steps until the final assignment deadline does not pass. Note that at any round of the review, the user can “Begin review” for a submission which they had not reviewed in the previous rounds. This is to provide flexibility to them as per the requirement.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally, after the assignment deadline passes, the assignment goes into the “Finished” stage. This is when the “Assign grade” link will be visible to the user. Along with this, depending on whether they have reviewed a particular submission or not, the begin, view, update links will be visible to them as they should be able to perform the review even after the assignment deadline for the students has passed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
===Issue 2: Show students that her/his assignment has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file &amp;lt;b&amp;gt;app/assets/stylesheets/grades.scss&amp;lt;/b&amp;gt; to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Part 3: Add instructor/TA as a participant while creating/editing assignment ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Current scenario''' &amp;lt;br&amp;gt;&lt;br /&gt;
The instructor/TA will be able to perform student reviews (after implementation of Part 1) for the assignment, only when he is a participant of the same assignment. Thus, every time he creates an assignment and wants to add himself as a participant in order to perform student reviews, he is supposed to do the following &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Go to list of assignments -&amp;gt; Find the required assignment -&amp;gt; Click on add participant -&amp;gt; Type user Id -&amp;gt; Click on add&lt;br /&gt;
The same flow is as shown below where the instructor/TA has created a new assignment say “Program 1 Github” wherein he wants himself as a participant to be able to perform student reviews :&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Addinstructor1.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AddInstructor2.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Add Instructor 3.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To overcome the hassle, we added a check box through which the instructor/TA will get an option to add himself as a participant while creating the assignment. Also, he will be able to add/remove himself as a participant while editing the assignment. &lt;br /&gt;
&lt;br /&gt;
'''Implementation''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The checkbox has been provided to Create New Assignment’s page under the Review strategy tab.&lt;br /&gt;
It is added as follows: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Add instructor 4.png]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the instructor/TA selects the box while creating the assignment, then he will be added as a participant for the same assignment. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Files edited: &lt;br /&gt;
&lt;br /&gt;
* '''View: ''' ''app/views/assignments/edit/_review_strategy.html.erb'' &amp;lt;br&amp;gt;&lt;br /&gt;
In this file, code for displaying the checkbox has been added which is as follows : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;input name='add_instructor' type=&amp;quot;hidden&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;%= check_box_tag('add_instructor', value = &amp;quot;1&amp;quot;, checked = is_instructor_a_participant?)%&amp;gt;&lt;br /&gt;
      &amp;lt;%= label_tag('add_instructor', 'Add yourself as a participant?') %&amp;gt;&lt;br /&gt;
      &amp;lt;img src=&amp;quot;/assets/info.png&amp;quot; title='If you add yourself as a participant then you will be able to perform reviews of students for this assignment'&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;
&lt;br /&gt;
This checkbox if selected adds the instructor as a participant to the currently being created assignment. Thus, instructor being a participant allows him to perform reviews for the students for this assignment&lt;br /&gt;
&lt;br /&gt;
* '''Controller: ''' ''app/controllers/assignments_controller.rb''&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
The following activity diagram summarizes our proposed implementation for the above mentioned issue:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Testing''' ==&lt;br /&gt;
=== UI Testing ===&lt;br /&gt;
==== Part 1: Allowing instructor/TA to perform review ====&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Login in as an instructor. &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Username: instructor6&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Password: password&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt; &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Choose any assignment from the list of assignments which involves teams; since an assignment without teams does not include the review procedure. For example, “Final project (design and doc)” is a good assignment to choose.&lt;br /&gt;
&amp;lt;li&amp;gt;Now, while testing this functionality, it is recommended to keep the following pages opened in different tabs by clicking on the small icons in the same row as the assignment that you want to test:&lt;br /&gt;
a. “Edit” -&amp;gt; “Due Dates” tab (SS)&lt;br /&gt;
&lt;br /&gt;
b. “Add participants” (SS)&lt;br /&gt;
&lt;br /&gt;
c. “View Submissions” (SS)	&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now add the instructor as a participant (3.b). and edit the ALL due dates (3.a.) of different stages to any date later from now (hence the assignment goes into the “submission” stage by default). Save both these changes. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now refresh the view submissions page (3.c.), you will see a list of assignments with no link to review or assign grade.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now switch to edit due dates tab (3.a.) again. Set the due date for submission to a previous date which has passed, hence the next due date will be for the “review” stage by default (which will have a later due date from now.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Refresh view submissions page (3.c.), you will see a list of assignments with a link to “Begin Review.”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can click on it. If you “save” your response, you will see that the link has been replace by “View review” and “Edit review” now. Whereas, if you “submit” the response, the link will be replaced by “View review” and “Update review.”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Depending on the number of stages that an assignment has, you can edit the due date at every stage and check whether the links are displayed appropriately.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally when the last deadline of the assignment is set to a previous date which has passed, you will see the link to “Assign grade” in view submissions (3.c.), and the user will still be able to begin, edit or update a review in order to provide flexibility as per the requirements.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Edge Cases:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user is not a participant of the current assignment, they are shown a list of all submissions made by all teams of the current assignment. They are shown the link to “Assign Grade” only when the final deadline of the assignment passes.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;During any review stage or even after the deadline, the user is offered the flexibility to Begin, Edit, View or Update their review.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Team Members''' ==&lt;br /&gt;
Mentor: Prof. Edward Gehringer (efg@ncsu.edu)&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anuja Kulkarni - apkulka2@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mark Trawick - mtrawic@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Parvathy Menon - pharida@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Samruddhi Khandale - sskhanda@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129898</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129898"/>
		<updated>2019-12-06T01:46:41Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However, sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development. &lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience. Currently, there exists no method for the instructor/TA to perform reviews of assignments submitted by the students. Hence this is what this project aims at, allowing instructor/TA to perform reviews.&lt;br /&gt;
&lt;br /&gt;
Thus, the primary aim of this project is to allow instructors to submit reviews of student work, using the same review form that students use to do reviews.&lt;br /&gt;
&lt;br /&gt;
=='''Implementation Details''' ==&lt;br /&gt;
Our project aims at enabling the instructor/TA to review the submissions using the same form that a student uses while peer-reviewing. For this, our implementation has been divided into 3 parts, and can be described as follows:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The first part involves the primary functionality of letting the staff perform a review on students submission.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The second part involves allowing the students to identify from their end, which review has been performed by an instructor/TA. This will help students improve their project as the opinions presented by a staff member would be valid.&amp;lt;/li&amp;gt;  &lt;br /&gt;
&amp;lt;li&amp;gt;Thirdly, we implemented an additional feature that allows the instructor/TA to add himself as a participant while creating/editing an Assignment (This way seemed to be more convenient rather than going to the “Add Participant” page and adding themselves as a participant.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Part 1: Allowing instructor/TA to perform review:&amp;lt;/h3&amp;gt;&lt;br /&gt;
Note 1: “Instructor/TA” will be referred to by “user” here onwards.&lt;br /&gt;
&lt;br /&gt;
Note 2: To be able to perform a review, the user has to be a participant of that assignment. We have implemented “Add as Participant” as an additional feature which is explained in Part 3. If the user is not a participant, he will only see the link to “Assign grade” that too after the assignment deadline passes.&lt;br /&gt;
Now, for each assignment there is a page called “List Submissions” where the user can view all the submissions. So we have modified this page so that for each team submission a link for “Begin review,” “Edit review,” “View review,” “Update review,” or “Assign grade” may appear depending on the [http://wiki.expertiza.ncsu.edu/index.php/Deadline_types Stage] in which the assignment is. &lt;br /&gt;
&lt;br /&gt;
The following describes the flow of our project considering a fresh assignment.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the assignment is created, it is by default is in the “submission” stage. Hence the user will not see any link on the list submission page. &lt;br /&gt;
(Add a screenshot if possible.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the first deadline passes, the assignment goes into the “review” stage. Hence the link “Begin review” will be visible for each team submission, where the instructor/TA can click on to submit the review. Two cases can occur here:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “submits” a review, they will be redirected to the list submission page where they’ll see the option “View review” or “Update review.” Being an instructor/TA, they are given the flexibility to update their review at any time during the “review” stage.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “saves” a review, they will be redirected to the list submission page where they’ll see the option “View review” and “Edit Review (as they have not submitted it yet.)”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;After the first review is over, if more stages of “submissions” and “reviews” exist, it will follow the above 2 steps until the final assignment deadline does not pass. Note that at any round of the review, the user can “Begin review” for a submission which they had not reviewed in the previous rounds. This is to provide flexibility to them as per the requirement.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally, after the assignment deadline passes, the assignment goes into the “Finished” stage. This is when the “Assign grade” link will be visible to the user. Along with this, depending on whether they have reviewed a particular submission or not, the begin, view, update links will be visible to them as they should be able to perform the review even after the assignment deadline for the students has passed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Issue 1: Allow TA / Instructor to perform review of student assignments ===&lt;br /&gt;
&amp;lt;b&amp;gt;Current Scenario:&amp;lt;/b&amp;gt;&lt;br /&gt;
Instructors and TA's can not perform reviews. Previous attempts were made but they either complicated the code or did not pass the Travis CI. For this particular task, the following screenshot describes how the current scenario looks. The page below is the “View Submissions” page when logged in as an instructor. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:list1.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement:&amp;lt;/b&amp;gt;&lt;br /&gt;
This functionality is needed so that the instructors can easily perform submission reviews which can also be viewed by the students. Also for future purposes, other student reviews can be bench marked against an instructor review. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation:&amp;lt;/b&amp;gt; The following things need to be improved/changed with respect to the above screenshot.&lt;br /&gt;
&amp;lt;br&amp;gt; The second column consists of the title name with the link to “Assign Grade.” This is the part which we will have to modify. The link under the project title should be as follows: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1. “Perform Review,” until the deadline for the assignment hasn’t been reached. If he/she has already started the review, the link will be modified to “Edit Review,” until they don’t submit it. &amp;lt;br&amp;gt;&lt;br /&gt;
2. “Assign Grade,” after the deadline of the assignment passes. &amp;lt;br&amp;gt;&lt;br /&gt;
When clicked on “Perform Review”/”Edit Review,” it should direct to the review page seen by the students, and be able to perform the review. Thus it will direct the page to the &amp;lt;b&amp;gt;response#new&amp;lt;/b&amp;gt; page or &amp;lt;b&amp;gt;response#edit&amp;lt;/b&amp;gt; page respectively.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For the above-mentioned flow, the following file will be edited:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;app/views/assignments/list_submissions.html.erb:&amp;lt;/b&amp;gt;&lt;br /&gt;
This view file refers to the page in the above screenshot. This file will be edited to check whether the deadline for the current assignment has been passed, and accordingly it will display either of the two options denoted above.&lt;br /&gt;
&lt;br /&gt;
For the above functionality to work smoothly, we need to keep 2 checks:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Whether the reviewer is a TA/instructor for the selected course&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Whether the TA/instructor is a participant for that assignment&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
These issues can be independently described as follows:&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue 2: Show students that her/his assignment has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file &amp;lt;b&amp;gt;app/assets/stylesheets/grades.scss&amp;lt;/b&amp;gt; to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Part 3: Add instructor/TA as a participant while creating/editing assignment ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Current scenario''' &amp;lt;br&amp;gt;&lt;br /&gt;
The instructor/TA will be able to perform student reviews (after implementation of Part 1) for the assignment, only when he is a participant of the same assignment. Thus, every time he creates an assignment and wants to add himself as a participant in order to perform student reviews, he is supposed to do the following &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Go to list of assignments -&amp;gt; Find the required assignment -&amp;gt; Click on add participant -&amp;gt; Type user Id -&amp;gt; Click on add&lt;br /&gt;
The same flow is as shown below where the instructor/TA has created a new assignment say “Program 1 Github” wherein he wants himself as a participant to be able to perform student reviews :&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Addinstructor1.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AddInstructor2.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Add Instructor 3.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To overcome the hassle, we added a check box through which the instructor/TA will get an option to add himself as a participant while creating the assignment. Also, he will be able to add/remove himself as a participant while editing the assignment. &lt;br /&gt;
&lt;br /&gt;
'''Implementation''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The checkbox has been provided to Create New Assignment’s page under the Review strategy tab.&lt;br /&gt;
It is added as follows: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Add instructor 4.png]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the instructor/TA selects the box while creating the assignment, then he will be added as a participant for the same assignment. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Files edited: &lt;br /&gt;
&lt;br /&gt;
* '''View: ''' ''app/views/assignments/edit/_review_strategy.html.erb'' &amp;lt;br&amp;gt;&lt;br /&gt;
In this file, code for displaying the checkbox has been added which is as follows : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;input name='add_instructor' type=&amp;quot;hidden&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;%= check_box_tag('add_instructor', value = &amp;quot;1&amp;quot;, checked = is_instructor_a_participant?)%&amp;gt;&lt;br /&gt;
      &amp;lt;%= label_tag('add_instructor', 'Add yourself as a participant?') %&amp;gt;&lt;br /&gt;
      &amp;lt;img src=&amp;quot;/assets/info.png&amp;quot; title='If you add yourself as a participant then you will be able to perform reviews of students for this assignment'&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;
&lt;br /&gt;
This checkbox if selected adds the instructor as a participant to the currently being created assignment. Thus, instructor being a participant allows him to perform reviews for the students for this assignment&lt;br /&gt;
&lt;br /&gt;
* '''Controller: ''' ''app/controllers/assignments_controller.rb''&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
The following activity diagram summarizes our proposed implementation for the above mentioned issue:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Testing''' ==&lt;br /&gt;
=== UI Testing ===&lt;br /&gt;
==== Part 1: Allowing instructor/TA to perform review ====&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Login in as an instructor. &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Username: instructor6&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Password: password&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt; &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Choose any assignment from the list of assignments which involves teams; since an assignment without teams does not include the review procedure. For example, “Final project (design and doc)” is a good assignment to choose.&lt;br /&gt;
&amp;lt;li&amp;gt;Now, while testing this functionality, it is recommended to keep the following pages opened in different tabs by clicking on the small icons in the same row as the assignment that you want to test:&lt;br /&gt;
a. “Edit” -&amp;gt; “Due Dates” tab (SS)&lt;br /&gt;
&lt;br /&gt;
b. “Add participants” (SS)&lt;br /&gt;
&lt;br /&gt;
c. “View Submissions” (SS)	&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now add the instructor as a participant (3.b). and edit the ALL due dates (3.a.) of different stages to any date later from now (hence the assignment goes into the “submission” stage by default). Save both these changes. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now refresh the view submissions page (3.c.), you will see a list of assignments with no link to review or assign grade.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now switch to edit due dates tab (3.a.) again. Set the due date for submission to a previous date which has passed, hence the next due date will be for the “review” stage by default (which will have a later due date from now.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Refresh view submissions page (3.c.), you will see a list of assignments with a link to “Begin Review.”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can click on it. If you “save” your response, you will see that the link has been replace by “View review” and “Edit review” now. Whereas, if you “submit” the response, the link will be replaced by “View review” and “Update review.”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Depending on the number of stages that an assignment has, you can edit the due date at every stage and check whether the links are displayed appropriately.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally when the last deadline of the assignment is set to a previous date which has passed, you will see the link to “Assign grade” in view submissions (3.c.), and the user will still be able to begin, edit or update a review in order to provide flexibility as per the requirements.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Edge Cases:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user is not a participant of the current assignment, they are shown a list of all submissions made by all teams of the current assignment. They are shown the link to “Assign Grade” only when the final deadline of the assignment passes.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;During any review stage or even after the deadline, the user is offered the flexibility to Begin, Edit, View or Update their review.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following presents the list of specs which we will write/modify to test the working of our modified code : &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1. The instructor/TAs perform a review for the submission before the deadline of submission &amp;lt;br&amp;gt;&lt;br /&gt;
2. The instructor/TA saves a review&amp;lt;br&amp;gt;&lt;br /&gt;
3. The instructor/TAs review a previously saved review&amp;lt;br&amp;gt;&lt;br /&gt;
4. The instructor/TAs edit a previously saved review&amp;lt;br&amp;gt;&lt;br /&gt;
5. The instructor/TAs perform grading assignment after the deadline for reviewing has passed&amp;lt;br&amp;gt;&lt;br /&gt;
6. There is an update review link available after the deadline for reviewing has passed &amp;lt;br&amp;gt;&lt;br /&gt;
7. The instructor/TA has been assigned for the same course&amp;lt;br&amp;gt;&lt;br /&gt;
8. The instructor/TA has added himself as the participant in the submission&amp;lt;br&amp;gt;&lt;br /&gt;
9. An icon is displayed which identifies instructor/TA's review&lt;br /&gt;
&lt;br /&gt;
== '''Team Members''' ==&lt;br /&gt;
Mentor: Prof. Edward Gehringer (efg@ncsu.edu)&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anuja Kulkarni - apkulka2@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mark Trawick - mtrawic@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Parvathy Menon - pharida@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Samruddhi Khandale - sskhanda@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129897</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129897"/>
		<updated>2019-12-06T01:44:43Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However, sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development. &lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience. Currently, there exists no method for the instructor/TA to perform reviews of assignments submitted by the students. Hence this is what this project aims at, allowing instructor/TA to perform reviews.&lt;br /&gt;
&lt;br /&gt;
Thus, the primary aim of this project is to allow instructors to submit reviews of student work, using the same review form that students use to do reviews.&lt;br /&gt;
&lt;br /&gt;
=='''Implementation Details''' ==&lt;br /&gt;
Our project aims at enabling the instructor/TA to review the submissions using the same form that a student uses while peer-reviewing. For this, our implementation has been divided into 3 parts, and can be described as follows:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The first part involves the primary functionality of letting the staff perform a review on students submission.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The second part involves allowing the students to identify from their end, which review has been performed by an instructor/TA. This will help students improve their project as the opinions presented by a staff member would be valid.&amp;lt;/li&amp;gt;  &lt;br /&gt;
&amp;lt;li&amp;gt;Thirdly, we implemented an additional feature that allows the instructor/TA to add himself as a participant while creating/editing an Assignment (This way seemed to be more convenient rather than going to the “Add Participant” page and adding themselves as a participant.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Part 1: Allowing instructor/TA to perform review:&amp;lt;/h3&amp;gt;&lt;br /&gt;
Note 1: “Instructor/TA” will be referred to by “user” here onwards.&lt;br /&gt;
&lt;br /&gt;
Note 2: To be able to perform a review, the user has to be a participant of that assignment. We have implemented “Add as Participant” as an additional feature which is explained in Part 3. If the user is not a participant, he will only see the link to “Assign grade” that too after the assignment deadline passes.&lt;br /&gt;
Now, for each assignment there is a page called “List Submissions” where the user can view all the submissions. So we have modified this page so that for each team submission a link for “Begin review,” “Edit review,” “View review,” “Update review,” or “Assign grade” may appear depending on the [http://wiki.expertiza.ncsu.edu/index.php/Deadline_types Stage] in which the assignment is. &lt;br /&gt;
&lt;br /&gt;
The following describes the flow of our project considering a fresh assignment.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the assignment is created, it is by default is in the “submission” stage. Hence the user will not see any link on the list submission page. &lt;br /&gt;
(Add a screenshot if possible.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the first deadline passes, the assignment goes into the “review” stage. Hence the link “Begin review” will be visible for each team submission, where the instructor/TA can click on to submit the review. Two cases can occur here:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “submits” a review, they will be redirected to the list submission page where they’ll see the option “View review” or “Update review.” Being an instructor/TA, they are given the flexibility to update their review at any time during the “review” stage.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “saves” a review, they will be redirected to the list submission page where they’ll see the option “View review” and “Edit Review (as they have not submitted it yet.)”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;After the first review is over, if more stages of “submissions” and “reviews” exist, it will follow the above 2 steps until the final assignment deadline does not pass. Note that at any round of the review, the user can “Begin review” for a submission which they had not reviewed in the previous rounds. This is to provide flexibility to them as per the requirement.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally, after the assignment deadline passes, the assignment goes into the “Finished” stage. This is when the “Assign grade” link will be visible to the user. Along with this, depending on whether they have reviewed a particular submission or not, the begin, view, update links will be visible to them as they should be able to perform the review even after the assignment deadline for the students has passed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Issue 1: Allow TA / Instructor to perform review of student assignments ===&lt;br /&gt;
&amp;lt;b&amp;gt;Current Scenario:&amp;lt;/b&amp;gt;&lt;br /&gt;
Instructors and TA's can not perform reviews. Previous attempts were made but they either complicated the code or did not pass the Travis CI. For this particular task, the following screenshot describes how the current scenario looks. The page below is the “View Submissions” page when logged in as an instructor. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:list1.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement:&amp;lt;/b&amp;gt;&lt;br /&gt;
This functionality is needed so that the instructors can easily perform submission reviews which can also be viewed by the students. Also for future purposes, other student reviews can be bench marked against an instructor review. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation:&amp;lt;/b&amp;gt; The following things need to be improved/changed with respect to the above screenshot.&lt;br /&gt;
&amp;lt;br&amp;gt; The second column consists of the title name with the link to “Assign Grade.” This is the part which we will have to modify. The link under the project title should be as follows: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1. “Perform Review,” until the deadline for the assignment hasn’t been reached. If he/she has already started the review, the link will be modified to “Edit Review,” until they don’t submit it. &amp;lt;br&amp;gt;&lt;br /&gt;
2. “Assign Grade,” after the deadline of the assignment passes. &amp;lt;br&amp;gt;&lt;br /&gt;
When clicked on “Perform Review”/”Edit Review,” it should direct to the review page seen by the students, and be able to perform the review. Thus it will direct the page to the &amp;lt;b&amp;gt;response#new&amp;lt;/b&amp;gt; page or &amp;lt;b&amp;gt;response#edit&amp;lt;/b&amp;gt; page respectively.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For the above-mentioned flow, the following file will be edited:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;app/views/assignments/list_submissions.html.erb:&amp;lt;/b&amp;gt;&lt;br /&gt;
This view file refers to the page in the above screenshot. This file will be edited to check whether the deadline for the current assignment has been passed, and accordingly it will display either of the two options denoted above.&lt;br /&gt;
&lt;br /&gt;
For the above functionality to work smoothly, we need to keep 2 checks:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Whether the reviewer is a TA/instructor for the selected course&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Whether the TA/instructor is a participant for that assignment&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
These issues can be independently described as follows:&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue 2: Show students that her/his assignment has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file &amp;lt;b&amp;gt;app/assets/stylesheets/grades.scss&amp;lt;/b&amp;gt; to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Part 3: Add instructor/TA as a participant while creating/editing assignment ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Current scenario''' &amp;lt;br&amp;gt;&lt;br /&gt;
The instructor/TA will be able to perform student reviews (after implementation of Part 1) for the assignment, only when he is a participant of the same assignment. Thus, every time he creates an assignment and wants to add himself as a participant in order to perform student reviews, he is supposed to do the following &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Go to list of assignments -&amp;gt; Find the required assignment -&amp;gt; Click on add participant -&amp;gt; Type user Id -&amp;gt; Click on add&lt;br /&gt;
The same flow is as shown below where the instructor/TA has created a new assignment say “Program 1 Github” wherein he wants himself as a participant to be able to perform student reviews :&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Addinstructor1.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AddInstructor2.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Add Instructor 3.png]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To overcome the hassle, we added a check box through which the instructor/TA will get an option to add himself as a participant while creating the assignment. Also, he will be able to add/remove himself as a participant while editing the assignment. &lt;br /&gt;
&lt;br /&gt;
'''Implementation''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The checkbox has been provided to Create New Assignment’s page under the Review strategy tab.&lt;br /&gt;
It is added as follows: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Add instructor 4.png]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the instructor/TA selects the box while creating the assignment, then he will be added as a participant for the same assignment. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Files edited: &lt;br /&gt;
&lt;br /&gt;
* '''View: ''' ''app/views/assignments/edit/_review_strategy.html.erb'' &amp;lt;br&amp;gt;&lt;br /&gt;
In this file, code for displaying the checkbox has been added which is as follows : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;input name='add_instructor' type=&amp;quot;hidden&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;%= check_box_tag('add_instructor', value = &amp;quot;1&amp;quot;, checked = is_instructor_a_participant?)%&amp;gt;&lt;br /&gt;
      &amp;lt;%= label_tag('add_instructor', 'Add yourself as a participant?') %&amp;gt;&lt;br /&gt;
      &amp;lt;img src=&amp;quot;/assets/info.png&amp;quot; title='If you add yourself as a participant then you will be able to perform reviews of students for this assignment'&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;
&lt;br /&gt;
This checkbox if selected adds the instructor as a participant to the currently being created assignment. Thus, instructor being a participant allows him to perform reviews for the students for this assignment&lt;br /&gt;
&lt;br /&gt;
* '''Controller: ''' ''app/controllers/assignments_controller.rb''&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
The following activity diagram summarizes our proposed implementation for the above mentioned issue:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Testing''' ==&lt;br /&gt;
=== UI Testing ===&lt;br /&gt;
==== Part 1: Allowing instructor/TA to perform review ====&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Login in as an instructor. &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Username: instructor6&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Password: password&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt; &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Choose any assignment from the list of assignments which involves teams; since an assignment without teams does not include the review procedure. For example, “Final project (design and doc)” is a good assignment to choose.&lt;br /&gt;
&amp;lt;li&amp;gt;Now, while testing this functionality, it is recommended to keep the following pages opened in different tabs by clicking on the small icons in the same row as the assignment that you want to test:&lt;br /&gt;
a.	“Edit” -&amp;gt; “Due Dates” tab (SS)&lt;br /&gt;
b.	“Add participants” (SS)&lt;br /&gt;
c.	“View Submissions” (SS)	&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now add the instructor as a participant (3.b). and edit the ALL due dates (3.a.) of different stages to any date later from now (hence the assignment goes into the “submission” stage by default). Save both these changes. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now refresh the view submissions page (3.c.), you will see a list of assignments with no link to review or assign grade.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now switch to edit due dates tab (3.a.) again. Set the due date for submission to a previous date which has passed, hence the next due date will be for the “review” stage by default (which will have a later due date from now.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Refresh view submissions page (3.c.), you will see a list of assignments with a link to “Begin Review.”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can click on it. If you “save” your response, you will see that the link has been replace by “View review” and “Edit review” now. Whereas, if you “submit” the response, the link will be replaced by “View review” and “Update review.”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Depending on the number of stages that an assignment has, you can edit the due date at every stage and check whether the links are displayed appropriately.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally when the last deadline of the assignment is set to a previous date which has passed, you will see the link to “Assign grade” in view submissions (3.c.), and the user will still be able to begin, edit or update a review in order to provide flexibility as per the requirements.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
Edge Cases:&lt;br /&gt;
1.	If the user is not a participant of the current assignment, they are shown a list of all submissions made by all teams of the current assignment. They are shown the link to “Assign Grade” only when the final deadline of the assignment passes.&lt;br /&gt;
2.	During any review stage or even after the deadline, the user is offered the flexibility to Begin, Edit, View or Update their review. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following presents the list of specs which we will write/modify to test the working of our modified code : &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1. The instructor/TAs perform a review for the submission before the deadline of submission &amp;lt;br&amp;gt;&lt;br /&gt;
2. The instructor/TA saves a review&amp;lt;br&amp;gt;&lt;br /&gt;
3. The instructor/TAs review a previously saved review&amp;lt;br&amp;gt;&lt;br /&gt;
4. The instructor/TAs edit a previously saved review&amp;lt;br&amp;gt;&lt;br /&gt;
5. The instructor/TAs perform grading assignment after the deadline for reviewing has passed&amp;lt;br&amp;gt;&lt;br /&gt;
6. There is an update review link available after the deadline for reviewing has passed &amp;lt;br&amp;gt;&lt;br /&gt;
7. The instructor/TA has been assigned for the same course&amp;lt;br&amp;gt;&lt;br /&gt;
8. The instructor/TA has added himself as the participant in the submission&amp;lt;br&amp;gt;&lt;br /&gt;
9. An icon is displayed which identifies instructor/TA's review&lt;br /&gt;
&lt;br /&gt;
== '''Team Members''' ==&lt;br /&gt;
Mentor: Prof. Edward Gehringer (efg@ncsu.edu)&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anuja Kulkarni - apkulka2@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mark Trawick - mtrawic@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Parvathy Menon - pharida@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Samruddhi Khandale - sskhanda@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129822</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129822"/>
		<updated>2019-12-05T21:57:57Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However, sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development. &lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience. Currently, there exists no method for the instructor/TA to perform reviews of assignments submitted by the students. Hence this is what this project aims at, allowing instructor/TA to perform reviews.&lt;br /&gt;
&lt;br /&gt;
Thus, the primary aim of this project is to allow instructors to submit reviews of student work, using the same review form that students use to do reviews.&lt;br /&gt;
&lt;br /&gt;
=='''Implementation Details''' ==&lt;br /&gt;
Our project aims at enabling the instructor/TA to review the submissions using the same form that a student uses while peer-reviewing. For this, our implementation has been divided into 3 parts, and can be described as follows:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The first part involves the primary functionality of letting the staff perform a review on students submission.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The second part involves allowing the students to identify from their end, which review has been performed by an instructor/TA. This will help students improve their project as the opinions presented by a staff member would be valid.&amp;lt;/li&amp;gt;  &lt;br /&gt;
&amp;lt;li&amp;gt;Thirdly, we implemented an additional feature that allows the instructor/TA to add himself as a participant while creating/editing an Assignment (This way seemed to be more convenient rather than going to the “Add Participant” page and adding themselves as a participant.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Part 1: Allowing instructor/TA to perform review:&amp;lt;/h3&amp;gt;&lt;br /&gt;
Note 1: “Instructor/TA” will be referred to by “user” here onwards.&lt;br /&gt;
&lt;br /&gt;
Note 2: To be able to perform a review, the user has to be a participant of that assignment. We have implemented “Add as Participant” as an additional feature which is explained in Part 3. If the user is not a participant, he will only see the link to “Assign grade” that too after the assignment deadline passes.&lt;br /&gt;
Now, for each assignment there is a page called “List Submissions” where the user can view all the submissions. So we have modified this page so that for each team submission a link for “Begin review,” “Edit review,” “View review,” “Update review,” or “Assign grade” may appear depending on the &amp;lt;a href=&amp;quot;http://wiki.expertiza.ncsu.edu/index.php/Deadline_types&amp;quot;&amp;gt;stage&amp;lt;/a&amp;gt; in which the assignment is. &lt;br /&gt;
&lt;br /&gt;
The following describes the flow of our project considering a fresh assignment.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the assignment is created, it is by default is in the “submission” stage. Hence the user will not see any link on the list submission page. &lt;br /&gt;
(Add a screenshot if possible.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the first deadline passes, the assignment goes into the “review” stage. Hence the link “Begin review” will be visible for each team submission, where the instructor/TA can click on to submit the review. Two cases can occur here:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “submits” a review, they will be redirected to the list submission page where they’ll see the option “View review” or “Update review.” Being an instructor/TA, they are given the flexibility to update their review at any time during the “review” stage.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “saves” a review, they will be redirected to the list submission page where they’ll see the option “View review” and “Edit Review (as they have not submitted it yet.)”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;After the first review is over, if more stages of “submissions” and “reviews” exist, it will follow the above 2 steps until the final assignment deadline does not pass. Note that at any round of the review, the user can “Begin review” for a submission which they had not reviewed in the previous rounds. This is to provide flexibility to them as per the requirement.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally, after the assignment deadline passes, the assignment goes into the “Finished” stage. This is when the “Assign grade” link will be visible to the user. Along with this, depending on whether they have reviewed a particular submission or not, the begin, view, update links will be visible to them as they should be able to perform the review even after the assignment deadline for the students has passed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Issue 1: Allow TA / Instructor to perform review of student assignments ===&lt;br /&gt;
&amp;lt;b&amp;gt;Current Scenario:&amp;lt;/b&amp;gt;&lt;br /&gt;
Instructors and TA's can not perform reviews. Previous attempts were made but they either complicated the code or did not pass the Travis CI. For this particular task, the following screenshot describes how the current scenario looks. The page below is the “View Submissions” page when logged in as an instructor. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:list1.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement:&amp;lt;/b&amp;gt;&lt;br /&gt;
This functionality is needed so that the instructors can easily perform submission reviews which can also be viewed by the students. Also for future purposes, other student reviews can be bench marked against an instructor review. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation:&amp;lt;/b&amp;gt; The following things need to be improved/changed with respect to the above screenshot.&lt;br /&gt;
&amp;lt;br&amp;gt; The second column consists of the title name with the link to “Assign Grade.” This is the part which we will have to modify. The link under the project title should be as follows: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1. “Perform Review,” until the deadline for the assignment hasn’t been reached. If he/she has already started the review, the link will be modified to “Edit Review,” until they don’t submit it. &amp;lt;br&amp;gt;&lt;br /&gt;
2. “Assign Grade,” after the deadline of the assignment passes. &amp;lt;br&amp;gt;&lt;br /&gt;
When clicked on “Perform Review”/”Edit Review,” it should direct to the review page seen by the students, and be able to perform the review. Thus it will direct the page to the &amp;lt;b&amp;gt;response#new&amp;lt;/b&amp;gt; page or &amp;lt;b&amp;gt;response#edit&amp;lt;/b&amp;gt; page respectively.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For the above-mentioned flow, the following file will be edited:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;app/views/assignments/list_submissions.html.erb:&amp;lt;/b&amp;gt;&lt;br /&gt;
This view file refers to the page in the above screenshot. This file will be edited to check whether the deadline for the current assignment has been passed, and accordingly it will display either of the two options denoted above.&lt;br /&gt;
&lt;br /&gt;
For the above functionality to work smoothly, we need to keep 2 checks:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Whether the reviewer is a TA/instructor for the selected course&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Whether the TA/instructor is a participant for that assignment&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
These issues can be independently described as follows:&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue 2: Show students that her/his assignment has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file &amp;lt;b&amp;gt;app/assets/stylesheets/grades.scss&amp;lt;/b&amp;gt; to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
The following activity diagram summarizes our proposed implementation for the above mentioned issue:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Test Plan''' ==&lt;br /&gt;
&lt;br /&gt;
The following presents the list of specs which we will write/modify to test the working of our modified code : &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1. The instructor/TAs perform a review for the submission before the deadline of submission &amp;lt;br&amp;gt;&lt;br /&gt;
2. The instructor/TA saves a review&amp;lt;br&amp;gt;&lt;br /&gt;
3. The instructor/TAs review a previously saved review&amp;lt;br&amp;gt;&lt;br /&gt;
4. The instructor/TAs edit a previously saved review&amp;lt;br&amp;gt;&lt;br /&gt;
5. The instructor/TAs perform grading assignment after the deadline for reviewing has passed&amp;lt;br&amp;gt;&lt;br /&gt;
6. There is an update review link available after the deadline for reviewing has passed &amp;lt;br&amp;gt;&lt;br /&gt;
7. The instructor/TA has been assigned for the same course&amp;lt;br&amp;gt;&lt;br /&gt;
8. The instructor/TA has added himself as the participant in the submission&amp;lt;br&amp;gt;&lt;br /&gt;
9. An icon is displayed which identifies instructor/TA's review&lt;br /&gt;
&lt;br /&gt;
== '''Team Members''' ==&lt;br /&gt;
Mentor: Prof. Edward Gehringer (efg@ncsu.edu)&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anuja Kulkarni - apkulka2@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mark Trawick - mtrawic@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Parvathy Menon - pharida@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Samruddhi Khandale - sskhanda@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129821</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129821"/>
		<updated>2019-12-05T21:54:32Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However, sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development. &lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience. Currently, there exists no method for the instructor/TA to perform reviews of assignments submitted by the students. Hence this is what this project aims at, allowing instructor/TA to perform reviews.&lt;br /&gt;
&lt;br /&gt;
Thus, the primary aim of this project is to allow instructors to submit reviews of student work, using the same review form that students use to do reviews.&lt;br /&gt;
&lt;br /&gt;
=='''Implementation Details''' ==&lt;br /&gt;
Our project aims at enabling the instructor/TA to review the submissions using the same form that a student uses while peer-reviewing. For this, our implementation has been divided into 3 parts, and can be described as follows:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The first part involves the primary functionality of letting the staff perform a review on students submission.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The second part involves allowing the students to identify from their end, which review has been performed by an instructor/TA. This will help students improve their project as the opinions presented by a staff member would be valid.&amp;lt;/li&amp;gt;  &lt;br /&gt;
&amp;lt;li&amp;gt;Thirdly, we implemented an additional feature that allows the instructor/TA to add himself as a participant while creating/editing an Assignment (This way seemed to be more convenient rather than going to the “Add Participant” page and adding themselves as a participant.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Part 1: Allowing instructor/TA to perform review:&amp;lt;/h3&amp;gt;&lt;br /&gt;
Note 1: “Instructor/TA” will be referred to by “user” here onwards.&lt;br /&gt;
Note 2: To be able to perform a review, the user has to be a participant of that assignment. We have implemented “Add as Participant” as an additional feature which is explained in Part 3. If the user is not a participant, he will only see the link to “Assign grade” that too after the assignment deadline passes.&lt;br /&gt;
Now, for each assignment there is a page called “List Submissions” where the user can view all the submissions. So we have modified this page so that for each team submission a link for “Begin review,” “Edit review,” “View review,” “Update review,” or “Assign grade” may appear depending on the &amp;lt;a href=&amp;quot;http://wiki.expertiza.ncsu.edu/index.php/Deadline_types&amp;quot;&amp;gt;stage&amp;lt;/a&amp;gt; in which the assignment is. &lt;br /&gt;
&lt;br /&gt;
The following describes the flow of our project considering a fresh assignment.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the assignment is created, it is by default is in the “submission” stage. Hence the user will not see any link on the list submission page. &lt;br /&gt;
(Add a screenshot if possible.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the first deadline passes, the assignment goes into the “review” stage. Hence the link “Begin review” will be visible for each team submission, where the instructor/TA can click on to submit the review. Two cases can occur here:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “submits” a review, they will be redirected to the list submission page where they’ll see the option “View review” or “Update review.” Being an instructor/TA, they are given the flexibility to update their review at any time during the “review” stage.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “saves” a review, they will be redirected to the list submission page where they’ll see the option “View review” and “Edit Review (as they have not submitted it yet.)”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;After the first review is over, if more stages of “submissions” and “reviews” exist, it will follow the above 2 steps until the final assignment deadline does not pass. Note that at any round of the review, the user can “Begin review” for a submission which they had not reviewed in the previous rounds. This is to provide flexibility to them as per the requirement.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally, after the assignment deadline passes, the assignment goes into the “Finished” stage. This is when the “Assign grade” link will be visible to the user. Along with this, depending on whether they have reviewed a particular submission or not, the begin, view, update links will be visible to them as they should be able to perform the review even after the assignment deadline for the students has passed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Issue 1: Allow TA / Instructor to perform review of student assignments ===&lt;br /&gt;
&amp;lt;b&amp;gt;Current Scenario:&amp;lt;/b&amp;gt;&lt;br /&gt;
Instructors and TA's can not perform reviews. Previous attempts were made but they either complicated the code or did not pass the Travis CI. For this particular task, the following screenshot describes how the current scenario looks. The page below is the “View Submissions” page when logged in as an instructor. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:list1.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement:&amp;lt;/b&amp;gt;&lt;br /&gt;
This functionality is needed so that the instructors can easily perform submission reviews which can also be viewed by the students. Also for future purposes, other student reviews can be bench marked against an instructor review. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation:&amp;lt;/b&amp;gt; The following things need to be improved/changed with respect to the above screenshot.&lt;br /&gt;
&amp;lt;br&amp;gt; The second column consists of the title name with the link to “Assign Grade.” This is the part which we will have to modify. The link under the project title should be as follows: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1. “Perform Review,” until the deadline for the assignment hasn’t been reached. If he/she has already started the review, the link will be modified to “Edit Review,” until they don’t submit it. &amp;lt;br&amp;gt;&lt;br /&gt;
2. “Assign Grade,” after the deadline of the assignment passes. &amp;lt;br&amp;gt;&lt;br /&gt;
When clicked on “Perform Review”/”Edit Review,” it should direct to the review page seen by the students, and be able to perform the review. Thus it will direct the page to the &amp;lt;b&amp;gt;response#new&amp;lt;/b&amp;gt; page or &amp;lt;b&amp;gt;response#edit&amp;lt;/b&amp;gt; page respectively.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For the above-mentioned flow, the following file will be edited:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;app/views/assignments/list_submissions.html.erb:&amp;lt;/b&amp;gt;&lt;br /&gt;
This view file refers to the page in the above screenshot. This file will be edited to check whether the deadline for the current assignment has been passed, and accordingly it will display either of the two options denoted above.&lt;br /&gt;
&lt;br /&gt;
For the above functionality to work smoothly, we need to keep 2 checks:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Whether the reviewer is a TA/instructor for the selected course&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Whether the TA/instructor is a participant for that assignment&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
These issues can be independently described as follows:&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue 2: Show students that her/his assignment has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file &amp;lt;b&amp;gt;app/assets/stylesheets/grades.scss&amp;lt;/b&amp;gt; to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
The following activity diagram summarizes our proposed implementation for the above mentioned issue:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Test Plan''' ==&lt;br /&gt;
&lt;br /&gt;
The following presents the list of specs which we will write/modify to test the working of our modified code : &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1. The instructor/TAs perform a review for the submission before the deadline of submission &amp;lt;br&amp;gt;&lt;br /&gt;
2. The instructor/TA saves a review&amp;lt;br&amp;gt;&lt;br /&gt;
3. The instructor/TAs review a previously saved review&amp;lt;br&amp;gt;&lt;br /&gt;
4. The instructor/TAs edit a previously saved review&amp;lt;br&amp;gt;&lt;br /&gt;
5. The instructor/TAs perform grading assignment after the deadline for reviewing has passed&amp;lt;br&amp;gt;&lt;br /&gt;
6. There is an update review link available after the deadline for reviewing has passed &amp;lt;br&amp;gt;&lt;br /&gt;
7. The instructor/TA has been assigned for the same course&amp;lt;br&amp;gt;&lt;br /&gt;
8. The instructor/TA has added himself as the participant in the submission&amp;lt;br&amp;gt;&lt;br /&gt;
9. An icon is displayed which identifies instructor/TA's review&lt;br /&gt;
&lt;br /&gt;
== '''Team Members''' ==&lt;br /&gt;
Mentor: Prof. Edward Gehringer (efg@ncsu.edu)&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anuja Kulkarni - apkulka2@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mark Trawick - mtrawic@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Parvathy Menon - pharida@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Samruddhi Khandale - sskhanda@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129820</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129820"/>
		<updated>2019-12-05T21:54:11Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However, sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development. &lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience. Currently, there exists no method for the instructor/TA to perform reviews of assignments submitted by the students. Hence this is what this project aims at, allowing instructor/TA to perform reviews.&lt;br /&gt;
&lt;br /&gt;
Thus, the primary aim of this project is to allow instructors to submit reviews of student work, using the same review form that students use to do reviews.&lt;br /&gt;
&lt;br /&gt;
=='''Implementation Details''' ==&lt;br /&gt;
Our project aims at enabling the instructor/TA to review the submissions using the same form that a student uses while peer-reviewing. For this, our implementation has been divided into 3 parts, and can be described as follows:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The first part involves the primary functionality of letting the staff perform a review on students submission.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The second part involves allowing the students to identify from their end, which review has been performed by an instructor/TA. This will help students improve their project as the opinions presented by a staff member would be valid.&amp;lt;/li&amp;gt;  &lt;br /&gt;
&amp;lt;li&amp;gt;Thirdly, we implemented an additional feature that allows the instructor/TA to add himself as a participant while creating/editing an Assignment (This way seemed to be more convenient rather than going to the “Add Participant” page and adding themselves as a participant.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Part 1: Allowing instructor/TA to perform review:&amp;lt;/h3&amp;gt;&lt;br /&gt;
Note 1: “Instructor/TA” will be referred to by “user” here onwards.&lt;br /&gt;
Note 2: To be able to perform a review, the user has to be a participant of that assignment. We have implemented “Add as Participant” as an additional feature which is explained in Part 3. If the user is not a participant, he will only see the link to “Assign grade” that too after the assignment deadline passes.&lt;br /&gt;
Now, for each assignment there is a page called “List Submissions” where the user can view all the submissions. So we have modified this page so that for each team submission a link for “Begin review,” “Edit review,” “View review,” “Update review,” or “Assign grade” may appear depending on the &amp;lt;a href=&amp;quot;http://wiki.expertiza.ncsu.edu/index.php/Deadline_types&amp;quot;&amp;gt;stage&amp;lt;/a&amp;gt; in which the assignment is. &lt;br /&gt;
&lt;br /&gt;
The following describes the flow of our project considering a fresh assignment.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the assignment is created, it is by default is in the “submission” stage. Hence the user will not see any link on the list submission page. &lt;br /&gt;
(Add a screenshot if possible.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When the first deadline passes, the assignment goes into the “review” stage. Hence the link “Begin review” will be visible for each team submission, where the instructor/TA can click on to submit the review. Two cases can occur here:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “submits” a review, they will be redirected to the list submission page where they’ll see the option “View review” or “Update review.” Being an instructor/TA, they are given the flexibility to update their review at any time during the “review” stage.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the user “saves” a review, they will be redirected to the list submission page where they’ll see the option “View review” and “Edit Review (as they have not submitted it yet.)”&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;After the first review is over, if more stages of “submissions” and “reviews” exist, it will follow the above 2 steps until the final assignment deadline does not pass. Note that at any round of the review, the user can “Begin review” for a submission which they had not reviewed in the previous rounds. This is to provide flexibility to them as per the requirement.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Finally, after the assignment deadline passes, the assignment goes into the “Finished” stage. This is when the “Assign grade” link will be visible to the user. Along with this, depending on whether they have reviewed a particular submission or not, the begin, view, update links will be visible to them as they should be able to perform the review even after the assignment deadline for the students has passed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Issue 1: Allow TA / Instructor to perform review of student assignments ===&lt;br /&gt;
&amp;lt;b&amp;gt;Current Scenario:&amp;lt;/b&amp;gt;&lt;br /&gt;
Instructors and TA's can not perform reviews. Previous attempts were made but they either complicated the code or did not pass the Travis CI. For this particular task, the following screenshot describes how the current scenario looks. The page below is the “View Submissions” page when logged in as an instructor. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:list1.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement:&amp;lt;/b&amp;gt;&lt;br /&gt;
This functionality is needed so that the instructors can easily perform submission reviews which can also be viewed by the students. Also for future purposes, other student reviews can be bench marked against an instructor review. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation:&amp;lt;/b&amp;gt; The following things need to be improved/changed with respect to the above screenshot.&lt;br /&gt;
&amp;lt;br&amp;gt; The second column consists of the title name with the link to “Assign Grade.” This is the part which we will have to modify. The link under the project title should be as follows: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1. “Perform Review,” until the deadline for the assignment hasn’t been reached. If he/she has already started the review, the link will be modified to “Edit Review,” until they don’t submit it. &amp;lt;br&amp;gt;&lt;br /&gt;
2. “Assign Grade,” after the deadline of the assignment passes. &amp;lt;br&amp;gt;&lt;br /&gt;
When clicked on “Perform Review”/”Edit Review,” it should direct to the review page seen by the students, and be able to perform the review. Thus it will direct the page to the &amp;lt;b&amp;gt;response#new&amp;lt;/b&amp;gt; page or &amp;lt;b&amp;gt;response#edit&amp;lt;/b&amp;gt; page respectively.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For the above-mentioned flow, the following file will be edited:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;app/views/assignments/list_submissions.html.erb:&amp;lt;/b&amp;gt;&lt;br /&gt;
This view file refers to the page in the above screenshot. This file will be edited to check whether the deadline for the current assignment has been passed, and accordingly it will display either of the two options denoted above.&lt;br /&gt;
&lt;br /&gt;
For the above functionality to work smoothly, we need to keep 2 checks:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Whether the reviewer is a TA/instructor for the selected course&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Whether the TA/instructor is a participant for that assignment&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
These issues can be independently described as follows:&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue 2: Show students that her/his assignment has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file &amp;lt;b&amp;gt;app/assets/stylesheets/grades.scss&amp;lt;/b&amp;gt; to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
The following activity diagram summarizes our proposed implementation for the above mentioned issue:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Test Plan''' ==&lt;br /&gt;
&lt;br /&gt;
The following presents the list of specs which we will write/modify to test the working of our modified code : &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1. The instructor/TAs perform a review for the submission before the deadline of submission &amp;lt;br&amp;gt;&lt;br /&gt;
2. The instructor/TA saves a review&amp;lt;br&amp;gt;&lt;br /&gt;
3. The instructor/TAs review a previously saved review&amp;lt;br&amp;gt;&lt;br /&gt;
4. The instructor/TAs edit a previously saved review&amp;lt;br&amp;gt;&lt;br /&gt;
5. The instructor/TAs perform grading assignment after the deadline for reviewing has passed&amp;lt;br&amp;gt;&lt;br /&gt;
6. There is an update review link available after the deadline for reviewing has passed &amp;lt;br&amp;gt;&lt;br /&gt;
7. The instructor/TA has been assigned for the same course&amp;lt;br&amp;gt;&lt;br /&gt;
8. The instructor/TA has added himself as the participant in the submission&amp;lt;br&amp;gt;&lt;br /&gt;
9. An icon is displayed which identifies instructor/TA's review&lt;br /&gt;
&lt;br /&gt;
== '''Team Members''' ==&lt;br /&gt;
Mentor: Prof. Edward Gehringer (efg@ncsu.edu)&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anuja Kulkarni - apkulka2@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mark Trawick - mtrawic@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Parvathy Menon - pharida@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Samruddhi Khandale - sskhanda@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129817</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129817"/>
		<updated>2019-12-05T21:08:09Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However, sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development. &lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience. Currently, there exists no method for the instructor/TA to perform reviews of assignments submitted by the students. Hence this is what this project aims at, allowing instructor/TA to perform reviews.&lt;br /&gt;
&lt;br /&gt;
Thus, the primary aim of this project is to allow instructors to submit reviews of student work, using the same review form that students use to do reviews.&lt;br /&gt;
&lt;br /&gt;
=='''Implementation Details''' ==&lt;br /&gt;
Our project aims at enabling the instructor/TA to review the submissions using the same form that a student uses while peer-reviewing. For this, our implementation has been divided into 3 parts, and can be described as follows:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The first part involves the primary functionality of letting the staff perform a review on students submission.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The second part involves allowing the students to identify from their end, which review has been performed by an instructor/TA. This will help students improve their project as the opinions presented by a staff member would be valid.&amp;lt;/li&amp;gt;  &lt;br /&gt;
&amp;lt;li&amp;gt;Thirdly, we implemented an additional feature that allows the instructor/TA to add himself as a participant while creating/editing an Assignment (This way seemed to be more convenient rather than going to the “Add Participant” page and adding themselves as a participant.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Issue 1: Allow TA / Instructor to perform review of student assignments ===&lt;br /&gt;
&amp;lt;b&amp;gt;Current Scenario:&amp;lt;/b&amp;gt;&lt;br /&gt;
Instructors and TA's can not perform reviews. Previous attempts were made but they either complicated the code or did not pass the Travis CI. For this particular task, the following screenshot describes how the current scenario looks. The page below is the “View Submissions” page when logged in as an instructor. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:list1.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement:&amp;lt;/b&amp;gt;&lt;br /&gt;
This functionality is needed so that the instructors can easily perform submission reviews which can also be viewed by the students. Also for future purposes, other student reviews can be bench marked against an instructor review. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation:&amp;lt;/b&amp;gt; The following things need to be improved/changed with respect to the above screenshot.&lt;br /&gt;
&amp;lt;br&amp;gt; The second column consists of the title name with the link to “Assign Grade.” This is the part which we will have to modify. The link under the project title should be as follows: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1. “Perform Review,” until the deadline for the assignment hasn’t been reached. If he/she has already started the review, the link will be modified to “Edit Review,” until they don’t submit it. &amp;lt;br&amp;gt;&lt;br /&gt;
2. “Assign Grade,” after the deadline of the assignment passes. &amp;lt;br&amp;gt;&lt;br /&gt;
When clicked on “Perform Review”/”Edit Review,” it should direct to the review page seen by the students, and be able to perform the review. Thus it will direct the page to the &amp;lt;b&amp;gt;response#new&amp;lt;/b&amp;gt; page or &amp;lt;b&amp;gt;response#edit&amp;lt;/b&amp;gt; page respectively.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For the above-mentioned flow, the following file will be edited:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;app/views/assignments/list_submissions.html.erb:&amp;lt;/b&amp;gt;&lt;br /&gt;
This view file refers to the page in the above screenshot. This file will be edited to check whether the deadline for the current assignment has been passed, and accordingly it will display either of the two options denoted above.&lt;br /&gt;
&lt;br /&gt;
For the above functionality to work smoothly, we need to keep 2 checks:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Whether the reviewer is a TA/instructor for the selected course&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Whether the TA/instructor is a participant for that assignment&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
These issues can be independently described as follows:&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue 2: Show students that her/his assignment has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file &amp;lt;b&amp;gt;app/assets/stylesheets/grades.scss&amp;lt;/b&amp;gt; to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
The following activity diagram summarizes our proposed implementation for the above mentioned issue:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Test Plan''' ==&lt;br /&gt;
&lt;br /&gt;
The following presents the list of specs which we will write/modify to test the working of our modified code : &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1. The instructor/TAs perform a review for the submission before the deadline of submission &amp;lt;br&amp;gt;&lt;br /&gt;
2. The instructor/TA saves a review&amp;lt;br&amp;gt;&lt;br /&gt;
3. The instructor/TAs review a previously saved review&amp;lt;br&amp;gt;&lt;br /&gt;
4. The instructor/TAs edit a previously saved review&amp;lt;br&amp;gt;&lt;br /&gt;
5. The instructor/TAs perform grading assignment after the deadline for reviewing has passed&amp;lt;br&amp;gt;&lt;br /&gt;
6. There is an update review link available after the deadline for reviewing has passed &amp;lt;br&amp;gt;&lt;br /&gt;
7. The instructor/TA has been assigned for the same course&amp;lt;br&amp;gt;&lt;br /&gt;
8. The instructor/TA has added himself as the participant in the submission&amp;lt;br&amp;gt;&lt;br /&gt;
9. An icon is displayed which identifies instructor/TA's review&lt;br /&gt;
&lt;br /&gt;
== '''Team Members''' ==&lt;br /&gt;
Mentor: Prof. Edward Gehringer (efg@ncsu.edu)&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anuja Kulkarni - apkulka2@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mark Trawick - mtrawic@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Parvathy Menon - pharida@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Samruddhi Khandale - sskhanda@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129816</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129816"/>
		<updated>2019-12-05T21:07:31Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However, sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development. &lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience. Currently, there exists no method for the instructor/TA to perform reviews of assignments submitted by the students. Hence this is what this project aims at, allowing instructor/TA to perform reviews.&lt;br /&gt;
&lt;br /&gt;
Thus, the primary aim of this project is to allow instructors to submit reviews of student work, using the same review form that students use to do reviews.&lt;br /&gt;
&lt;br /&gt;
=='''Implementation Details''' ==&lt;br /&gt;
Our project aims at enabling the instructor/TA to review the submissions using the same form that a student uses while peer-reviewing. For this, our implementation has been divided into 3 parts, and can be described as follows:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The first part involves the primary functionality of letting the staff perform a review on students submission.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The second part involves allowing the students to identify from their end, which review has been performed by an instructor/TA. This will help the students improve their project as the opinions presented by a staff member would be valid.&amp;lt;/li&amp;gt;  &lt;br /&gt;
&amp;lt;li&amp;gt;Thirdly, we implemented an additional feature that allows the instructor/TA to add himself as a participant while creating/editing an Assignment (This way seemed to be more convenient rather than going to the “Add Participant” page and adding themselves as a participant.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Issue 1: Allow TA / Instructor to perform review of student assignments ===&lt;br /&gt;
&amp;lt;b&amp;gt;Current Scenario:&amp;lt;/b&amp;gt;&lt;br /&gt;
Instructors and TA's can not perform reviews. Previous attempts were made but they either complicated the code or did not pass the Travis CI. For this particular task, the following screenshot describes how the current scenario looks. The page below is the “View Submissions” page when logged in as an instructor. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:list1.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement:&amp;lt;/b&amp;gt;&lt;br /&gt;
This functionality is needed so that the instructors can easily perform submission reviews which can also be viewed by the students. Also for future purposes, other student reviews can be bench marked against an instructor review. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation:&amp;lt;/b&amp;gt; The following things need to be improved/changed with respect to the above screenshot.&lt;br /&gt;
&amp;lt;br&amp;gt; The second column consists of the title name with the link to “Assign Grade.” This is the part which we will have to modify. The link under the project title should be as follows: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1. “Perform Review,” until the deadline for the assignment hasn’t been reached. If he/she has already started the review, the link will be modified to “Edit Review,” until they don’t submit it. &amp;lt;br&amp;gt;&lt;br /&gt;
2. “Assign Grade,” after the deadline of the assignment passes. &amp;lt;br&amp;gt;&lt;br /&gt;
When clicked on “Perform Review”/”Edit Review,” it should direct to the review page seen by the students, and be able to perform the review. Thus it will direct the page to the &amp;lt;b&amp;gt;response#new&amp;lt;/b&amp;gt; page or &amp;lt;b&amp;gt;response#edit&amp;lt;/b&amp;gt; page respectively.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For the above-mentioned flow, the following file will be edited:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;app/views/assignments/list_submissions.html.erb:&amp;lt;/b&amp;gt;&lt;br /&gt;
This view file refers to the page in the above screenshot. This file will be edited to check whether the deadline for the current assignment has been passed, and accordingly it will display either of the two options denoted above.&lt;br /&gt;
&lt;br /&gt;
For the above functionality to work smoothly, we need to keep 2 checks:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Whether the reviewer is a TA/instructor for the selected course&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Whether the TA/instructor is a participant for that assignment&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
These issues can be independently described as follows:&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue 2: Show students that her/his assignment has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file &amp;lt;b&amp;gt;app/assets/stylesheets/grades.scss&amp;lt;/b&amp;gt; to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
The following activity diagram summarizes our proposed implementation for the above mentioned issue:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Test Plan''' ==&lt;br /&gt;
&lt;br /&gt;
The following presents the list of specs which we will write/modify to test the working of our modified code : &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1. The instructor/TAs perform a review for the submission before the deadline of submission &amp;lt;br&amp;gt;&lt;br /&gt;
2. The instructor/TA saves a review&amp;lt;br&amp;gt;&lt;br /&gt;
3. The instructor/TAs review a previously saved review&amp;lt;br&amp;gt;&lt;br /&gt;
4. The instructor/TAs edit a previously saved review&amp;lt;br&amp;gt;&lt;br /&gt;
5. The instructor/TAs perform grading assignment after the deadline for reviewing has passed&amp;lt;br&amp;gt;&lt;br /&gt;
6. There is an update review link available after the deadline for reviewing has passed &amp;lt;br&amp;gt;&lt;br /&gt;
7. The instructor/TA has been assigned for the same course&amp;lt;br&amp;gt;&lt;br /&gt;
8. The instructor/TA has added himself as the participant in the submission&amp;lt;br&amp;gt;&lt;br /&gt;
9. An icon is displayed which identifies instructor/TA's review&lt;br /&gt;
&lt;br /&gt;
== '''Team Members''' ==&lt;br /&gt;
Mentor: Prof. Edward Gehringer (efg@ncsu.edu)&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anuja Kulkarni - apkulka2@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mark Trawick - mtrawic@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Parvathy Menon - pharida@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Samruddhi Khandale - sskhanda@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129815</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129815"/>
		<updated>2019-12-05T21:05:29Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: Implementation details summary and problem statement&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However, sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development. &lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience. Currently, there exists no method for the instructor/TA to perform reviews of assignments submitted by the students. Hence this is what this project aims at, allowing instructor/TA to perform reviews.&lt;br /&gt;
&lt;br /&gt;
Thus, the primary aim of this project is to allow instructors to submit reviews of student work, using the same review form that students use to do reviews.&lt;br /&gt;
&lt;br /&gt;
=='''Implementation Details''' ==&lt;br /&gt;
Our project aims at enabling the instructor/TA to review the submissions using the same form that a student uses while peer-reviewing. For this, our implementation has been divided into 3 parts, and can be described as follows:&lt;br /&gt;
  1. The first part involves the primary functionality of letting the staff perform a review on students submission.&lt;br /&gt;
  2. The second part involves allowing the students to identify from their end, which review has been performed by an instructor/TA. This will help the students improve their project as the opinions presented by a staff member would be valid.  &lt;br /&gt;
  3. Thirdly, we implemented an additional feature that allows the instructor/TA to add himself as a participant while creating/editing an Assignment (This way seemed to be more convenient rather than going to the “Add Participant” page and adding themselves as a participant.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issue 1: Allow TA / Instructor to perform review of student assignments ===&lt;br /&gt;
&amp;lt;b&amp;gt;Current Scenario:&amp;lt;/b&amp;gt;&lt;br /&gt;
Instructors and TA's can not perform reviews. Previous attempts were made but they either complicated the code or did not pass the Travis CI. For this particular task, the following screenshot describes how the current scenario looks. The page below is the “View Submissions” page when logged in as an instructor. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:list1.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement:&amp;lt;/b&amp;gt;&lt;br /&gt;
This functionality is needed so that the instructors can easily perform submission reviews which can also be viewed by the students. Also for future purposes, other student reviews can be bench marked against an instructor review. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation:&amp;lt;/b&amp;gt; The following things need to be improved/changed with respect to the above screenshot.&lt;br /&gt;
&amp;lt;br&amp;gt; The second column consists of the title name with the link to “Assign Grade.” This is the part which we will have to modify. The link under the project title should be as follows: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1. “Perform Review,” until the deadline for the assignment hasn’t been reached. If he/she has already started the review, the link will be modified to “Edit Review,” until they don’t submit it. &amp;lt;br&amp;gt;&lt;br /&gt;
2. “Assign Grade,” after the deadline of the assignment passes. &amp;lt;br&amp;gt;&lt;br /&gt;
When clicked on “Perform Review”/”Edit Review,” it should direct to the review page seen by the students, and be able to perform the review. Thus it will direct the page to the &amp;lt;b&amp;gt;response#new&amp;lt;/b&amp;gt; page or &amp;lt;b&amp;gt;response#edit&amp;lt;/b&amp;gt; page respectively.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For the above-mentioned flow, the following file will be edited:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;app/views/assignments/list_submissions.html.erb:&amp;lt;/b&amp;gt;&lt;br /&gt;
This view file refers to the page in the above screenshot. This file will be edited to check whether the deadline for the current assignment has been passed, and accordingly it will display either of the two options denoted above.&lt;br /&gt;
&lt;br /&gt;
For the above functionality to work smoothly, we need to keep 2 checks:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Whether the reviewer is a TA/instructor for the selected course&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Whether the TA/instructor is a participant for that assignment&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
These issues can be independently described as follows:&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue 2: Show students that her/his assignment has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file &amp;lt;b&amp;gt;app/assets/stylesheets/grades.scss&amp;lt;/b&amp;gt; to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
The following activity diagram summarizes our proposed implementation for the above mentioned issue:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Test Plan''' ==&lt;br /&gt;
&lt;br /&gt;
The following presents the list of specs which we will write/modify to test the working of our modified code : &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1. The instructor/TAs perform a review for the submission before the deadline of submission &amp;lt;br&amp;gt;&lt;br /&gt;
2. The instructor/TA saves a review&amp;lt;br&amp;gt;&lt;br /&gt;
3. The instructor/TAs review a previously saved review&amp;lt;br&amp;gt;&lt;br /&gt;
4. The instructor/TAs edit a previously saved review&amp;lt;br&amp;gt;&lt;br /&gt;
5. The instructor/TAs perform grading assignment after the deadline for reviewing has passed&amp;lt;br&amp;gt;&lt;br /&gt;
6. There is an update review link available after the deadline for reviewing has passed &amp;lt;br&amp;gt;&lt;br /&gt;
7. The instructor/TA has been assigned for the same course&amp;lt;br&amp;gt;&lt;br /&gt;
8. The instructor/TA has added himself as the participant in the submission&amp;lt;br&amp;gt;&lt;br /&gt;
9. An icon is displayed which identifies instructor/TA's review&lt;br /&gt;
&lt;br /&gt;
== '''Team Members''' ==&lt;br /&gt;
Mentor: Prof. Edward Gehringer (efg@ncsu.edu)&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anuja Kulkarni - apkulka2@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mark Trawick - mtrawic@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Parvathy Menon - pharida@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Samruddhi Khandale - sskhanda@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129810</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129810"/>
		<updated>2019-12-05T20:42:18Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However, sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development.&lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience.&lt;br /&gt;
&lt;br /&gt;
Thus, the primary aim of this project is to allow instructors to submit reviews of student work, using the same review form that students use to do reviews.&lt;br /&gt;
==''' Current Scenario''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issue 1: Allow TA / Instructor to perform review of student assignments ===&lt;br /&gt;
&amp;lt;b&amp;gt;Current Scenario:&amp;lt;/b&amp;gt;&lt;br /&gt;
Instructors and TA's can not perform reviews. Previous attempts were made but they either complicated the code or did not pass the Travis CI. For this particular task, the following screenshot describes how the current scenario looks. The page below is the “View Submissions” page when logged in as an instructor. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:list1.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement:&amp;lt;/b&amp;gt;&lt;br /&gt;
This functionality is needed so that the instructors can easily perform submission reviews which can also be viewed by the students. Also for future purposes, other student reviews can be bench marked against an instructor review. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation:&amp;lt;/b&amp;gt; The following things need to be improved/changed with respect to the above screenshot.&lt;br /&gt;
&amp;lt;br&amp;gt; The second column consists of the title name with the link to “Assign Grade.” This is the part which we will have to modify. The link under the project title should be as follows: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1. “Perform Review,” until the deadline for the assignment hasn’t been reached. If he/she has already started the review, the link will be modified to “Edit Review,” until they don’t submit it. &amp;lt;br&amp;gt;&lt;br /&gt;
2. “Assign Grade,” after the deadline of the assignment passes. &amp;lt;br&amp;gt;&lt;br /&gt;
When clicked on “Perform Review”/”Edit Review,” it should direct to the review page seen by the students, and be able to perform the review. Thus it will direct the page to the &amp;lt;b&amp;gt;response#new&amp;lt;/b&amp;gt; page or &amp;lt;b&amp;gt;response#edit&amp;lt;/b&amp;gt; page respectively.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For the above-mentioned flow, the following file will be edited:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;app/views/assignments/list_submissions.html.erb:&amp;lt;/b&amp;gt;&lt;br /&gt;
This view file refers to the page in the above screenshot. This file will be edited to check whether the deadline for the current assignment has been passed, and accordingly it will display either of the two options denoted above.&lt;br /&gt;
&lt;br /&gt;
For the above functionality to work smoothly, we need to keep 2 checks:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Whether the reviewer is a TA/instructor for the selected course&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Whether the TA/instructor is a participant for that assignment&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
These issues can be independently described as follows:&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue 2: Show students that her/his assignment has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file &amp;lt;b&amp;gt;app/assets/stylesheets/grades.scss&amp;lt;/b&amp;gt; to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
The following activity diagram summarizes our proposed implementation for the above mentioned issue:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Test Plan''' ==&lt;br /&gt;
&lt;br /&gt;
The following presents the list of specs which we will write/modify to test the working of our modified code : &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1. The instructor/TAs perform a review for the submission before the deadline of submission &amp;lt;br&amp;gt;&lt;br /&gt;
2. The instructor/TA saves a review&amp;lt;br&amp;gt;&lt;br /&gt;
3. The instructor/TAs review a previously saved review&amp;lt;br&amp;gt;&lt;br /&gt;
4. The instructor/TAs edit a previously saved review&amp;lt;br&amp;gt;&lt;br /&gt;
5. The instructor/TAs perform grading assignment after the deadline for reviewing has passed&amp;lt;br&amp;gt;&lt;br /&gt;
6. There is an update review link available after the deadline for reviewing has passed &amp;lt;br&amp;gt;&lt;br /&gt;
7. The instructor/TA has been assigned for the same course&amp;lt;br&amp;gt;&lt;br /&gt;
8. The instructor/TA has added himself as the participant in the submission&amp;lt;br&amp;gt;&lt;br /&gt;
9. An icon is displayed which identifies instructor/TA's review&lt;br /&gt;
&lt;br /&gt;
== '''Team Members''' ==&lt;br /&gt;
Mentor: Prof. Edward Gehringer (efg@ncsu.edu)&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anuja Kulkarni - apkulka2@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mark Trawick - mtrawic@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Parvathy Menon - pharida@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Samruddhi Khandale - sskhanda@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129498</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129498"/>
		<updated>2019-11-16T04:43:37Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However there are some problems with this:&lt;br /&gt;
* Sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development.&lt;br /&gt;
* The reviewer might not know how well they are reviewing the peers work. They might not entirely know what tone to use or what suggestion to make. &lt;br /&gt;
&lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience.&lt;br /&gt;
&lt;br /&gt;
Thus, the primary aim of this project is to allow instructors to submit reviews of student work, using the same review form that students use to do reviews.&lt;br /&gt;
==''' Current Scenario and Proposed Implementations''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issue 1: Allow TA / Instructor to perform review of student assignments ===&lt;br /&gt;
&amp;lt;b&amp;gt;Current Scenario:&amp;lt;/b&amp;gt;&lt;br /&gt;
Instructors and TA's can not perform reviews. Previous attempts were made but they either complicated the code or did not pass the Travis CI. For this particular task, the following screenshot describes how the current scenario looks. The page below is the “View Submissions” page when logged in as an instructor. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:list1.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement:&amp;lt;/b&amp;gt;&lt;br /&gt;
This functionality is needed so that the instructors can easily perform submission reviews which can also be viewed by the students. Also for future purposes, other student reviews can be bench marked against an instructor review. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation:&amp;lt;/b&amp;gt; The following things need to be improved/changed with respect to the above screenshot.&lt;br /&gt;
&amp;lt;br&amp;gt; The second column consists of the title name with the link to “Assign Grade.” This is the part which we will have to modify. The link under the project title should be as follows: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1. “Perform Review,” until the deadline for the assignment hasn’t been reached. If he/she has already started the review, the link will be modified to “Edit Review,” until they don’t submit it. &amp;lt;br&amp;gt;&lt;br /&gt;
2. “Assign Grade,” after the deadline of the assignment passes. &amp;lt;br&amp;gt;&lt;br /&gt;
When clicked on “Perform Review”/”Edit Review,” it should direct to the review page seen by the students, and be able to perform the review. Thus it will direct the page to the &amp;lt;b&amp;gt;response#new&amp;lt;/b&amp;gt; page or &amp;lt;b&amp;gt;response#edit&amp;lt;/b&amp;gt; page respectively.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For the above-mentioned flow, the following file will be edited:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;app/views/assignments/list_submissions.html.erb:&amp;lt;/b&amp;gt;&lt;br /&gt;
This view file refers to the page in the above screenshot. This file will be edited to check whether the deadline for the current assignment has been passed, and accordingly it will display either of the two options denoted above.&lt;br /&gt;
&lt;br /&gt;
For the above functionality to work smoothly, we need to keep 2 checks:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Whether the reviewer is a TA/instructor for the selected course&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Whether the TA/instructor is a participant for that assignment&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
These issues can be independently described as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue 1.1: Method to check if the user is instructor / TA for the selected course === &lt;br /&gt;
&amp;lt;b&amp;gt; Current scenario: &amp;lt;/b&amp;gt; There is no method which checks if the user is an instructor / TA for the selected course (namely a course staff member) &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This method is required for redirection of pages which is dependent on the user role. For example, a TA for some other course should not be able to perform review for a current course, which he is not mentoring for. Also, it is required to identify if the review is performed by the course staff. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed implementation: &amp;lt;/b&amp;gt; A new helper file named &amp;lt;b&amp;gt;authorization_helper.rb&amp;lt;/b&amp;gt; will be created in expertiza/helpers/ which will consist a method which checks if the user is a course staff member. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Issue 1.2: Allow TA/Instructor to identify themselves as a hypothetical participant of the assignment they are reviewing ===&lt;br /&gt;
&amp;lt;b&amp;gt; Current scenario: &amp;lt;/b&amp;gt; Instructors and TA's can add themselves as participants to any assignment. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt; Requirement: &amp;lt;/b&amp;gt; To perform a review, the internal process checks whether the current reviewer is a participant of the assignment (s)he is reviewing or not. It allows the user to perform a review, only if he is a participant. Hence it becomes necessary to handle this case for TA/instructors (who, by default, are not participants). So one method is that they can add themselves as the participants to any assignment, as implemented by the previous versions of this project, but the teaching staff thought that this might be a bad idea due to certain reasons. So an alternative to this is explained in the proposed solution below: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt; Proposed Implementation: &amp;lt;/b&amp;gt; We can add a field called &amp;quot;hidden&amp;quot; in the participants table. This field, if true, will indicate that the current user is a hidden participant and will grant review access to them as a &amp;quot;hypothetical&amp;quot; participant i.e. without physically adding the TA/instructor as a participant. For this, we will have to update the design of the table Participant, and write the corresponding code in the review_mapping controller file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue 2: Show students that her/his assignment has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file &amp;lt;b&amp;gt;app/assets/stylesheets/grades.scss&amp;lt;/b&amp;gt; to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
The following activity diagram summarizes our proposed implementation for the above mentioned issue:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:activity.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Test Plan''' ==&lt;br /&gt;
&lt;br /&gt;
The following presents the list of specs which we will write/modify to test the working of our modified code : &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1. The instructor/TAs perform a review for the submission before the deadline of submission &amp;lt;br&amp;gt;&lt;br /&gt;
2. The instructor/TA saves a review&amp;lt;br&amp;gt;&lt;br /&gt;
3. The instructor/TAs review a previously saved review&amp;lt;br&amp;gt;&lt;br /&gt;
4. The instructor/TAs edit a previously saved review&amp;lt;br&amp;gt;&lt;br /&gt;
5. The instructor/TAs perform grading assignment after the deadline for reviewing has passed&amp;lt;br&amp;gt;&lt;br /&gt;
6. There is an update review link available after the deadline for reviewing has passed &amp;lt;br&amp;gt;&lt;br /&gt;
7. The instructor/TA has been assigned for the same course&amp;lt;br&amp;gt;&lt;br /&gt;
8. The instructor/TA has added himself as the participant in the submission&amp;lt;br&amp;gt;&lt;br /&gt;
9. An icon is displayed which identifies instructor/TA's review&lt;br /&gt;
&lt;br /&gt;
== '''Team Members''' ==&lt;br /&gt;
Mentor: Prof. Edward Gehringer (efg@ncsu.edu)&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anuja Kulkarni - apkulka2@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mark Trawick - mtrawic@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Parvathy Menon - pharida@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Samruddhi Khandale - sskhanda@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129246</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129246"/>
		<updated>2019-11-12T04:43:36Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However there are some problems with this:&lt;br /&gt;
* Sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development.&lt;br /&gt;
* The reviewer might not know how well they are reviewing the peers work. They might not entirely know what tone to use or what suggestion to make. &lt;br /&gt;
&lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience.&lt;br /&gt;
&lt;br /&gt;
Thus, the primary aim of this project is to allow instructors to submit reviews of student work, using the same review form that students use to do reviews.&lt;br /&gt;
==''' Current Scenario and Proposed Implementations''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA / Instructor to perform review of student assignments ===&lt;br /&gt;
&amp;lt;b&amp;gt;Current Scenario:&amp;lt;/b&amp;gt;&lt;br /&gt;
Instructors and TA's can not perform reviews. Previous attempts were made but they either complicated the code or did not pass the Travis CI. For this particular task, the following screenshot describes how the current scenario looks. The page below is the “View Submissions” page when logged in as an instructor. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:list1.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement:&amp;lt;/b&amp;gt;&lt;br /&gt;
This functionality is needed so that the instructors can easily perform submission reviews which can also be viewed by the students. Also for future purposes, other student reviews can be bench marked against an instructor review. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation:&amp;lt;/b&amp;gt; The following things need to be improved/changed with respect to the above screenshot.&lt;br /&gt;
&amp;lt;br&amp;gt; The second column consists of the title name with the link to “Assign Grade.” This is the part which we will have to modify. The link under the project title should be as follows: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1. “Perform Review,” until the deadline for the assignment hasn’t been reached. If he/she has already started the review, the link will be modified to “Edit Review,” until they don’t submit it. &amp;lt;br&amp;gt;&lt;br /&gt;
2. “Assign Grade,” after the deadline of the assignment passes. &amp;lt;br&amp;gt;&lt;br /&gt;
When clicked on “Perform Review”/”Edit Review,” it should direct to the review page seen by the students, and be able to perform the review. Thus it will direct the page to the &amp;lt;b&amp;gt;response#new&amp;lt;/b&amp;gt; page or &amp;lt;b&amp;gt;response#edit&amp;lt;/b&amp;gt; page respectively.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For the above-mentioned flow, the following file will be edited:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;app/views/assignments/list_submissions.html.erb:&amp;lt;/b&amp;gt;&lt;br /&gt;
This view file refers to the page in the above screenshot. This file will be edited to check whether the deadline for the current assignment has been passed, and accordingly it will display either of the two options denoted above.&lt;br /&gt;
&lt;br /&gt;
For the above functionality to work smoothly, we need to keep 2 checks:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Whether the reviewer is a TA/instructor for the selected course&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Whether the TA/instructor is a participant for that assignment&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
These issues can be independently described as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue: Method to check if the user is instructor / TA for the selected course === &lt;br /&gt;
&amp;lt;b&amp;gt; Current scenario: &amp;lt;/b&amp;gt; There is no method which checks if the user is an instructor / TA for the selected course (namely a course staff member) &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This method is required for redirection of pages which is dependent on the user role. For example, a TA for some other course should not be able to perform review for a current course, which he is not mentoring for. Also, it is required to identify if the review is performed by the course staff. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed implementation: &amp;lt;/b&amp;gt; A new helper file named &amp;lt;b&amp;gt;course_staff_helper.rb&amp;lt;/b&amp;gt; will be created in expertiza/helpers/ which will consist a method which checks if the user is a course staff member. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA/Instructor to add himself as a participant ===&lt;br /&gt;
&amp;lt;b&amp;gt; Current scenario: &amp;lt;/b&amp;gt; Instructors and TA's can add themselves as participants. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt; Requirement: &amp;lt;/b&amp;gt; The teaching staff reviewing a previous project thought this might be a bad idea. Here's what they said about it in our project description. &amp;quot;It adds instructor to the assignment as a participant.  This is probably not a good idea, because the instructor can review everyone, independent of what reviewer-assignment mechanism was in use.&amp;quot; &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt; Proposed Implementation: &amp;lt;/b&amp;gt; We need to find out how doing a review works. I'm guessing by adding the instructor as a participant makes it easy to do a review. If we don't tell let the instructor add themselves as a participant then we may need to add code in the part for setting up reviews. We will need a link in the &amp;lt;b&amp;gt;list_submissions_.html.erb &amp;lt;/b&amp;gt; for &amp;quot;perform review&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue: Show students that her/his assignment has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file &amp;lt;b&amp;gt;app/assets/stylesheets/grades.scss&amp;lt;/b&amp;gt; to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
The following activity diagram summarizes our proposed implementation for the above mentioned issue:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:activity.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Team Members''' ==&lt;br /&gt;
Mentor: Prof. Edward Gehringer (efg@ncsu.edu)&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anuja Kulkarni - apkulka2@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mark Trawick - mtrawic@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Parvathy Menon - pharida@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Samruddhi Khandale - sskhanda@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129245</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129245"/>
		<updated>2019-11-12T04:43:00Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However there are some problems with this:&lt;br /&gt;
* Sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development.&lt;br /&gt;
* The reviewer might not know how well they are reviewing the peers work. They might not entirely know what tone to use or what suggestion to make. &lt;br /&gt;
&lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience.&lt;br /&gt;
&lt;br /&gt;
Thus, the primary aim of this project is to allow instructors to submit reviews of student work, using the same review form that students use to do reviews.&lt;br /&gt;
==''' Current Scenario and Proposed Implementations''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA / Instructor to perform review of student assignments ===&lt;br /&gt;
&amp;lt;b&amp;gt;Current Scenario:&amp;lt;/b&amp;gt;&lt;br /&gt;
Instructors and TA's can not perform reviews. Previous attempts were made but they either complicated the code or did not pass the Travis CI. For this particular task, the following screenshot describes how the current scenario looks. The page below is the “View Submissions” page when logged in as an instructor. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:list1.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement:&amp;lt;/b&amp;gt;&lt;br /&gt;
This functionality is needed so that the instructors can easily perform submission reviews which can also be viewed by the students. Also for future purposes, other student reviews can be bench marked against an instructor review. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation:&amp;lt;/b&amp;gt; The following things need to be improved/changed with respect to the above screenshot.&lt;br /&gt;
&amp;lt;br&amp;gt; The second column consists of the title name with the link to “Assign Grade.” This is the part which we will have to modify. The link under the project title should be as follows: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1. “Perform Review,” until the deadline for the assignment hasn’t been reached. If he/she has already started the review, the link will be modified to “Edit Review,” until they don’t submit it. &amp;lt;br&amp;gt;&lt;br /&gt;
2. “Assign Grade,” after the deadline of the assignment passes. &amp;lt;br&amp;gt;&lt;br /&gt;
When clicked on “Perform Review”/”Edit Review,” it should direct to the review page seen by the students, and be able to perform the review. Thus it will direct the page to the &amp;lt;b&amp;gt;response#new&amp;lt;/b&amp;gt; page or &amp;lt;b&amp;gt;response#edit&amp;lt;/b&amp;gt; page respectively.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For the above-mentioned flow, the following file will be edited:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;app/views/assignments/list_submissions.html.erb:&amp;lt;/b&amp;gt;&lt;br /&gt;
This view file refers to the page in the above screenshot. This file will be edited to check whether the deadline for the current assignment has been passed, and accordingly it will display either of the two options denoted above.&lt;br /&gt;
&lt;br /&gt;
For the above functionality to work smoothly, we need to keep 2 checks:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Whether the reviewer is a TA/instructor for the selected course&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Whether the TA/instructor is a participant for that assignment&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
These issues can be independently described as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue: Method to check if the user is instructor / TA for the selected course === &lt;br /&gt;
&amp;lt;b&amp;gt; Current scenario : &amp;lt;/b&amp;gt; There is no method which checks if the user is an instructor / TA for the selected course (namely a course staff member) &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement : &amp;lt;/b&amp;gt;This method is required for redirection of pages which is dependent on the user role. For example, a TA for some other course should not be able to perform review for a current course, which he is not mentoring for. Also, it is required to identify if the review is performed by the course staff. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed implementation : &amp;lt;/b&amp;gt; A new helper file named &amp;lt;b&amp;gt;course_staff_helper.rb&amp;lt;/b&amp;gt; will be created in expertiza/helpers/ which will consist a method which checks if the user is a course staff member. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA/Instructor to add himself as a participant ===&lt;br /&gt;
&amp;lt;b&amp;gt; Current scenario : &amp;lt;/b&amp;gt; Instructors and TA's can add themselves as participants. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt; Requirement : &amp;lt;/b&amp;gt; The teaching staff reviewing a previous project thought this might be a bad idea. Here's what they said about it in our project description. &amp;quot;It adds instructor to the assignment as a participant.  This is probably not a good idea, because the instructor can review everyone, independent of what reviewer-assignment mechanism was in use.&amp;quot; &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt; Proposed Implementation : &amp;lt;/b&amp;gt; We need to find out how doing a review works. I'm guessing by adding the instructor as a participant makes it easy to do a review. If we don't tell let the instructor add themselves as a participant then we may need to add code in the part for setting up reviews. We will need a link in the &amp;lt;b&amp;gt;list_submissions_.html.erb &amp;lt;/b&amp;gt; for &amp;quot;perform review&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue: Show students that her/his assignment has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file &amp;lt;b&amp;gt;app/assets/stylesheets/grades.scss&amp;lt;/b&amp;gt; to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
The following activity diagram summarizes our proposed implementation for the above mentioned issue:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:activity.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Team Members''' ==&lt;br /&gt;
Mentor: Prof. Edward Gehringer (efg@ncsu.edu)&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anuja Kulkarni - apkulka2@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mark Trawick - mtrawic@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Parvathy Menon - pharida@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Samruddhi Khandale - sskhanda@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129242</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129242"/>
		<updated>2019-11-12T04:41:44Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However there are some problems with this:&lt;br /&gt;
* Sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development.&lt;br /&gt;
* The reviewer might not know how well they are reviewing the peers work. They might not entirely know what tone to use or what suggestion to make. &lt;br /&gt;
&lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience.&lt;br /&gt;
&lt;br /&gt;
Thus, the primary aim of this project is to allow instructors to submit reviews of student work, using the same review form that students use to do reviews.&lt;br /&gt;
==''' Current Scenario and Proposed Implementations''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA / Instructor to perform review of student assignments ===&lt;br /&gt;
&amp;lt;b&amp;gt;Current Scenario:&amp;lt;/b&amp;gt;&lt;br /&gt;
Instructors and TA's can not perform reviews. Previous attempts were made but they either complicated the code or did not pass the Travis CI. For this particular task, the following screenshot describes how the current scenario looks. The page below is the “View Submissions” page when logged in as an instructor. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:list1.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement:&amp;lt;/b&amp;gt;&lt;br /&gt;
This functionality is needed so that the instructors can easily perform submission reviews which can also be viewed by the students. Also for future purposes, other student reviews can be bench marked against an instructor review. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation:&amp;lt;/b&amp;gt; The following things need to be improved/changed with respect to the above screenshot.&lt;br /&gt;
&amp;lt;br&amp;gt; The second column consists of the title name with the link to “Assign Grade.” This is the part which we will have to modify. The link under the project title should be as follows: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1. “Perform Review,” until the deadline for the assignment hasn’t been reached. If he/she has already started the review, the link will be modified to “Edit Review,” until they don’t submit it. &amp;lt;br&amp;gt;&lt;br /&gt;
2. “Assign Grade,” after the deadline of the assignment passes. &amp;lt;br&amp;gt;&lt;br /&gt;
When clicked on “Perform Review”/”Edit Review,” it should direct to the review page seen by the students, and be able to perform the review. Thus it will direct the page to the &amp;lt;b&amp;gt;response#new&amp;lt;/b&amp;gt; page or &amp;lt;b&amp;gt;response#edit&amp;lt;/b&amp;gt; page respectively.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For the above-mentioned flow, the following file will be edited:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;app/views/assignments/list_submissions.html.erb:&amp;lt;/b&amp;gt;&lt;br /&gt;
This view file refers to the page in the above screenshot. This file will be edited to check whether the deadline for the current assignment has been passed, and accordingly it will display either of the two options denoted above.&lt;br /&gt;
&lt;br /&gt;
For the above functionality to work smoothly, we need to keep 2 checks:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Whether the reviewer is a TA/instructor for the selected course&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Whether the TA/instructor is a participant for that assignment&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
These issues can be independently described as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue: Method to check if the user is instructor / TA for the selected course === &lt;br /&gt;
&amp;lt;b&amp;gt; Current scenario : &amp;lt;/b&amp;gt; There is no method which checks if the user is an instructor / TA for the selected course (namely a course staff member) &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement : &amp;lt;/b&amp;gt;This method is required for redirection of pages which is dependent on the user role. For example, a TA for some other course should not be able to perform review for a current course, which he is not mentoring for. Also, it is required to identify if the review is performed by the course staff. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed implementation : &amp;lt;/b&amp;gt; A new helper file named &amp;lt;/b&amp;gt;course_staff_helper.rb&amp;lt;b&amp;gt; will be created in expertiza/helpers/ which will consist a method which checks if the user is a course staff member. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA/Instructor to add himself as a participant ===&lt;br /&gt;
&amp;lt;b&amp;gt; Current scenario : &amp;lt;/b&amp;gt; Instructors and TA's can add themselves as participants. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt; Requirement : &amp;lt;/b&amp;gt; The teaching staff reviewing a previous project thought this might be a bad idea. Here's what they said about it in our project description. &amp;quot;It adds instructor to the assignment as a participant.  This is probably not a good idea, because the instructor can review everyone, independent of what reviewer-assignment mechanism was in use.&amp;quot; &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt; Proposed Implementation : &amp;lt;/b&amp;gt; We need to find out how doing a review works. I'm guessing by adding the instructor as a participant makes it easy to do a review. If we don't tell let the instructor add themselves as a participant then we may need to add code in the part for setting up reviews. We will need a link in the &amp;lt;b&amp;gt;list_submissions_.html.erb &amp;lt;/b&amp;gt; for &amp;quot;perform review&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue: Show students that her/his assignment has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file app/assets/stylesheets/grades.scss to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
The following activity diagram summarizes our proposed implementation for the above mentioned issue:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:activity.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Team Members''' ==&lt;br /&gt;
Mentor: Prof. Edward Gehringer (efg@ncsu.edu)&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anuja Kulkarni - apkulka2@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mark Trawick - mtrawic@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Parvathy Menon - pharida@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Samruddhi Khandale - sskhanda@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129233</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129233"/>
		<updated>2019-11-12T04:26:38Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However there are some problems with this:&lt;br /&gt;
* Sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development.&lt;br /&gt;
* The reviewer might not know how well they are reviewing the peers work. They might not entirely know what tone to use or what suggestion to make. &lt;br /&gt;
&lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience.&lt;br /&gt;
&lt;br /&gt;
Thus, the primary aim of this project is to allow instructors to submit reviews of student work, using the same review form that students use to do reviews.&lt;br /&gt;
==''' Current Scenario and Proposed Implementations''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA / Instructor to perform review of student assignments ===&lt;br /&gt;
&amp;lt;b&amp;gt;Current Scenario:&amp;lt;/b&amp;gt;&lt;br /&gt;
Instructors and TA's can not perform reviews. Previous attempts were made but they either complicated the code or did not pass the Travis CI. For this particular task, the following screenshot describes how the current scenario looks. The page below is the “View Submissions” page when logged in as an instructor. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:list1.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement:&amp;lt;/b&amp;gt;&lt;br /&gt;
This functionality is needed so that the instructors can easily perform submission reviews which can also be viewed by the students. Also for future purposes, other student reviews can be bench marked against an instructor review. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation:&amp;lt;/b&amp;gt; The following things need to be improved/changed with respect to the above screenshot.&lt;br /&gt;
&amp;lt;br&amp;gt; The second column consists of the title name with the link to “Assign Grade.” This is the part which we will have to modify. The link under the project title should be as follows: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1. “Perform Review,” until the deadline for the assignment hasn’t been reached. If he/she has already started the review, the link will be modified to “Edit Review,” until they don’t submit it. &amp;lt;br&amp;gt;&lt;br /&gt;
2. “Assign Grade,” after the deadline of the assignment passes. &amp;lt;br&amp;gt;&lt;br /&gt;
When clicked on “Perform Review”/”Edit Review,” it should direct to the review page seen by the students, and be able to perform the review. Thus it will direct the page to the response#new page or response#edit page respectively.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For the above-mentioned flow, the following file will be edited:&amp;lt;br&amp;gt;&lt;br /&gt;
app/views/assignments/list_submissions.html.erb:&lt;br /&gt;
This view file refers to the page in the above screenshot. This file will be edited to check whether the deadline for the current assignment has been passed, and accordingly it will display either of the two options denoted above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA/Instructor to add himself as a participant ===&lt;br /&gt;
&amp;lt;b&amp;gt; Current scenario : &amp;lt;/b&amp;gt; Instructors and TA's can add themselves as participants. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt; Requirement : &amp;lt;/b&amp;gt; The teaching staff reviewing a previous project thought this might be a bad idea. Here's what they said about it in our project description. &amp;quot;It adds instructor to the assignment as a participant.  This is probably not a good idea, because the instructor can review everyone, independent of what reviewer-assignment mechanism was in use.&amp;quot; &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt; Proposed Implementation : &amp;lt;/b&amp;gt; We need to find out how doing a review works. I'm guessing by adding the instructor as a participant makes it easy to do a review. If we don't tell let the instructor add themselves as a participant then we may need to add code in the part for setting up reviews. We will need a link in the list_submissions_.html.erb for &amp;quot;perform review&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue: Method to check if the user is instructor / TA for the selected course === &lt;br /&gt;
&amp;lt;b&amp;gt; Current scenario : &amp;lt;/b&amp;gt; There is no method which checks if the user is an instructor / TA for the selected course (namely a course staff member) &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement : &amp;lt;/b&amp;gt;This method is required for redirection of pages which is dependent on the user role. Also, it is required to identify if the review is performed by the course staff. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed implementation : &amp;lt;/b&amp;gt; A new helper file named course_staff_helper.rb will be created in expertiza/helpers/ which will consist a method which checks if the user is a course staff member. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue: Show students that her/his assignment has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file app/assets/stylesheets/grades.scss to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
The following activity diagram summarizes our proposed implementation for the above mentioned issue:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:activity.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Team Members''' ==&lt;br /&gt;
Mentor: Prof. Edward Gehringer (efg@ncsu.edu)&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anuja Kulkarni - apkulka2@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mark Trawick - mtrawic@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Parvathy Menon - pharida@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Samruddhi Khandale - sskhanda@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129225</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129225"/>
		<updated>2019-11-12T04:22:49Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However there are some problems with this:&lt;br /&gt;
* Sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development.&lt;br /&gt;
* The reviewer might not know how well they are reviewing the peers work. They might not entirely know what tone to use or what suggestion to make. &lt;br /&gt;
&lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==''' Current Scenario and Proposed Implementations''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA / Instructor to perform review of student assignments ===&lt;br /&gt;
&amp;lt;b&amp;gt;Current Scenario:&amp;lt;/b&amp;gt;&lt;br /&gt;
Instructors and TA's can not perform reviews. Previous attempts were made but they either complicated the code or did not pass the Travis CI. For this particular task, the following screenshot describes how the current scenario looks. The page below is the “View Submissions” page when logged in as an instructor. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:list1.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement:&amp;lt;/b&amp;gt;&lt;br /&gt;
This functionality is needed so that the instructors can easily perform submission reviews which can also be viewed by the students. Also for future purposes, other student reviews can be bench marked against an instructor review. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation:&amp;lt;/b&amp;gt; The following things need to be improved/changed with respect to the above screenshot.&lt;br /&gt;
&amp;lt;br&amp;gt; The second column consists of the title name with the link to “Assign Grade.” This is the part which we will have to modify. The link under the project title should be as follows: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1. “Perform Review,” until the deadline for the assignment hasn’t been reached. If he/she has already started the review, the link will be modified to “Edit Review,” until they don’t submit it. &amp;lt;br&amp;gt;&lt;br /&gt;
2. “Assign Grade,” after the deadline of the assignment passes. &amp;lt;br&amp;gt;&lt;br /&gt;
When clicked on “Perform Review”/”Edit Review,” it should direct to the review page seen by the students, and be able to perform the review. Thus it will direct the page to the response#new page or response#edit page respectively.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For the above-mentioned flow, the following file will be edited:&amp;lt;br&amp;gt;&lt;br /&gt;
app/views/assignments/list_submissions.html.erb:&lt;br /&gt;
This view file refers to the page in the above screenshot. This file will be edited to check whether the deadline for the current assignment has been passed, and accordingly it will display either of the two options denoted above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA/Instructor to add himself as a participant ===&lt;br /&gt;
&amp;lt;b&amp;gt; Current scenario : &amp;lt;/b&amp;gt; Instructors and TA's can add themselves as participants. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt; Requirement : &amp;lt;/b&amp;gt; The teaching staff reviewing a previous project thought this might be a bad idea. Here's what they said about it in our project description. &amp;quot;It adds instructor to the assignment as a participant.  This is probably not a good idea, because the instructor can review everyone, independent of what reviewer-assignment mechanism was in use.&amp;quot; &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt; Proposed Implementation : &amp;lt;/b&amp;gt; We need to find out how doing a review works. I'm guessing by adding the instructor as a participant makes it easy to do a review. If we don't tell let the instructor add themselves as a participant then we may need to add code in the part for setting up reviews. We will need a link in the list_submissions_.html.erb for &amp;quot;perform review&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue: Method to check if the user is instructor / TA for the selected course === &lt;br /&gt;
&amp;lt;b&amp;gt; Current scenario : &amp;lt;/b&amp;gt; There is no method which checks if the user is an instructor / TA for the selected course (namely a course staff member) &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement : &amp;lt;/b&amp;gt;This method is required for redirection of pages which is dependent on the user role. Also, it is required to identify if the review is performed by the course staff. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed implementation : &amp;lt;/b&amp;gt; A new helper file named course_staff_helper.rb will be created in expertiza/helpers/ which will consist a method which checks if the user is a course staff member. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue: Show students that her/his assignment has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file app/assets/stylesheets/grades.scss to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
The following activity diagram summarizes our proposed implementation for the above mentioned issue:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:activity.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Team Members''' ==&lt;br /&gt;
Mentor: Prof. Edward Gehringer (efg@ncsu.edu)&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anuja Kulkarni - apkulka2@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mark Trawick - mtrawic@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Parvathy Menon - pharida@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Samruddhi Khandale - sskhanda@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129219</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129219"/>
		<updated>2019-11-12T04:21:38Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However there are some problems with this:&lt;br /&gt;
* Sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development.&lt;br /&gt;
* The reviewer might not know how well they are reviewing the peers work. They might not entirely know what tone to use or what suggestion to make. &lt;br /&gt;
&lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==''' Current Scenario and Proposed Implementations''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA / Instructor to perform review of student assignments ===&lt;br /&gt;
&amp;lt;b&amp;gt;Current Scenario:&amp;lt;/b&amp;gt;&lt;br /&gt;
Instructors and TA's can not perform reviews. Previous attempts were made but they either complicated the code or did not pass the Travis CI. For this particular task, the following screenshot describes how the current scenario looks. The page below is the “View Submissions” page when logged in as an instructor. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:list1.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement:&amp;lt;/b&amp;gt;&lt;br /&gt;
This functionality is needed so that the instructors can easily perform submission reviews which can also be viewed by the students. Also for future purposes, other student reviews can be bench marked against an instructor review. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation:&amp;lt;/b&amp;gt; The following things need to be improved/changed with respect to the above screenshot.&lt;br /&gt;
&amp;lt;br&amp;gt; The second column consists of the title name with the link to “Assign Grade.” This is the part which we will have to modify. The link under the project title should be as follows :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1. “Perform Review,” until the deadline for the assignment hasn’t been reached. If he/she has already started the review, the link will be modified to “Edit Review,” until they don’t submit it. &amp;lt;br&amp;gt;&lt;br /&gt;
2. “Assign Grade,” after the deadline of the assignment passes. &amp;lt;br&amp;gt;&lt;br /&gt;
When clicked on “Perform Review”/”Edit Review,” it should direct to the review page seen by the students, and be able to perform the review. Thus it will direct the page to the response#new page or response#edit page respectively.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For the above-mentioned flow, the following file will be edited:&amp;lt;br&amp;gt;&lt;br /&gt;
app/views/assignments/list_submissions.html.erb:&lt;br /&gt;
This view file refers to the page in the above screenshot. This file will be edited to check whether the deadline for the current assignment has been passed, and accordingly it will display either of the two options denoted above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA/Instructor to add himself as a participant ===&lt;br /&gt;
&amp;lt;b&amp;gt; Current scenario : &amp;lt;/b&amp;gt; Instructors and TA's can add themselves as participants. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt; Requirement : &amp;lt;/b&amp;gt; The teaching staff reviewing a previous project thought this might be a bad idea. Here's what they said about it in our project description. &amp;quot;It adds instructor to the assignment as a participant.  This is probably not a good idea, because the instructor can review everyone, independent of what reviewer-assignment mechanism was in use.&amp;quot; &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt; Proposed Implementation : &amp;lt;/b&amp;gt; We need to find out how doing a review works. I'm guessing by adding the instructor as a participant makes it easy to do a review. If we don't tell let the instructor add themselves as a participant then we may need to add code in the part for setting up reviews. We will need a link in the list_submissions_.html.erb for &amp;quot;perform review&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue : Method to check if the user is instructor / TA for the selected course === &lt;br /&gt;
&amp;lt;b&amp;gt; Current scenario : &amp;lt;/b&amp;gt; There is no method which checks if the user is an instructor / TA for the selected course (namely a course staff member) &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement : &amp;lt;/b&amp;gt;This method is required for redirection of pages which is dependent on the user role. Also, it is required to identify if the review is performed by the course staff. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed implementation : &amp;lt;/b&amp;gt; A new helper file named course_staff_helper.rb will be created in expertiza/helpers/ which will consist a method which checks if the user is a course staff member. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue : Show students that her/his assignment has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file app/assets/stylesheets/grades.scss to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:activity.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Team Members''' ==&lt;br /&gt;
Mentor: Prof. Edward Gehringer (efg@ncsu.edu)&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anuja Kulkarni - apkulka2@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mark Trawick - mtrawic@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Parvathy Menon - pharida@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Samruddhi Khandale - sskhanda@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Activity.png&amp;diff=129217</id>
		<title>File:Activity.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Activity.png&amp;diff=129217"/>
		<updated>2019-11-12T04:21:06Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: uploaded a new version of &amp;amp;quot;File:Activity.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129215</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129215"/>
		<updated>2019-11-12T04:20:40Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However there are some problems with this:&lt;br /&gt;
* Sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development.&lt;br /&gt;
* The reviewer might not know how well they are reviewing the peers work. They might not entirely know what tone to use or what suggestion to make. &lt;br /&gt;
&lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==''' Current Scenario and Proposed Implementations''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA / Instructor to perform review of student assignments ===&lt;br /&gt;
&amp;lt;b&amp;gt;Current Scenario:&amp;lt;/b&amp;gt;&lt;br /&gt;
Instructors and TA's can not perform reviews. Previous attempts were made but they either complicated the code or did not pass the Travis CI. For this particular task, the following screenshot describes how the current scenario looks. The page below is the “View Submissions” page when logged in as an instructor. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:list1.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement:&amp;lt;/b&amp;gt;&lt;br /&gt;
This functionality is needed so that the instructors can easily perform submission reviews which can also be viewed by the students. Also for future purposes, other student reviews can be bench marked against an instructor review. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation:&amp;lt;/b&amp;gt; The following things need to be improved/changed with respect to the above screenshot.&lt;br /&gt;
&amp;lt;br&amp;gt; The second column consists of the title name with the link to “Assign Grade.” This is the part which we will have to modify. The link under the project title should be as follows :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1. “Perform Review,” until the deadline for the assignment hasn’t been reached. If he/she has already started the review, the link will be modified to “Edit Review,” until they don’t submit it. &amp;lt;br&amp;gt;&lt;br /&gt;
2. “Assign Grade,” after the deadline of the assignment passes. &amp;lt;br&amp;gt;&lt;br /&gt;
When clicked on “Perform Review”/”Edit Review,” it should direct to the review page seen by the students, and be able to perform the review. Thus it will direct the page to the response#new page or response#edit page respectively.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For the above-mentioned flow, the following file will be edited:&amp;lt;br&amp;gt;&lt;br /&gt;
app/views/assignments/list_submissions.html.erb:&lt;br /&gt;
This view file refers to the page in the above screenshot. This file will be edited to check whether the deadline for the current assignment has been passed, and accordingly it will display either of the two options denoted above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA/Instructor to add himself as a participant ===&lt;br /&gt;
&amp;lt;b&amp;gt; Current scenario : &amp;lt;/b&amp;gt; Instructors and TA's can add themselves as participants. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt; Requirement : &amp;lt;/b&amp;gt; The teaching staff reviewing a previous project thought this might be a bad idea. Here's what they said about it in our project description. &amp;quot;It adds instructor to the assignment as a participant.  This is probably not a good idea, because the instructor can review everyone, independent of what reviewer-assignment mechanism was in use.&amp;quot; &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt; Proposed Implementation : &amp;lt;/b&amp;gt; We need to find out how doing a review works. I'm guessing by adding the instructor as a participant makes it easy to do a review. If we don't tell let the instructor add themselves as a participant then we may need to add code in the part for setting up reviews. We will need a link in the list_submissions_.html.erb for &amp;quot;perform review&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue : Method to check if the user is instructor / TA for the selected course === &lt;br /&gt;
&amp;lt;b&amp;gt; Current scenario : &amp;lt;/b&amp;gt; There is no method which checks if the user is an instructor / TA for the selected course (namely a course staff member) &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement : &amp;lt;/b&amp;gt;This method is required for redirection of pages which is dependent on the user role. Also, it is required to identify if the review is performed by the course staff. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed implementation : &amp;lt;/b&amp;gt; A new helper file named course_staff_helper.rb will be created in expertiza/helpers/ which will consist a method which checks if the user is a course staff member. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue : Show students that her/his assignment has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file app/assets/stylesheets/grades.scss to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:C:\Users\DELL\Desktop\activity.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Team Members''' ==&lt;br /&gt;
Mentor: Prof. Edward Gehringer (efg@ncsu.edu)&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anuja Kulkarni - apkulka2@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mark Trawick - mtrawic@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Parvathy Menon - pharida@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Samruddhi Khandale - sskhanda@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129089</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129089"/>
		<updated>2019-11-12T03:24:26Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However there are some problems with this:&lt;br /&gt;
* Sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development.&lt;br /&gt;
* The reviewer might not know how well they are reviewing the peers work. They might not entirely know what tone to use or what suggestion to make. &lt;br /&gt;
&lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==''' Current Scenario and Proposed Implementations''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA / Instructor to perform review of student assignments ===&lt;br /&gt;
&amp;lt;b&amp;gt;Current Scenario:&amp;lt;/b&amp;gt;&lt;br /&gt;
Instructors and TA's can not perform reviews. Previous attempts were made but they either complicated the code or did not pass the Travis CI. For this particular task, the following screenshot describes how the current scenario looks. The page below is the “View Submissions” page when logged in as an instructor. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:list1.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement:&amp;lt;/b&amp;gt;&lt;br /&gt;
This functionality is needed so that the instructors can easily perform submission reviews which can also be viewed by the students. Also for future purposes, other student reviews can be bench marked against an instructor review. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation:&amp;lt;/b&amp;gt; The following things need to be improved/changed with respect to the above screenshot.&lt;br /&gt;
&amp;lt;br&amp;gt; The second column consists of the title name with the link to “Assign Grade.” This is the part which we will have to modify. The link under the project title should be as follows :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1. “Perform Review,” until the deadline for the assignment hasn’t been reached. If he/she has already started the review, the link will be modified to “Edit Review,” until they don’t submit it. &amp;lt;br&amp;gt;&lt;br /&gt;
2. “Assign Grade,” after the deadline of the assignment passes. &amp;lt;br&amp;gt;&lt;br /&gt;
When clicked on “Perform Review”/”Edit Review,” it should direct to the review page seen by the students, and be able to perform the review. Thus it will direct the page to the response#new page or response#edit page respectively.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For the above-mentioned flow, the following file will be edited:&amp;lt;br&amp;gt;&lt;br /&gt;
app/views/assignments/list_submissions.html.erb:&lt;br /&gt;
This view file refers to the page in the above screenshot. This file will be edited to check whether the deadline for the current assignment has been passed, and accordingly it will display either of the two options denoted above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA/Instructor to add himself as a participant ===&lt;br /&gt;
&amp;lt;b&amp;gt; Current scenario : &amp;lt;/b&amp;gt; Instructors and TA's can add themselves as participants. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt; Requirement : &amp;lt;/b&amp;gt; The teaching staff reviewing a previous project thought this might be a bad idea. Here's what they said about it in our project description. &amp;quot;It adds instructor to the assignment as a participant.  This is probably not a good idea, because the instructor can review everyone, independent of what reviewer-assignment mechanism was in use.&amp;quot; &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt; Proposed Implementation : &amp;lt;/b&amp;gt; We need to find out how doing a review works. I'm guessing by adding the instructor as a participant makes it easy to do a review. If we don't tell let the instructor add themselves as a participant then we may need to add code in the part for setting up reviews. We will need a link in the list_submissions_.html.erb for &amp;quot;perform review&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue : Method to check if the user is instructor / TA for the selected course === &lt;br /&gt;
&amp;lt;b&amp;gt; Current scenario : &amp;lt;/b&amp;gt; There is no method which checks if the user is an instructor / TA for the selected course (namely a course staff member) &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement : &amp;lt;/b&amp;gt;This method is required for redirection of pages which is dependent on the user role. Also, it is required to identify if the review is performed by the course staff. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed implementation : &amp;lt;/b&amp;gt; A new helper file named course_staff_helper.rb will be created in expertiza/helpers/ which will consist a method which checks if the user is a course staff member. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue : Show students that her/his assignment has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file app/assets/stylesheets/grades.scss to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:activity.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Team Members''' ==&lt;br /&gt;
Mentor: Prof. Edward Gehringer (efg@ncsu.edu)&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anuja Kulkarni - apkulka2@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mark Trawick - mtrawic@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Parvathy Menon - pharida@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Samruddhi Khandale - sskhanda@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129083</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129083"/>
		<updated>2019-11-12T03:22:44Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However there are some problems with this:&lt;br /&gt;
* Sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development.&lt;br /&gt;
* The reviewer might not know how well they are reviewing the peers work. They might not entirely know what tone to use or what suggestion to make. &lt;br /&gt;
&lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==''' Current Scenario and Proposed Implementations''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA / Instructor to perform review of student assignments ===&lt;br /&gt;
&amp;lt;b&amp;gt;Current Scenario:&amp;lt;/b&amp;gt;&lt;br /&gt;
Instructors and TA's can not perform reviews. Previous attempts were made but they either complicated the code or did not pass the Travis CI. For this particular task, the following screenshot describes how the current scenario looks. The page below is the “View Submissions” page when logged in as an instructor. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:list1.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement:&amp;lt;/b&amp;gt;&lt;br /&gt;
This functionality is needed so that the instructors can easily perform submission reviews which can also be viewed by the students. Also for future purposes, other student reviews can be bench marked against an instructor review. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation:&amp;lt;/b&amp;gt; The following things need to be improved/changed with respect to the above screenshot.&lt;br /&gt;
&amp;lt;br&amp;gt; The second column consists of the title name with the link to “Assign Grade.” This is the part which we will have to modify. The link under the project title should be as follows :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1. “Perform Review,” until the deadline for the assignment hasn’t been reached. If he/she has already started the review, the link will be modified to “Edit Review,” until they don’t submit it. &amp;lt;br&amp;gt;&lt;br /&gt;
2. “Assign Grade,” after the deadline of the assignment passes. &amp;lt;br&amp;gt;&lt;br /&gt;
When clicked on “Perform Review”/”Edit Review,” it should direct to the review page seen by the students, and be able to perform the review. Thus it will direct the page to the response#new page or response#edit page respectively.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For the above-mentioned flow, the following file will be edited:&amp;lt;br&amp;gt;&lt;br /&gt;
app/views/assignments/list_submissions.html.erb:&lt;br /&gt;
This view file refers to the page in the above screenshot. This file will be edited to check whether the deadline for the current assignment has been passed, and accordingly it will display either of the two options denoted above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA/Instructor to add himself as a participant ===&lt;br /&gt;
&amp;lt;b&amp;gt; Current scenario : &amp;lt;/b&amp;gt; Instructors and TA's can add themselves as participants. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt; Requirement : &amp;lt;/b&amp;gt; The teaching staff reviewing a previous project thought this might be a bad idea. Here's what they said about it in our project description. &amp;quot;It adds instructor to the assignment as a participant.  This is probably not a good idea, because the instructor can review everyone, independent of what reviewer-assignment mechanism was in use.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt; Proposed Implementation : &amp;lt;/b&amp;gt; We need to find out how doing a review works. I'm guessing by adding the instructor as a participant makes it easy to do a review. If we don't tell let the instructor add themselves as a participant then we may need to add code in the part for setting up reviews. We will need a link in the list_submissions_.html.erb for &amp;quot;perform review&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue : Method to check if the user is instructor / TA for the selected course === &lt;br /&gt;
&amp;lt;b&amp;gt; Current scenario : &amp;lt;/b&amp;gt; There is no method which checks if the user is an instructor / TA for the selected course (namely a course staff member) &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement : &amp;lt;/b&amp;gt;This method is required for redirection of pages which is dependent on the user role. Also, it is required to identify if the review is performed by the course staff. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed implementation : &amp;lt;/b&amp;gt; A new helper file named course_staff_helper.rb will be created in expertiza/helpers/ which will consist a method which checks if the user is a course staff member. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue : Show students that her/his assignment has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file app/assets/stylesheets/grades.scss to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:activity.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Team Members''' ==&lt;br /&gt;
Mentor: Prof. Edward Gehringer (efg@ncsu.edu)&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anuja Kulkarni - apkulka2@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mark Trawick - mtrawic@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Parvathy Menon - pharida@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Samruddhi Khandale - sskhanda@ncsu.edu&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129054</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129054"/>
		<updated>2019-11-12T03:10:12Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However there are some problems with this:&lt;br /&gt;
* Sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development.&lt;br /&gt;
* The reviewer might not know how well they are reviewing the peers work. They might not entirely know what tone to use or what suggestion to make. &lt;br /&gt;
&lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==''' Current Scenario and Proposed Implementations''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA / Instructor to perform review of student assignments ===&lt;br /&gt;
&amp;lt;b&amp;gt;Current Scenario:&amp;lt;/b&amp;gt;&lt;br /&gt;
Instructors and TA's can not perform reviews. Previous attempts were made but they either complicated the code or did not pass the Travis CI. For this particular task, the following screenshot describes how the current scenario looks. The page below is the “View Submissions” page when logged in as an instructor. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:list1.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement:&amp;lt;/b&amp;gt;&lt;br /&gt;
This functionality is needed so that the instructors can easily perform submission reviews which can also be viewed by the students. Also for future purposes, other student reviews can be bench marked against an instructor review. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation:&amp;lt;/b&amp;gt; The following things need to be improved/changed with respect to the above screenshot.&lt;br /&gt;
&amp;lt;br&amp;gt; The second column consists of the title name with the link to “Assign Grade.” This is the part which we will have to modify. The link under the project title should be as follows :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1. “Perform Review,” until the deadline for the assignment hasn’t been reached. If he/she has already started the review, the link will be modified to “Edit Review,” until they don’t submit it. &amp;lt;br&amp;gt;&lt;br /&gt;
2. “Assign Grade,” after the deadline of the assignment passes. &amp;lt;br&amp;gt;&lt;br /&gt;
When clicked on “Perform Review”/”Edit Review,” it should direct to the review page seen by the students, and be able to perform the review. Thus it will direct the page to the response#new page or response#edit page respectively.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For the above-mentioned flow, the following file will be edited:&amp;lt;br&amp;gt;&lt;br /&gt;
app/views/assignments/list_submissions.html.erb:&lt;br /&gt;
This view file refers to the page in the above screenshot. This file will be edited to check whether the deadline for the current assignment has been passed, and accordingly it will display either of the two options denoted above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA/Instructor to add himself as a participant ===&lt;br /&gt;
&amp;lt;b&amp;gt; Current scenario : &amp;lt;/b&amp;gt; Instructors and TA's can add themselves as participants. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt; Requirement : &amp;lt;/b&amp;gt; The teaching staff reviewing a previous project thought this might be a bad idea. Here's what they said about it in our project description. &amp;quot;It adds instructor to the assignment as a participant.  This is probably not a good idea, because the instructor can review everyone, independent of what reviewer-assignment mechanism was in use.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt; Proposed Implementation : &amp;lt;/b&amp;gt; We need to find out how doing a review works. I'm guessing by adding the instructor as a participant makes it easy to do a review. If we don't tell let the instructor add themselves as a participant then we may need to add code in the part for setting up reviews. We will need a link in the list_submissions_.html.erb for &amp;quot;perform review&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue : Method to check if the user is instructor / TA for the selected course === &lt;br /&gt;
&amp;lt;b&amp;gt; Current scenario : &amp;lt;/b&amp;gt; There is no method which checks if the user is an instructor / TA for the selected course (namely a course staff member) &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement : &amp;lt;/b&amp;gt;This method is required for redirection of pages which is dependent on the user role. Also, it is required to identify if the review is performed by the course staff. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed implementation : &amp;lt;/b&amp;gt; A new helper file named course_staff_helper.rb will be created in expertiza/helpers/ which will consist a method which checks if the user is a course staff member. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue : Show students that her/his assignment has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file app/assets/stylesheets/grades.scss to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:activity.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Activity.png&amp;diff=129052</id>
		<title>File:Activity.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Activity.png&amp;diff=129052"/>
		<updated>2019-11-12T03:09:50Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: uploaded a new version of &amp;amp;quot;File:Activity.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129050</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129050"/>
		<updated>2019-11-12T03:09:05Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However there are some problems with this:&lt;br /&gt;
* Sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development.&lt;br /&gt;
* The reviewer might not know how well they are reviewing the peers work. They might not entirely know what tone to use or what suggestion to make. &lt;br /&gt;
&lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==''' Current Scenario and Proposed Implementations''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA / Instructor to perform review of student assignments ===&lt;br /&gt;
&amp;lt;b&amp;gt;Current Scenario:&amp;lt;/b&amp;gt;&lt;br /&gt;
Instructors and TA's can not perform reviews. Previous attempts were made but they either complicated the code or did not pass the Travis CI. For this particular task, the following screenshot describes how the current scenario looks. The page below is the “View Submissions” page when logged in as an instructor. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:list1.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement:&amp;lt;/b&amp;gt;&lt;br /&gt;
This functionality is needed so that the instructors can easily perform submission reviews which can also be viewed by the students. Also for future purposes, other student reviews can be bench marked against an instructor review. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation:&amp;lt;/b&amp;gt; The following things need to be improved/changed with respect to the above screenshot.&lt;br /&gt;
&amp;lt;br&amp;gt; The second column consists of the title name with the link to “Assign Grade.” This is the part which we will have to modify. The link under the project title should be as follows :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1. “Perform Review,” until the deadline for the assignment hasn’t been reached. If he/she has already started the review, the link will be modified to “Edit Review,” until they don’t submit it. &amp;lt;br&amp;gt;&lt;br /&gt;
2. “Assign Grade,” after the deadline of the assignment passes. &amp;lt;br&amp;gt;&lt;br /&gt;
When clicked on “Perform Review”/”Edit Review,” it should direct to the review page seen by the students, and be able to perform the review. Thus it will direct the page to the response#new page or response#edit page respectively.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For the above-mentioned flow, the following file will be edited:&amp;lt;br&amp;gt;&lt;br /&gt;
app/views/assignments/list_submissions.html.erb:&lt;br /&gt;
This view file refers to the page in the above screenshot. This file will be edited to check whether the deadline for the current assignment has been passed, and accordingly it will display either of the two options denoted above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA/Instructor to add himself as a participant ===&lt;br /&gt;
&amp;lt;b&amp;gt; Current scenario : &amp;lt;/b&amp;gt; Instructors and TA's can add themselves as participants. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt; Requirement : &amp;lt;/b&amp;gt; The teaching staff reviewing a previous project thought this might be a bad idea. Here's what they said about it in our project description. &amp;quot;It adds instructor to the assignment as a participant.  This is probably not a good idea, because the instructor can review everyone, independent of what reviewer-assignment mechanism was in use.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt; Proposed Implementation : &amp;lt;/b&amp;gt; We need to find out how doing a review works. I'm guessing by adding the instructor as a participant makes it easy to do a review. If we don't tell let the instructor add themselves as a participant then we may need to add code in the part for setting up reviews. We will need a link in the list_submissions_.html.erb for &amp;quot;perform review&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue : Method to check if the user is instructor / TA for the selected course === &lt;br /&gt;
&amp;lt;b&amp;gt; Current scenario : &amp;lt;/b&amp;gt; There is no method which checks if the user is an instructor / TA for the selected course (namely a course staff member) &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement : &amp;lt;/b&amp;gt;This method is required for redirection of pages which is dependent on the user role. Also, it is required to identify if the review is performed by the course staff. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed implementation : &amp;lt;/b&amp;gt; A new helper file named course_staff_helper.rb will be created in expertiza/helpers/ which will consist a method which checks if the user is a course staff member. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue : Show students that her/his assignment has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file app/assets/stylesheets/grades.scss to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:C:\Users\DELL\Desktop\activity.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Activity.png&amp;diff=129047</id>
		<title>File:Activity.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Activity.png&amp;diff=129047"/>
		<updated>2019-11-12T03:08:25Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129045</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=129045"/>
		<updated>2019-11-12T03:08:07Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However there are some problems with this:&lt;br /&gt;
* Sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development.&lt;br /&gt;
* The reviewer might not know how well they are reviewing the peers work. They might not entirely know what tone to use or what suggestion to make. &lt;br /&gt;
&lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==''' Current Scenario and Proposed Implementations''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA / Instructor to perform review of student assignments ===&lt;br /&gt;
&amp;lt;b&amp;gt;Current Scenario:&amp;lt;/b&amp;gt;&lt;br /&gt;
Instructors and TA's can not perform reviews. Previous attempts were made but they either complicated the code or did not pass the Travis CI. For this particular task, the following screenshot describes how the current scenario looks. The page below is the “View Submissions” page when logged in as an instructor. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:list1.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement:&amp;lt;/b&amp;gt;&lt;br /&gt;
This functionality is needed so that the instructors can easily perform submission reviews which can also be viewed by the students. Also for future purposes, other student reviews can be bench marked against an instructor review. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation:&amp;lt;/b&amp;gt; The following things need to be improved/changed with respect to the above screenshot.&lt;br /&gt;
&amp;lt;br&amp;gt; The second column consists of the title name with the link to “Assign Grade.” This is the part which we will have to modify. The link under the project title should be as follows :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1. “Perform Review,” until the deadline for the assignment hasn’t been reached. If he/she has already started the review, the link will be modified to “Edit Review,” until they don’t submit it. &amp;lt;br&amp;gt;&lt;br /&gt;
2. “Assign Grade,” after the deadline of the assignment passes. &amp;lt;br&amp;gt;&lt;br /&gt;
When clicked on “Perform Review”/”Edit Review,” it should direct to the review page seen by the students, and be able to perform the review. Thus it will direct the page to the response#new page or response#edit page respectively.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For the above-mentioned flow, the following file will be edited:&amp;lt;br&amp;gt;&lt;br /&gt;
app/views/assignments/list_submissions.html.erb:&lt;br /&gt;
This view file refers to the page in the above screenshot. This file will be edited to check whether the deadline for the current assignment has been passed, and accordingly it will display either of the two options denoted above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA/Instructor to add himself as a participant ===&lt;br /&gt;
&amp;lt;b&amp;gt; Current scenario : &amp;lt;/b&amp;gt; Instructors and TA's can add themselves as participants. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt; Requirement : &amp;lt;/b&amp;gt; The teaching staff reviewing a previous project thought this might be a bad idea. Here's what they said about it in our project description. &amp;quot;It adds instructor to the assignment as a participant.  This is probably not a good idea, because the instructor can review everyone, independent of what reviewer-assignment mechanism was in use.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt; Proposed Implementation : &amp;lt;/b&amp;gt; We need to find out how doing a review works. I'm guessing by adding the instructor as a participant makes it easy to do a review. If we don't tell let the instructor add themselves as a participant then we may need to add code in the part for setting up reviews. We will need a link in the list_submissions_.html.erb for &amp;quot;perform review&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue : Method to check if the user is instructor / TA for the selected course === &lt;br /&gt;
&amp;lt;b&amp;gt; Current scenario : &amp;lt;/b&amp;gt; There is no method which checks if the user is an instructor / TA for the selected course (namely a course staff member) &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement : &amp;lt;/b&amp;gt;This method is required for redirection of pages which is dependent on the user role. Also, it is required to identify if the review is performed by the course staff. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed implementation : &amp;lt;/b&amp;gt; A new helper file named course_staff_helper.rb will be created in expertiza/helpers/ which will consist a method which checks if the user is a course staff member. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Issue : Show students that her/his assignment has been reviewed by the instructor===&lt;br /&gt;
&amp;lt;b&amp;gt; Currently Scenario: &amp;lt;/b&amp;gt;There is no way for the student to know which review was by the instructor.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Requirement: &amp;lt;/b&amp;gt;This helps the student to identify the review made by the instructor from the other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation: &amp;lt;/b&amp;gt;An icon will be added in the file app/assets/stylesheets/grades.scss to make an instructor performed review look different from other reviews. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Activity Diagram of the Proposed Implementation''' ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:activity.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=128397</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=128397"/>
		<updated>2019-11-11T01:54:13Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However there are some problems with this:&lt;br /&gt;
* Sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development.&lt;br /&gt;
* The reviewer might not know how well they are reviewing the peers work. They might not entirely know what tone to use or what suggestion to make. &lt;br /&gt;
&lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Current scenario ===&lt;br /&gt;
&lt;br /&gt;
===Issue : Method to check if user is instructor / TA for selected course === &lt;br /&gt;
Currently, there is no method which checks if the user is an instructor / TA for the selected course (namely a course staff member) Need : This method is required for redirection of pages which is dependent on the user role. Also, it is required to identify if the review is performed by the course staff. &amp;lt;br&amp;gt;&lt;br /&gt;
Proposed implementation : A new helper file named course_staff_helper.rb will be created in expertiza/helpers/ which will consist a method which checks if the user is a course staff member. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA/Instructor to add himself as a participant ===&lt;br /&gt;
Currently instructors and TA's can add themselves as participants. The teaching staff reviewing a previous project thought this might be a bad idea. Here's what they said about it in our project description. &amp;quot;It adds instructor to the assgt. as a participant.  This is probably not a good idea, because the instructor can review everyone, independent of what reviewer-assignment mechanism was in use.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
I need to find out how doing a review works. I'm guessing by adding the instructor as a participant makes it easy to do a review. If we don't tell let the instructor add themselves as a participant then we may need to add code in the part for setting up reviews. &lt;br /&gt;
&lt;br /&gt;
We will need a link in the list_submissions_.html.erb for &amp;quot;perform review&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA/Instructor to perform review of student assignments ===&lt;br /&gt;
&amp;lt;b&amp;gt;Current Scenario:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Currently, instructors and TA's cannot perform reviews. Previous attempts were made but they either complicated the code or did not pass the Travis CI. For this particular task, the following screenshot describes how the current scenario looks and what needs to be improved/changed about it. The page below is the “View Submissions” page when logged in as an instructor. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:list1.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The 2nd column consists of the title name with the link to “Assign Grade.” This is the part which we will have to modify. The link under the project title should be:&amp;lt;br&amp;gt;&lt;br /&gt;
1. “Perform Review,” until the deadline for the assignment hasn’t been reached. If he/she has already started the review, the link will be modified to “Edit Review,” until they don’t submit it. &amp;lt;br&amp;gt;&lt;br /&gt;
2. “Assign Grade,” after the deadline of the assignment passes. &amp;lt;br&amp;gt;&lt;br /&gt;
When clicked on “Perform Review”/”Edit Review,” it should direct to the review page seen by the students, and be able to perform the review. Thus it will direct the page to the response#new page or response#edit page respectively.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Need:&amp;lt;/b&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
This functionality is needed so that the instructors can easily perform submission reviews which can also be viewed by the students. Also for future purposes, other student reviews can be benchmarked against an instructor review. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Proposed Implementation:&amp;lt;/b&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
For the above-mentioned flow, the following file will be edited:&amp;lt;br&amp;gt;&lt;br /&gt;
app/views/assignments/list_submissions.html.erb:&lt;br /&gt;
This view file refers to the page in the above screenshot. This file will be edited to check whether the deadline for the current assignment has been passed, and accordingly it will display either of the 2 options denoted above.&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=128394</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=128394"/>
		<updated>2019-11-11T01:53:29Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However there are some problems with this:&lt;br /&gt;
* Sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development.&lt;br /&gt;
* The reviewer might not know how well they are reviewing the peers work. They might not entirely know what tone to use or what suggestion to make. &lt;br /&gt;
&lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Current scenario ===&lt;br /&gt;
&lt;br /&gt;
===Issue : Method to check if user is instructor / TA for selected course === &lt;br /&gt;
Currently, there is no method which checks if the user is an instructor / TA for the selected course (namely a course staff member) Need : This method is required for redirection of pages which is dependent on the user role. Also, it is required to identify if the review is performed by the course staff. &amp;lt;br&amp;gt;&lt;br /&gt;
Proposed implementation : A new helper file named course_staff_helper.rb will be created in expertiza/helpers/ which will consist a method which checks if the user is a course staff member. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA/Instructor to add himself as a participant ===&lt;br /&gt;
Currently instructors and TA's can add themselves as participants. The teaching staff reviewing a previous project thought this might be a bad idea. Here's what they said about it in our project description. &amp;quot;It adds instructor to the assgt. as a participant.  This is probably not a good idea, because the instructor can review everyone, independent of what reviewer-assignment mechanism was in use.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
I need to find out how doing a review works. I'm guessing by adding the instructor as a participant makes it easy to do a review. If we don't tell let the instructor add themselves as a participant then we may need to add code in the part for setting up reviews. &lt;br /&gt;
&lt;br /&gt;
We will need a link in the list_submissions_.html.erb for &amp;quot;perform review&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA/Instructor to perform review of student assignments ===&lt;br /&gt;
Current Scenario:&amp;lt;br&amp;gt;&lt;br /&gt;
Currently, instructors and TA's cannot perform reviews. Previous attempts were made but they either complicated the code or did not pass the Travis CI. For this particular task, the following screenshot describes how the current scenario looks and what needs to be improved/changed about it. The page below is the “View Submissions” page when logged in as an instructor. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:list1.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The 2nd column consists of the title name with the link to “Assign Grade.” This is the part which we will have to modify. The link under the project title should be:&amp;lt;br&amp;gt;&lt;br /&gt;
1. “Perform Review,” until the deadline for the assignment hasn’t been reached. If he/she has already started the review, the link will be modified to “Edit Review,” until they don’t submit it. &amp;lt;br&amp;gt;&lt;br /&gt;
2. “Assign Grade,” after the deadline of the assignment passes. &amp;lt;br&amp;gt;&lt;br /&gt;
When clicked on “Perform Review”/”Edit Review,” it should direct to the review page seen by the students, and be able to perform the review. Thus it will direct the page to the response#new page or response#edit page respectively.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Need: &amp;lt;br&amp;gt;&lt;br /&gt;
This functionality is needed so that the instructors can easily perform submission reviews which can also be viewed by the students. Also for future purposes, other student reviews can be benchmarked against an instructor review. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Proposed Implementation: &amp;lt;br&amp;gt;&lt;br /&gt;
For the above-mentioned flow, the following file will be edited:&amp;lt;br&amp;gt;&lt;br /&gt;
app/views/assignments/list_submissions.html.erb:&lt;br /&gt;
This view file refers to the page in the above screenshot. This file will be edited to check whether the deadline for the current assignment has been passed, and accordingly it will display either of the 2 options denoted above.&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=128390</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=128390"/>
		<updated>2019-11-11T01:50:35Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However there are some problems with this:&lt;br /&gt;
* Sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development.&lt;br /&gt;
* The reviewer might not know how well they are reviewing the peers work. They might not entirely know what tone to use or what suggestion to make. &lt;br /&gt;
&lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Current scenario ===&lt;br /&gt;
&lt;br /&gt;
===Issue : Method to check if user is instructor / TA for selected course === &lt;br /&gt;
Currently, there is no method which checks if the user is an instructor / TA for the selected course (namely a course staff member) Need : This method is required for redirection of pages which is dependent on the user role. Also, it is required to identify if the review is performed by the course staff. &amp;lt;br&amp;gt;&lt;br /&gt;
Proposed implementation : A new helper file named course_staff_helper.rb will be created in expertiza/helpers/ which will consist a method which checks if the user is a course staff member. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA/Instructor to add himself as a participant ===&lt;br /&gt;
Currently instructors and TA's can add themselves as participants. The teaching staff reviewing a previous project thought this might be a bad idea. Here's what they said about it in our project description. &amp;quot;It adds instructor to the assgt. as a participant.  This is probably not a good idea, because the instructor can review everyone, independent of what reviewer-assignment mechanism was in use.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
I need to find out how doing a review works. I'm guessing by adding the instructor as a participant makes it easy to do a review. If we don't tell let the instructor add themselves as a participant then we may need to add code in the part for setting up reviews. &lt;br /&gt;
&lt;br /&gt;
We will need a link in the list_submissions_.html.erb for &amp;quot;perform review&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA/Instructor to perform review of student assignments ===&lt;br /&gt;
Current Scenario:&amp;lt;br&amp;gt;&lt;br /&gt;
Currently, instructors and TA's cannot perform reviews. Previous attempts were made but they either complicated the code or did not pass the Travis CI. For this particular task, the following screenshot describes how the current scenario looks and what needs to be improved/changed about it. The page below is the “View Submissions” page when logged in as an instructor. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:list1.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The 2nd column consists of the title name with the link to “Assign Grade.” This is the part which we will have to modify. The link under the project title should be:&amp;lt;br&amp;gt;&lt;br /&gt;
1. “Perform Review,” until the deadline for the assignment hasn’t been reached. If he/she has already started the review, the link will be modified to “Edit Review,” until they don’t submit it. &amp;lt;br&amp;gt;&lt;br /&gt;
2. “Assign Grade,” after the deadline of the assignment passes. &amp;lt;br&amp;gt;&lt;br /&gt;
When clicked on “Perform Review”/”Edit Review,” it should direct to the review page seen by the students, and be able to perform the review. Thus it will direct the page to the response#new page or response#edit page respectively.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Need: &amp;lt;br&amp;gt;&lt;br /&gt;
This functionality is needed so that the instructors can easily perform submission reviews which can also be viewed by the students. Also for future purposes, other student reviews can be benchmarked against an instructor review. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Proposed Implementation: &amp;lt;br&amp;gt;&lt;br /&gt;
For the above-mentioned flow, the files to be edited will be as follows:&amp;lt;br&amp;gt;&lt;br /&gt;
1. app/views/assignments/list_submissions.html.erb:&amp;lt;br&amp;gt;&lt;br /&gt;
This view file refers to the page in the above screenshot. This file will be edited to check whether the deadline for the current assignment has been passed, and accordingly it will display either of the 2 options denoted above.&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=128389</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=128389"/>
		<updated>2019-11-11T01:49:08Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However there are some problems with this:&lt;br /&gt;
* Sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development.&lt;br /&gt;
* The reviewer might not know how well they are reviewing the peers work. They might not entirely know what tone to use or what suggestion to make. &lt;br /&gt;
&lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Current scenario ===&lt;br /&gt;
&lt;br /&gt;
===Issue : Method to check if user is instructor / TA for selected course === &lt;br /&gt;
Currently, there is no method which checks if the user is an instructor / TA for the selected course (namely a course staff member) Need : This method is required for redirection of pages which is dependent on the user role. Also, it is required to identify if the review is performed by the course staff. &amp;lt;br&amp;gt;&lt;br /&gt;
Proposed implementation : A new helper file named course_staff_helper.rb will be created in expertiza/helpers/ which will consist a method which checks if the user is a course staff member. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA/Instructor to add himself as a participant ===&lt;br /&gt;
Currently instructors and TA's can add themselves as participants. The teaching staff reviewing a previous project thought this might be a bad idea. Here's what they said about it in our project description. &amp;quot;It adds instructor to the assgt. as a participant.  This is probably not a good idea, because the instructor can review everyone, independent of what reviewer-assignment mechanism was in use.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
I need to find out how doing a review works. I'm guessing by adding the instructor as a participant makes it easy to do a review. If we don't tell let the instructor add themselves as a participant then we may need to add code in the part for setting up reviews. &lt;br /&gt;
&lt;br /&gt;
We will need a link in the list_submissions_.html.erb for &amp;quot;perform review&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA/Instructor to perform review of student assignments ===&lt;br /&gt;
Current Scenario:&amp;lt;br&amp;gt;&lt;br /&gt;
Currently, instructors and TA's cannot perform reviews. Previous attempts were made but they either complicated the code or did not pass the Travis CI. For this particular task, the following points describe how the current scenario looks and what needs to be improved/changed about it. The page below is the “View Submissions” page when logged in as an instructor. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:list1.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The 2nd column consists of the title name with the link to “Assign Grade.” This is the part which we will have to modify. The link under the project title should be:&amp;lt;br&amp;gt;&lt;br /&gt;
1. “Perform Review,” until the deadline for the assignment hasn’t been reached. If he/she has already started the review, the link will be modified to “Edit Review,” until they don’t submit it. &amp;lt;br&amp;gt;&lt;br /&gt;
2. “Assign Grade,” after the deadline of the assignment passes. &amp;lt;br&amp;gt;&lt;br /&gt;
When clicked on “Perform Review”/”Edit Review,” it should direct to the review page seen by the students, and be able to perform the review. Thus it will direct the page to the response#new page or response#edit page respectively.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Need: &amp;lt;br&amp;gt;&lt;br /&gt;
This functionality is needed so that the instructors can easily perform submission reviews which can also be viewed by the students. Also for future purposes, other student reviews can be benchmarked against an instructor review. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Proposed Implementation: &amp;lt;br&amp;gt;&lt;br /&gt;
For the above-mentioned flow, the files to be edited will be as follows:&amp;lt;br&amp;gt;&lt;br /&gt;
1. app/views/assignments/list_submissions.html.erb:&amp;lt;br&amp;gt;&lt;br /&gt;
This view file refers to the page in the above screenshot. This file will be edited to check whether the deadline for the current assignment has been passed, and accordingly it will display either of the 2 options denoted above.&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:List1.png&amp;diff=128388</id>
		<title>File:List1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:List1.png&amp;diff=128388"/>
		<updated>2019-11-11T01:48:42Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=128387</id>
		<title>CSC/ECE 517 Fall 2019 - E1985. Let course staff and students do reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1985._Let_course_staff_and_students_do_reviews&amp;diff=128387"/>
		<updated>2019-11-11T01:48:06Z</updated>

		<summary type="html">&lt;p&gt;Apkulka2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
Peer review is a great way for students to learn about how well they have developed their application. However there are some problems with this:&lt;br /&gt;
* Sometimes, the peer reviews may not be thorough and the team/person's work reviewed might not reflect the actual status of the development.&lt;br /&gt;
* The reviewer might not know how well they are reviewing the peers work. They might not entirely know what tone to use or what suggestion to make. &lt;br /&gt;
&lt;br /&gt;
By letting course staff perform reviews as well, the reviewer and the reviewee both benefit, improving the overall learning experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Current scenario ===&lt;br /&gt;
&lt;br /&gt;
===Issue : Method to check if user is instructor / TA for selected course === &lt;br /&gt;
Currently, there is no method which checks if the user is an instructor / TA for the selected course (namely a course staff member) Need : This method is required for redirection of pages which is dependent on the user role. Also, it is required to identify if the review is performed by the course staff. &amp;lt;br&amp;gt;&lt;br /&gt;
Proposed implementation : A new helper file named course_staff_helper.rb will be created in expertiza/helpers/ which will consist a method which checks if the user is a course staff member. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA/Instructor to add himself as a participant ===&lt;br /&gt;
Currently instructors and TA's can add themselves as participants. The teaching staff reviewing a previous project thought this might be a bad idea. Here's what they said about it in our project description. &amp;quot;It adds instructor to the assgt. as a participant.  This is probably not a good idea, because the instructor can review everyone, independent of what reviewer-assignment mechanism was in use.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
I need to find out how doing a review works. I'm guessing by adding the instructor as a participant makes it easy to do a review. If we don't tell let the instructor add themselves as a participant then we may need to add code in the part for setting up reviews. &lt;br /&gt;
&lt;br /&gt;
We will need a link in the list_submissions_.html.erb for &amp;quot;perform review&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Issue: Allow TA/Instructor to perform review of student assignments ===&lt;br /&gt;
Current Scenario:&amp;lt;br&amp;gt;&lt;br /&gt;
Currently, instructors and TA's cannot perform reviews. Previous attempts were made but they either complicated the code or did not pass the Travis CI. For this particular task, the following points describe how the current scenario looks and what needs to be improved/changed about it. The page below is the “View Submissions” page when logged in as an instructor. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:C:\Users\DELL\Desktop\list1.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The 2nd column consists of the title name with the link to “Assign Grade.” This is the part which we will have to modify. The link under the project title should be:&amp;lt;br&amp;gt;&lt;br /&gt;
1. “Perform Review,” until the deadline for the assignment hasn’t been reached. If he/she has already started the review, the link will be modified to “Edit Review,” until they don’t submit it. &amp;lt;br&amp;gt;&lt;br /&gt;
2. “Assign Grade,” after the deadline of the assignment passes. &amp;lt;br&amp;gt;&lt;br /&gt;
When clicked on “Perform Review”/”Edit Review,” it should direct to the review page seen by the students, and be able to perform the review. Thus it will direct the page to the response#new page or response#edit page respectively.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Need: &amp;lt;br&amp;gt;&lt;br /&gt;
This functionality is needed so that the instructors can easily perform submission reviews which can also be viewed by the students. Also for future purposes, other student reviews can be benchmarked against an instructor review. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Proposed Implementation: &amp;lt;br&amp;gt;&lt;br /&gt;
For the above-mentioned flow, the files to be edited will be as follows:&amp;lt;br&amp;gt;&lt;br /&gt;
1. app/views/assignments/list_submissions.html.erb:&amp;lt;br&amp;gt;&lt;br /&gt;
This view file refers to the page in the above screenshot. This file will be edited to check whether the deadline for the current assignment has been passed, and accordingly it will display either of the 2 options denoted above.&lt;/div&gt;</summary>
		<author><name>Apkulka2</name></author>
	</entry>
</feed>