<?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=Mkhan8</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=Mkhan8"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Mkhan8"/>
	<updated>2026-08-09T11:28:37Z</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=125126</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=125126"/>
		<updated>2019-08-23T03:08:37Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: removed video link&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 the typical Use Cases in a self service machine. 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 expands on how to do this and also provides the UML diagrams which depict the interaction between the users and system through the use case&lt;br /&gt;
  &lt;br /&gt;
* [http://www.cloudbus.org/~raj/254/Lectures/RajUML2.pdf Self-Service Machine (page-3)]&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>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki2_4_2q&amp;diff=125125</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=125125"/>
		<updated>2019-08-22T15:27:26Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: update the links/added new external Links&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 MVC[https://www.youtube.com/watch?v=DUg2SWWK18I (model-view-controller)]. 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 the typical Use Cases in a self service machine. 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 expands on how to do this and also provides the UML diagrams which depict the interaction between the users and system through the use case&lt;br /&gt;
  &lt;br /&gt;
* [http://www.cloudbus.org/~raj/254/Lectures/RajUML2.pdf Self-Service Machine (page-3)]&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;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki2_4_2q&amp;diff=125124</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=125124"/>
		<updated>2019-08-22T14:38:17Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: &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 MVC[https://www.youtube.com/watch?v=DUg2SWWK18I (model-view-controller)]. 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;
&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 [http://www.gatherspace.com/static/use_case_example.html Writing Effective Use Cases].[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 the typical Use Cases in a self service machine. 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 expands on how to do this and also provides the UML diagrams which depict the interaction between the users and system through the use case&lt;br /&gt;
  &lt;br /&gt;
* [http://www.cloudbus.org/~raj/254/Lectures/RajUML2.pdf Self-Service Machine (page-3)]&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;
&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] [http://www.gatherspace.com/static/use_case_example.html#1 Writing Effective Use Cases]&lt;br /&gt;
* [5] [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;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki2_4_2q&amp;diff=125123</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=125123"/>
		<updated>2019-08-22T13:49:53Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: &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 MVC(model-view-controller). 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;
&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 [http://www.gatherspace.com/static/use_case_example.html Writing Effective Use Cases].[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 the typical Use Cases in a self service machine. 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 expands on how to do this and also provides the UML diagrams which depict the interaction between the users and system through the use case&lt;br /&gt;
  &lt;br /&gt;
* [http://www.cloudbus.org/~raj/254/Lectures/RajUML2.pdf Self-Service Machine (page-3)]&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;
&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] [http://www.gatherspace.com/static/use_case_example.html#1 Writing Effective Use Cases]&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;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E1860_ISSUE1.PNG&amp;diff=120374</id>
		<title>File:E1860 ISSUE1.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E1860_ISSUE1.PNG&amp;diff=120374"/>
		<updated>2018-11-20T21:50:17Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: uploaded a new version of &amp;amp;quot;File:E1860 ISSUE1.PNG&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:1860_UI_MOCK_Issue3.PNG&amp;diff=120373</id>
		<title>File:1860 UI MOCK Issue3.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:1860_UI_MOCK_Issue3.PNG&amp;diff=120373"/>
		<updated>2018-11-20T21:48:01Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: uploaded a new version of &amp;amp;quot;File:1860 UI MOCK Issue3.PNG&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:1860_UI_MOCK_Issue3.PNG&amp;diff=120372</id>
		<title>File:1860 UI MOCK Issue3.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:1860_UI_MOCK_Issue3.PNG&amp;diff=120372"/>
		<updated>2018-11-20T21:47:40Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: uploaded a new version of &amp;amp;quot;File:1860 UI MOCK Issue3.PNG&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120371</id>
		<title>CSC/ECE 517 Fall 2018/E1860 Improvements to staggered deadline</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120371"/>
		<updated>2018-11-20T21:46:05Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: /* Add Colors to the Graded Reviews */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
'''Staggered Deadline Assignment''' is an assignment which can have different topics listed under it and each of these topics have their independent submission and review deadline. Topic's deadline can be the same as parent assignment or independent to it . Such assignments are useful when the class material is more sequential and instructor wants students to complete assignment as and when a topic gets covered in the class. For example it wouldn't make sense to write a paper on a topic from Chapter 4, until the class had covered Chapter 4.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
==== Staggered-deadline topic available for selection past its deadline====&lt;br /&gt;
&lt;br /&gt;
This issue occurs when a '''Topic''' is created with multiple slots. If the topic is not selected for the first round of topics(assignment) or all the slots did not get filled up, It is still available for selection in the subsequent rounds. If a team selects the topic in a later round, they are not able to submit their work as the submission deadline is already over. &lt;br /&gt;
If the topic had only one slot which remained unselected, instructor can change the deadline for that topic to match the new deadlines, but for topics with multiple slots, if the deadline is extended, the teams who worked on this topic in the previous round can submit/review the topic again. This should not happen &lt;br /&gt;
&lt;br /&gt;
====Manual submission and review deadline entry required for all topics====&lt;br /&gt;
&lt;br /&gt;
When creating a topic an instructor is required to enter review and submission deadlines for all the topics. To reduce the manual we want to allow the instructor to apply one deadline entry to a set of topics and also let the system calculate subsequent dates for subsequent project phases like review and re-submission, based on an initial deadline entry. Instructor should also have the ability to edit each of those deadlines independently incase he wants to change a particular deadline of a topic.&lt;br /&gt;
&lt;br /&gt;
====New submissions not identifiable among pool of already graded entries====&lt;br /&gt;
&lt;br /&gt;
There is no way to identify new submissions or reviews are new since grading was last done. The '''Submissions''' and '''Reviews''' should appear in different color before and after they are graded. The color scheme should be compatible with the one used for review report. ie '''Red''' indicates incomplete Reviews, '''Blue''' indicates reviews that have not been graded and '''Brown''' for reviews that have grade assigned to them&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
&lt;br /&gt;
===Issue 1===&lt;br /&gt;
==== Solution :Prevent Students from Signing up for topics past deadline====&lt;br /&gt;
&lt;br /&gt;
Students can be prevented from signing up for a topic whose submission deadline has passed. Currently this is happening, but only in case of assignments/topics which do not have staggered deadlines. &lt;br /&gt;
&lt;br /&gt;
'''sign_up_sheet_controller.rb'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unless assignment.due_dates.find_by_deadline_type_id(1).nil?&lt;br /&gt;
   if !assignment.staggered_deadline? and assignment.due_dates.find_by_deadline_type_id(1).due_at &amp;lt; Time.now&lt;br /&gt;
   @show_actions = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
A Similar logic can be implemented for topic where we fetch the deadline for a '''topic''' by implementing a function and then determine whether to display that topic or not. The same function could also be modified to achieve the desired results.&lt;br /&gt;
&lt;br /&gt;
[[File:E1860_ISSUE1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''MOCK UI'''&lt;br /&gt;
&lt;br /&gt;
[[File:E1860_UI_MOCK_ISSUE1.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Issue 2===&lt;br /&gt;
==== Add a new setting for Staggered Assignments ====&lt;br /&gt;
&lt;br /&gt;
This can be achieved by adding a new setting to the staggered deadline assignments so that while creating the assignment an instructor can specify how much gap(days) is needed between the different rounds of submission and review. &lt;br /&gt;
&lt;br /&gt;
Data will be stored in a new table and only staggered assignments will have this setting. Rationale behind not storing this data in the current '''Assignments''' is to avoid usage of space and prevent any error to the existing setup. Once we have this data, we can calculate all the deadlines for a topic once the instructor has entered the starting deadline. This will reduce a lot of manual work and this setting can be changed any time by the instructor/TA.&lt;br /&gt;
&lt;br /&gt;
==== Add Dropdowns for Relative Dates ====&lt;br /&gt;
&lt;br /&gt;
Changes will have to be made to the due_dates_table in the _due_dates.html.erb file. Changes have to be made to the datetime_picker_roundtype_roundnumber id. We could provide the user with a drop down menu listing a possible set of relative dates to chose from, in addition to the ability to manually enter a custom date. This could be done on the view side by modifying the date fields and adding the necessary JavaScript so that appropriate date responses are filled into the corresponding date fields when an option is chose from the dropdown menu.&lt;br /&gt;
&lt;br /&gt;
[[File:Screen_Shot_2018-11-16_at_10.06.55_AM.png]]&lt;br /&gt;
&lt;br /&gt;
MOCK UI- Issue 2:&lt;br /&gt;
&lt;br /&gt;
[[File:Issue2_UI.png]]&lt;br /&gt;
&lt;br /&gt;
=== Issue 3===&lt;br /&gt;
==== Add Colors to the Graded Reviews ====&lt;br /&gt;
&lt;br /&gt;
Below color coding will be used to indicate the current stage of the reviews :&lt;br /&gt;
 &lt;br /&gt;
Red - Incomplete Review&lt;br /&gt;
&lt;br /&gt;
Blue - Grade Unassigned to the Review&lt;br /&gt;
&lt;br /&gt;
Brown - Review Complete/ Grade Assigned&lt;br /&gt;
&lt;br /&gt;
This will be achieved by passing the colors of the reviews to _review_report.html.erb.&lt;br /&gt;
&lt;br /&gt;
'''UI MOCK'''&lt;br /&gt;
&lt;br /&gt;
[[File:1860_UI_MOCK_Issue3.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''''Issue 1: # Don’t allow students to sign up for topics that has past due dates.'''''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Pre-steps:&lt;br /&gt;
&lt;br /&gt;
:   1.  Login as an instructor. &lt;br /&gt;
:   2. Edit any assignment under the General tab, mark it as staggered deadline assignment.&lt;br /&gt;
:  3. Provide deadlines for few topics in the past.&lt;br /&gt;
:  4. Impersonate a student.&lt;br /&gt;
:5. In the Assignments section, Click on Sign-up sheet.&lt;br /&gt;
:6. verify topics available for sign-up.&lt;br /&gt;
&lt;br /&gt;
;Data and Database Integrity Testing:  None&lt;br /&gt;
;Functional Testing:&lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. The modified topics should not be available for signup.&lt;br /&gt;
:2. The unmodified topics with deadlines in future should be available for signup.&lt;br /&gt;
;User Interface Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. A green tick mark should be available under ‘Actions’ tab for topics with deadlines in the future.&lt;br /&gt;
:2. Actions’ tab should be empty for topics with deadlines in the past.&lt;br /&gt;
;Performance Testing: None&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''''Issue 2: # Provide default deadline options for assignments with staggered deadlines.'''''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Pre-steps:&lt;br /&gt;
&lt;br /&gt;
:   1.  Login as an instructor. &lt;br /&gt;
:   2. Go to assignments and either create a new one or edit a pre-existing one. &lt;br /&gt;
:  3.	Change assignment type to staggered deadline.&lt;br /&gt;
:  4.	Type in a submission deadline for Round 1-Submission. &lt;br /&gt;
:5.	Verify that other due dates are auto populated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;'''Case 1: Instructor wants to assign default deadlines to a staggered assignment:'''&lt;br /&gt;
; Steps:&lt;br /&gt;
&lt;br /&gt;
:   1.	Click save.&lt;br /&gt;
;Data and Database Integrity Testing: &lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. Verify all deadlines are updated in due_at field in due_dates tables for corresponding deadline types after saving the populated values. &lt;br /&gt;
&lt;br /&gt;
;Functional Testing:&lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. Deadlines auto-populated for other Round N should be in correspondence with default offset days between rounds.&lt;br /&gt;
:2. The auto populated deadline should reflect in student assignment section. &lt;br /&gt;
;User Interface Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. The auto-population triggered on to corresponding fields by JavaScript should be correct.&lt;br /&gt;
:2. The format of date auto populated should be as per current system.&lt;br /&gt;
;Performance Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. The response time to auto populate the dates to other rounds should be within 5 second latency.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;'''Case 2: Instructor wants to enter a custom deadline only for a particular round:'''&lt;br /&gt;
; Steps:&lt;br /&gt;
&lt;br /&gt;
:   1.	Choose offset value from initial vale from dropdown option available against each deadline type.&lt;br /&gt;
;Data and Database Integrity Testing: &lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. Verify all deadlines are updated in due_at field in due_dates tables for corresponding deadline types after saving the populated values. &lt;br /&gt;
&lt;br /&gt;
;Functional Testing:&lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. The auto populated deadline values are changed as per selected offset days from drop-down.&lt;br /&gt;
:2. Same should reflect in student assignment section. &lt;br /&gt;
;User Interface Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. The triggered change on to corresponding fields by JavaScript should be correct..&lt;br /&gt;
:2. The format of date auto populated should be as per current system.&lt;br /&gt;
;Performance Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. The response time to change the dates to other rounds should be within 5 second latency.&lt;br /&gt;
&lt;br /&gt;
;'''Case 3: Entering an incorrect date when manually entering a deadline for a particular round for a staggered deadline. When the user decides to enter a deadline manually rather than choosing the relative deadlines from the dropdown, care must be taken to ensure that the date is in the correct form:'''&lt;br /&gt;
; Pre-steps:&lt;br /&gt;
&lt;br /&gt;
:   1.  Impersonate a student. &lt;br /&gt;
:   2. Go to assignments and click on others work. &lt;br /&gt;
:  3.	Request multiple reviews.&lt;br /&gt;
:  4.	Submit one review. &lt;br /&gt;
:5.	Do not start another review and have another review incomplete.&lt;br /&gt;
:6. Impersonate Instructor.&lt;br /&gt;
:7.  Go assignments page and view review report for this assignment for the impersonate student in step1.&lt;br /&gt;
:8. verify the results.&lt;br /&gt;
&lt;br /&gt;
;User Interface Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. Incomplete reviews are marked Red.&lt;br /&gt;
:2. Ungraded reviews are marked Blue.&lt;br /&gt;
:3. Graded reviews are marked Brown.&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:1860_UI_MOCK_Issue3.PNG&amp;diff=120370</id>
		<title>File:1860 UI MOCK Issue3.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:1860_UI_MOCK_Issue3.PNG&amp;diff=120370"/>
		<updated>2018-11-20T21:44:47Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E1860_UI_MOCK_ISSUE1.PNG&amp;diff=120359</id>
		<title>File:E1860 UI MOCK ISSUE1.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E1860_UI_MOCK_ISSUE1.PNG&amp;diff=120359"/>
		<updated>2018-11-20T20:53:46Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: uploaded a new version of &amp;amp;quot;File:E1860 UI MOCK ISSUE1.PNG&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E1860_UI_MOCK_ISSUE1.PNG&amp;diff=120358</id>
		<title>File:E1860 UI MOCK ISSUE1.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E1860_UI_MOCK_ISSUE1.PNG&amp;diff=120358"/>
		<updated>2018-11-20T20:53:02Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: uploaded a new version of &amp;amp;quot;File:E1860 UI MOCK ISSUE1.PNG&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E1860_UI_MOCK_ISSUE1.PNG&amp;diff=120357</id>
		<title>File:E1860 UI MOCK ISSUE1.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E1860_UI_MOCK_ISSUE1.PNG&amp;diff=120357"/>
		<updated>2018-11-20T20:52:11Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: uploaded a new version of &amp;amp;quot;File:E1860 UI MOCK ISSUE1.PNG&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120356</id>
		<title>CSC/ECE 517 Fall 2018/E1860 Improvements to staggered deadline</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120356"/>
		<updated>2018-11-20T20:51:32Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: /* Solution :Prevent Students from Signing up for topics past deadline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
'''Staggered Deadline Assignment''' is an assignment which can have different topics listed under it and each of these topics have their independent submission and review deadline. Topic's deadline can be the same as parent assignment or independent to it . Such assignments are useful when the class material is more sequential and instructor wants students to complete assignment as and when a topic gets covered in the class. For example it wouldn't make sense to write a paper on a topic from Chapter 4, until the class had covered Chapter 4.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
==== Staggered-deadline topic available for selection past its deadline====&lt;br /&gt;
&lt;br /&gt;
This issue occurs when a '''Topic''' is created with multiple slots. If the topic is not selected for the first round of topics(assignment) or all the slots did not get filled up, It is still available for selection in the subsequent rounds. If a team selects the topic in a later round, they are not able to submit their work as the submission deadline is already over. &lt;br /&gt;
If the topic had only one slot which remained unselected, instructor can change the deadline for that topic to match the new deadlines, but for topics with multiple slots, if the deadline is extended, the teams who worked on this topic in the previous round can submit/review the topic again. This should not happen &lt;br /&gt;
&lt;br /&gt;
====Manual submission and review deadline entry required for all topics====&lt;br /&gt;
&lt;br /&gt;
When creating a topic an instructor is required to enter review and submission deadlines for all the topics. To reduce the manual we want to allow the instructor to apply one deadline entry to a set of topics and also let the system calculate subsequent dates for subsequent project phases like review and re-submission, based on an initial deadline entry. Instructor should also have the ability to edit each of those deadlines independently incase he wants to change a particular deadline of a topic.&lt;br /&gt;
&lt;br /&gt;
====New submissions not identifiable among pool of already graded entries====&lt;br /&gt;
&lt;br /&gt;
There is no way to identify new submissions or reviews are new since grading was last done. The '''Submissions''' and '''Reviews''' should appear in different color before and after they are graded. The color scheme should be compatible with the one used for review report. ie '''Red''' indicates incomplete Reviews, '''Blue''' indicates reviews that have not been graded and '''Brown''' for reviews that have grade assigned to them&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
&lt;br /&gt;
===Issue 1===&lt;br /&gt;
==== Solution :Prevent Students from Signing up for topics past deadline====&lt;br /&gt;
&lt;br /&gt;
Students can be prevented from signing up for a topic whose submission deadline has passed. Currently this is happening, but only in case of assignments/topics which do not have staggered deadlines. &lt;br /&gt;
&lt;br /&gt;
'''sign_up_sheet_controller.rb'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unless assignment.due_dates.find_by_deadline_type_id(1).nil?&lt;br /&gt;
   if !assignment.staggered_deadline? and assignment.due_dates.find_by_deadline_type_id(1).due_at &amp;lt; Time.now&lt;br /&gt;
   @show_actions = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
A Similar logic can be implemented for topic where we fetch the deadline for a '''topic''' by implementing a function and then determine whether to display that topic or not. The same function could also be modified to achieve the desired results.&lt;br /&gt;
&lt;br /&gt;
[[File:E1860_ISSUE1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''MOCK UI'''&lt;br /&gt;
&lt;br /&gt;
[[File:E1860_UI_MOCK_ISSUE1.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Issue 2===&lt;br /&gt;
==== Add a new setting for Staggered Assignments ====&lt;br /&gt;
&lt;br /&gt;
This can be achieved by adding a new setting to the staggered deadline assignments so that while creating the assignment an instructor can specify how much gap(days) is needed between the different rounds of submission and review. &lt;br /&gt;
&lt;br /&gt;
Data will be stored in a new table and only staggered assignments will have this setting. Rationale behind not storing this data in the current '''Assignments''' is to avoid usage of space and prevent any error to the existing setup. Once we have this data, we can calculate all the deadlines for a topic once the instructor has entered the starting deadline. This will reduce a lot of manual work and this setting can be changed any time by the instructor/TA.&lt;br /&gt;
&lt;br /&gt;
==== Add Dropdowns for Relative Dates ====&lt;br /&gt;
&lt;br /&gt;
Changes will have to be made to the due_dates_table in the _due_dates.html.erb file. Changes have to be made to the datetime_picker_roundtype_roundnumber id. We could provide the user with a drop down menu listing a possible set of relative dates to chose from, in addition to the ability to manually enter a custom date. This could be done on the view side by modifying the date fields and adding the necessary JavaScript so that appropriate date responses are filled into the corresponding date fields when an option is chose from the dropdown menu.&lt;br /&gt;
&lt;br /&gt;
[[File:Screen_Shot_2018-11-16_at_10.06.55_AM.png]]&lt;br /&gt;
&lt;br /&gt;
=== Issue 3===&lt;br /&gt;
==== Add Colors to the Graded Reviews ====&lt;br /&gt;
&lt;br /&gt;
Below color coding will be used to indicate the current stage of the reviews :&lt;br /&gt;
 &lt;br /&gt;
Red - Incomplete Review&lt;br /&gt;
&lt;br /&gt;
Blue - Grade Unassigned to the Review&lt;br /&gt;
&lt;br /&gt;
Brown - Review Complete/ Grade Assigned&lt;br /&gt;
&lt;br /&gt;
This will be achieved by passing the colors of the reviews to _review_report.html.erb.&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''''Issue 1: # Don’t allow students to sign up for topics that has past due dates.'''''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Pre-steps:&lt;br /&gt;
&lt;br /&gt;
:   1.  Login as an instructor. &lt;br /&gt;
:   2. Edit any assignment under the General tab, mark it as staggered deadline assignment.&lt;br /&gt;
:  3. Provide deadlines for few topics in the past.&lt;br /&gt;
:  4. Impersonate a student.&lt;br /&gt;
:5. In the Assignments section, Click on Sign-up sheet.&lt;br /&gt;
:6. verify topics available for sign-up.&lt;br /&gt;
&lt;br /&gt;
;Data and Database Integrity Testing:  None&lt;br /&gt;
;Functional Testing:&lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. The modified topics should not be available for signup.&lt;br /&gt;
:2. The unmodified topics with deadlines in future should be available for signup.&lt;br /&gt;
;User Interface Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. A green tick mark should be available under ‘Actions’ tab for topics with deadlines in the future.&lt;br /&gt;
:2. Actions’ tab should be empty for topics with deadlines in the past.&lt;br /&gt;
;Performance Testing: None&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''''Issue 2: # Provide default deadline options for assignments with staggered deadlines.'''''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Pre-steps:&lt;br /&gt;
&lt;br /&gt;
:   1.  Login as an instructor. &lt;br /&gt;
:   2. Go to assignments and either create a new one or edit a pre-existing one. &lt;br /&gt;
:  3.	Change assignment type to staggered deadline.&lt;br /&gt;
:  4.	Type in a submission deadline for Round 1-Submission. &lt;br /&gt;
:5.	Verify that other due dates are auto populated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;'''Case 1: Instructor wants to assign default deadlines to a staggered assignment:'''&lt;br /&gt;
; Steps:&lt;br /&gt;
&lt;br /&gt;
:   1.	Click save.&lt;br /&gt;
;Data and Database Integrity Testing: &lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. Verify all deadlines are updated in due_at field in due_dates tables for corresponding deadline types after saving the populated values. &lt;br /&gt;
&lt;br /&gt;
;Functional Testing:&lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. Deadlines auto-populated for other Round N should be in correspondence with default offset days between rounds.&lt;br /&gt;
:2. The auto populated deadline should reflect in student assignment section. &lt;br /&gt;
;User Interface Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. The auto-population triggered on to corresponding fields by JavaScript should be correct.&lt;br /&gt;
:2. The format of date auto populated should be as per current system.&lt;br /&gt;
;Performance Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. The response time to auto populate the dates to other rounds should be within 5 second latency.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;'''Case 2: Instructor wants to enter a custom deadline only for a particular round:'''&lt;br /&gt;
; Steps:&lt;br /&gt;
&lt;br /&gt;
:   1.	Choose offset value from initial vale from dropdown option available against each deadline type.&lt;br /&gt;
;Data and Database Integrity Testing: &lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. Verify all deadlines are updated in due_at field in due_dates tables for corresponding deadline types after saving the populated values. &lt;br /&gt;
&lt;br /&gt;
;Functional Testing:&lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. The auto populated deadline values are changed as per selected offset days from drop-down.&lt;br /&gt;
:2. Same should reflect in student assignment section. &lt;br /&gt;
;User Interface Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. The triggered change on to corresponding fields by JavaScript should be correct..&lt;br /&gt;
:2. The format of date auto populated should be as per current system.&lt;br /&gt;
;Performance Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. The response time to change the dates to other rounds should be within 5 second latency.&lt;br /&gt;
&lt;br /&gt;
;'''Case 3: Entering an incorrect date when manually entering a deadline for a particular round for a staggered deadline. When the user decides to enter a deadline manually rather than choosing the relative deadlines from the dropdown, care must be taken to ensure that the date is in the correct form:'''&lt;br /&gt;
; Pre-steps:&lt;br /&gt;
&lt;br /&gt;
:   1.  Impersonate a student. &lt;br /&gt;
:   2. Go to assignments and click on others work. &lt;br /&gt;
:  3.	Request multiple reviews.&lt;br /&gt;
:  4.	Submit one review. &lt;br /&gt;
:5.	Do not start another review and have another review incomplete.&lt;br /&gt;
:6. Impersonate Instructor.&lt;br /&gt;
:7.  Go assignments page and view review report for this assignment for the impersonate student in step1.&lt;br /&gt;
:8. verify the results.&lt;br /&gt;
&lt;br /&gt;
;User Interface Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. Incomplete reviews are marked Red.&lt;br /&gt;
:2. Ungraded reviews are marked Blue.&lt;br /&gt;
:3. Graded reviews are marked Brown.&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E1860_UI_MOCK_ISSUE1.PNG&amp;diff=120354</id>
		<title>File:E1860 UI MOCK ISSUE1.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E1860_UI_MOCK_ISSUE1.PNG&amp;diff=120354"/>
		<updated>2018-11-20T20:51:00Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120353</id>
		<title>CSC/ECE 517 Fall 2018/E1860 Improvements to staggered deadline</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120353"/>
		<updated>2018-11-20T20:50:41Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: /* Solution :Prevent Students from Signing up for topics past deadline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
'''Staggered Deadline Assignment''' is an assignment which can have different topics listed under it and each of these topics have their independent submission and review deadline. Topic's deadline can be the same as parent assignment or independent to it . Such assignments are useful when the class material is more sequential and instructor wants students to complete assignment as and when a topic gets covered in the class. For example it wouldn't make sense to write a paper on a topic from Chapter 4, until the class had covered Chapter 4.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
==== Staggered-deadline topic available for selection past its deadline====&lt;br /&gt;
&lt;br /&gt;
This issue occurs when a '''Topic''' is created with multiple slots. If the topic is not selected for the first round of topics(assignment) or all the slots did not get filled up, It is still available for selection in the subsequent rounds. If a team selects the topic in a later round, they are not able to submit their work as the submission deadline is already over. &lt;br /&gt;
If the topic had only one slot which remained unselected, instructor can change the deadline for that topic to match the new deadlines, but for topics with multiple slots, if the deadline is extended, the teams who worked on this topic in the previous round can submit/review the topic again. This should not happen &lt;br /&gt;
&lt;br /&gt;
====Manual submission and review deadline entry required for all topics====&lt;br /&gt;
&lt;br /&gt;
When creating a topic an instructor is required to enter review and submission deadlines for all the topics. To reduce the manual we want to allow the instructor to apply one deadline entry to a set of topics and also let the system calculate subsequent dates for subsequent project phases like review and re-submission, based on an initial deadline entry. Instructor should also have the ability to edit each of those deadlines independently incase he wants to change a particular deadline of a topic.&lt;br /&gt;
&lt;br /&gt;
====New submissions not identifiable among pool of already graded entries====&lt;br /&gt;
&lt;br /&gt;
There is no way to identify new submissions or reviews are new since grading was last done. The '''Submissions''' and '''Reviews''' should appear in different color before and after they are graded. The color scheme should be compatible with the one used for review report. ie '''Red''' indicates incomplete Reviews, '''Blue''' indicates reviews that have not been graded and '''Brown''' for reviews that have grade assigned to them&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
&lt;br /&gt;
===Issue 1===&lt;br /&gt;
==== Solution :Prevent Students from Signing up for topics past deadline====&lt;br /&gt;
&lt;br /&gt;
Students can be prevented from signing up for a topic whose submission deadline has passed. Currently this is happening, but only in case of assignments/topics which do not have staggered deadlines. &lt;br /&gt;
&lt;br /&gt;
'''sign_up_sheet_controller.rb'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unless assignment.due_dates.find_by_deadline_type_id(1).nil?&lt;br /&gt;
   if !assignment.staggered_deadline? and assignment.due_dates.find_by_deadline_type_id(1).due_at &amp;lt; Time.now&lt;br /&gt;
   @show_actions = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
A Similar logic can be implemented for topic where we fetch the deadline for a '''topic''' by implementing a function and then determine whether to display that topic or not. The same function could also be modified to achieve the desired results.&lt;br /&gt;
&lt;br /&gt;
[[File:E1860_ISSUE1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''MOCK UI'''&lt;br /&gt;
&lt;br /&gt;
[[File:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Issue 2===&lt;br /&gt;
==== Add a new setting for Staggered Assignments ====&lt;br /&gt;
&lt;br /&gt;
This can be achieved by adding a new setting to the staggered deadline assignments so that while creating the assignment an instructor can specify how much gap(days) is needed between the different rounds of submission and review. &lt;br /&gt;
&lt;br /&gt;
Data will be stored in a new table and only staggered assignments will have this setting. Rationale behind not storing this data in the current '''Assignments''' is to avoid usage of space and prevent any error to the existing setup. Once we have this data, we can calculate all the deadlines for a topic once the instructor has entered the starting deadline. This will reduce a lot of manual work and this setting can be changed any time by the instructor/TA.&lt;br /&gt;
&lt;br /&gt;
==== Add Dropdowns for Relative Dates ====&lt;br /&gt;
&lt;br /&gt;
Changes will have to be made to the due_dates_table in the _due_dates.html.erb file. Changes have to be made to the datetime_picker_roundtype_roundnumber id. We could provide the user with a drop down menu listing a possible set of relative dates to chose from, in addition to the ability to manually enter a custom date. This could be done on the view side by modifying the date fields and adding the necessary JavaScript so that appropriate date responses are filled into the corresponding date fields when an option is chose from the dropdown menu.&lt;br /&gt;
&lt;br /&gt;
[[File:Screen_Shot_2018-11-16_at_10.06.55_AM.png]]&lt;br /&gt;
&lt;br /&gt;
=== Issue 3===&lt;br /&gt;
==== Add Colors to the Graded Reviews ====&lt;br /&gt;
&lt;br /&gt;
Below color coding will be used to indicate the current stage of the reviews :&lt;br /&gt;
 &lt;br /&gt;
Red - Incomplete Review&lt;br /&gt;
&lt;br /&gt;
Blue - Grade Unassigned to the Review&lt;br /&gt;
&lt;br /&gt;
Brown - Review Complete/ Grade Assigned&lt;br /&gt;
&lt;br /&gt;
This will be achieved by passing the colors of the reviews to _review_report.html.erb.&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''''Issue 1: # Don’t allow students to sign up for topics that has past due dates.'''''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Pre-steps:&lt;br /&gt;
&lt;br /&gt;
:   1.  Login as an instructor. &lt;br /&gt;
:   2. Edit any assignment under the General tab, mark it as staggered deadline assignment.&lt;br /&gt;
:  3. Provide deadlines for few topics in the past.&lt;br /&gt;
:  4. Impersonate a student.&lt;br /&gt;
:5. In the Assignments section, Click on Sign-up sheet.&lt;br /&gt;
:6. verify topics available for sign-up.&lt;br /&gt;
&lt;br /&gt;
;Data and Database Integrity Testing:  None&lt;br /&gt;
;Functional Testing:&lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. The modified topics should not be available for signup.&lt;br /&gt;
:2. The unmodified topics with deadlines in future should be available for signup.&lt;br /&gt;
;User Interface Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. A green tick mark should be available under ‘Actions’ tab for topics with deadlines in the future.&lt;br /&gt;
:2. Actions’ tab should be empty for topics with deadlines in the past.&lt;br /&gt;
;Performance Testing: None&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''''Issue 2: # Provide default deadline options for assignments with staggered deadlines.'''''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Pre-steps:&lt;br /&gt;
&lt;br /&gt;
:   1.  Login as an instructor. &lt;br /&gt;
:   2. Go to assignments and either create a new one or edit a pre-existing one. &lt;br /&gt;
:  3.	Change assignment type to staggered deadline.&lt;br /&gt;
:  4.	Type in a submission deadline for Round 1-Submission. &lt;br /&gt;
:5.	Verify that other due dates are auto populated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;'''Case 1: Instructor wants to assign default deadlines to a staggered assignment:'''&lt;br /&gt;
; Steps:&lt;br /&gt;
&lt;br /&gt;
:   1.	Click save.&lt;br /&gt;
;Data and Database Integrity Testing: &lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. Verify all deadlines are updated in due_at field in due_dates tables for corresponding deadline types after saving the populated values. &lt;br /&gt;
&lt;br /&gt;
;Functional Testing:&lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. Deadlines auto-populated for other Round N should be in correspondence with default offset days between rounds.&lt;br /&gt;
:2. The auto populated deadline should reflect in student assignment section. &lt;br /&gt;
;User Interface Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. The auto-population triggered on to corresponding fields by JavaScript should be correct.&lt;br /&gt;
:2. The format of date auto populated should be as per current system.&lt;br /&gt;
;Performance Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. The response time to auto populate the dates to other rounds should be within 5 second latency.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;'''Case 2: Instructor wants to enter a custom deadline only for a particular round:'''&lt;br /&gt;
; Steps:&lt;br /&gt;
&lt;br /&gt;
:   1.	Choose offset value from initial vale from dropdown option available against each deadline type.&lt;br /&gt;
;Data and Database Integrity Testing: &lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. Verify all deadlines are updated in due_at field in due_dates tables for corresponding deadline types after saving the populated values. &lt;br /&gt;
&lt;br /&gt;
;Functional Testing:&lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. The auto populated deadline values are changed as per selected offset days from drop-down.&lt;br /&gt;
:2. Same should reflect in student assignment section. &lt;br /&gt;
;User Interface Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. The triggered change on to corresponding fields by JavaScript should be correct..&lt;br /&gt;
:2. The format of date auto populated should be as per current system.&lt;br /&gt;
;Performance Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. The response time to change the dates to other rounds should be within 5 second latency.&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120342</id>
		<title>CSC/ECE 517 Fall 2018/E1860 Improvements to staggered deadline</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120342"/>
		<updated>2018-11-20T20:23:09Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: /* Solution :Prevent Students from Signing up for topics past deadline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
'''Staggered Deadline Assignment''' is an assignment which can have different topics listed under it and each of these topics have their independent submission and review deadline. Topic's deadline can be the same as parent assignment or independent to it . Such assignments are useful when the class material is more sequential and instructor wants students to complete assignment as and when a topic gets covered in the class. For example it wouldn't make sense to write a paper on a topic from Chapter 4, until the class had covered Chapter 4.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
==== Staggered-deadline topic available for selection past its deadline====&lt;br /&gt;
&lt;br /&gt;
This issue occurs when a '''Topic''' is created with multiple slots. If the topic is not selected for the first round of topics(assignment) or all the slots did not get filled up, It is still available for selection in the subsequent rounds. If a team selects the topic in a later round, they are not able to submit their work as the submission deadline is already over. &lt;br /&gt;
If the topic had only one slot which remained unselected, instructor can change the deadline for that topic to match the new deadlines, but for topics with multiple slots, if the deadline is extended, the teams who worked on this topic in the previous round can submit/review the topic again. This should not happen &lt;br /&gt;
&lt;br /&gt;
====Manual submission and review deadline entry required for all topics====&lt;br /&gt;
&lt;br /&gt;
When creating a topic an instructor is required to enter review and submission deadlines for all the topics. To reduce the manual we want to allow the instructor to apply one deadline entry to a set of topics and also let the system calculate subsequent dates for subsequent project phases like review and re-submission, based on an initial deadline entry. Instructor should also have the ability to edit each of those deadlines independently incase he wants to change a particular deadline of a topic.&lt;br /&gt;
&lt;br /&gt;
====New submissions not identifiable among pool of already graded entries====&lt;br /&gt;
&lt;br /&gt;
There is no way to identify new submissions or reviews are new since grading was last done. The '''Submissions''' and '''Reviews''' should appear in different color before and after they are graded. The color scheme should be compatible with the one used for review report. ie '''Red''' indicates incomplete Reviews, '''Blue''' indicates reviews that have not been graded and '''Brown''' for reviews that have grade assigned to them&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
&lt;br /&gt;
===Issue 1===&lt;br /&gt;
==== Solution :Prevent Students from Signing up for topics past deadline====&lt;br /&gt;
&lt;br /&gt;
Students can be prevented from signing up for a topic whose submission deadline has passed. Currently this is happening, but only in case of assignments/topics which do not have staggered deadlines. &lt;br /&gt;
&lt;br /&gt;
'''sign_up_sheet_controller.rb'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unless assignment.due_dates.find_by_deadline_type_id(1).nil?&lt;br /&gt;
   if !assignment.staggered_deadline? and assignment.due_dates.find_by_deadline_type_id(1).due_at &amp;lt; Time.now&lt;br /&gt;
   @show_actions = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
A Similar logic can be implemented for topic where we fetch the deadline for a '''topic''' by implementing a function and then determine whether to display that topic or not. The same function could also be modified to achieve the desired results.&lt;br /&gt;
&lt;br /&gt;
[[File:E1860_ISSUE1.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Issue 2===&lt;br /&gt;
==== Add a new setting for Staggered Assignments ====&lt;br /&gt;
&lt;br /&gt;
This can be achieved by adding a new setting to the staggered deadline assignments so that while creating the assignment an instructor can specify how much gap(days) is needed between the different rounds of submission and review. &lt;br /&gt;
&lt;br /&gt;
Data will be stored in a new table and only staggered assignments will have this setting. Rationale behind not storing this data in the current '''Assignments''' is to avoid usage of space and prevent any error to the existing setup. Once we have this data, we can calculate all the deadlines for a topic once the instructor has entered the starting deadline. This will reduce a lot of manual work and this setting can be changed any time by the instructor/TA.&lt;br /&gt;
&lt;br /&gt;
==== Add Dropdowns for Relative Dates ====&lt;br /&gt;
&lt;br /&gt;
Changes will have to be made to the due_dates_table in the _due_dates.html.erb file. Changes have to be made to the datetime_picker_roundtype_roundnumber id. We could provide the user with a drop down menu listing a possible set of relative dates to chose from, in addition to the ability to manually enter a custom date. This could be done on the view side by modifying the date fields and adding the necessary JavaScript so that appropriate date responses are filled into the corresponding date fields when an option is chose from the dropdown menu.&lt;br /&gt;
&lt;br /&gt;
[[File:Screen_Shot_2018-11-16_at_10.06.55_AM.png]]&lt;br /&gt;
&lt;br /&gt;
=== Issue 3===&lt;br /&gt;
==== Add Colors to the Graded Reviews ====&lt;br /&gt;
&lt;br /&gt;
Below color coding will be used to indicate the current stage of the reviews :&lt;br /&gt;
 &lt;br /&gt;
Red - Incomplete Review&lt;br /&gt;
&lt;br /&gt;
Blue - Grade Unassigned to the Review&lt;br /&gt;
&lt;br /&gt;
Brown - Review Complete/ Grade Assigned&lt;br /&gt;
&lt;br /&gt;
This will be achieved by passing the colors of the reviews to _review_report.html.erb.&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''''Issue 1: # Don’t allow students to sign up for topics that has past due dates.'''''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Pre-steps:&lt;br /&gt;
&lt;br /&gt;
:   1.  Login as an instructor. &lt;br /&gt;
:   2. Edit any assignment under the General tab, mark it as staggered deadline assignment.&lt;br /&gt;
:  3. Provide deadlines for few topics in the past.&lt;br /&gt;
:  4. Impersonate a student.&lt;br /&gt;
:5. In the Assignments section, Click on Sign-up sheet.&lt;br /&gt;
:6. verify topics available for sign-up.&lt;br /&gt;
&lt;br /&gt;
;Data and Database Integrity Testing:  None&lt;br /&gt;
;Functional Testing:&lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. The modified topics should not be available for signup.&lt;br /&gt;
:2. The unmodified topics with deadlines in future should be available for signup.&lt;br /&gt;
;User Interface Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. A green tick mark should be available under ‘Actions’ tab for topics with deadlines in the future.&lt;br /&gt;
:2. Actions’ tab should be empty for topics with deadlines in the past.&lt;br /&gt;
;Performance Testing: None&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''''Issue 2: # Provide default deadline options for assignments with staggered deadlines.'''''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Pre-steps:&lt;br /&gt;
&lt;br /&gt;
:   1.  Login as an instructor. &lt;br /&gt;
:   2. Go to assignments and either create a new one or edit a pre-existing one. &lt;br /&gt;
:  3.	Change assignment type to staggered deadline.&lt;br /&gt;
:  4.	Type in a submission deadline for Round 1-Submission. &lt;br /&gt;
:5.	Verify that other due dates are auto populated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;'''Case 1: Instructor wants to assign default deadlines to a staggered assignment:'''&lt;br /&gt;
; Steps:&lt;br /&gt;
&lt;br /&gt;
:   1.	Click save.&lt;br /&gt;
;Data and Database Integrity Testing: &lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. Verify all deadlines are updated in due_at field in due_dates tables for corresponding deadline types after saving the populated values. &lt;br /&gt;
&lt;br /&gt;
;Functional Testing:&lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. Deadlines auto-populated for other Round N should be in correspondence with default offset days between rounds.&lt;br /&gt;
:2. The auto populated deadline should reflect in student assignment section. &lt;br /&gt;
;User Interface Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. The auto-population triggered on to corresponding fields by JavaScript should be correct.&lt;br /&gt;
:2. The format of date auto populated should be as per current system.&lt;br /&gt;
;Performance Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. The response time to auto populate the dates to other rounds should be within 5 second latency.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;'''Case 2: Instructor wants to enter a custom deadline only for a particular round:'''&lt;br /&gt;
; Steps:&lt;br /&gt;
&lt;br /&gt;
:   1.	Choose offset value from initial vale from dropdown option available against each deadline type.&lt;br /&gt;
;Data and Database Integrity Testing: &lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. Verify all deadlines are updated in due_at field in due_dates tables for corresponding deadline types after saving the populated values. &lt;br /&gt;
&lt;br /&gt;
;Functional Testing:&lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. The auto populated deadline values are changed as per selected offset days from drop-down.&lt;br /&gt;
:2. Same should reflect in student assignment section. &lt;br /&gt;
;User Interface Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. The triggered change on to corresponding fields by JavaScript should be correct..&lt;br /&gt;
:2. The format of date auto populated should be as per current system.&lt;br /&gt;
;Performance Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. The response time to change the dates to other rounds should be within 5 second latency.&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E1860_ISSUE1.PNG&amp;diff=120341</id>
		<title>File:E1860 ISSUE1.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E1860_ISSUE1.PNG&amp;diff=120341"/>
		<updated>2018-11-20T20:22:29Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue1.png&amp;diff=120340</id>
		<title>File:Issue1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue1.png&amp;diff=120340"/>
		<updated>2018-11-20T20:21:01Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: uploaded a new version of &amp;amp;quot;File:Issue1.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120339</id>
		<title>CSC/ECE 517 Fall 2018/E1860 Improvements to staggered deadline</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120339"/>
		<updated>2018-11-20T20:20:05Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: /* Solution :Prevent Students from Signing up for topics past deadline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
'''Staggered Deadline Assignment''' is an assignment which can have different topics listed under it and each of these topics have their independent submission and review deadline. Topic's deadline can be the same as parent assignment or independent to it . Such assignments are useful when the class material is more sequential and instructor wants students to complete assignment as and when a topic gets covered in the class. For example it wouldn't make sense to write a paper on a topic from Chapter 4, until the class had covered Chapter 4.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
==== Staggered-deadline topic available for selection past its deadline====&lt;br /&gt;
&lt;br /&gt;
This issue occurs when a '''Topic''' is created with multiple slots. If the topic is not selected for the first round of topics(assignment) or all the slots did not get filled up, It is still available for selection in the subsequent rounds. If a team selects the topic in a later round, they are not able to submit their work as the submission deadline is already over. &lt;br /&gt;
If the topic had only one slot which remained unselected, instructor can change the deadline for that topic to match the new deadlines, but for topics with multiple slots, if the deadline is extended, the teams who worked on this topic in the previous round can submit/review the topic again. This should not happen &lt;br /&gt;
&lt;br /&gt;
====Manual submission and review deadline entry required for all topics====&lt;br /&gt;
&lt;br /&gt;
When creating a topic an instructor is required to enter review and submission deadlines for all the topics. To reduce the manual we want to allow the instructor to apply one deadline entry to a set of topics and also let the system calculate subsequent dates for subsequent project phases like review and re-submission, based on an initial deadline entry. Instructor should also have the ability to edit each of those deadlines independently incase he wants to change a particular deadline of a topic.&lt;br /&gt;
&lt;br /&gt;
====New submissions not identifiable among pool of already graded entries====&lt;br /&gt;
&lt;br /&gt;
There is no way to identify new submissions or reviews are new since grading was last done. The '''Submissions''' and '''Reviews''' should appear in different color before and after they are graded. The color scheme should be compatible with the one used for review report. ie '''Red''' indicates incomplete Reviews, '''Blue''' indicates reviews that have not been graded and '''Brown''' for reviews that have grade assigned to them&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
&lt;br /&gt;
===Issue 1===&lt;br /&gt;
==== Solution :Prevent Students from Signing up for topics past deadline====&lt;br /&gt;
&lt;br /&gt;
Students can be prevented from signing up for a topic whose submission deadline has passed. Currently this is happening, but only in case of assignments/topics which do not have staggered deadlines. &lt;br /&gt;
&lt;br /&gt;
'''sign_up_sheet_controller.rb'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unless assignment.due_dates.find_by_deadline_type_id(1).nil?&lt;br /&gt;
   if !assignment.staggered_deadline? and assignment.due_dates.find_by_deadline_type_id(1).due_at &amp;lt; Time.now&lt;br /&gt;
   @show_actions = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
A Similar logic can be implemented for topic where we fetch the deadline for a '''topic''' by implementing a function and then determine whether to display that topic or not. The same function could also be modified to achieve the desired results.&lt;br /&gt;
&lt;br /&gt;
[[File: Issue1.png]]&lt;br /&gt;
&lt;br /&gt;
===Issue 2===&lt;br /&gt;
==== Add a new setting for Staggered Assignments ====&lt;br /&gt;
&lt;br /&gt;
This can be achieved by adding a new setting to the staggered deadline assignments so that while creating the assignment an instructor can specify how much gap(days) is needed between the different rounds of submission and review. &lt;br /&gt;
&lt;br /&gt;
Data will be stored in a new table and only staggered assignments will have this setting. Rationale behind not storing this data in the current '''Assignments''' is to avoid usage of space and prevent any error to the existing setup. Once we have this data, we can calculate all the deadlines for a topic once the instructor has entered the starting deadline. This will reduce a lot of manual work and this setting can be changed any time by the instructor/TA.&lt;br /&gt;
&lt;br /&gt;
==== Add Dropdowns for Relative Dates ====&lt;br /&gt;
&lt;br /&gt;
Changes will have to be made to the due_dates_table in the _due_dates.html.erb file. Changes have to be made to the datetime_picker_roundtype_roundnumber id. We could provide the user with a drop down menu listing a possible set of relative dates to chose from, in addition to the ability to manually enter a custom date. This could be done on the view side by modifying the date fields and adding the necessary JavaScript so that appropriate date responses are filled into the corresponding date fields when an option is chose from the dropdown menu.&lt;br /&gt;
&lt;br /&gt;
[[File:Screen_Shot_2018-11-16_at_10.06.55_AM.png]]&lt;br /&gt;
&lt;br /&gt;
=== Issue 3===&lt;br /&gt;
==== Add Colors to the Graded Reviews ====&lt;br /&gt;
&lt;br /&gt;
Below color coding will be used to indicate the current stage of the reviews :&lt;br /&gt;
 &lt;br /&gt;
Red - Incomplete Review&lt;br /&gt;
&lt;br /&gt;
Blue - Grade Unassigned to the Review&lt;br /&gt;
&lt;br /&gt;
Brown - Review Complete/ Grade Assigned&lt;br /&gt;
&lt;br /&gt;
This will be achieved by passing the colors of the reviews to _review_report.html.erb.&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''''Issue 1: # Don’t allow students to sign up for topics that has past due dates.'''''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Pre-steps:&lt;br /&gt;
&lt;br /&gt;
:   1.  Login as an instructor. &lt;br /&gt;
:   2. Edit any assignment under the General tab, mark it as staggered deadline assignment.&lt;br /&gt;
:  3. Provide deadlines for few topics in the past.&lt;br /&gt;
:  4. Impersonate a student.&lt;br /&gt;
:5. In the Assignments section, Click on Sign-up sheet.&lt;br /&gt;
:6. verify topics available for sign-up.&lt;br /&gt;
&lt;br /&gt;
;Data and Database Integrity Testing:  None&lt;br /&gt;
;Functional Testing:&lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. The modified topics should not be available for signup.&lt;br /&gt;
:2. The unmodified topics with deadlines in future should be available for signup.&lt;br /&gt;
;User Interface Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. A green tick mark should be available under ‘Actions’ tab for topics with deadlines in the future.&lt;br /&gt;
:2. Actions’ tab should be empty for topics with deadlines in the past.&lt;br /&gt;
;Performance Testing: None&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''''Issue 2: # Provide default deadline options for assignments with staggered deadlines.'''''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Pre-steps:&lt;br /&gt;
&lt;br /&gt;
:   1.  Login as an instructor. &lt;br /&gt;
:   2. Go to assignments and either create a new one or edit a pre-existing one. &lt;br /&gt;
:  3.	Change assignment type to staggered deadline.&lt;br /&gt;
:  4.	Type in a submission deadline for Round 1-Submission. &lt;br /&gt;
:5.	Verify that other due dates are auto populated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;'''Case 1: Instructor wants to assign default deadlines to a staggered assignment:'''&lt;br /&gt;
; Steps:&lt;br /&gt;
&lt;br /&gt;
:   1.	Click save.&lt;br /&gt;
;Data and Database Integrity Testing: &lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. Verify all deadlines are updated in due_at field in due_dates tables for corresponding deadline types after saving the populated values. &lt;br /&gt;
&lt;br /&gt;
;Functional Testing:&lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. Deadlines auto-populated for other Round N should be in correspondence with default offset days between rounds.&lt;br /&gt;
:2. The auto populated deadline should reflect in student assignment section. &lt;br /&gt;
;User Interface Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. The auto-population triggered on to corresponding fields by JavaScript should be correct.&lt;br /&gt;
:2. The format of date auto populated should be as per current system.&lt;br /&gt;
;Performance Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. The response time to auto populate the dates to other rounds should be within 5 second latency.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;'''Case 2: Instructor wants to enter a custom deadline only for a particular round:'''&lt;br /&gt;
; Steps:&lt;br /&gt;
&lt;br /&gt;
:   1.	Choose offset value from initial vale from dropdown option available against each deadline type.&lt;br /&gt;
;Data and Database Integrity Testing: &lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. Verify all deadlines are updated in due_at field in due_dates tables for corresponding deadline types after saving the populated values. &lt;br /&gt;
&lt;br /&gt;
;Functional Testing:&lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. The auto populated deadline values are changed as per selected offset days from drop-down.&lt;br /&gt;
:2. Same should reflect in student assignment section. &lt;br /&gt;
;User Interface Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. The triggered change on to corresponding fields by JavaScript should be correct..&lt;br /&gt;
:2. The format of date auto populated should be as per current system.&lt;br /&gt;
;Performance Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. The response time to change the dates to other rounds should be within 5 second latency.&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue1.png&amp;diff=120338</id>
		<title>File:Issue1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue1.png&amp;diff=120338"/>
		<updated>2018-11-20T20:18:48Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: uploaded a new version of &amp;amp;quot;File:Issue1.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120337</id>
		<title>CSC/ECE 517 Fall 2018/E1860 Improvements to staggered deadline</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120337"/>
		<updated>2018-11-20T20:18:23Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: /* Solution :Prevent Students from Signing up for topics past deadline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
'''Staggered Deadline Assignment''' is an assignment which can have different topics listed under it and each of these topics have their independent submission and review deadline. Topic's deadline can be the same as parent assignment or independent to it . Such assignments are useful when the class material is more sequential and instructor wants students to complete assignment as and when a topic gets covered in the class. For example it wouldn't make sense to write a paper on a topic from Chapter 4, until the class had covered Chapter 4.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
==== Staggered-deadline topic available for selection past its deadline====&lt;br /&gt;
&lt;br /&gt;
This issue occurs when a '''Topic''' is created with multiple slots. If the topic is not selected for the first round of topics(assignment) or all the slots did not get filled up, It is still available for selection in the subsequent rounds. If a team selects the topic in a later round, they are not able to submit their work as the submission deadline is already over. &lt;br /&gt;
If the topic had only one slot which remained unselected, instructor can change the deadline for that topic to match the new deadlines, but for topics with multiple slots, if the deadline is extended, the teams who worked on this topic in the previous round can submit/review the topic again. This should not happen &lt;br /&gt;
&lt;br /&gt;
====Manual submission and review deadline entry required for all topics====&lt;br /&gt;
&lt;br /&gt;
When creating a topic an instructor is required to enter review and submission deadlines for all the topics. To reduce the manual we want to allow the instructor to apply one deadline entry to a set of topics and also let the system calculate subsequent dates for subsequent project phases like review and re-submission, based on an initial deadline entry. Instructor should also have the ability to edit each of those deadlines independently incase he wants to change a particular deadline of a topic.&lt;br /&gt;
&lt;br /&gt;
====New submissions not identifiable among pool of already graded entries====&lt;br /&gt;
&lt;br /&gt;
There is no way to identify new submissions or reviews are new since grading was last done. The '''Submissions''' and '''Reviews''' should appear in different color before and after they are graded. The color scheme should be compatible with the one used for review report. ie '''Red''' indicates incomplete Reviews, '''Blue''' indicates reviews that have not been graded and '''Brown''' for reviews that have grade assigned to them&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
&lt;br /&gt;
===Issue 1===&lt;br /&gt;
==== Solution :Prevent Students from Signing up for topics past deadline====&lt;br /&gt;
&lt;br /&gt;
Students can be prevented from signing up for a topic whose submission deadline has passed. Currently this is happening, but only in case of assignments/topics which do not have staggered deadlines. &lt;br /&gt;
&lt;br /&gt;
'''sign_up_sheet_controller.rb'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unless assignment.due_dates.find_by_deadline_type_id(1).nil?&lt;br /&gt;
   if !assignment.staggered_deadline? and assignment.due_dates.find_by_deadline_type_id(1).due_at &amp;lt; Time.now&lt;br /&gt;
   @show_actions = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
A Similar logic can be implemented for topic where we fetch the deadline for a '''topic''' by implementing a function and then determine whether to display that topic or not. The same function could also be modified to achieve the desired results.&lt;br /&gt;
&lt;br /&gt;
[[File:Issue1.png]]&lt;br /&gt;
&lt;br /&gt;
===Issue 2===&lt;br /&gt;
==== Add a new setting for Staggered Assignments ====&lt;br /&gt;
&lt;br /&gt;
This can be achieved by adding a new setting to the staggered deadline assignments so that while creating the assignment an instructor can specify how much gap(days) is needed between the different rounds of submission and review. &lt;br /&gt;
&lt;br /&gt;
Data will be stored in a new table and only staggered assignments will have this setting. Rationale behind not storing this data in the current '''Assignments''' is to avoid usage of space and prevent any error to the existing setup. Once we have this data, we can calculate all the deadlines for a topic once the instructor has entered the starting deadline. This will reduce a lot of manual work and this setting can be changed any time by the instructor/TA.&lt;br /&gt;
&lt;br /&gt;
==== Add Dropdowns for Relative Dates ====&lt;br /&gt;
&lt;br /&gt;
Changes will have to be made to the due_dates_table in the _due_dates.html.erb file. Changes have to be made to the datetime_picker_roundtype_roundnumber id. We could provide the user with a drop down menu listing a possible set of relative dates to chose from, in addition to the ability to manually enter a custom date. This could be done on the view side by modifying the date fields and adding the necessary JavaScript so that appropriate date responses are filled into the corresponding date fields when an option is chose from the dropdown menu.&lt;br /&gt;
&lt;br /&gt;
[[File:Screen_Shot_2018-11-16_at_10.06.55_AM.png]]&lt;br /&gt;
&lt;br /&gt;
=== Issue 3===&lt;br /&gt;
==== Add Colors to the Graded Reviews ====&lt;br /&gt;
&lt;br /&gt;
Below color coding will be used to indicate the current stage of the reviews :&lt;br /&gt;
 &lt;br /&gt;
Red - Incomplete Review&lt;br /&gt;
&lt;br /&gt;
Blue - Grade Unassigned to the Review&lt;br /&gt;
&lt;br /&gt;
Brown - Review Complete/ Grade Assigned&lt;br /&gt;
&lt;br /&gt;
This will be achieved by passing the colors of the reviews to _review_report.html.erb.&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''''Issue 1: # Don’t allow students to sign up for topics that has past due dates.'''''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Pre-steps:&lt;br /&gt;
&lt;br /&gt;
:   1.  Login as an instructor. &lt;br /&gt;
:   2. Edit any assignment under the General tab, mark it as staggered deadline assignment.&lt;br /&gt;
:  3. Provide deadlines for few topics in the past.&lt;br /&gt;
:  4. Impersonate a student.&lt;br /&gt;
:5. In the Assignments section, Click on Sign-up sheet.&lt;br /&gt;
:6. verify topics available for sign-up.&lt;br /&gt;
&lt;br /&gt;
;Data and Database Integrity Testing:  None&lt;br /&gt;
;Functional Testing:&lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. The modified topics should not be available for signup.&lt;br /&gt;
:2. The unmodified topics with deadlines in future should be available for signup.&lt;br /&gt;
;User Interface Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. A green tick mark should be available under ‘Actions’ tab for topics with deadlines in the future.&lt;br /&gt;
:2. Actions’ tab should be empty for topics with deadlines in the past.&lt;br /&gt;
;Performance Testing: None&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''''Issue 2: # Provide default deadline options for assignments with staggered deadlines.'''''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Pre-steps:&lt;br /&gt;
&lt;br /&gt;
:   1.  Login as an instructor. &lt;br /&gt;
:   2. Go to assignments and either create a new one or edit a pre-existing one. &lt;br /&gt;
:  3.	Change assignment type to staggered deadline.&lt;br /&gt;
:  4.	Type in a submission deadline for Round 1-Submission. &lt;br /&gt;
:5.	Verify that other due dates are auto populated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;'''Case 1: Instructor wants to assign default deadlines to a staggered assignment:'''&lt;br /&gt;
; Steps:&lt;br /&gt;
&lt;br /&gt;
:   1.	Click save.&lt;br /&gt;
;Data and Database Integrity Testing: &lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. Verify all deadlines are updated in due_at field in due_dates tables for corresponding deadline types after saving the populated values. &lt;br /&gt;
&lt;br /&gt;
;Functional Testing:&lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. Deadlines auto-populated for other Round N should be in correspondence with default offset days between rounds.&lt;br /&gt;
:2. The auto populated deadline should reflect in student assignment section. &lt;br /&gt;
;User Interface Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. The auto-population triggered on to corresponding fields by JavaScript should be correct.&lt;br /&gt;
:2. The format of date auto populated should be as per current system.&lt;br /&gt;
;Performance Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. The response time to auto populate the dates to other rounds should be within 5 second latency.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;'''Case 2: Instructor wants to enter a custom deadline only for a particular round:'''&lt;br /&gt;
; Steps:&lt;br /&gt;
&lt;br /&gt;
:   1.	Choose offset value from initial vale from dropdown option available against each deadline type.&lt;br /&gt;
;Data and Database Integrity Testing: &lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. Verify all deadlines are updated in due_at field in due_dates tables for corresponding deadline types after saving the populated values. &lt;br /&gt;
&lt;br /&gt;
;Functional Testing:&lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. The auto populated deadline values are changed as per selected offset days from drop-down.&lt;br /&gt;
:2. Same should reflect in student assignment section. &lt;br /&gt;
;User Interface Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. The triggered change on to corresponding fields by JavaScript should be correct..&lt;br /&gt;
:2. The format of date auto populated should be as per current system.&lt;br /&gt;
;Performance Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. The response time to change the dates to other rounds should be within 5 second latency.&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120328</id>
		<title>CSC/ECE 517 Fall 2018/E1860 Improvements to staggered deadline</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120328"/>
		<updated>2018-11-20T19:44:13Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: /* Solution 1 - Prevent Students from Signing up for topics past deadline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
'''Staggered Deadline Assignment''' is an assignment which can have different topics listed under it and each of these topics have their independent submission and review deadline. Topic's deadline can be the same as parent assignment or independent to it . Such assignments are useful when the class material is more sequential and instructor wants students to complete assignment as and when a topic gets covered in the class. For example it wouldn't make sense to write a paper on a topic from Chapter 4, until the class had covered Chapter 4.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
==== Staggered-deadline topic available for selection past its deadline====&lt;br /&gt;
&lt;br /&gt;
This issue occurs when a '''Topic''' is created with multiple slots. If the topic is not selected for the first round of topics(assignment) or all the slots did not get filled up, It is still available for selection in the subsequent rounds. If a team selects the topic in a later round, they are not able to submit their work as the submission deadline is already over. &lt;br /&gt;
If the topic had only one slot which remained unselected, instructor can change the deadline for that topic to match the new deadlines, but for topics with multiple slots, if the deadline is extended, the teams who worked on this topic in the previous round can submit/review the topic again. This should not happen &lt;br /&gt;
&lt;br /&gt;
====Manual submission and review deadline entry required for all topics====&lt;br /&gt;
&lt;br /&gt;
When creating a topic an instructor is required to enter review and submission deadlines for all the topics. To reduce the manual we want to allow the instructor to apply one deadline entry to a set of topics and also let the system calculate subsequent dates for subsequent project phases like review and re-submission, based on an initial deadline entry. Instructor should also have the ability to edit each of those deadlines independently incase he wants to change a particular deadline of a topic.&lt;br /&gt;
&lt;br /&gt;
====New submissions not identifiable among pool of already graded entries====&lt;br /&gt;
&lt;br /&gt;
There is no way to identify new submissions or reviews are new since grading was last done. The '''Submissions''' and '''Reviews''' should appear in different color before and after they are graded. The color scheme should be compatible with the one used for review report. ie '''Red''' indicates incomplete Reviews, '''Blue''' indicates reviews that have not been graded and '''Brown''' for reviews that have grade assigned to them&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
&lt;br /&gt;
===Issue 1===&lt;br /&gt;
==== Solution :Prevent Students from Signing up for topics past deadline====&lt;br /&gt;
&lt;br /&gt;
Students can be prevented from signing up for a topic whose submission deadline has passed. Currently this is happening, but only in case of assignments/topics which do not have staggered deadlines. &lt;br /&gt;
&lt;br /&gt;
'''sign_up_sheet_controller.rb'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unless assignment.due_dates.find_by_deadline_type_id(1).nil?&lt;br /&gt;
   if !assignment.staggered_deadline? and assignment.due_dates.find_by_deadline_type_id(1).due_at &amp;lt; Time.now&lt;br /&gt;
   @show_actions = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
A Similar logic can be implemented for topic where we fetch the deadline for a '''topic''' by implementing a function and then determine whether to display that topic or not. The same function could also be modified to achieve the desired results.&lt;br /&gt;
&lt;br /&gt;
[[File:Issue1.jpeg]]&lt;br /&gt;
&lt;br /&gt;
===Issue 2===&lt;br /&gt;
==== Add a new setting for Staggered Assignments ====&lt;br /&gt;
&lt;br /&gt;
This can be achieved by adding a new setting to the staggered deadline assignments so that while creating the assignment an instructor can specify how much gap(days) is needed between the different rounds of submission and review. &lt;br /&gt;
&lt;br /&gt;
Data will be stored in a new table and only staggered assignments will have this setting. Rationale behind not storing this data in the current '''Assignments''' is to avoid usage of space and prevent any error to the existing setup. Once we have this data, we can calculate all the deadlines for a topic once the instructor has entered the starting deadline. This will reduce a lot of manual work and this setting can be changed any time by the instructor/TA.&lt;br /&gt;
&lt;br /&gt;
==== Add Dropdowns for Relative Dates ====&lt;br /&gt;
&lt;br /&gt;
Changes will have to be made to the due_dates_table in the _due_dates.html.erb file. Changes have to be made to the datetime_picker_roundtype_roundnumber id. We could provide the user with a drop down menu listing a possible set of relative dates to chose from, in addition to the ability to manually enter a custom date. This could be done on the view side by modifying the date fields and adding the necessary JavaScript so that appropriate date responses are filled into the corresponding date fields when an option is chose from the dropdown menu.&lt;br /&gt;
&lt;br /&gt;
[[File:Screen_Shot_2018-11-16_at_10.06.55_AM.png]]&lt;br /&gt;
&lt;br /&gt;
=== Issue 3===&lt;br /&gt;
==== Add Colors to the Graded Reviews ====&lt;br /&gt;
&lt;br /&gt;
Below color coding will be used to indicate the current stage of the reviews :&lt;br /&gt;
 &lt;br /&gt;
Red - Incomplete Review&lt;br /&gt;
&lt;br /&gt;
Blue - Grade Unassigned to the Review&lt;br /&gt;
&lt;br /&gt;
Brown - Review Complete/ Grade Assigned&lt;br /&gt;
&lt;br /&gt;
This will be achieved by passing the colors of the reviews to _review_report.html.erb.&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''''Issue 1: # Don’t allow students to sign up for topics that has past due dates.'''''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Pre-steps:&lt;br /&gt;
&lt;br /&gt;
:   1.  Login as an instructor. &lt;br /&gt;
:   2. Edit any assignment under the General tab, mark it as staggered deadline assignment.&lt;br /&gt;
:  3. Provide deadlines for few topics in the past.&lt;br /&gt;
:  4. Impersonate a student.&lt;br /&gt;
:5. In the Assignments section, Click on Sign-up sheet.&lt;br /&gt;
:6. verify topics available for sign-up.&lt;br /&gt;
&lt;br /&gt;
;Data and Database Integrity Testing:  None&lt;br /&gt;
;Functional Testing:&lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. The modified topics should not be available for signup.&lt;br /&gt;
:2. The unmodified topics with deadlines in future should be available for signup.&lt;br /&gt;
;User Interface Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. A green tick mark should be available under ‘Actions’ tab for topics with deadlines in the future.&lt;br /&gt;
:2. Actions’ tab should be empty for topics with deadlines in the past.&lt;br /&gt;
;Performance Testing: None&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''''Issue 2: # Provide default deadline options for assignments with staggered deadlines.'''''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Pre-steps:&lt;br /&gt;
&lt;br /&gt;
:   1.  Login as an instructor. &lt;br /&gt;
:   2. Go to assignments and either create a new one or edit a pre-existing one. &lt;br /&gt;
:  3.	Change assignment type to staggered deadline.&lt;br /&gt;
:  4.	Type in a submission deadline for Round 1-Submission. &lt;br /&gt;
:5.	Verify that other due dates are auto populated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;'''Case 1: Instructor wants to assign default deadlines to a staggered assignment:'''&lt;br /&gt;
; Steps:&lt;br /&gt;
&lt;br /&gt;
:   1.	Click save.&lt;br /&gt;
;Data and Database Integrity Testing: &lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. Verify all deadlines are updated in due_at field in due_dates tables for corresponding deadline types after saving the populated values. &lt;br /&gt;
&lt;br /&gt;
;Functional Testing:&lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. Deadlines auto-populated for other Round N should be in correspondence with default offset days between rounds.&lt;br /&gt;
:2. The auto populated deadline should reflect in student assignment section. &lt;br /&gt;
;User Interface Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. The auto-population triggered on to corresponding fields by JavaScript should be correct.&lt;br /&gt;
:2. The format of date auto populated should be as per current system.&lt;br /&gt;
;Performance Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. The response time to auto populate the dates to other rounds should be within 5 second latency.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;'''Case 2: Instructor wants to enter a custom deadline only for a particular round:'''&lt;br /&gt;
; Steps:&lt;br /&gt;
&lt;br /&gt;
:   1.	Choose offset value from initial vale from dropdown option available against each deadline type.&lt;br /&gt;
;Data and Database Integrity Testing: &lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. Verify all deadlines are updated in due_at field in due_dates tables for corresponding deadline types after saving the populated values. &lt;br /&gt;
&lt;br /&gt;
;Functional Testing:&lt;br /&gt;
:Expectations:&lt;br /&gt;
:1. The auto populated deadline values are changed as per selected offset days from drop-down.&lt;br /&gt;
:2. Same should reflect in student assignment section. &lt;br /&gt;
;User Interface Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. The triggered change on to corresponding fields by JavaScript should be correct..&lt;br /&gt;
:2. The format of date auto populated should be as per current system.&lt;br /&gt;
;Performance Testing:&lt;br /&gt;
:Expectation:&lt;br /&gt;
:1. The response time to change the dates to other rounds should be within 5 second latency.&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120137</id>
		<title>CSC/ECE 517 Fall 2018/E1860 Improvements to staggered deadline</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120137"/>
		<updated>2018-11-16T04:35:41Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: /* Test Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
'''Staggered Deadline Assignment''' is an assignment which can have different topics listed under it and each of these topics have their independent submission and review deadline. Topic's deadline can be the same as parent assignment or independent to it . Such assignments are useful when the class material is more sequential and instructor wants students to complete assignment as and when a topic gets covered in the class. For example it wouldn't make sense to write a paper on a topic from Chapter 4, until the class had covered Chapter 4.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
==== Staggered-deadline topic available for selection past its deadline====&lt;br /&gt;
&lt;br /&gt;
This issue occurs when a '''Topic''' is created with multiple slots. If the topic is not selected for the first round of topics(assignment) or all the slots did not get filled up, It is still available for selection in the subsequent rounds. If a team selects the topic in a later round, they are not able to submit their work as the submission deadline is already over. &lt;br /&gt;
If the topic had only one slot which remained unselected, instructor can change the deadline for that topic to match the new deadlines, but for topics with multiple slots, if the deadline is extended, the teams who worked on this topic in the previous round can submit/review the topic again. This should not happen &lt;br /&gt;
&lt;br /&gt;
====Manual submission and review deadline entry required for all topics====&lt;br /&gt;
&lt;br /&gt;
When creating a topic an instructor is required to enter review and submission deadlines for all the topics. To reduce the manual we want to allow the instructor to apply one deadline entry to a set of topics and also let the system calculate subsequent dates for subsequent project phases like review and re-submission, based on an initial deadline entry. Instructor should also have the ability to edit each of those deadlines independently incase he wants to change a particular deadline of a topic.&lt;br /&gt;
&lt;br /&gt;
====New submissions not identifiable among pool of already graded entries====&lt;br /&gt;
&lt;br /&gt;
There is no way to identify new submissions or reviews are new since grading was last done. The '''Submissions''' and '''Reviews''' should appear in different color before and after they are graded. The color scheme should be compatible with the one used for review report. ie '''Red''' indicates incomplete Reviews, '''Blue''' indicates reviews that have not been graded and '''Brown''' for reviews that have grade assigned to them&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
&lt;br /&gt;
===Issue 1===&lt;br /&gt;
==== Solution 1 - Prevent Students from Signing up for topics past deadline====&lt;br /&gt;
&lt;br /&gt;
Students can be prevented from signing up for a topic whose submission deadline has passed. Currently this is happening, but only in case of assignments/topics which do not have staggered deadlines. &lt;br /&gt;
&lt;br /&gt;
'''sign_up_sheet_controller.rb'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unless assignment.due_dates.find_by_deadline_type_id(1).nil?&lt;br /&gt;
   if !assignment.staggered_deadline? and assignment.due_dates.find_by_deadline_type_id(1).due_at &amp;lt; Time.now&lt;br /&gt;
   @show_actions = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
A Similar logic can be implemented for topic where we fetch the deadline for a '''topic''' by implementing a function and then determine whether to display that topic or not. The same function could also be modified to achieve the desired results.&lt;br /&gt;
&lt;br /&gt;
[[File:Issue1.jpeg]]&lt;br /&gt;
&lt;br /&gt;
==== Solution 2 - Assign chronologically nearest round's deadline to the team ====&lt;br /&gt;
&lt;br /&gt;
This can be achieved in the following steps:&lt;br /&gt;
&lt;br /&gt;
1. Add a column in &amp;quot;signed_up_teams&amp;quot; with the name &amp;quot;deadline_round&amp;quot; to store which round of deadline applies to the team signing up and also maintain a new deadline data in the due dates db with the type as &amp;quot;topic&amp;quot; and round as &amp;quot;earlier round+1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
2. Add logic in sign_up_sheet_controller.rb to assign the chronologically nearest round's deadline set to the team when signing up.&lt;br /&gt;
&lt;br /&gt;
 This Implementation might end up being complex because of how the data is currently being stored in the DB, but is a correct solution and needs more design discussion with the professor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Issue2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Issue 2===&lt;br /&gt;
==== Add a new setting for Staggered Assignments ====&lt;br /&gt;
&lt;br /&gt;
This can be achieved by adding a new setting to the staggered deadline assignments so that while creating the assignment an instructor can specify how much gap(days) is needed between the different rounds of submission and review. &lt;br /&gt;
&lt;br /&gt;
Data will be stored in a new table and only staggered assignments will have this setting. Rationale behind not storing this data in the current '''Assignments''' is to avoid usage of space and prevent any error to the existing setup. Once we have this data, we can calculate all the deadlines for a topic once the instructor has entered the starting deadline. This will reduce a lot of manual work and this setting can be changed any time by the instructor/TA.&lt;br /&gt;
&lt;br /&gt;
==== Add Dropdowns for Relative Dates ====&lt;br /&gt;
&lt;br /&gt;
Changes will have to be made to the due_dates_table in the _due_dates.html.erb file. Changes have to be made to the datetime_picker_roundtype_roundnumber id. We could provide the user with a drop down menu listing a possible set of relative dates to chose from, in addition to the ability to manually enter a custom date. This could be done on the view side by modifying the date fields and adding the necessary JavaScript so that appropriate date responses are filled into the corresponding date fields when an option is chose from the dropdown menu.&lt;br /&gt;
&lt;br /&gt;
=== Issue 3===&lt;br /&gt;
==== Add Colors to the Graded Reviews ====&lt;br /&gt;
&lt;br /&gt;
Below color coding will be used to indicate the current stage of the reviews :&lt;br /&gt;
 &lt;br /&gt;
Red - Incomplete Review&lt;br /&gt;
&lt;br /&gt;
Blue - Grade Unassigned to the Review&lt;br /&gt;
&lt;br /&gt;
Brown - Review Complete/ Grade Assigned&lt;br /&gt;
&lt;br /&gt;
This will be achieved by passing the colors of the reviews to _review_report.html.erb.&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
'''Issue 1:''' &lt;br /&gt;
&lt;br /&gt;
When a team tries to sign up for a topic that is still open but the deadline is already passed , an error should be displayed stating that the topic could not be picked as the deadlines are already passed.&lt;br /&gt;
 &lt;br /&gt;
'''Issue 2:''' &lt;br /&gt;
&lt;br /&gt;
When the user creates/changes the deadlines of an assignment / topic, all the other dates should be automatically adjusted based on the settings of the assignment.&lt;br /&gt;
 &lt;br /&gt;
'''Issue 3:''' &lt;br /&gt;
&lt;br /&gt;
When the Instructor/TA visits assignments page , submission/reviews which are currently active/in-process should be displayed in Red , submission/reviews which are completed but grades are not assigned should be displayed in Blue and submission/reviews which are already graded should be displayed in Brown.&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120136</id>
		<title>CSC/ECE 517 Fall 2018/E1860 Improvements to staggered deadline</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120136"/>
		<updated>2018-11-16T04:31:35Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: /* Add Colors to the Graded Reviews */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
'''Staggered Deadline Assignment''' is an assignment which can have different topics listed under it and each of these topics have their independent submission and review deadline. Topic's deadline can be the same as parent assignment or independent to it . Such assignments are useful when the class material is more sequential and instructor wants students to complete assignment as and when a topic gets covered in the class. For example it wouldn't make sense to write a paper on a topic from Chapter 4, until the class had covered Chapter 4.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
==== Staggered-deadline topic available for selection past its deadline====&lt;br /&gt;
&lt;br /&gt;
This issue occurs when a '''Topic''' is created with multiple slots. If the topic is not selected for the first round of topics(assignment) or all the slots did not get filled up, It is still available for selection in the subsequent rounds. If a team selects the topic in a later round, they are not able to submit their work as the submission deadline is already over. &lt;br /&gt;
If the topic had only one slot which remained unselected, instructor can change the deadline for that topic to match the new deadlines, but for topics with multiple slots, if the deadline is extended, the teams who worked on this topic in the previous round can submit/review the topic again. This should not happen &lt;br /&gt;
&lt;br /&gt;
====Manual submission and review deadline entry required for all topics====&lt;br /&gt;
&lt;br /&gt;
When creating a topic an instructor is required to enter review and submission deadlines for all the topics. To reduce the manual we want to allow the instructor to apply one deadline entry to a set of topics and also let the system calculate subsequent dates for subsequent project phases like review and re-submission, based on an initial deadline entry. Instructor should also have the ability to edit each of those deadlines independently incase he wants to change a particular deadline of a topic.&lt;br /&gt;
&lt;br /&gt;
====New submissions not identifiable among pool of already graded entries====&lt;br /&gt;
&lt;br /&gt;
There is no way to identify new submissions or reviews are new since grading was last done. The '''Submissions''' and '''Reviews''' should appear in different color before and after they are graded. The color scheme should be compatible with the one used for review report. ie '''Red''' indicates incomplete Reviews, '''Blue''' indicates reviews that have not been graded and '''Brown''' for reviews that have grade assigned to them&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
&lt;br /&gt;
===Issue 1===&lt;br /&gt;
==== Solution 1 - Prevent Students from Signing up for topics past deadline====&lt;br /&gt;
&lt;br /&gt;
Students can be prevented from signing up for a topic whose submission deadline has passed. Currently this is happening, but only in case of assignments/topics which do not have staggered deadlines. &lt;br /&gt;
&lt;br /&gt;
'''sign_up_sheet_controller.rb'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unless assignment.due_dates.find_by_deadline_type_id(1).nil?&lt;br /&gt;
   if !assignment.staggered_deadline? and assignment.due_dates.find_by_deadline_type_id(1).due_at &amp;lt; Time.now&lt;br /&gt;
   @show_actions = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
A Similar logic can be implemented for topic where we fetch the deadline for a '''topic''' by implementing a function and then determine whether to display that topic or not. The same function could also be modified to achieve the desired results.&lt;br /&gt;
&lt;br /&gt;
[[File:Issue1.jpeg]]&lt;br /&gt;
&lt;br /&gt;
==== Solution 2 - Assign chronologically nearest round's deadline to the team ====&lt;br /&gt;
&lt;br /&gt;
This can be achieved in the following steps:&lt;br /&gt;
&lt;br /&gt;
1. Add a column in &amp;quot;signed_up_teams&amp;quot; with the name &amp;quot;deadline_round&amp;quot; to store which round of deadline applies to the team signing up and also maintain a new deadline data in the due dates db with the type as &amp;quot;topic&amp;quot; and round as &amp;quot;earlier round+1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
2. Add logic in sign_up_sheet_controller.rb to assign the chronologically nearest round's deadline set to the team when signing up.&lt;br /&gt;
&lt;br /&gt;
 This Implementation might end up being complex because of how the data is currently being stored in the DB, but is a correct solution and needs more design discussion with the professor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Issue2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Issue 2===&lt;br /&gt;
==== Add a new setting for Staggered Assignments ====&lt;br /&gt;
&lt;br /&gt;
This can be achieved by adding a new setting to the staggered deadline assignments so that while creating the assignment an instructor can specify how much gap(days) is needed between the different rounds of submission and review. &lt;br /&gt;
&lt;br /&gt;
Data will be stored in a new table and only staggered assignments will have this setting. Rationale behind not storing this data in the current '''Assignments''' is to avoid usage of space and prevent any error to the existing setup. Once we have this data, we can calculate all the deadlines for a topic once the instructor has entered the starting deadline. This will reduce a lot of manual work and this setting can be changed any time by the instructor/TA.&lt;br /&gt;
&lt;br /&gt;
==== Add Dropdowns for Relative Dates ====&lt;br /&gt;
&lt;br /&gt;
Changes will have to be made to the due_dates_table in the _due_dates.html.erb file. Changes have to be made to the datetime_picker_roundtype_roundnumber id. We could provide the user with a drop down menu listing a possible set of relative dates to chose from, in addition to the ability to manually enter a custom date. This could be done on the view side by modifying the date fields and adding the necessary JavaScript so that appropriate date responses are filled into the corresponding date fields when an option is chose from the dropdown menu.&lt;br /&gt;
&lt;br /&gt;
=== Issue 3===&lt;br /&gt;
==== Add Colors to the Graded Reviews ====&lt;br /&gt;
&lt;br /&gt;
Below color coding will be used to indicate the current stage of the reviews :&lt;br /&gt;
 &lt;br /&gt;
Red - Incomplete Review&lt;br /&gt;
&lt;br /&gt;
Blue - Grade Unassigned to the Review&lt;br /&gt;
&lt;br /&gt;
Brown - Review Complete/ Grade Assigned&lt;br /&gt;
&lt;br /&gt;
This will be achieved by passing the colors of the reviews to _review_report.html.erb.&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
Testing for modification of dates in staggered deadlines.&lt;br /&gt;
&lt;br /&gt;
'''Issue 1:''' &lt;br /&gt;
&lt;br /&gt;
When a team tries to sign up for a topic that is still open but the deadline is already passed , an error should be displayed stating that the topic could not be picked as the deadlines are already passed.&lt;br /&gt;
 &lt;br /&gt;
'''Issue 2:''' &lt;br /&gt;
&lt;br /&gt;
When the user creates/changes the deadlines of an assignment / topic, all the other dates should be automatically adjusted based on the settings of the assignment.&lt;br /&gt;
 &lt;br /&gt;
'''Issue 3:''' &lt;br /&gt;
&lt;br /&gt;
When the Instructor/TA visits assignments page , submission/reviews which are currently active/in-process should be displayed in Red , submission/reviews which are completed but grades are not assigned should be displayed in Blue and submission/reviews which are already graded should be displayed in Brown.&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120134</id>
		<title>CSC/ECE 517 Fall 2018/E1860 Improvements to staggered deadline</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120134"/>
		<updated>2018-11-16T04:30:06Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: /* Add a new setting for Staggered Assignments */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
'''Staggered Deadline Assignment''' is an assignment which can have different topics listed under it and each of these topics have their independent submission and review deadline. Topic's deadline can be the same as parent assignment or independent to it . Such assignments are useful when the class material is more sequential and instructor wants students to complete assignment as and when a topic gets covered in the class. For example it wouldn't make sense to write a paper on a topic from Chapter 4, until the class had covered Chapter 4.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
==== Staggered-deadline topic available for selection past its deadline====&lt;br /&gt;
&lt;br /&gt;
This issue occurs when a '''Topic''' is created with multiple slots. If the topic is not selected for the first round of topics(assignment) or all the slots did not get filled up, It is still available for selection in the subsequent rounds. If a team selects the topic in a later round, they are not able to submit their work as the submission deadline is already over. &lt;br /&gt;
If the topic had only one slot which remained unselected, instructor can change the deadline for that topic to match the new deadlines, but for topics with multiple slots, if the deadline is extended, the teams who worked on this topic in the previous round can submit/review the topic again. This should not happen &lt;br /&gt;
&lt;br /&gt;
====Manual submission and review deadline entry required for all topics====&lt;br /&gt;
&lt;br /&gt;
When creating a topic an instructor is required to enter review and submission deadlines for all the topics. To reduce the manual we want to allow the instructor to apply one deadline entry to a set of topics and also let the system calculate subsequent dates for subsequent project phases like review and re-submission, based on an initial deadline entry. Instructor should also have the ability to edit each of those deadlines independently incase he wants to change a particular deadline of a topic.&lt;br /&gt;
&lt;br /&gt;
====New submissions not identifiable among pool of already graded entries====&lt;br /&gt;
&lt;br /&gt;
There is no way to identify new submissions or reviews are new since grading was last done. The '''Submissions''' and '''Reviews''' should appear in different color before and after they are graded. The color scheme should be compatible with the one used for review report. ie '''Red''' indicates incomplete Reviews, '''Blue''' indicates reviews that have not been graded and '''Brown''' for reviews that have grade assigned to them&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
&lt;br /&gt;
===Issue 1===&lt;br /&gt;
==== Solution 1 - Prevent Students from Signing up for topics past deadline====&lt;br /&gt;
&lt;br /&gt;
Students can be prevented from signing up for a topic whose submission deadline has passed. Currently this is happening, but only in case of assignments/topics which do not have staggered deadlines. &lt;br /&gt;
&lt;br /&gt;
'''sign_up_sheet_controller.rb'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unless assignment.due_dates.find_by_deadline_type_id(1).nil?&lt;br /&gt;
   if !assignment.staggered_deadline? and assignment.due_dates.find_by_deadline_type_id(1).due_at &amp;lt; Time.now&lt;br /&gt;
   @show_actions = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
A Similar logic can be implemented for topic where we fetch the deadline for a '''topic''' by implementing a function and then determine whether to display that topic or not. The same function could also be modified to achieve the desired results.&lt;br /&gt;
&lt;br /&gt;
[[File:Issue1.jpeg]]&lt;br /&gt;
&lt;br /&gt;
==== Solution 2 - Assign chronologically nearest round's deadline to the team ====&lt;br /&gt;
&lt;br /&gt;
This can be achieved in the following steps:&lt;br /&gt;
&lt;br /&gt;
1. Add a column in &amp;quot;signed_up_teams&amp;quot; with the name &amp;quot;deadline_round&amp;quot; to store which round of deadline applies to the team signing up and also maintain a new deadline data in the due dates db with the type as &amp;quot;topic&amp;quot; and round as &amp;quot;earlier round+1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
2. Add logic in sign_up_sheet_controller.rb to assign the chronologically nearest round's deadline set to the team when signing up.&lt;br /&gt;
&lt;br /&gt;
 This Implementation might end up being complex because of how the data is currently being stored in the DB, but is a correct solution and needs more design discussion with the professor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Issue2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Issue 2===&lt;br /&gt;
==== Add a new setting for Staggered Assignments ====&lt;br /&gt;
&lt;br /&gt;
This can be achieved by adding a new setting to the staggered deadline assignments so that while creating the assignment an instructor can specify how much gap(days) is needed between the different rounds of submission and review. &lt;br /&gt;
&lt;br /&gt;
Data will be stored in a new table and only staggered assignments will have this setting. Rationale behind not storing this data in the current '''Assignments''' is to avoid usage of space and prevent any error to the existing setup. Once we have this data, we can calculate all the deadlines for a topic once the instructor has entered the starting deadline. This will reduce a lot of manual work and this setting can be changed any time by the instructor/TA.&lt;br /&gt;
&lt;br /&gt;
==== Add Dropdowns for Relative Dates ====&lt;br /&gt;
&lt;br /&gt;
Changes will have to be made to the due_dates_table in the _due_dates.html.erb file. Changes have to be made to the datetime_picker_roundtype_roundnumber id. We could provide the user with a drop down menu listing a possible set of relative dates to chose from, in addition to the ability to manually enter a custom date. This could be done on the view side by modifying the date fields and adding the necessary JavaScript so that appropriate date responses are filled into the corresponding date fields when an option is chose from the dropdown menu.&lt;br /&gt;
&lt;br /&gt;
=== Issue 3===&lt;br /&gt;
==== Add Colors to the Graded Reviews ====&lt;br /&gt;
&lt;br /&gt;
Below color coding will be used to indicate the current stage of the reviews :&lt;br /&gt;
 &lt;br /&gt;
Red - Incomplete Review&lt;br /&gt;
Blue - Grade Unassigned to the Review&lt;br /&gt;
Brown - Review Complete/ Grade Assigned&lt;br /&gt;
&lt;br /&gt;
This will be achieved by passing the colors of the reviews to _review_report.html.erb.&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
Testing for modification of dates in staggered deadlines.&lt;br /&gt;
&lt;br /&gt;
'''Issue 1:''' &lt;br /&gt;
&lt;br /&gt;
When a team tries to sign up for a topic that is still open but the deadline is already passed , an error should be displayed stating that the topic could not be picked as the deadlines are already passed.&lt;br /&gt;
 &lt;br /&gt;
'''Issue 2:''' &lt;br /&gt;
&lt;br /&gt;
When the user creates/changes the deadlines of an assignment / topic, all the other dates should be automatically adjusted based on the settings of the assignment.&lt;br /&gt;
 &lt;br /&gt;
'''Issue 3:''' &lt;br /&gt;
&lt;br /&gt;
When the Instructor/TA visits assignments page , submission/reviews which are currently active/in-process should be displayed in Red , submission/reviews which are completed but grades are not assigned should be displayed in Blue and submission/reviews which are already graded should be displayed in Brown.&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120133</id>
		<title>CSC/ECE 517 Fall 2018/E1860 Improvements to staggered deadline</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120133"/>
		<updated>2018-11-16T04:28:38Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: /* Test Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
'''Staggered Deadline Assignment''' is an assignment which can have different topics listed under it and each of these topics have their independent submission and review deadline. Topic's deadline can be the same as parent assignment or independent to it . Such assignments are useful when the class material is more sequential and instructor wants students to complete assignment as and when a topic gets covered in the class. For example it wouldn't make sense to write a paper on a topic from Chapter 4, until the class had covered Chapter 4.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
==== Staggered-deadline topic available for selection past its deadline====&lt;br /&gt;
&lt;br /&gt;
This issue occurs when a '''Topic''' is created with multiple slots. If the topic is not selected for the first round of topics(assignment) or all the slots did not get filled up, It is still available for selection in the subsequent rounds. If a team selects the topic in a later round, they are not able to submit their work as the submission deadline is already over. &lt;br /&gt;
If the topic had only one slot which remained unselected, instructor can change the deadline for that topic to match the new deadlines, but for topics with multiple slots, if the deadline is extended, the teams who worked on this topic in the previous round can submit/review the topic again. This should not happen &lt;br /&gt;
&lt;br /&gt;
====Manual submission and review deadline entry required for all topics====&lt;br /&gt;
&lt;br /&gt;
When creating a topic an instructor is required to enter review and submission deadlines for all the topics. To reduce the manual we want to allow the instructor to apply one deadline entry to a set of topics and also let the system calculate subsequent dates for subsequent project phases like review and re-submission, based on an initial deadline entry. Instructor should also have the ability to edit each of those deadlines independently incase he wants to change a particular deadline of a topic.&lt;br /&gt;
&lt;br /&gt;
====New submissions not identifiable among pool of already graded entries====&lt;br /&gt;
&lt;br /&gt;
There is no way to identify new submissions or reviews are new since grading was last done. The '''Submissions''' and '''Reviews''' should appear in different color before and after they are graded. The color scheme should be compatible with the one used for review report. ie '''Red''' indicates incomplete Reviews, '''Blue''' indicates reviews that have not been graded and '''Brown''' for reviews that have grade assigned to them&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
&lt;br /&gt;
===Issue 1===&lt;br /&gt;
==== Solution 1 - Prevent Students from Signing up for topics past deadline====&lt;br /&gt;
&lt;br /&gt;
Students can be prevented from signing up for a topic whose submission deadline has passed. Currently this is happening, but only in case of assignments/topics which do not have staggered deadlines. &lt;br /&gt;
&lt;br /&gt;
'''sign_up_sheet_controller.rb'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unless assignment.due_dates.find_by_deadline_type_id(1).nil?&lt;br /&gt;
   if !assignment.staggered_deadline? and assignment.due_dates.find_by_deadline_type_id(1).due_at &amp;lt; Time.now&lt;br /&gt;
   @show_actions = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
A Similar logic can be implemented for topic where we fetch the deadline for a '''topic''' by implementing a function and then determine whether to display that topic or not. The same function could also be modified to achieve the desired results.&lt;br /&gt;
&lt;br /&gt;
[[File:Issue1.jpeg]]&lt;br /&gt;
&lt;br /&gt;
==== Solution 2 - Assign chronologically nearest round's deadline to the team ====&lt;br /&gt;
&lt;br /&gt;
This can be achieved in the following steps:&lt;br /&gt;
&lt;br /&gt;
1. Add a column in &amp;quot;signed_up_teams&amp;quot; with the name &amp;quot;deadline_round&amp;quot; to store which round of deadline applies to the team signing up and also maintain a new deadline data in the due dates db with the type as &amp;quot;topic&amp;quot; and round as &amp;quot;earlier round+1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
2. Add logic in sign_up_sheet_controller.rb to assign the chronologically nearest round's deadline set to the team when signing up.&lt;br /&gt;
&lt;br /&gt;
 This Implementation might end up being complex because of how the data is currently being stored in the DB, but is a correct solution and needs more design discussion with the professor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Issue2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Issue 2===&lt;br /&gt;
==== Add a new setting for Staggered Assignments ====&lt;br /&gt;
&lt;br /&gt;
This can be achieved by adding a new setting to the staggered deadline assingments so that while creating the assignment an instructor can specify how much gap(days) is needed between the different rounds of submission and review. &lt;br /&gt;
Data will be stored in a new table and only staggered assingments will have this setting. Rationale behind not storing this data in the current '''Assignments''' is to avoid usage of space and prevent any error to the existing setup. Once we have this data, we can calculate all the deadlines for a topic once the instructor has entered the starting deadline. This is reduce a lot of manual work and this setting can be changed any time by the instructor. &lt;br /&gt;
&lt;br /&gt;
==== Add Dropdowns for Relative Dates ====&lt;br /&gt;
&lt;br /&gt;
Changes will have to be made to the due_dates_table in the _due_dates.html.erb file. Changes have to be made to the datetime_picker_roundtype_roundnumber id. We could provide the user with a drop down menu listing a possible set of relative dates to chose from, in addition to the ability to manually enter a custom date. This could be done on the view side by modifying the date fields and adding the necessary JavaScript so that appropriate date responses are filled into the corresponding date fields when an option is chose from the dropdown menu.&lt;br /&gt;
&lt;br /&gt;
=== Issue 3===&lt;br /&gt;
==== Add Colors to the Graded Reviews ====&lt;br /&gt;
&lt;br /&gt;
Below color coding will be used to indicate the current stage of the reviews :&lt;br /&gt;
 &lt;br /&gt;
Red - Incomplete Review&lt;br /&gt;
Blue - Grade Unassigned to the Review&lt;br /&gt;
Brown - Review Complete/ Grade Assigned&lt;br /&gt;
&lt;br /&gt;
This will be achieved by passing the colors of the reviews to _review_report.html.erb.&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
Testing for modification of dates in staggered deadlines.&lt;br /&gt;
&lt;br /&gt;
'''Issue 1:''' &lt;br /&gt;
&lt;br /&gt;
When a team tries to sign up for a topic that is still open but the deadline is already passed , an error should be displayed stating that the topic could not be picked as the deadlines are already passed.&lt;br /&gt;
 &lt;br /&gt;
'''Issue 2:''' &lt;br /&gt;
&lt;br /&gt;
When the user creates/changes the deadlines of an assignment / topic, all the other dates should be automatically adjusted based on the settings of the assignment.&lt;br /&gt;
 &lt;br /&gt;
'''Issue 3:''' &lt;br /&gt;
&lt;br /&gt;
When the Instructor/TA visits assignments page , submission/reviews which are currently active/in-process should be displayed in Red , submission/reviews which are completed but grades are not assigned should be displayed in Blue and submission/reviews which are already graded should be displayed in Brown.&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120132</id>
		<title>CSC/ECE 517 Fall 2018/E1860 Improvements to staggered deadline</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120132"/>
		<updated>2018-11-16T04:28:12Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: /* Test Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
'''Staggered Deadline Assignment''' is an assignment which can have different topics listed under it and each of these topics have their independent submission and review deadline. Topic's deadline can be the same as parent assignment or independent to it . Such assignments are useful when the class material is more sequential and instructor wants students to complete assignment as and when a topic gets covered in the class. For example it wouldn't make sense to write a paper on a topic from Chapter 4, until the class had covered Chapter 4.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
==== Staggered-deadline topic available for selection past its deadline====&lt;br /&gt;
&lt;br /&gt;
This issue occurs when a '''Topic''' is created with multiple slots. If the topic is not selected for the first round of topics(assignment) or all the slots did not get filled up, It is still available for selection in the subsequent rounds. If a team selects the topic in a later round, they are not able to submit their work as the submission deadline is already over. &lt;br /&gt;
If the topic had only one slot which remained unselected, instructor can change the deadline for that topic to match the new deadlines, but for topics with multiple slots, if the deadline is extended, the teams who worked on this topic in the previous round can submit/review the topic again. This should not happen &lt;br /&gt;
&lt;br /&gt;
====Manual submission and review deadline entry required for all topics====&lt;br /&gt;
&lt;br /&gt;
When creating a topic an instructor is required to enter review and submission deadlines for all the topics. To reduce the manual we want to allow the instructor to apply one deadline entry to a set of topics and also let the system calculate subsequent dates for subsequent project phases like review and re-submission, based on an initial deadline entry. Instructor should also have the ability to edit each of those deadlines independently incase he wants to change a particular deadline of a topic.&lt;br /&gt;
&lt;br /&gt;
====New submissions not identifiable among pool of already graded entries====&lt;br /&gt;
&lt;br /&gt;
There is no way to identify new submissions or reviews are new since grading was last done. The '''Submissions''' and '''Reviews''' should appear in different color before and after they are graded. The color scheme should be compatible with the one used for review report. ie '''Red''' indicates incomplete Reviews, '''Blue''' indicates reviews that have not been graded and '''Brown''' for reviews that have grade assigned to them&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
&lt;br /&gt;
===Issue 1===&lt;br /&gt;
==== Solution 1 - Prevent Students from Signing up for topics past deadline====&lt;br /&gt;
&lt;br /&gt;
Students can be prevented from signing up for a topic whose submission deadline has passed. Currently this is happening, but only in case of assignments/topics which do not have staggered deadlines. &lt;br /&gt;
&lt;br /&gt;
'''sign_up_sheet_controller.rb'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unless assignment.due_dates.find_by_deadline_type_id(1).nil?&lt;br /&gt;
   if !assignment.staggered_deadline? and assignment.due_dates.find_by_deadline_type_id(1).due_at &amp;lt; Time.now&lt;br /&gt;
   @show_actions = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
A Similar logic can be implemented for topic where we fetch the deadline for a '''topic''' by implementing a function and then determine whether to display that topic or not. The same function could also be modified to achieve the desired results.&lt;br /&gt;
&lt;br /&gt;
[[File:Issue1.jpeg]]&lt;br /&gt;
&lt;br /&gt;
==== Solution 2 - Assign chronologically nearest round's deadline to the team ====&lt;br /&gt;
&lt;br /&gt;
This can be achieved in the following steps:&lt;br /&gt;
&lt;br /&gt;
1. Add a column in &amp;quot;signed_up_teams&amp;quot; with the name &amp;quot;deadline_round&amp;quot; to store which round of deadline applies to the team signing up and also maintain a new deadline data in the due dates db with the type as &amp;quot;topic&amp;quot; and round as &amp;quot;earlier round+1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
2. Add logic in sign_up_sheet_controller.rb to assign the chronologically nearest round's deadline set to the team when signing up.&lt;br /&gt;
&lt;br /&gt;
 This Implementation might end up being complex because of how the data is currently being stored in the DB, but is a correct solution and needs more design discussion with the professor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Issue2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Issue 2===&lt;br /&gt;
==== Add a new setting for Staggered Assignments ====&lt;br /&gt;
&lt;br /&gt;
This can be achieved by adding a new setting to the staggered deadline assingments so that while creating the assignment an instructor can specify how much gap(days) is needed between the different rounds of submission and review. &lt;br /&gt;
Data will be stored in a new table and only staggered assingments will have this setting. Rationale behind not storing this data in the current '''Assignments''' is to avoid usage of space and prevent any error to the existing setup. Once we have this data, we can calculate all the deadlines for a topic once the instructor has entered the starting deadline. This is reduce a lot of manual work and this setting can be changed any time by the instructor. &lt;br /&gt;
&lt;br /&gt;
==== Add Dropdowns for Relative Dates ====&lt;br /&gt;
&lt;br /&gt;
Changes will have to be made to the due_dates_table in the _due_dates.html.erb file. Changes have to be made to the datetime_picker_roundtype_roundnumber id. We could provide the user with a drop down menu listing a possible set of relative dates to chose from, in addition to the ability to manually enter a custom date. This could be done on the view side by modifying the date fields and adding the necessary JavaScript so that appropriate date responses are filled into the corresponding date fields when an option is chose from the dropdown menu.&lt;br /&gt;
&lt;br /&gt;
=== Issue 3===&lt;br /&gt;
==== Add Colors to the Graded Reviews ====&lt;br /&gt;
&lt;br /&gt;
Below color coding will be used to indicate the current stage of the reviews :&lt;br /&gt;
 &lt;br /&gt;
Red - Incomplete Review&lt;br /&gt;
Blue - Grade Unassigned to the Review&lt;br /&gt;
Brown - Review Complete/ Grade Assigned&lt;br /&gt;
&lt;br /&gt;
This will be achieved by passing the colors of the reviews to _review_report.html.erb.&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
Testing for modification of dates in staggered deadlines.&lt;br /&gt;
&lt;br /&gt;
Issue 1: &lt;br /&gt;
&lt;br /&gt;
When a team tries to sign up for a topic that is still open but the deadline is already passed , an error should be displayed stating that the topic could not be picked as the deadlines are already passed.&lt;br /&gt;
 &lt;br /&gt;
Issue 2: When the user craetes/changes the deadlines of an assignment / topic, all the other dates should be automatically adjusted based on the settings of the assignment.&lt;br /&gt;
 &lt;br /&gt;
Issue 3: When the Instructor/TA visits assignments page , submission/reviews which are currently active/in-process should be displayed in Red , submission/reviews which are completed but grades are not assigned should be displayed in Blue and submission/reviews which are already graded should be displayed in Brown.&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120131</id>
		<title>CSC/ECE 517 Fall 2018/E1860 Improvements to staggered deadline</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120131"/>
		<updated>2018-11-16T04:19:29Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: /* issue 3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
'''Staggered Deadline Assignment''' is an assignment which can have different topics listed under it and each of these topics have their independent submission and review deadline. Topic's deadline can be the same as parent assignment or independent to it . Such assignments are useful when the class material is more sequential and instructor wants students to complete assignment as and when a topic gets covered in the class. For example it wouldn't make sense to write a paper on a topic from Chapter 4, until the class had covered Chapter 4.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
==== Staggered-deadline topic available for selection past its deadline====&lt;br /&gt;
&lt;br /&gt;
This issue occurs when a '''Topic''' is created with multiple slots. If the topic is not selected for the first round of topics(assignment) or all the slots did not get filled up, It is still available for selection in the subsequent rounds. If a team selects the topic in a later round, they are not able to submit their work as the submission deadline is already over. &lt;br /&gt;
If the topic had only one slot which remained unselected, instructor can change the deadline for that topic to match the new deadlines, but for topics with multiple slots, if the deadline is extended, the teams who worked on this topic in the previous round can submit/review the topic again. This should not happen &lt;br /&gt;
&lt;br /&gt;
====Manual submission and review deadline entry required for all topics====&lt;br /&gt;
&lt;br /&gt;
When creating a topic an instructor is required to enter review and submission deadlines for all the topics. To reduce the manual we want to allow the instructor to apply one deadline entry to a set of topics and also let the system calculate subsequent dates for subsequent project phases like review and re-submission, based on an initial deadline entry. Instructor should also have the ability to edit each of those deadlines independently incase he wants to change a particular deadline of a topic.&lt;br /&gt;
&lt;br /&gt;
====New submissions not identifiable among pool of already graded entries====&lt;br /&gt;
&lt;br /&gt;
There is no way to identify new submissions or reviews are new since grading was last done. The '''Submissions''' and '''Reviews''' should appear in different color before and after they are graded. The color scheme should be compatible with the one used for review report. ie '''Red''' indicates incomplete Reviews, '''Blue''' indicates reviews that have not been graded and '''Brown''' for reviews that have grade assigned to them&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
&lt;br /&gt;
===Issue 1===&lt;br /&gt;
==== Solution 1 - Prevent Students from Signing up for topics past deadline====&lt;br /&gt;
&lt;br /&gt;
Students can be prevented from signing up for a topic whose submission deadline has passed. Currently this is happening, but only in case of assignments/topics which do not have staggered deadlines. &lt;br /&gt;
&lt;br /&gt;
'''sign_up_sheet_controller.rb'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unless assignment.due_dates.find_by_deadline_type_id(1).nil?&lt;br /&gt;
   if !assignment.staggered_deadline? and assignment.due_dates.find_by_deadline_type_id(1).due_at &amp;lt; Time.now&lt;br /&gt;
   @show_actions = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
A Similar logic can be implemented for topic where we fetch the deadline for a '''topic''' by implementing a function and then determine whether to display that topic or not. The same function could also be modified to achieve the desired results.&lt;br /&gt;
&lt;br /&gt;
[[File:Issue1.jpeg]]&lt;br /&gt;
&lt;br /&gt;
==== Solution 2 - Assign chronologically nearest round's deadline to the team ====&lt;br /&gt;
&lt;br /&gt;
This can be achieved in the following steps:&lt;br /&gt;
&lt;br /&gt;
1. Add a column in &amp;quot;signed_up_teams&amp;quot; with the name &amp;quot;deadline_round&amp;quot; to store which round of deadline applies to the team signing up and also maintain a new deadline data in the due dates db with the type as &amp;quot;topic&amp;quot; and round as &amp;quot;earlier round+1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
2. Add logic in sign_up_sheet_controller.rb to assign the chronologically nearest round's deadline set to the team when signing up.&lt;br /&gt;
&lt;br /&gt;
 This Implementation might end up being complex because of how the data is currently being stored in the DB, but is a correct solution and needs more design discussion with the professor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Issue2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Issue 2===&lt;br /&gt;
==== Add a new setting for Staggered Assignments ====&lt;br /&gt;
&lt;br /&gt;
This can be achieved by adding a new setting to the staggered deadline assingments so that while creating the assignment an instructor can specify how much gap(days) is needed between the different rounds of submission and review. &lt;br /&gt;
Data will be stored in a new table and only staggered assingments will have this setting. Rationale behind not storing this data in the current '''Assignments''' is to avoid usage of space and prevent any error to the existing setup. Once we have this data, we can calculate all the deadlines for a topic once the instructor has entered the starting deadline. This is reduce a lot of manual work and this setting can be changed any time by the instructor. &lt;br /&gt;
&lt;br /&gt;
==== Add Dropdowns for Relative Dates ====&lt;br /&gt;
&lt;br /&gt;
Changes will have to be made to the due_dates_table in the _due_dates.html.erb file. Changes have to be made to the datetime_picker_roundtype_roundnumber id. We could provide the user with a drop down menu listing a possible set of relative dates to chose from, in addition to the ability to manually enter a custom date. This could be done on the view side by modifying the date fields and adding the necessary JavaScript so that appropriate date responses are filled into the corresponding date fields when an option is chose from the dropdown menu.&lt;br /&gt;
&lt;br /&gt;
=== Issue 3===&lt;br /&gt;
==== Add Colors to the Graded Reviews ====&lt;br /&gt;
&lt;br /&gt;
Below color coding will be used to indicate the current stage of the reviews :&lt;br /&gt;
 &lt;br /&gt;
Red - Incomplete Review&lt;br /&gt;
Blue - Grade Unassigned to the Review&lt;br /&gt;
Brown - Review Complete/ Grade Assigned&lt;br /&gt;
&lt;br /&gt;
This will be achieved by passing the colors of the reviews to _review_report.html.erb.&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120130</id>
		<title>CSC/ECE 517 Fall 2018/E1860 Improvements to staggered deadline</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120130"/>
		<updated>2018-11-16T04:17:41Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
'''Staggered Deadline Assignment''' is an assignment which can have different topics listed under it and each of these topics have their independent submission and review deadline. Topic's deadline can be the same as parent assignment or independent to it . Such assignments are useful when the class material is more sequential and instructor wants students to complete assignment as and when a topic gets covered in the class. For example it wouldn't make sense to write a paper on a topic from Chapter 4, until the class had covered Chapter 4.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
==== Staggered-deadline topic available for selection past its deadline====&lt;br /&gt;
&lt;br /&gt;
This issue occurs when a '''Topic''' is created with multiple slots. If the topic is not selected for the first round of topics(assignment) or all the slots did not get filled up, It is still available for selection in the subsequent rounds. If a team selects the topic in a later round, they are not able to submit their work as the submission deadline is already over. &lt;br /&gt;
If the topic had only one slot which remained unselected, instructor can change the deadline for that topic to match the new deadlines, but for topics with multiple slots, if the deadline is extended, the teams who worked on this topic in the previous round can submit/review the topic again. This should not happen &lt;br /&gt;
&lt;br /&gt;
====Manual submission and review deadline entry required for all topics====&lt;br /&gt;
&lt;br /&gt;
When creating a topic an instructor is required to enter review and submission deadlines for all the topics. To reduce the manual we want to allow the instructor to apply one deadline entry to a set of topics and also let the system calculate subsequent dates for subsequent project phases like review and re-submission, based on an initial deadline entry. Instructor should also have the ability to edit each of those deadlines independently incase he wants to change a particular deadline of a topic.&lt;br /&gt;
&lt;br /&gt;
====New submissions not identifiable among pool of already graded entries====&lt;br /&gt;
&lt;br /&gt;
There is no way to identify new submissions or reviews are new since grading was last done. The '''Submissions''' and '''Reviews''' should appear in different color before and after they are graded. The color scheme should be compatible with the one used for review report. ie '''Red''' indicates incomplete Reviews, '''Blue''' indicates reviews that have not been graded and '''Brown''' for reviews that have grade assigned to them&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
&lt;br /&gt;
===Issue 1===&lt;br /&gt;
==== Solution 1 - Prevent Students from Signing up for topics past deadline====&lt;br /&gt;
&lt;br /&gt;
Students can be prevented from signing up for a topic whose submission deadline has passed. Currently this is happening, but only in case of assignments/topics which do not have staggered deadlines. &lt;br /&gt;
&lt;br /&gt;
'''sign_up_sheet_controller.rb'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unless assignment.due_dates.find_by_deadline_type_id(1).nil?&lt;br /&gt;
   if !assignment.staggered_deadline? and assignment.due_dates.find_by_deadline_type_id(1).due_at &amp;lt; Time.now&lt;br /&gt;
   @show_actions = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
A Similar logic can be implemented for topic where we fetch the deadline for a '''topic''' by implementing a function and then determine whether to display that topic or not. The same function could also be modified to achieve the desired results.&lt;br /&gt;
&lt;br /&gt;
[[File:Issue1.jpeg]]&lt;br /&gt;
&lt;br /&gt;
==== Solution 2 - Assign chronologically nearest round's deadline to the team ====&lt;br /&gt;
&lt;br /&gt;
This can be achieved in the following steps:&lt;br /&gt;
&lt;br /&gt;
1. Add a column in &amp;quot;signed_up_teams&amp;quot; with the name &amp;quot;deadline_round&amp;quot; to store which round of deadline applies to the team signing up and also maintain a new deadline data in the due dates db with the type as &amp;quot;topic&amp;quot; and round as &amp;quot;earlier round+1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
2. Add logic in sign_up_sheet_controller.rb to assign the chronologically nearest round's deadline set to the team when signing up.&lt;br /&gt;
&lt;br /&gt;
 This Implementation might end up being complex because of how the data is currently being stored in the DB, but is a correct solution and needs more design discussion with the professor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Issue2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Issue 2===&lt;br /&gt;
==== Add a new setting for Staggered Assignments ====&lt;br /&gt;
&lt;br /&gt;
This can be achieved by adding a new setting to the staggered deadline assingments so that while creating the assignment an instructor can specify how much gap(days) is needed between the different rounds of submission and review. &lt;br /&gt;
Data will be stored in a new table and only staggered assingments will have this setting. Rationale behind not storing this data in the current '''Assignments''' is to avoid usage of space and prevent any error to the existing setup. Once we have this data, we can calculate all the deadlines for a topic once the instructor has entered the starting deadline. This is reduce a lot of manual work and this setting can be changed any time by the instructor. &lt;br /&gt;
&lt;br /&gt;
==== Add Dropdowns for Relative Dates ====&lt;br /&gt;
&lt;br /&gt;
Changes will have to be made to the due_dates_table in the _due_dates.html.erb file. Changes have to be made to the datetime_picker_roundtype_roundnumber id. We could provide the user with a drop down menu listing a possible set of relative dates to chose from, in addition to the ability to manually enter a custom date. This could be done on the view side by modifying the date fields and adding the necessary JavaScript so that appropriate date responses are filled into the corresponding date fields when an option is chose from the dropdown menu.&lt;br /&gt;
&lt;br /&gt;
===issue 3===&lt;br /&gt;
==== Add Colors to the Graded Reviews ====&lt;br /&gt;
&lt;br /&gt;
Red - Incomplete Review&lt;br /&gt;
Blue - Grade Unassigned to the Review&lt;br /&gt;
Brown - Review Complete/ Grade Assigned&lt;br /&gt;
&lt;br /&gt;
This will be achieved by passing the colors of the reviews to _review_report.html.erb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue2.jpg&amp;diff=120129</id>
		<title>File:Issue2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue2.jpg&amp;diff=120129"/>
		<updated>2018-11-16T04:16:10Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: uploaded a new version of &amp;amp;quot;File:Issue2.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue2.jpg&amp;diff=120128</id>
		<title>File:Issue2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue2.jpg&amp;diff=120128"/>
		<updated>2018-11-16T04:15:24Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: uploaded a new version of &amp;amp;quot;File:Issue2.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120127</id>
		<title>CSC/ECE 517 Fall 2018/E1860 Improvements to staggered deadline</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120127"/>
		<updated>2018-11-16T04:14:15Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: /* Solution 2 - Assign chronologically nearest round's deadline to the team */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
'''Staggered Deadline Assignment''' is an assignment which can have different topics listed under it and each of these topics have their independent submission and review deadline. Topic's deadline can be the same as parent assignment or independent to it . Such assignments are useful when the class material is more sequential and instructor wants students to complete assignment as and when a topic gets covered in the class. For example it wouldn't make sense to write a paper on a topic from Chapter 4, until the class had covered Chapter 4.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
==== Staggered-deadline topic available for selection past its deadline====&lt;br /&gt;
&lt;br /&gt;
This issue occurs when a '''Topic''' is created with multiple slots. If the topic is not selected for the first round of topics(assignment) or all the slots did not get filled up, It is still available for selection in the subsequent rounds. If a team selects the topic in a later round, they are not able to submit their work as the submission deadline is already over. &lt;br /&gt;
If the topic had only one slot which remained unselected, instructor can change the deadline for that topic to match the new deadlines, but for topics with multiple slots, if the deadline is extended, the teams who worked on this topic in the previous round can submit/review the topic again. This should not happen &lt;br /&gt;
&lt;br /&gt;
====Manual submission and review deadline entry required for all topics====&lt;br /&gt;
&lt;br /&gt;
When creating a topic an instructor is required to enter review and submission deadlines for all the topics. To reduce the manual we want to allow the instructor to apply one deadline entry to a set of topics and also let the system calculate subsequent dates for subsequent project phases like review and re-submission, based on an initial deadline entry. Instructor should also have the ability to edit each of those deadlines independently incase he wants to change a particular deadline of a topic.&lt;br /&gt;
&lt;br /&gt;
====New submissions not identifiable among pool of already graded entries====&lt;br /&gt;
&lt;br /&gt;
There is no way to identify new submissions or reviews are new since grading was last done. The '''Submissions''' and '''Reviews''' should appear in different color before and after they are graded. The color scheme should be compatible with the one used for review report. ie '''Red''' indicates incomplete Reviews, '''Blue''' indicates reviews that have not been graded and '''Brown''' for reviews that have grade assigned to them&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
&lt;br /&gt;
===Issue 1===&lt;br /&gt;
==== Solution 1 - Prevent Students from Signing up for topics past deadline====&lt;br /&gt;
&lt;br /&gt;
Students can be prevented from signing up for a topic whose submission deadline has passed. Currently this is happening, but only in case of assignments/topics which do not have staggered deadlines. &lt;br /&gt;
&lt;br /&gt;
'''sign_up_sheet_controller.rb'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unless assignment.due_dates.find_by_deadline_type_id(1).nil?&lt;br /&gt;
   if !assignment.staggered_deadline? and assignment.due_dates.find_by_deadline_type_id(1).due_at &amp;lt; Time.now&lt;br /&gt;
   @show_actions = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
A Similar logic can be implemented for topic where we fetch the deadline for a '''topic''' by implementing a function and then determine whether to display that topic or not. The same function could also be modified to achieve the desired results.&lt;br /&gt;
&lt;br /&gt;
[[File:Issue1.jpeg]]&lt;br /&gt;
&lt;br /&gt;
==== Solution 2 - Assign chronologically nearest round's deadline to the team ====&lt;br /&gt;
&lt;br /&gt;
This can be achieved in the following steps:&lt;br /&gt;
&lt;br /&gt;
1. Add a column in &amp;quot;signed_up_teams&amp;quot; with the name &amp;quot;deadline_round&amp;quot; to store which round of deadline applies to the team signing up and also maintain a new deadline data in the due dates db with the type as &amp;quot;topic&amp;quot; and round as &amp;quot;earlier round+1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
2. Add logic in sign_up_sheet_controller.rb to assign the chronologically nearest round's deadline set to the team when signing up.&lt;br /&gt;
&lt;br /&gt;
 This Implementation might end up being complex because of how the data is currently being stored in the DB, but is a correct solution and needs more design discussion with the professor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Issue2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Issue 2===&lt;br /&gt;
==== Add a new setting for Staggered Assignments ====&lt;br /&gt;
&lt;br /&gt;
This can be achieved by adding a new setting to the staggered deadline assingments so that while creating the assignment an instructor can specify how much gap(days) is needed between the different rounds of submission and review. &lt;br /&gt;
Data will be stored in a new table and only staggered assingments will have this setting. Rationale behind not storing this data in the current '''Assignments''' is to avoid usage of space and prevent any error to the existing setup. Once we have this data, we can calculate all the deadlines for a topic once the instructor has entered the starting deadline. This is reduce a lot of manual work and this setting can be changed any time by the instructor. &lt;br /&gt;
&lt;br /&gt;
==== Add Dropdowns for Relative Dates ====&lt;br /&gt;
&lt;br /&gt;
Changes will have to be made to the due_dates_table in the _due_dates.html.erb file. Changes have to be made to the datetime_picker_roundtype_roundnumber id. We could provide the user with a drop down menu listing a possible set of relative dates to chose from, in addition to the ability to manually enter a custom date. This could be done on the view side by modifying the date fields and adding the necessary JavaScript so that appropriate date responses are filled into the corresponding date fields when an option is chose from the dropdown menu.&lt;br /&gt;
&lt;br /&gt;
===issue 3===&lt;br /&gt;
==== Add Colors to the Graded Reviews ====&lt;br /&gt;
&lt;br /&gt;
Red - Incomplete Review&lt;br /&gt;
Blue - Grade Unassigned to the Review&lt;br /&gt;
Brown - Review Complete/ Grade Assigned&lt;br /&gt;
&lt;br /&gt;
This will be achieved by passing the colors of the reviews to _review_report.html.erb.&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue2.jpg&amp;diff=120126</id>
		<title>File:Issue2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue2.jpg&amp;diff=120126"/>
		<updated>2018-11-16T04:14:01Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue1.jpeg&amp;diff=120125</id>
		<title>File:Issue1.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue1.jpeg&amp;diff=120125"/>
		<updated>2018-11-16T04:02:38Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120124</id>
		<title>CSC/ECE 517 Fall 2018/E1860 Improvements to staggered deadline</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120124"/>
		<updated>2018-11-16T04:02:02Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: /* Solution 1 - Prevent Students from Signing up for topics past deadline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
'''Staggered Deadline Assignment''' is an assignment which can have different topics listed under it and each of these topics have their independent submission and review deadline. Topic's deadline can be the same as parent assignment or independent to it . Such assignments are useful when the class material is more sequential and instructor wants students to complete assignment as and when a topic gets covered in the class. For example it wouldn't make sense to write a paper on a topic from Chapter 4, until the class had covered Chapter 4.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
==== Staggered-deadline topic available for selection past its deadline====&lt;br /&gt;
&lt;br /&gt;
This issue occurs when a '''Topic''' is created with multiple slots. If the topic is not selected for the first round of topics(assignment) or all the slots did not get filled up, It is still available for selection in the subsequent rounds. If a team selects the topic in a later round, they are not able to submit their work as the submission deadline is already over. &lt;br /&gt;
If the topic had only one slot which remained unselected, instructor can change the deadline for that topic to match the new deadlines, but for topics with multiple slots, if the deadline is extended, the teams who worked on this topic in the previous round can submit/review the topic again. This should not happen &lt;br /&gt;
&lt;br /&gt;
====Manual submission and review deadline entry required for all topics====&lt;br /&gt;
&lt;br /&gt;
When creating a topic an instructor is required to enter review and submission deadlines for all the topics. To reduce the manual we want to allow the instructor to apply one deadline entry to a set of topics and also let the system calculate subsequent dates for subsequent project phases like review and re-submission, based on an initial deadline entry. Instructor should also have the ability to edit each of those deadlines independently incase he wants to change a particular deadline of a topic.&lt;br /&gt;
&lt;br /&gt;
====New submissions not identifiable among pool of already graded entries====&lt;br /&gt;
&lt;br /&gt;
There is no way to identify new submissions or reviews are new since grading was last done. The '''Submissions''' and '''Reviews''' should appear in different color before and after they are graded. The color scheme should be compatible with the one used for review report. ie '''Red''' indicates incomplete Reviews, '''Blue''' indicates reviews that have not been graded and '''Brown''' for reviews that have grade assigned to them&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
&lt;br /&gt;
===Issue 1===&lt;br /&gt;
==== Solution 1 - Prevent Students from Signing up for topics past deadline====&lt;br /&gt;
&lt;br /&gt;
Students can be prevented from signing up for a topic whose submission deadline has passed. Currently this is happening, but only in case of assignments/topics which do not have staggered deadlines. &lt;br /&gt;
&lt;br /&gt;
'''sign_up_sheet_controller.rb'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unless assignment.due_dates.find_by_deadline_type_id(1).nil?&lt;br /&gt;
   if !assignment.staggered_deadline? and assignment.due_dates.find_by_deadline_type_id(1).due_at &amp;lt; Time.now&lt;br /&gt;
   @show_actions = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
A Similar logic can be implemented for topic where we fetch the deadline for a '''topic''' by implementing a function and then determine whether to display that topic or not. The same function could also be modified to achieve the desired results.&lt;br /&gt;
&lt;br /&gt;
[[File:Issue1.jpeg]]&lt;br /&gt;
&lt;br /&gt;
==== Solution 2 - Assign chronologically nearest round's deadline to the team ====&lt;br /&gt;
&lt;br /&gt;
This can be achieved in the following steps:&lt;br /&gt;
&lt;br /&gt;
1. Add a column in &amp;quot;signed_up_teams&amp;quot; with the name &amp;quot;deadline_round&amp;quot; to store which round of deadline applies to this team.&lt;br /&gt;
&lt;br /&gt;
2. Add logic in sign_up_sheet_controller.rb to assign the chronologically nearest round's deadline set to the team when signing up.&lt;br /&gt;
&lt;br /&gt;
 This Implementation might end up being complex because of how the data is currently being stored in the DB, but is a correct solution and needs more design discussion with the professor.&lt;br /&gt;
&lt;br /&gt;
===Issue 2===&lt;br /&gt;
==== Add a new setting for Staggered Assignments ====&lt;br /&gt;
&lt;br /&gt;
This can be achieved by adding a new setting to the staggered deadline assingments so that while creating the assignment an instructor can specify how much gap(days) is needed between the different rounds of submission and review. &lt;br /&gt;
Data will be stored in a new table and only staggered assingments will have this setting. Rationale behind not storing this data in the current '''Assignments''' is to avoid usage of space and prevent any error to the existing setup. Once we have this data, we can calculate all the deadlines for a topic once the instructor has entered the starting deadline. This is reduce a lot of manual work and this setting can be changed any time by the instructor. &lt;br /&gt;
&lt;br /&gt;
==== Add Dropdowns for Relative Dates ====&lt;br /&gt;
&lt;br /&gt;
Changes will have to be made to the due_dates_table in the _due_dates.html.erb file. Changes have to be made to the datetime_picker_roundtype_roundnumber id. We could provide the user with a drop down menu listing a possible set of relative dates to chose from, in addition to the ability to manually enter a custom date. This could be done on the view side by modifying the date fields and adding the necessary JavaScript so that appropriate date responses are filled into the corresponding date fields when an option is chose from the dropdown menu.&lt;br /&gt;
&lt;br /&gt;
===issue 3===&lt;br /&gt;
==== Add Colors to the Graded Reviews ====&lt;br /&gt;
&lt;br /&gt;
Red - Incomplete Review&lt;br /&gt;
Blue - Grade Unassigned to the Review&lt;br /&gt;
Brown - Review Complete/ Grade Assigned&lt;br /&gt;
&lt;br /&gt;
This will be achieved by passing the colors of the reviews to _review_report.html.erb.&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue1.jpg&amp;diff=120123</id>
		<title>File:Issue1.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue1.jpg&amp;diff=120123"/>
		<updated>2018-11-16T04:01:33Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue10.PNG&amp;diff=120122</id>
		<title>File:Issue10.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue10.PNG&amp;diff=120122"/>
		<updated>2018-11-16T03:58:33Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue1.png&amp;diff=120121</id>
		<title>File:Issue1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue1.png&amp;diff=120121"/>
		<updated>2018-11-16T03:56:48Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120120</id>
		<title>CSC/ECE 517 Fall 2018/E1860 Improvements to staggered deadline</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120120"/>
		<updated>2018-11-16T03:56:33Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: /* Solution 1 - Prevent Students from Signing up for topics past deadline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
'''Staggered Deadline Assignment''' is an assignment which can have different topics listed under it and each of these topics have their independent submission and review deadline. Topic's deadline can be the same as parent assignment or independent to it . Such assignments are useful when the class material is more sequential and instructor wants students to complete assignment as and when a topic gets covered in the class. For example it wouldn't make sense to write a paper on a topic from Chapter 4, until the class had covered Chapter 4.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
==== Staggered-deadline topic available for selection past its deadline====&lt;br /&gt;
&lt;br /&gt;
This issue occurs when a '''Topic''' is created with multiple slots. If the topic is not selected for the first round of topics(assignment) or all the slots did not get filled up, It is still available for selection in the subsequent rounds. If a team selects the topic in a later round, they are not able to submit their work as the submission deadline is already over. &lt;br /&gt;
If the topic had only one slot which remained unselected, instructor can change the deadline for that topic to match the new deadlines, but for topics with multiple slots, if the deadline is extended, the teams who worked on this topic in the previous round can submit/review the topic again. This should not happen &lt;br /&gt;
&lt;br /&gt;
====Manual submission and review deadline entry required for all topics====&lt;br /&gt;
&lt;br /&gt;
When creating a topic an instructor is required to enter review and submission deadlines for all the topics. To reduce the manual we want to allow the instructor to apply one deadline entry to a set of topics and also let the system calculate subsequent dates for subsequent project phases like review and re-submission, based on an initial deadline entry. Instructor should also have the ability to edit each of those deadlines independently incase he wants to change a particular deadline of a topic.&lt;br /&gt;
&lt;br /&gt;
====New submissions not identifiable among pool of already graded entries====&lt;br /&gt;
&lt;br /&gt;
There is no way to identify new submissions or reviews are new since grading was last done. The '''Submissions''' and '''Reviews''' should appear in different color before and after they are graded. The color scheme should be compatible with the one used for review report. ie '''Red''' indicates incomplete Reviews, '''Blue''' indicates reviews that have not been graded and '''Brown''' for reviews that have grade assigned to them&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
&lt;br /&gt;
===Issue 1===&lt;br /&gt;
==== Solution 1 - Prevent Students from Signing up for topics past deadline====&lt;br /&gt;
&lt;br /&gt;
Students can be prevented from signing up for a topic whose submission deadline has passed. Currently this is happening, but only in case of assignments/topics which do not have staggered deadlines. &lt;br /&gt;
&lt;br /&gt;
'''sign_up_sheet_controller.rb'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unless assignment.due_dates.find_by_deadline_type_id(1).nil?&lt;br /&gt;
   if !assignment.staggered_deadline? and assignment.due_dates.find_by_deadline_type_id(1).due_at &amp;lt; Time.now&lt;br /&gt;
   @show_actions = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
A Similar logic can be implemented for topic where we fetch the deadline for a '''topic''' by implementing a function and then determine whether to display that topic or not. The same function could also be modified to achieve the desired results.&lt;br /&gt;
&lt;br /&gt;
[[File:Issue1.png]]&lt;br /&gt;
&lt;br /&gt;
==== Solution 2 - Assign chronologically nearest round's deadline to the team ====&lt;br /&gt;
&lt;br /&gt;
This can be achieved in the following steps:&lt;br /&gt;
&lt;br /&gt;
1. Add a column in &amp;quot;signed_up_teams&amp;quot; with the name &amp;quot;deadline_round&amp;quot; to store which round of deadline applies to this team.&lt;br /&gt;
&lt;br /&gt;
2. Add logic in sign_up_sheet_controller.rb to assign the chronologically nearest round's deadline set to the team when signing up.&lt;br /&gt;
&lt;br /&gt;
 This Implementation might end up being complex because of how the data is currently being stored in the DB, but is a correct solution and needs more design discussion with the professor.&lt;br /&gt;
&lt;br /&gt;
===Issue 2===&lt;br /&gt;
==== Add a new setting for Staggered Assignments ====&lt;br /&gt;
&lt;br /&gt;
This can be achieved by adding a new setting to the staggered deadline assingments so that while creating the assignment an instructor can specify how much gap(days) is needed between the different rounds of submission and review. &lt;br /&gt;
Data will be stored in a new table and only staggered assingments will have this setting. Rationale behind not storing this data in the current '''Assignments''' is to avoid usage of space and prevent any error to the existing setup. Once we have this data, we can calculate all the deadlines for a topic once the instructor has entered the starting deadline. This is reduce a lot of manual work and this setting can be changed any time by the instructor. &lt;br /&gt;
&lt;br /&gt;
==== Add Dropdowns for Relative Dates ====&lt;br /&gt;
&lt;br /&gt;
Changes will have to be made to the due_dates_table in the _due_dates.html.erb file. Changes have to be made to the datetime_picker_roundtype_roundnumber id. We could provide the user with a drop down menu listing a possible set of relative dates to chose from, in addition to the ability to manually enter a custom date. This could be done on the view side by modifying the date fields and adding the necessary JavaScript so that appropriate date responses are filled into the corresponding date fields when an option is chose from the dropdown menu.&lt;br /&gt;
&lt;br /&gt;
===issue 3===&lt;br /&gt;
==== Add Colors to the Graded Reviews ====&lt;br /&gt;
&lt;br /&gt;
Red - Incomplete Review&lt;br /&gt;
Blue - Grade Unassigned to the Review&lt;br /&gt;
Brown - Review Complete/ Grade Assigned&lt;br /&gt;
&lt;br /&gt;
This will be achieved by passing the colors of the reviews to _review_report.html.erb.&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue_1860_1.PNG&amp;diff=120119</id>
		<title>File:Issue 1860 1.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue_1860_1.PNG&amp;diff=120119"/>
		<updated>2018-11-16T03:54:59Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue1.PNG&amp;diff=120118</id>
		<title>File:Issue1.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue1.PNG&amp;diff=120118"/>
		<updated>2018-11-16T03:52:58Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: uploaded a new version of &amp;amp;quot;File:Issue1.PNG&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue1.PNG&amp;diff=120117</id>
		<title>File:Issue1.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue1.PNG&amp;diff=120117"/>
		<updated>2018-11-16T03:52:32Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: uploaded a new version of &amp;amp;quot;File:Issue1.PNG&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue1.PNG&amp;diff=120116</id>
		<title>File:Issue1.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue1.PNG&amp;diff=120116"/>
		<updated>2018-11-16T03:52:01Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120115</id>
		<title>CSC/ECE 517 Fall 2018/E1860 Improvements to staggered deadline</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120115"/>
		<updated>2018-11-16T03:51:38Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: /* Solution 1 - Prevent Students from Signing up for topics past deadline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
'''Staggered Deadline Assignment''' is an assignment which can have different topics listed under it and each of these topics have their independent submission and review deadline. Topic's deadline can be the same as parent assignment or independent to it . Such assignments are useful when the class material is more sequential and instructor wants students to complete assignment as and when a topic gets covered in the class. For example it wouldn't make sense to write a paper on a topic from Chapter 4, until the class had covered Chapter 4.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
==== Staggered-deadline topic available for selection past its deadline====&lt;br /&gt;
&lt;br /&gt;
This issue occurs when a '''Topic''' is created with multiple slots. If the topic is not selected for the first round of topics(assignment) or all the slots did not get filled up, It is still available for selection in the subsequent rounds. If a team selects the topic in a later round, they are not able to submit their work as the submission deadline is already over. &lt;br /&gt;
If the topic had only one slot which remained unselected, instructor can change the deadline for that topic to match the new deadlines, but for topics with multiple slots, if the deadline is extended, the teams who worked on this topic in the previous round can submit/review the topic again. This should not happen &lt;br /&gt;
&lt;br /&gt;
====Manual submission and review deadline entry required for all topics====&lt;br /&gt;
&lt;br /&gt;
When creating a topic an instructor is required to enter review and submission deadlines for all the topics. To reduce the manual we want to allow the instructor to apply one deadline entry to a set of topics and also let the system calculate subsequent dates for subsequent project phases like review and re-submission, based on an initial deadline entry. Instructor should also have the ability to edit each of those deadlines independently incase he wants to change a particular deadline of a topic.&lt;br /&gt;
&lt;br /&gt;
====New submissions not identifiable among pool of already graded entries====&lt;br /&gt;
&lt;br /&gt;
There is no way to identify new submissions or reviews are new since grading was last done. The '''Submissions''' and '''Reviews''' should appear in different color before and after they are graded. The color scheme should be compatible with the one used for review report. ie '''Red''' indicates incomplete Reviews, '''Blue''' indicates reviews that have not been graded and '''Brown''' for reviews that have grade assigned to them&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
&lt;br /&gt;
===Issue 1===&lt;br /&gt;
==== Solution 1 - Prevent Students from Signing up for topics past deadline====&lt;br /&gt;
&lt;br /&gt;
Students can be prevented from signing up for a topic whose submission deadline has passed. Currently this is happening, but only in case of assignments/topics which do not have staggered deadlines. &lt;br /&gt;
&lt;br /&gt;
'''sign_up_sheet_controller.rb'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unless assignment.due_dates.find_by_deadline_type_id(1).nil?&lt;br /&gt;
   if !assignment.staggered_deadline? and assignment.due_dates.find_by_deadline_type_id(1).due_at &amp;lt; Time.now&lt;br /&gt;
   @show_actions = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
A Similar logic can be implemented for topic where we fetch the deadline for a '''topic''' by implementing a function and then determine whether to display that topic or not. The same function could also be modified to achieve the desired results.&lt;br /&gt;
&lt;br /&gt;
[[File:Issue1.jpg]]&lt;br /&gt;
&lt;br /&gt;
==== Solution 2 - Assign chronologically nearest round's deadline to the team ====&lt;br /&gt;
&lt;br /&gt;
This can be achieved in the following steps:&lt;br /&gt;
&lt;br /&gt;
1. Add a column in &amp;quot;signed_up_teams&amp;quot; with the name &amp;quot;deadline_round&amp;quot; to store which round of deadline applies to this team.&lt;br /&gt;
&lt;br /&gt;
2. Add logic in sign_up_sheet_controller.rb to assign the chronologically nearest round's deadline set to the team when signing up.&lt;br /&gt;
&lt;br /&gt;
 This Implementation might end up being complex because of how the data is currently being stored in the DB, but is a correct solution and needs more design discussion with the professor.&lt;br /&gt;
&lt;br /&gt;
===Issue 2===&lt;br /&gt;
==== Add a new setting for Staggered Assignments ====&lt;br /&gt;
&lt;br /&gt;
This can be achieved by adding a new setting to the staggered deadline assingments so that while creating the assignment an instructor can specify how much gap(days) is needed between the different rounds of submission and review. &lt;br /&gt;
Data will be stored in a new table and only staggered assingments will have this setting. Rationale behind not storing this data in the current '''Assignments''' is to avoid usage of space and prevent any error to the existing setup. Once we have this data, we can calculate all the deadlines for a topic once the instructor has entered the starting deadline. This is reduce a lot of manual work and this setting can be changed any time by the instructor. &lt;br /&gt;
&lt;br /&gt;
==== Add Dropdowns for Relative Dates ====&lt;br /&gt;
&lt;br /&gt;
Changes will have to be made to the due_dates_table in the _due_dates.html.erb file. Changes have to be made to the datetime_picker_roundtype_roundnumber id. We could provide the user with a drop down menu listing a possible set of relative dates to chose from, in addition to the ability to manually enter a custom date. This could be done on the view side by modifying the date fields and adding the necessary JavaScript so that appropriate date responses are filled into the corresponding date fields when an option is chose from the dropdown menu.&lt;br /&gt;
&lt;br /&gt;
===issue 3===&lt;br /&gt;
==== Add Colors to the Graded Reviews ====&lt;br /&gt;
&lt;br /&gt;
Red - Incomplete Review&lt;br /&gt;
Blue - Grade Unassigned to the Review&lt;br /&gt;
Brown - Review Complete/ Grade Assigned&lt;br /&gt;
&lt;br /&gt;
This will be achieved by passing the colors of the reviews to _review_report.html.erb.&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120114</id>
		<title>CSC/ECE 517 Fall 2018/E1860 Improvements to staggered deadline</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1860_Improvements_to_staggered_deadline&amp;diff=120114"/>
		<updated>2018-11-16T03:45:19Z</updated>

		<summary type="html">&lt;p&gt;Mkhan8: /* Solution 1 - Prevent Students from Signing up for topics past deadline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
'''Staggered Deadline Assignment''' is an assignment which can have different topics listed under it and each of these topics have their independent submission and review deadline. Topic's deadline can be the same as parent assignment or independent to it . Such assignments are useful when the class material is more sequential and instructor wants students to complete assignment as and when a topic gets covered in the class. For example it wouldn't make sense to write a paper on a topic from Chapter 4, until the class had covered Chapter 4.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
==== Staggered-deadline topic available for selection past its deadline====&lt;br /&gt;
&lt;br /&gt;
This issue occurs when a '''Topic''' is created with multiple slots. If the topic is not selected for the first round of topics(assignment) or all the slots did not get filled up, It is still available for selection in the subsequent rounds. If a team selects the topic in a later round, they are not able to submit their work as the submission deadline is already over. &lt;br /&gt;
If the topic had only one slot which remained unselected, instructor can change the deadline for that topic to match the new deadlines, but for topics with multiple slots, if the deadline is extended, the teams who worked on this topic in the previous round can submit/review the topic again. This should not happen &lt;br /&gt;
&lt;br /&gt;
====Manual submission and review deadline entry required for all topics====&lt;br /&gt;
&lt;br /&gt;
When creating a topic an instructor is required to enter review and submission deadlines for all the topics. To reduce the manual we want to allow the instructor to apply one deadline entry to a set of topics and also let the system calculate subsequent dates for subsequent project phases like review and re-submission, based on an initial deadline entry. Instructor should also have the ability to edit each of those deadlines independently incase he wants to change a particular deadline of a topic.&lt;br /&gt;
&lt;br /&gt;
====New submissions not identifiable among pool of already graded entries====&lt;br /&gt;
&lt;br /&gt;
There is no way to identify new submissions or reviews are new since grading was last done. The '''Submissions''' and '''Reviews''' should appear in different color before and after they are graded. The color scheme should be compatible with the one used for review report. ie '''Red''' indicates incomplete Reviews, '''Blue''' indicates reviews that have not been graded and '''Brown''' for reviews that have grade assigned to them&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
&lt;br /&gt;
===Issue 1===&lt;br /&gt;
==== Solution 1 - Prevent Students from Signing up for topics past deadline====&lt;br /&gt;
&lt;br /&gt;
Students can be prevented from signing up for a topic whose submission deadline has passed. Currently this is happening, but only in case of assignments/topics which do not have staggered deadlines. &lt;br /&gt;
&lt;br /&gt;
'''sign_up_sheet_controller.rb'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unless assignment.due_dates.find_by_deadline_type_id(1).nil?&lt;br /&gt;
   if !assignment.staggered_deadline? and assignment.due_dates.find_by_deadline_type_id(1).due_at &amp;lt; Time.now&lt;br /&gt;
   @show_actions = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
A Similar logic can be implemented for topic where we fetch the deadline for a '''topic''' by implementing a function and then determine whether to display that topic or not. The same function could also be modified to achieve the desired results.&lt;br /&gt;
&lt;br /&gt;
==== Solution 2 - Assign chronologically nearest round's deadline to the team ====&lt;br /&gt;
&lt;br /&gt;
This can be achieved in the following steps:&lt;br /&gt;
&lt;br /&gt;
1. Add a column in &amp;quot;signed_up_teams&amp;quot; with the name &amp;quot;deadline_round&amp;quot; to store which round of deadline applies to this team.&lt;br /&gt;
&lt;br /&gt;
2. Add logic in sign_up_sheet_controller.rb to assign the chronologically nearest round's deadline set to the team when signing up.&lt;br /&gt;
&lt;br /&gt;
 This Implementation might end up being complex because of how the data is currently being stored in the DB, but is a correct solution and needs more design discussion with the professor.&lt;br /&gt;
&lt;br /&gt;
===Issue 2===&lt;br /&gt;
==== Add a new setting for Staggered Assignments ====&lt;br /&gt;
&lt;br /&gt;
This can be achieved by adding a new setting to the staggered deadline assingments so that while creating the assignment an instructor can specify how much gap(days) is needed between the different rounds of submission and review. &lt;br /&gt;
Data will be stored in a new table and only staggered assingments will have this setting. Rationale behind not storing this data in the current '''Assignments''' is to avoid usage of space and prevent any error to the existing setup. Once we have this data, we can calculate all the deadlines for a topic once the instructor has entered the starting deadline. This is reduce a lot of manual work and this setting can be changed any time by the instructor. &lt;br /&gt;
&lt;br /&gt;
==== Add Dropdowns for Relative Dates ====&lt;br /&gt;
&lt;br /&gt;
Changes will have to be made to the due_dates_table in the _due_dates.html.erb file. Changes have to be made to the datetime_picker_roundtype_roundnumber id. We could provide the user with a drop down menu listing a possible set of relative dates to chose from, in addition to the ability to manually enter a custom date. This could be done on the view side by modifying the date fields and adding the necessary JavaScript so that appropriate date responses are filled into the corresponding date fields when an option is chose from the dropdown menu.&lt;br /&gt;
&lt;br /&gt;
===issue 3===&lt;br /&gt;
==== Add Colors to the Graded Reviews ====&lt;br /&gt;
&lt;br /&gt;
Red - Incomplete Review&lt;br /&gt;
Blue - Grade Unassigned to the Review&lt;br /&gt;
Brown - Review Complete/ Grade Assigned&lt;br /&gt;
&lt;br /&gt;
This will be achieved by passing the colors of the reviews to _review_report.html.erb.&lt;/div&gt;</summary>
		<author><name>Mkhan8</name></author>
	</entry>
</feed>