<?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=Magarwa3</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=Magarwa3"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Magarwa3"/>
	<updated>2026-08-08T09:17:44Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025&amp;diff=161449</id>
		<title>CSC/ECE 517 Spring 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025&amp;diff=161449"/>
		<updated>2025-03-17T18:38:44Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[CSC/ECE 517 Fall 2024 - E2508. Reimplement bidding-algorithm web service]]&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025&amp;diff=161448</id>
		<title>CSC/ECE 517 Spring 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025&amp;diff=161448"/>
		<updated>2025-03-17T18:38:36Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[CSC/ECE 517 Fall 2024 - E2508. Reimplement bidding-algorithm web service]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2024 - E2505. Reimplement bidding-algorithm web service]]&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2444_Implement_Frontend_for_the_Review&amp;diff=156742</id>
		<title>CSC/ECE 517 Spring 2024 - E2444 Implement Frontend for the Review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2444_Implement_Frontend_for_the_Review&amp;diff=156742"/>
		<updated>2024-04-24T03:28:40Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: /* reviewData.ts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview of Expertiza ==&lt;br /&gt;
Expertiza, constructed using Ruby on Rails, is an open-source learning management system that offers a diverse array of features. These include the ability to generate assignments, tests, assignment teams, courses, reviews for the assignments, etc. Notably, it excels in providing a comprehensive peer review system, fostering thorough feedback within teams and among group members. The central focus of the project revolves around enhancing the frontend components related to the Review. A specific challenge being tackled involves the reimplementation of the current non-Typescript Review Page to incorporate Typescript and React. Consequently, the team's task is to craft the User Interface for these components using React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The main objective of this project is to reimplement the front end for the Review view page within Expertiza.&lt;br /&gt;
 &lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The following tasks were required for the reimplementation :&lt;br /&gt;
#&amp;lt;b&amp;gt;Frontend Reimplementation:&amp;lt;/b&amp;gt; Reimplement the frontend of the Review page in React.js and Typescript which is currently in Ruby.&lt;br /&gt;
#&amp;lt;b&amp;gt;Seeding of Databse File &amp;lt;/b&amp;gt; There should be seeding of 1 file to simulate the review given by a user which will reflect in the Review UI page.&lt;br /&gt;
#&amp;lt;b&amp;gt;Removal of Unused Elements:&amp;lt;/b&amp;gt; Remove any unused elements such as URLs, color legends, etc., to streamline the interface.&lt;br /&gt;
#&amp;lt;b&amp;gt;Improve UI:&amp;lt;/b&amp;gt; We aim to improve user experience and interface efficiency by developing a refreshed front end using React JS and TypeScript.&lt;br /&gt;
&lt;br /&gt;
=='''Project 4 - DESIGN DOC'''==&lt;br /&gt;
&lt;br /&gt;
== Design Patterns ==&lt;br /&gt;
===Composite Design Pattern:===&lt;br /&gt;
&lt;br /&gt;
By nesting and composing elements like Show-Review, Email etc and others, we can effectively design our Review component by utilising the Composite Design Pattern.&lt;br /&gt;
&lt;br /&gt;
===DRY Principle:===&lt;br /&gt;
&lt;br /&gt;
We want to reduce redundancy  by using React's functionality to reuse pre-existing components like Show-Review and Email, in line with the DRY Principle.&lt;br /&gt;
&lt;br /&gt;
=== Single Responsibility Principle (SRP) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Each React component will have a single responsibility, such as displaying Reviews, managing file submissions, or handling email options.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Separate concerns such as data fetching, state management, and rendering to improve modularity and maintainability.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Provider Pattern:===&lt;br /&gt;
&lt;br /&gt;
Our goal is to apply the Provider Pattern to React's Context API so that props can propagate naturally throughout the component hierarchy without requiring explicit prop drilling.&lt;br /&gt;
&lt;br /&gt;
===Observer Pattern:===&lt;br /&gt;
&lt;br /&gt;
Our goal is to take advantage of the Observer Pattern by using hooks like useEffect and useState along with React's Context API to manage component state and side effects efficiently.&lt;br /&gt;
&lt;br /&gt;
===HOC Pattern:===&lt;br /&gt;
&lt;br /&gt;
Routing for new pages can be made more efficient by using the Higher-Order Component pattern, or HOC Pattern. This entails creating functions that take an input component and provide a changed component with routing functionality.&lt;br /&gt;
&lt;br /&gt;
===Mediator Pattern:===&lt;br /&gt;
&lt;br /&gt;
Our goal is to apply the Mediator Pattern in light of the discrepancy between frontend requirements and backend data structures. With this method, we can easily change data as needed to ensure that it is consistent and compatible with the rest of our program.&lt;br /&gt;
&lt;br /&gt;
=== Open/Closed Principle (OCP) ===&lt;br /&gt;
&lt;br /&gt;
*Designing components to be open for extension by allowing for customization or configuration through props or context.&lt;br /&gt;
*Ensuring that components can be extended or modified without altering their core functionality by adhering to React's composition model.&lt;br /&gt;
&lt;br /&gt;
== Use Cases ==&lt;br /&gt;
&lt;br /&gt;
The following is a simple decision tree that can help summarize the various user stories that we absolutely must account for in our design. The first case is a user who reads the review and is satisfied, and takes no further action except for perhaps sharing their review publicly as a model. The second case is when there's an issue on the fault of the reviewer that the user notices, at which point they can press the email button to email the author of the review. Lastly, the user may be informed by a reviewer or discover on their own that something is wrong with their submission. If this happens, then the user may change the submissions saved in the system by removing unnecessary ones or uploading new files.&lt;br /&gt;
&lt;br /&gt;
[[File:e2444_Use_cases.png | 700px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 1: User story decision tree for Expertiza&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Existing Review Page ==&lt;br /&gt;
We identified several design issues with the existing review page. Most notably, there are many elements that are uncentered and completely unformatted. Spacing in between each element is inconsistent and some even have bullet points for no reason. It would also be nice if lists of links or files could be shown in a table instead of a list of checkboxes, as it makes actions related to these items more difficult for the user. Finally, some hyperlinks, particularly the toggle visibility ones, could be better implemented as buttons since they do not actually route the user anywhere.&lt;br /&gt;
&lt;br /&gt;
[[File:Existing 2444.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 2: Existing review page within Expertiza&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:e2444_Old_email.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 3: Existing email page within Expertiza&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
The following is our refactoring of the previous design. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''1.''' Several key elements are now centralized, and the link submission and the file submission areas are placed side-by-side to minimize whitespace while still maintaining readability.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''2.''' Key user actions were made into buttons, particularly visibility toggles, emailing the author, and sharing the review publicly. This was done to better grab the user's attention and to more clearly communicate the result of clicking the link by use of icons.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''3.''' &amp;quot;Email the Author&amp;quot; page was also stylized to incorporate central elements.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''4.''' The previous system of selecting a bullet-point list, and then clicking on a remove button was changed to simply having a trashcan icon next to every submission on the table, that way the user can simply press the icon corresponding to the submission they would like to remove. This action is dangerous, since it could potentially result in the user losing their work. For this reason, we also added a stylized confirmation screen that clearly communicates the exact action the user is about to take in the form of a warning. This is a good thing because it prevents potential future errors down the road. This warning system was also kept for the review sharing system since that could result in the exposing of sensitive information.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''5.''' We thought it would be a good idea to simplify the file-uploading experience for the user. The user sees the name of the file uploaded, the size of the file, and also the type of the file uploaded and does not have to go through a two-step select + upload process like before. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''6.''' In the new design, files are uploaded as they are selected but can be identified and removed quickly from the table. We thought this was an appropriate design choice because we saw no benefit to having to make the user press two buttons to perform what most would consider a single task. There are also minimal consequences for user error since they can immediately delete files that they did not mean to upload.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''7.''' Some changes we decided to keep were the color scheme and score reporting within the review table because we believe it should catch the attention of the user as soon as they navigate to the page. The circles provide good contrast from the other elements, and alongside the color make it quick to identify low scores on criteria that the user may want to give their attention to.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2024-04-23 at 10.37.18 PM.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 4: Our new design of the review page&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:e2444_New_email.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 5: Our new design of the email page&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Files Added / Changed == &lt;br /&gt;
&lt;br /&gt;
=== reviews.tsx ===&lt;br /&gt;
This is the main typescript file in which we have implemented all the changes. It contains the functionality as follows:&lt;br /&gt;
&amp;lt;li&amp;gt;Adding Files to the Reviews&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Emailing the Author&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Displaying the Reviews given by the people&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Enhancing the Design functionality of buttons and links have been integrated into this file.&lt;br /&gt;
&lt;br /&gt;
[[File:2444-1.png | 800px| center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 6: Changes in reviews.tsx&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2444-2.png | 800px| center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 7: Changes in reviews.tsx&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2444-3.png | 800px| center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 8: Changes in reviews.tsx&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== reviewData.ts ===&lt;br /&gt;
This is the transport stream file through which we are reading our reviews in the front-end page. We have seeded the reviews in this page and utilizing the&amp;quot;map&amp;quot; functionality in ReactJS to read the reviews from this file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2444-4.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 9: Changes in reviewData.ts&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
Since the changes revolve around UI implementation, the features need to be manually checked on the web pages.&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;b&amp;gt;Component Rendering:&amp;lt;/b&amp;gt; Ensure that all components from the original Ruby frontend are properly re-implemented in React.js and Typescript.&lt;br /&gt;
#&amp;lt;b&amp;gt;Styling Consistency: &amp;lt;/b&amp;gt; Verify that the new front-end maintains consistent styling with the rest of the application.&lt;br /&gt;
#&amp;lt;b&amp;gt;Functionality Testing:&amp;lt;/b&amp;gt; Test all interactive elements such as buttons, and input fields to ensure they work as expected.&lt;br /&gt;
#&amp;lt;b&amp;gt;Responsive Design:&amp;lt;/b&amp;gt; Check the responsiveness of the new front-end on different screen sizes and devices.&lt;br /&gt;
#&amp;lt;b&amp;gt;Show &amp;quot;Email Author&amp;quot; Link:&amp;lt;/b&amp;gt; Ensure that &amp;quot;Email Author&amp;quot; Link is there in the reimplemented React page so that the Review can be mailed to him/her.&lt;br /&gt;
#&amp;lt;b&amp;gt;Seeding the Database Functionality:&amp;lt;/b&amp;gt; Ensure that the Reviews are correctly read from a sample Database by seeding it correctly.&lt;br /&gt;
#&amp;lt;b&amp;gt;Interface Efficiency:&amp;lt;/b&amp;gt; Check if the new frontend enhances interface efficiency by being more intuitive and user-friendly.&lt;br /&gt;
&lt;br /&gt;
The Results of our testing indicate that all of our components work correctly. Particularly, here are the features we have verified the following features:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The toggle visibility button for the submission table correctly toggles between show and hide, and appropriately makes the table contents visible and invisible.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The toggle visibility button for the review table correctly toggles between show and hide, and appropriately makes the table contents visible and invisible.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The email author button correctly navigates the user to the email author page.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The share review button correctly gives a warning, and will only run the handleShowReview() function if that warning is successfully confirmed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The upload file button uploads the selected file and displays it on the file submission table below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The trashcan icon next to a link will appropriately delete that link from the list of links, and visually update the table accordingly.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The trashcan icon next to a file will appropriately delete that file from the list of files, and visually update the table accordingly.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Our design is user friendly. This is verified by consulting all of the 12 Basic Principles of Graphic Design (https://www.zekagraphic.com/12-principles-of-graphic-design/).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Warning.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 10: Warning displayed when a user attempts to remove a submitted link&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Important Links ==&lt;br /&gt;
* GitHub Repo: https://github.com/gwenmason125/reimplementation-front-end&lt;br /&gt;
* Pull Request: https://github.com/expertiza/reimplementation-front-end/pull/51&lt;br /&gt;
&lt;br /&gt;
== Demo Video ==&lt;br /&gt;
You can watch this [https://www.youtube.com/watch?v=5dPeMEY6A_Y demo video] for a detailed demonstration of the changes we made in the UI.&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
=====Mentor===== &lt;br /&gt;
* '''Riya Gori'''&lt;br /&gt;
&lt;br /&gt;
=====Members===== &lt;br /&gt;
* '''Mitesh Agarwal''' (unityid: magarwa3)&lt;br /&gt;
* '''Shubham Loya''' (unityid: ssloya)&lt;br /&gt;
* '''Gwen Mason''' (unityid: cpmason)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
#[https://wiki-expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2022_-_E2233._Improving_search_facility_in_Expertiza Spring 2022 Design]&lt;br /&gt;
#[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2153._Improving_search_facility_in_Expertiza Fall 2021 Design]&lt;br /&gt;
#[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2020_-_E2079._Improve_Search_Facility_In_Expertiza Fall 2020 Design]&lt;br /&gt;
#[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2019_-_E1987._Improving_search_facility_in_Expertiza Fall 2019 Design]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2444_Implement_Frontend_for_the_Review&amp;diff=156732</id>
		<title>CSC/ECE 517 Spring 2024 - E2444 Implement Frontend for the Review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2444_Implement_Frontend_for_the_Review&amp;diff=156732"/>
		<updated>2024-04-24T03:26:48Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview of Expertiza ==&lt;br /&gt;
Expertiza, constructed using Ruby on Rails, is an open-source learning management system that offers a diverse array of features. These include the ability to generate assignments, tests, assignment teams, courses, reviews for the assignments, etc. Notably, it excels in providing a comprehensive peer review system, fostering thorough feedback within teams and among group members. The central focus of the project revolves around enhancing the frontend components related to the Review. A specific challenge being tackled involves the reimplementation of the current non-Typescript Review Page to incorporate Typescript and React. Consequently, the team's task is to craft the User Interface for these components using React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The main objective of this project is to reimplement the front end for the Review view page within Expertiza.&lt;br /&gt;
 &lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The following tasks were required for the reimplementation :&lt;br /&gt;
#&amp;lt;b&amp;gt;Frontend Reimplementation:&amp;lt;/b&amp;gt; Reimplement the frontend of the Review page in React.js and Typescript which is currently in Ruby.&lt;br /&gt;
#&amp;lt;b&amp;gt;Seeding of Databse File &amp;lt;/b&amp;gt; There should be seeding of 1 file to simulate the review given by a user which will reflect in the Review UI page.&lt;br /&gt;
#&amp;lt;b&amp;gt;Removal of Unused Elements:&amp;lt;/b&amp;gt; Remove any unused elements such as URLs, color legends, etc., to streamline the interface.&lt;br /&gt;
#&amp;lt;b&amp;gt;Improve UI:&amp;lt;/b&amp;gt; We aim to improve user experience and interface efficiency by developing a refreshed front end using React JS and TypeScript.&lt;br /&gt;
&lt;br /&gt;
=='''Project 4 - DESIGN DOC'''==&lt;br /&gt;
&lt;br /&gt;
== Design Patterns ==&lt;br /&gt;
===Composite Design Pattern:===&lt;br /&gt;
&lt;br /&gt;
By nesting and composing elements like Show-Review, Email etc and others, we can effectively design our Review component by utilising the Composite Design Pattern.&lt;br /&gt;
&lt;br /&gt;
===DRY Principle:===&lt;br /&gt;
&lt;br /&gt;
We want to reduce redundancy  by using React's functionality to reuse pre-existing components like Show-Review and Email, in line with the DRY Principle.&lt;br /&gt;
&lt;br /&gt;
=== Single Responsibility Principle (SRP) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Each React component will have a single responsibility, such as displaying Reviews, managing file submissions, or handling email options.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Separate concerns such as data fetching, state management, and rendering to improve modularity and maintainability.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Provider Pattern:===&lt;br /&gt;
&lt;br /&gt;
Our goal is to apply the Provider Pattern to React's Context API so that props can propagate naturally throughout the component hierarchy without requiring explicit prop drilling.&lt;br /&gt;
&lt;br /&gt;
===Observer Pattern:===&lt;br /&gt;
&lt;br /&gt;
Our goal is to take advantage of the Observer Pattern by using hooks like useEffect and useState along with React's Context API to manage component state and side effects efficiently.&lt;br /&gt;
&lt;br /&gt;
===HOC Pattern:===&lt;br /&gt;
&lt;br /&gt;
Routing for new pages can be made more efficient by using the Higher-Order Component pattern, or HOC Pattern. This entails creating functions that take an input component and provide a changed component with routing functionality.&lt;br /&gt;
&lt;br /&gt;
===Mediator Pattern:===&lt;br /&gt;
&lt;br /&gt;
Our goal is to apply the Mediator Pattern in light of the discrepancy between frontend requirements and backend data structures. With this method, we can easily change data as needed to ensure that it is consistent and compatible with the rest of our program.&lt;br /&gt;
&lt;br /&gt;
=== Open/Closed Principle (OCP) ===&lt;br /&gt;
&lt;br /&gt;
*Designing components to be open for extension by allowing for customization or configuration through props or context.&lt;br /&gt;
*Ensuring that components can be extended or modified without altering their core functionality by adhering to React's composition model.&lt;br /&gt;
&lt;br /&gt;
== Use Cases ==&lt;br /&gt;
&lt;br /&gt;
The following is a simple decision tree that can help summarize the various user stories that we absolutely must account for in our design. The first case is a user who reads the review and is satisfied, and takes no further action except for perhaps sharing their review publicly as a model. The second case is when there's an issue on the fault of the reviewer that the user notices, at which point they can press the email button to email the author of the review. Lastly, the user may be informed by a reviewer or discover on their own that something is wrong with their submission. If this happens, then the user may change the submissions saved in the system by removing unnecessary ones or uploading new files.&lt;br /&gt;
&lt;br /&gt;
[[File:e2444_Use_cases.png | 700px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 1: User story decision tree for Expertiza&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Existing Review Page ==&lt;br /&gt;
We identified several design issues with the existing review page. Most notably, there are many elements that are uncentered and completely unformatted. Spacing in between each element is inconsistent and some even have bullet points for no reason. It would also be nice if lists of links or files could be shown in a table instead of a list of checkboxes, as it makes actions related to these items more difficult for the user. Finally, some hyperlinks, particularly the toggle visibility ones, could be better implemented as buttons since they do not actually route the user anywhere.&lt;br /&gt;
&lt;br /&gt;
[[File:Existing 2444.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 2: Existing review page within Expertiza&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:e2444_Old_email.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 3: Existing email page within Expertiza&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
The following is our refactoring of the previous design. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''1.''' Several key elements are now centralized, and the link submission and the file submission areas are placed side-by-side to minimize whitespace while still maintaining readability.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''2.''' Key user actions were made into buttons, particularly visibility toggles, emailing the author, and sharing the review publicly. This was done to better grab the user's attention and to more clearly communicate the result of clicking the link by use of icons.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''3.''' &amp;quot;Email the Author&amp;quot; page was also stylized to incorporate central elements.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''4.''' The previous system of selecting a bullet-point list, and then clicking on a remove button was changed to simply having a trashcan icon next to every submission on the table, that way the user can simply press the icon corresponding to the submission they would like to remove. This action is dangerous, since it could potentially result in the user losing their work. For this reason, we also added a stylized confirmation screen that clearly communicates the exact action the user is about to take in the form of a warning. This is a good thing because it prevents potential future errors down the road. This warning system was also kept for the review sharing system since that could result in the exposing of sensitive information.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''5.''' We thought it would be a good idea to simplify the file-uploading experience for the user. The user sees the name of the file uploaded, the size of the file, and also the type of the file uploaded and does not have to go through a two-step select + upload process like before. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''6.''' In the new design, files are uploaded as they are selected but can be identified and removed quickly from the table. We thought this was an appropriate design choice because we saw no benefit to having to make the user press two buttons to perform what most would consider a single task. There are also minimal consequences for user error since they can immediately delete files that they did not mean to upload.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''7.''' Some changes we decided to keep were the color scheme and score reporting within the review table because we believe it should catch the attention of the user as soon as they navigate to the page. The circles provide good contrast from the other elements, and alongside the color make it quick to identify low scores on criteria that the user may want to give their attention to.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2024-04-23 at 10.37.18 PM.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 4: Our new design of the review page&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:e2444_New_email.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 5: Our new design of the email page&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Files Added / Changed == &lt;br /&gt;
&lt;br /&gt;
=== reviews.tsx ===&lt;br /&gt;
This is the main typescript file in which we have implemented all the changes. It contains the functionality as follows:&lt;br /&gt;
&amp;lt;li&amp;gt;Adding Files to the Reviews&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Emailing the Author&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Displaying the Reviews given by the people&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Enhancing the Design functionality of buttons and links have been integrated into this file.&lt;br /&gt;
&lt;br /&gt;
[[File:2444-1.png | 800px| center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 6: Changes in reviews.tsx&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2444-2.png | 800px| center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 7: Changes in reviews.tsx&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2444-3.png | 800px| center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 8: Changes in reviews.tsx&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== reviewData.ts ===&lt;br /&gt;
This is the transport stream file through which we are reading our reviews in the front-end page. We have seeded the reviews in this page and utilizing the&amp;quot;map&amp;quot; functionality in ReactJS to read the reviews from this file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2444-4.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 9: Changes in reviews.tsx&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
Since the changes revolve around UI implementation, the features need to be manually checked on the web pages.&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;b&amp;gt;Component Rendering:&amp;lt;/b&amp;gt; Ensure that all components from the original Ruby frontend are properly re-implemented in React.js and Typescript.&lt;br /&gt;
#&amp;lt;b&amp;gt;Styling Consistency: &amp;lt;/b&amp;gt; Verify that the new front-end maintains consistent styling with the rest of the application.&lt;br /&gt;
#&amp;lt;b&amp;gt;Functionality Testing:&amp;lt;/b&amp;gt; Test all interactive elements such as buttons, and input fields to ensure they work as expected.&lt;br /&gt;
#&amp;lt;b&amp;gt;Responsive Design:&amp;lt;/b&amp;gt; Check the responsiveness of the new front-end on different screen sizes and devices.&lt;br /&gt;
#&amp;lt;b&amp;gt;Show &amp;quot;Email Author&amp;quot; Link:&amp;lt;/b&amp;gt; Ensure that &amp;quot;Email Author&amp;quot; Link is there in the reimplemented React page so that the Review can be mailed to him/her.&lt;br /&gt;
#&amp;lt;b&amp;gt;Seeding the Database Functionality:&amp;lt;/b&amp;gt; Ensure that the Reviews are correctly read from a sample Database by seeding it correctly.&lt;br /&gt;
#&amp;lt;b&amp;gt;Interface Efficiency:&amp;lt;/b&amp;gt; Check if the new frontend enhances interface efficiency by being more intuitive and user-friendly.&lt;br /&gt;
&lt;br /&gt;
The Results of our testing indicate that all of our components work correctly. Particularly, here are the features we have verified the following features:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The toggle visibility button for the submission table correctly toggles between show and hide, and appropriately makes the table contents visible and invisible.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The toggle visibility button for the review table correctly toggles between show and hide, and appropriately makes the table contents visible and invisible.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The email author button correctly navigates the user to the email author page.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The share review button correctly gives a warning, and will only run the handleShowReview() function if that warning is successfully confirmed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The upload file button uploads the selected file and displays it on the file submission table below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The trashcan icon next to a link will appropriately delete that link from the list of links, and visually update the table accordingly.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The trashcan icon next to a file will appropriately delete that file from the list of files, and visually update the table accordingly.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Our design is user friendly. This is verified by consulting all of the 12 Basic Principles of Graphic Design (https://www.zekagraphic.com/12-principles-of-graphic-design/).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Warning.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 10: Warning displayed when a user attempts to remove a submitted link&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Important Links ==&lt;br /&gt;
* GitHub Repo: https://github.com/gwenmason125/reimplementation-front-end&lt;br /&gt;
* Pull Request: https://github.com/expertiza/reimplementation-front-end/pull/51&lt;br /&gt;
&lt;br /&gt;
== Demo Video ==&lt;br /&gt;
You can watch this [https://www.youtube.com/watch?v=5dPeMEY6A_Y demo video] for a detailed demonstration of the changes we made in the UI.&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
=====Mentor===== &lt;br /&gt;
* '''Riya Gori'''&lt;br /&gt;
&lt;br /&gt;
=====Members===== &lt;br /&gt;
* '''Mitesh Agarwal''' (unityid: magarwa3)&lt;br /&gt;
* '''Shubham Loya''' (unityid: ssloya)&lt;br /&gt;
* '''Gwen Mason''' (unityid: cpmason)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
#[https://wiki-expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2022_-_E2233._Improving_search_facility_in_Expertiza Spring 2022 Design]&lt;br /&gt;
#[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2153._Improving_search_facility_in_Expertiza Fall 2021 Design]&lt;br /&gt;
#[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2020_-_E2079._Improve_Search_Facility_In_Expertiza Fall 2020 Design]&lt;br /&gt;
#[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2019_-_E1987._Improving_search_facility_in_Expertiza Fall 2019 Design]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:2444-4.png&amp;diff=156723</id>
		<title>File:2444-4.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:2444-4.png&amp;diff=156723"/>
		<updated>2024-04-24T03:24:21Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:2444-3.png&amp;diff=156710</id>
		<title>File:2444-3.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:2444-3.png&amp;diff=156710"/>
		<updated>2024-04-24T03:21:22Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:2444-2.png&amp;diff=156707</id>
		<title>File:2444-2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:2444-2.png&amp;diff=156707"/>
		<updated>2024-04-24T03:20:49Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:2444-1.png&amp;diff=156704</id>
		<title>File:2444-1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:2444-1.png&amp;diff=156704"/>
		<updated>2024-04-24T03:19:45Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2444_Implement_Frontend_for_the_Review&amp;diff=156663</id>
		<title>CSC/ECE 517 Spring 2024 - E2444 Implement Frontend for the Review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2444_Implement_Frontend_for_the_Review&amp;diff=156663"/>
		<updated>2024-04-24T03:06:31Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview of Expertiza ==&lt;br /&gt;
Expertiza, constructed using Ruby on Rails, is an open-source learning management system that offers a diverse array of features. These include the ability to generate assignments, tests, assignment teams, courses, reviews for the assignments, etc. Notably, it excels in providing a comprehensive peer review system, fostering thorough feedback within teams and among group members. The central focus of the project revolves around enhancing the frontend components related to the Review. A specific challenge being tackled involves the reimplementation of the current non-Typescript Review Page to incorporate Typescript and React. Consequently, the team's task is to craft the User Interface for these components using React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The main objective of this project is to reimplement the front end for the Review view page within Expertiza.&lt;br /&gt;
 &lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The following tasks were required for the reimplementation :&lt;br /&gt;
#&amp;lt;b&amp;gt;Frontend Reimplementation:&amp;lt;/b&amp;gt; Reimplement the frontend of the Review page in React.js and Typescript which is currently in Ruby.&lt;br /&gt;
#&amp;lt;b&amp;gt;Seeding of Databse File &amp;lt;/b&amp;gt; There should be seeding of 1 file to simulate the review given by a user which will reflect in the Review UI page.&lt;br /&gt;
#&amp;lt;b&amp;gt;Removal of Unused Elements:&amp;lt;/b&amp;gt; Remove any unused elements such as URLs, color legends, etc., to streamline the interface.&lt;br /&gt;
#&amp;lt;b&amp;gt;Improve UI:&amp;lt;/b&amp;gt; We aim to improve user experience and interface efficiency by developing a refreshed front end using React JS and TypeScript.&lt;br /&gt;
&lt;br /&gt;
=='''Project 4 - DESIGN DOC'''==&lt;br /&gt;
&lt;br /&gt;
== Design Patterns ==&lt;br /&gt;
===Composite Design Pattern:===&lt;br /&gt;
&lt;br /&gt;
By nesting and composing elements like Show-Review, Email etc and others, we can effectively design our Review component by utilising the Composite Design Pattern.&lt;br /&gt;
&lt;br /&gt;
===DRY Principle:===&lt;br /&gt;
&lt;br /&gt;
We want to reduce redundancy  by using React's functionality to reuse pre-existing components like Show-Review and Email, in line with the DRY Principle.&lt;br /&gt;
&lt;br /&gt;
=== Single Responsibility Principle (SRP) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Each React component will have a single responsibility, such as displaying Reviews, managing file submissions, or handling email options.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Separate concerns such as data fetching, state management, and rendering to improve modularity and maintainability.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Provider Pattern:===&lt;br /&gt;
&lt;br /&gt;
Our goal is to apply the Provider Pattern to React's Context API so that props can propagate naturally throughout the component hierarchy without requiring explicit prop drilling.&lt;br /&gt;
&lt;br /&gt;
===Observer Pattern:===&lt;br /&gt;
&lt;br /&gt;
Our goal is to take advantage of the Observer Pattern by using hooks like useEffect and useState along with React's Context API to manage component state and side effects efficiently.&lt;br /&gt;
&lt;br /&gt;
===HOC Pattern:===&lt;br /&gt;
&lt;br /&gt;
Routing for new pages can be made more efficient by using the Higher-Order Component pattern, or HOC Pattern. This entails creating functions that take an input component and provide a changed component with routing functionality.&lt;br /&gt;
&lt;br /&gt;
===Mediator Pattern:===&lt;br /&gt;
&lt;br /&gt;
Our goal is to apply the Mediator Pattern in light of the discrepancy between frontend requirements and backend data structures. With this method, we can easily change data as needed to ensure that it is consistent and compatible with the rest of our program.&lt;br /&gt;
&lt;br /&gt;
=== Open/Closed Principle (OCP) ===&lt;br /&gt;
&lt;br /&gt;
*Designing components to be open for extension by allowing for customization or configuration through props or context.&lt;br /&gt;
*Ensuring that components can be extended or modified without altering their core functionality by adhering to React's composition model.&lt;br /&gt;
&lt;br /&gt;
== Use Cases ==&lt;br /&gt;
&lt;br /&gt;
The following is a simple decision tree that can help summarize the various user stories that we absolutely must account for in our design. The first case is a user who reads the review and is satisfied, and takes no further action except for perhaps sharing their review publicly as a model. The second case is when there's an issue on the fault of the reviewer that the user notices, at which point they can press the email button to email the author of the review. Lastly, the user may be informed by a reviewer or discover on their own that something is wrong with their submission. If this happens, then the user may change the submissions saved in the system by removing unnecessary ones or uploading new files.&lt;br /&gt;
&lt;br /&gt;
[[File:e2444_Use_cases.png | 700px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 1: User story decision tree for Expertiza&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Existing Review Page ==&lt;br /&gt;
We identified several design issues with the existing review page. Most notably, there are many elements that are uncentered and completely unformatted. Spacing in between each element is inconsistent and some even have bullet points for no reason. It would also be nice if lists of links or files could be shown in a table instead of a list of checkboxes, as it makes actions related to these items more difficult for the user. Finally, some hyperlinks, particularly the toggle visibility ones, could be better implemented as buttons since they do not actually route the user anywhere.&lt;br /&gt;
&lt;br /&gt;
[[File:Existing 2444.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 2: Existing review page within Expertiza&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:e2444_Old_email.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 3: Existing email page within Expertiza&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
The following is our refactoring of the previous design. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''1.''' Several key elements are now centralized, and the link submission and the file submission areas are placed side-by-side to minimize whitespace while still maintaining readability.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''2.''' Key user actions were made into buttons, particularly visibility toggles, emailing the author, and sharing the review publicly. This was done to better grab the user's attention and to more clearly communicate the result of clicking the link by use of icons.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''3.''' &amp;quot;Email the Author&amp;quot; page was also stylized to incorporate central elements.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''4.''' The previous system of selecting a bullet-point list, and then clicking on a remove button was changed to simply having a trashcan icon next to every submission on the table, that way the user can simply press the icon corresponding to the submission they would like to remove. This action is dangerous, since it could potentially result in the user losing their work. For this reason, we also added a stylized confirmation screen that clearly communicates the exact action the user is about to take in the form of a warning. This is a good thing because it prevents potential future errors down the road. This warning system was also kept for the review sharing system since that could result in the exposing of sensitive information.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''5.''' We thought it would be a good idea to simplify the file-uploading experience for the user. The user sees the name of the file uploaded, the size of the file, and also the type of the file uploaded and does not have to go through a two-step select + upload process like before. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''6.''' In the new design, files are uploaded as they are selected but can be identified and removed quickly from the table. We thought this was an appropriate design choice because we saw no benefit to having to make the user press two buttons to perform what most would consider a single task. There are also minimal consequences for user error since they can immediately delete files that they did not mean to upload.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''7.''' Some changes we decided to keep were the color scheme and score reporting within the review table because we believe it should catch the attention of the user as soon as they navigate to the page. The circles provide good contrast from the other elements, and alongside the color make it quick to identify low scores on criteria that the user may want to give their attention to.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2024-04-23 at 10.37.18 PM.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 4: Our new design of the review page&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:e2444_New_email.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 5: Our new design of the email page&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
Since the changes revolve around UI implementation, the features need to be manually checked on the web pages.&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;b&amp;gt;Component Rendering:&amp;lt;/b&amp;gt; Ensure that all components from the original Ruby frontend are properly re-implemented in React.js and Typescript.&lt;br /&gt;
#&amp;lt;b&amp;gt;Styling Consistency: &amp;lt;/b&amp;gt; Verify that the new front-end maintains consistent styling with the rest of the application.&lt;br /&gt;
#&amp;lt;b&amp;gt;Functionality Testing:&amp;lt;/b&amp;gt; Test all interactive elements such as buttons, and input fields to ensure they work as expected.&lt;br /&gt;
#&amp;lt;b&amp;gt;Responsive Design:&amp;lt;/b&amp;gt; Check the responsiveness of the new front-end on different screen sizes and devices.&lt;br /&gt;
#&amp;lt;b&amp;gt;Show &amp;quot;Email Author&amp;quot; Link:&amp;lt;/b&amp;gt; Ensure that &amp;quot;Email Author&amp;quot; Link is there in the reimplemented React page so that the Review can be mailed to him/her.&lt;br /&gt;
#&amp;lt;b&amp;gt;Seeding the Database Functionality:&amp;lt;/b&amp;gt; Ensure that the Reviews are correctly read from a sample Database by seeding it correctly.&lt;br /&gt;
#&amp;lt;b&amp;gt;Interface Efficiency:&amp;lt;/b&amp;gt; Check if the new frontend enhances interface efficiency by being more intuitive and user-friendly.&lt;br /&gt;
&lt;br /&gt;
The Results of our testing indicate that all of our components work correctly. Particularly, here are the features we have verified the following features:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The toggle visibility button for the submission table correctly toggles between show and hide, and appropriately makes the table contents visible and invisible.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The toggle visibility button for the review table correctly toggles between show and hide, and appropriately makes the table contents visible and invisible.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The email author button correctly navigates the user to the email author page.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The share review button correctly gives a warning, and will only run the handleShowReview() function if that warning is successfully confirmed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The upload file button uploads the selected file and displays it on the file submission table below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The trashcan icon next to a link will appropriately delete that link from the list of links, and visually update the table accordingly.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The trashcan icon next to a file will appropriately delete that file from the list of files, and visually update the table accordingly.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Our design is user friendly. This is verified by consulting all of the 12 Basic Principles of Graphic Design (https://www.zekagraphic.com/12-principles-of-graphic-design/).&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Warning.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 6: Warning displayed when a user attempts to remove a submitted link&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Important Links ==&lt;br /&gt;
* GitHub Repo: https://github.com/gwenmason125/reimplementation-front-end&lt;br /&gt;
* Pull Request: https://github.com/expertiza/reimplementation-front-end/pull/51&lt;br /&gt;
&lt;br /&gt;
== Demo Video ==&lt;br /&gt;
You can watch this [https://www.youtube.com/watch?v=5dPeMEY6A_Y demo video] for a detailed demonstration of the changes we made in the UI.&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
=====Mentor===== &lt;br /&gt;
* '''Riya Gori'''&lt;br /&gt;
&lt;br /&gt;
=====Members===== &lt;br /&gt;
* '''Mitesh Agarwal''' (unityid: magarwa3)&lt;br /&gt;
* '''Shubham Loya''' (unityid: ssloya)&lt;br /&gt;
* '''Gwen Mason''' (unityid: cpmason)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
#[https://wiki-expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2022_-_E2233._Improving_search_facility_in_Expertiza Spring 2022 Design]&lt;br /&gt;
#[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2153._Improving_search_facility_in_Expertiza Fall 2021 Design]&lt;br /&gt;
#[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2020_-_E2079._Improve_Search_Facility_In_Expertiza Fall 2020 Design]&lt;br /&gt;
#[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2019_-_E1987._Improving_search_facility_in_Expertiza Fall 2019 Design]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2444_Implement_Frontend_for_the_Review&amp;diff=156652</id>
		<title>CSC/ECE 517 Spring 2024 - E2444 Implement Frontend for the Review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2444_Implement_Frontend_for_the_Review&amp;diff=156652"/>
		<updated>2024-04-24T02:56:51Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview of Expertiza ==&lt;br /&gt;
Expertiza, constructed using Ruby on Rails, is an open-source learning management system that offers a diverse array of features. These include the ability to generate assignments, tests, assignment teams, courses, reviews for the assignments, etc. Notably, it excels in providing a comprehensive peer review system, fostering thorough feedback within teams and among group members. The central focus of the project revolves around enhancing the frontend components related to the Review. A specific challenge being tackled involves the reimplementation of the current non-Typescript Review Page to incorporate Typescript and React. Consequently, the team's task is to craft the User Interface for these components using React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The main objective of this project is to reimplement the front end for the Review view page within Expertiza.&lt;br /&gt;
 &lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The following tasks were required for the reimplementation :&lt;br /&gt;
#&amp;lt;b&amp;gt;Frontend Reimplementation:&amp;lt;/b&amp;gt; Reimplement the frontend of the Review page in React.js and Typescript which is currently in Ruby.&lt;br /&gt;
#&amp;lt;b&amp;gt;Seeding of Databse File &amp;lt;/b&amp;gt; There should be seeding of 1 file to simulate the review given by a user which will reflect in the Review UI page.&lt;br /&gt;
#&amp;lt;b&amp;gt;Removal of Unused Elements:&amp;lt;/b&amp;gt; Remove any unused elements such as URLs, color legends, etc., to streamline the interface.&lt;br /&gt;
#&amp;lt;b&amp;gt;Improve UI:&amp;lt;/b&amp;gt; We aim to improve user experience and interface efficiency by developing a refreshed front end using React JS and TypeScript.&lt;br /&gt;
&lt;br /&gt;
=='''Project 4 - DESIGN DOC'''==&lt;br /&gt;
&lt;br /&gt;
== Design Patterns ==&lt;br /&gt;
===Composite Design Pattern:===&lt;br /&gt;
&lt;br /&gt;
By nesting and composing elements like Show-Review, Email etc and others, we can effectively design our Review component by utilising the Composite Design Pattern.&lt;br /&gt;
&lt;br /&gt;
===DRY Principle:===&lt;br /&gt;
&lt;br /&gt;
We want to reduce redundancy  by using React's functionality to reuse pre-existing components like Show-Review and Email, in line with the DRY Principle.&lt;br /&gt;
&lt;br /&gt;
===Provider Pattern:===&lt;br /&gt;
&lt;br /&gt;
Our goal is to apply the Provider Pattern to React's Context API so that props can propagate naturally throughout the component hierarchy without requiring explicit prop drilling.&lt;br /&gt;
&lt;br /&gt;
===Observer Pattern:===&lt;br /&gt;
&lt;br /&gt;
Our goal is to take advantage of the Observer Pattern by using hooks like useEffect and useState along with React's Context API to manage component state and side effects efficiently.&lt;br /&gt;
&lt;br /&gt;
===HOC Pattern:===&lt;br /&gt;
&lt;br /&gt;
Routing for new pages can be made more efficient by using the Higher-Order Component pattern, or HOC Pattern. This entails creating functions that take an input component and provide a changed component with routing functionality.&lt;br /&gt;
&lt;br /&gt;
===Mediator Pattern:===&lt;br /&gt;
&lt;br /&gt;
Our goal is to apply the Mediator Pattern in light of the discrepancy between frontend requirements and backend data structures. With this method, we can easily change data as needed to ensure that it is consistent and compatible with the rest of our program.&lt;br /&gt;
&lt;br /&gt;
== Use Cases ==&lt;br /&gt;
&lt;br /&gt;
The following is a simple decision tree that can help summarize the various user stories that we absolutely must account for in our design. The first case is a user who reads the review and is satisfied, and takes no further action except for perhaps sharing their review publicly as a model. The second case is when there's an issue on the fault of the reviewer that the user notices, at which point they can press the email button to email the author of the review. Lastly, the user may be informed by a reviewer or discover on their own that something is wrong with their submission. If this happens, then the user may change the submissions saved in the system by removing unnecessary ones or uploading new files.&lt;br /&gt;
&lt;br /&gt;
[[File:e2444_Use_cases.png | 700px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 1: User story decision tree for Expertiza&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Existing Review Page ==&lt;br /&gt;
We identified several design issues with the existing review page. Most notably, there are many elements that are uncentered and completely unformatted. Spacing in between each element is inconsistent and some even have bullet points for no reason. It would also be nice if lists of links or files could be shown in a table instead of a list of checkboxes, as it makes actions related to these items more difficult for the user. Finally, some hyperlinks, particularly the toggle visibility ones, could be better implemented as buttons since they do not actually route the user anywhere.&lt;br /&gt;
&lt;br /&gt;
[[File:Existing 2444.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 2: Existing review page within Expertiza&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:e2444_Old_email.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 3: Existing email page within Expertiza&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
The following is our refactoring of the previous design. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''1.''' Several key elements are now centralized, and the link submission and the file submission areas are placed side-by-side to minimize whitespace while still maintaining readability.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''2.''' Key user actions were made into buttons, particularly visibility toggles, emailing the author, and sharing the review publicly. This was done to better grab the user's attention and to more clearly communicate the result of clicking the link by use of icons.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''3.''' &amp;quot;Email the Author&amp;quot; page was also stylized to incorporate central elements.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''4.''' The previous system of selecting a bullet-point list, and then clicking on a remove button was changed to simply having a trashcan icon next to every submission on the table, that way the user can simply press the icon corresponding to the submission they would like to remove. This action is dangerous, since it could potentially result in the user losing their work. For this reason, we also added a stylized confirmation screen that clearly communicates the exact action the user is about to take in the form of a warning. This is a good thing because it prevents potential future errors down the road. This warning system was also kept for the review sharing system since that could result in the exposing of sensitive information.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''5.''' We thought it would be a good idea to simplify the file-uploading experience for the user. The user sees the name of the file uploaded, the size of the file, and also the type of the file uploaded and does not have to go through a two-step select + upload process like before. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''6.''' In the new design, files are uploaded as they are selected but can be identified and removed quickly from the table. We thought this was an appropriate design choice because we saw no benefit to having to make the user press two buttons to perform what most would consider a single task. There are also minimal consequences for user error since they can immediately delete files that they did not mean to upload.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''7.''' Some changes we decided to keep were the color scheme and score reporting within the review table because we believe it should catch the attention of the user as soon as they navigate to the page. The circles provide good contrast from the other elements, and alongside the color make it quick to identify low scores on criteria that the user may want to give their attention to.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2024-04-23 at 10.37.18 PM.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 4: Our new design of the review page&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:e2444_New_email.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 5: Our new design of the email page&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
Since the changes revolve around UI implementation, the features need to be manually checked on the web pages.&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;b&amp;gt;Component Rendering:&amp;lt;/b&amp;gt; Ensure that all components from the original Ruby frontend are properly re-implemented in React.js and Typescript.&lt;br /&gt;
#&amp;lt;b&amp;gt;Styling Consistency: &amp;lt;/b&amp;gt; Verify that the new front-end maintains consistent styling with the rest of the application.&lt;br /&gt;
#&amp;lt;b&amp;gt;Functionality Testing:&amp;lt;/b&amp;gt; Test all interactive elements such as buttons, and input fields to ensure they work as expected.&lt;br /&gt;
#&amp;lt;b&amp;gt;Responsive Design:&amp;lt;/b&amp;gt; Check the responsiveness of the new front-end on different screen sizes and devices.&lt;br /&gt;
#&amp;lt;b&amp;gt;Show &amp;quot;Email Author&amp;quot; Link:&amp;lt;/b&amp;gt; Ensure that &amp;quot;Email Author&amp;quot; Link is there in the reimplemented React page so that the Review can be mailed to him/her.&lt;br /&gt;
#&amp;lt;b&amp;gt;Seeding the Database Functionality:&amp;lt;/b&amp;gt; Ensure that the Reviews are correctly read from a sample Database by seeding it correctly.&lt;br /&gt;
#&amp;lt;b&amp;gt;Interface Efficiency:&amp;lt;/b&amp;gt; Check if the new frontend enhances interface efficiency by being more intuitive and user-friendly.&lt;br /&gt;
&lt;br /&gt;
The Results of our testing indicate that all of our components work correctly. Particularly, here are the features we have verified the following features:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The toggle visibility button for the submission table correctly toggles between show and hide, and appropriately makes the table contents visible and invisible.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The toggle visibility button for the review table correctly toggles between show and hide, and appropriately makes the table contents visible and invisible.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The email author button correctly navigates the user to the email author page.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The share review button correctly gives a warning, and will only run the handleShowReview() function if that warning is successfully confirmed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The upload file button uploads the selected file and displays it on the file submission table below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The trashcan icon next to a link will appropriately delete that link from the list of links, and visually update the table accordingly.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The trashcan icon next to a file will appropriately delete that file from the list of files, and visually update the table accordingly.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Our design is user friendly. This is verified by consulting all of the 12 Basic Principles of Graphic Design (https://www.zekagraphic.com/12-principles-of-graphic-design/).&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Warning.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 6: Warning displayed when a user attempts to remove a submitted link&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Important Links ==&lt;br /&gt;
* GitHub Repo: https://github.com/gwenmason125/reimplementation-front-end&lt;br /&gt;
* Pull Request: https://github.com/expertiza/reimplementation-front-end/pull/51&lt;br /&gt;
&lt;br /&gt;
== Demo Video ==&lt;br /&gt;
You can watch this [https://www.youtube.com/watch?v=5dPeMEY6A_Y demo video] for a detailed demonstration of the changes we made in the UI.&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
=====Mentor===== &lt;br /&gt;
* '''Riya Gori'''&lt;br /&gt;
&lt;br /&gt;
=====Members===== &lt;br /&gt;
* '''Mitesh Agarwal''' (unityid: magarwa3)&lt;br /&gt;
* '''Shubham Loya''' (unityid: ssloya)&lt;br /&gt;
* '''Gwen Mason''' (unityid: cpmason)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
#[https://wiki-expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2022_-_E2233._Improving_search_facility_in_Expertiza Spring 2022 Design]&lt;br /&gt;
#[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2153._Improving_search_facility_in_Expertiza Fall 2021 Design]&lt;br /&gt;
#[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2020_-_E2079._Improve_Search_Facility_In_Expertiza Fall 2020 Design]&lt;br /&gt;
#[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2019_-_E1987._Improving_search_facility_in_Expertiza Fall 2019 Design]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2024-04-23_at_10.37.18_PM.png&amp;diff=156615</id>
		<title>File:Screenshot 2024-04-23 at 10.37.18 PM.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2024-04-23_at_10.37.18_PM.png&amp;diff=156615"/>
		<updated>2024-04-24T02:37:39Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Existing_2444.png&amp;diff=156594</id>
		<title>File:Existing 2444.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Existing_2444.png&amp;diff=156594"/>
		<updated>2024-04-24T02:29:38Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2444_Implement_Frontend_for_the_Review&amp;diff=155528</id>
		<title>CSC/ECE 517 Spring 2024 - E2444 Implement Frontend for the Review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2444_Implement_Frontend_for_the_Review&amp;diff=155528"/>
		<updated>2024-04-09T02:15:40Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview of Expertiza ==&lt;br /&gt;
Expertiza, constructed using Ruby on Rails, is an open-source learning management system that offers a diverse array of features. These include the ability to generate assignments, tests, assignment teams, courses, reviews for the assignments, etc. Notably, it excels in providing a comprehensive peer review system, fostering thorough feedback within teams and among group members. The central focus of the project revolves around enhancing the frontend components related to the Review. A specific challenge being tackled involves the reimplementation of the current non-Typescript Review Page to incorporate Typescript and React. Consequently, the team's task is to craft the User Interface for these components using React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The main objective of this project is to reimplement the front end for the Review view page within Expertiza.&lt;br /&gt;
 &lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The following tasks were required for the reimplementation :&lt;br /&gt;
#&amp;lt;b&amp;gt;Frontend Reimplementation:&amp;lt;/b&amp;gt; Reimplement the frontend of the Review page in React.js and Typescript which is currently in Ruby.&lt;br /&gt;
#&amp;lt;b&amp;gt;Seeding of Databse File &amp;lt;/b&amp;gt; There should be seeding of 1 file to simulate the review given by a user which will reflect in the Review UI page.&lt;br /&gt;
#&amp;lt;b&amp;gt;Removal of Unused Elements:&amp;lt;/b&amp;gt; Remove any unused elements such as URLs, color legends, etc., to streamline the interface.&lt;br /&gt;
#&amp;lt;b&amp;gt;Improve UI:&amp;lt;/b&amp;gt; We aim to improve user experience and interface efficiency by developing a refreshed front end using React JS and TypeScript.&lt;br /&gt;
&lt;br /&gt;
=='''Project 4 - DESIGN DOC'''==&lt;br /&gt;
&lt;br /&gt;
== Design Patterns ==&lt;br /&gt;
===Composite Design Pattern:===&lt;br /&gt;
&lt;br /&gt;
By nesting and composing elements like Show-Review, Email etc and others, we can effectively design our Review component by utilising the Composite Design Pattern.&lt;br /&gt;
&lt;br /&gt;
===DRY Principle:===&lt;br /&gt;
&lt;br /&gt;
We want to reduce redundancy  by using React's functionality to reuse pre-existing components like Show-Review and Email, in line with the DRY Principle.&lt;br /&gt;
&lt;br /&gt;
===Provider Pattern:===&lt;br /&gt;
&lt;br /&gt;
Our goal is to apply the Provider Pattern to React's Context API so that props can propagate naturally throughout the component hierarchy without requiring explicit prop drilling.&lt;br /&gt;
&lt;br /&gt;
===Observer Pattern:===&lt;br /&gt;
&lt;br /&gt;
Our goal is to take advantage of the Observer Pattern by using hooks like useEffect and useState along with React's Context API to manage component state and side effects efficiently.&lt;br /&gt;
&lt;br /&gt;
===HOC Pattern:===&lt;br /&gt;
&lt;br /&gt;
Routing for new pages can be made more efficient by using the Higher-Order Component pattern, or HOC Pattern. This entails creating functions that take an input component and provide a changed component with routing functionality.&lt;br /&gt;
&lt;br /&gt;
===Mediator Pattern:===&lt;br /&gt;
&lt;br /&gt;
Our goal is to apply the Mediator Pattern in light of the discrepancy between frontend requirements and backend data structures. With this method, we can easily change data as needed to ensure that it is consistent and compatible with the rest of our program.&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
The designs provided are for the existing Reviews Page, which has already been implemented. Our goal is to replicate these designs for the new components mentioned earlier in the project. This involves creating similar visual elements, layouts, and functionalities for these new components to maintain consistency and coherence across the application.&lt;br /&gt;
&lt;br /&gt;
== Existing Review Page ==&lt;br /&gt;
[[File:Existing-UI.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 1: Existing Review page within Expertiza&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reimplementation To Be Done ==&lt;br /&gt;
1. Our task is to reimplement the exact Review page which is currently in Ruby language to React and Typescript languages respectively.&amp;lt;br/&amp;gt;&lt;br /&gt;
2. With that, we will also be making the UI a little more responsive and improving the experience.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. We will be seeding a database file which will read the Reviews from that file to display it in the front-end. &amp;lt;br/&amp;gt;&lt;br /&gt;
4. Below is the Flow-Chart for the entire process.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File: Reviewer_Control_Flow_E2444.jpeg | 500px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 2: Flow-Chart of the &amp;quot;View Review&amp;quot; and &amp;quot;Email Author&amp;quot; functional requirements&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
Since the changes revolve around UI implementation, the features need to be manually checked on the web pages.&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;b&amp;gt;Component Rendering:&amp;lt;/b&amp;gt; Ensure that all components from the original Ruby frontend are properly re-implemented in React.js and Typescript.&lt;br /&gt;
#&amp;lt;b&amp;gt;Styling Consistency: &amp;lt;/b&amp;gt; Verify that the new front-end maintains consistent styling with the rest of the application.&lt;br /&gt;
#&amp;lt;b&amp;gt;Functionality Testing:&amp;lt;/b&amp;gt; Test all interactive elements such as buttons, and input fields to ensure they work as expected.&lt;br /&gt;
#&amp;lt;b&amp;gt;Responsive Design:&amp;lt;/b&amp;gt; Check the responsiveness of the new front-end on different screen sizes and devices.&lt;br /&gt;
#&amp;lt;b&amp;gt;Show &amp;quot;Email Author&amp;quot; Link:&amp;lt;/b&amp;gt; Ensure that &amp;quot;Email Author&amp;quot; Link is there in the reimplemented React page so that the Review can be mailed to him/her.&lt;br /&gt;
#&amp;lt;b&amp;gt;Seeding the Database Functionality:&amp;lt;/b&amp;gt; Ensure that the Reviews are correctly read from a sample Database by seeding it correctly.&lt;br /&gt;
#&amp;lt;b&amp;gt;Interface Efficiency:&amp;lt;/b&amp;gt; Check if the new frontend enhances interface efficiency by being more intuitive and user-friendly.&lt;br /&gt;
&lt;br /&gt;
== Important Links ==&lt;br /&gt;
* GitHub repo [https://github.com/expertiza/reimplementation-front-end]&lt;br /&gt;
* Pull Request to be merged before starting this project : To be added&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
=====Mentor===== &lt;br /&gt;
* '''Riya Gori'''&lt;br /&gt;
&lt;br /&gt;
=====Members===== &lt;br /&gt;
* '''Mitesh Agarwal''' (unityid: magarwa3)&lt;br /&gt;
* '''Shubham Loya''' (unityid: ssloya)&lt;br /&gt;
* '''Gwen Mason''' (unityid: cpmason)&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2444_Implement_Frontend_for_the_Review&amp;diff=155526</id>
		<title>CSC/ECE 517 Spring 2024 - E2444 Implement Frontend for the Review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2444_Implement_Frontend_for_the_Review&amp;diff=155526"/>
		<updated>2024-04-09T02:14:41Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview of Expertiza ==&lt;br /&gt;
Expertiza, constructed using Ruby on Rails, is an open-source learning management system that offers a diverse array of features. These include the ability to generate assignments, tests, assignment teams, courses, reviews for the assignments, etc. Notably, it excels in providing a comprehensive peer review system, fostering thorough feedback within teams and among group members. The central focus of the project revolves around enhancing the frontend components related to the Review. A specific challenge being tackled involves the reimplementation of the current non-Typescript Review Page to incorporate Typescript and React. Consequently, the team's task is to craft the User Interface for these components using React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The main objective of this project is to reimplement the front end for the Review view page within Expertiza.&lt;br /&gt;
 &lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The following tasks were required for the reimplementation :&lt;br /&gt;
#&amp;lt;b&amp;gt;Frontend Reimplementation:&amp;lt;/b&amp;gt; Reimplement the frontend of the Review page in React.js and Typescript which is currently in Ruby.&lt;br /&gt;
#&amp;lt;b&amp;gt;Seeding of Databse File &amp;lt;/b&amp;gt; There should be seeding of 1 file to simulate the review given by a user which will reflect in the Review UI page.&lt;br /&gt;
#&amp;lt;b&amp;gt;Removal of Unused Elements:&amp;lt;/b&amp;gt; Remove any unused elements such as URLs, color legends, etc., to streamline the interface.&lt;br /&gt;
#&amp;lt;b&amp;gt;Improve UI:&amp;lt;/b&amp;gt; We aim to improve user experience and interface efficiency by developing a refreshed front end using React JS and TypeScript.&lt;br /&gt;
&lt;br /&gt;
=='''Project 4 - DESIGN DOC'''==&lt;br /&gt;
&lt;br /&gt;
== Design Patterns ==&lt;br /&gt;
===Composite Design Pattern:===&lt;br /&gt;
&lt;br /&gt;
By nesting and composing elements like Show-Review, Email etc and others, we can effectively design our Review component by utilising the Composite Design Pattern.&lt;br /&gt;
&lt;br /&gt;
===DRY Principle:===&lt;br /&gt;
&lt;br /&gt;
We want to reduce redundancy  by using React's functionality to reuse pre-existing components like Show-Review and Email, in line with the DRY Principle.&lt;br /&gt;
&lt;br /&gt;
===Provider Pattern:===&lt;br /&gt;
&lt;br /&gt;
Our goal is to apply the Provider Pattern to React's Context API so that props can propagate naturally throughout the component hierarchy without requiring explicit prop drilling.&lt;br /&gt;
&lt;br /&gt;
===Observer Pattern:===&lt;br /&gt;
&lt;br /&gt;
Our goal is to take advantage of the Observer Pattern by using hooks like useEffect and useState along with React's Context API to manage component state and side effects efficiently.&lt;br /&gt;
&lt;br /&gt;
===HOC Pattern:===&lt;br /&gt;
&lt;br /&gt;
Routing for new pages can be made more efficient by using the Higher-Order Component pattern, or HOC Pattern. This entails creating functions that take an input component and provide a changed component with routing functionality.&lt;br /&gt;
&lt;br /&gt;
===Mediator Pattern:===&lt;br /&gt;
&lt;br /&gt;
Our goal is to apply the Mediator Pattern in light of the discrepancy between frontend requirements and backend data structures. With this method, we can easily change data as needed to ensure that it is consistent and compatible with the rest of our program.&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
The designs provided are for the existing Reviews Page, which has already been implemented. Our goal is to replicate these designs for the new components mentioned earlier in the project. This involves creating similar visual elements, layouts, and functionalities for these new components to maintain consistency and coherence across the application.&lt;br /&gt;
&lt;br /&gt;
== Existing Review Page ==&lt;br /&gt;
[[File:Existing-UI.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 1: Existing Review page within Expertiza&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reimplementation To Be Done ==&lt;br /&gt;
1. Our task is to reimplement the exact Review page which is currently in Ruby language to React and Typescript languages respectively.&amp;lt;br/&amp;gt;&lt;br /&gt;
2. With that, we will also be making the UI a little more responsive and improving the experience.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. We will be seeding a database file which will read the Reviews from that file to display it in the front-end. &amp;lt;br/&amp;gt;&lt;br /&gt;
4. Below is the Flow-Chart for the entire process.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File: Reviewer_Control_Flow_E2444.jpeg | 500px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Figure 2: Flow-Chart of the &amp;quot;View Review&amp;quot; and &amp;quot;Email Author&amp;quot; functional requirements&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
Since the changes revolve around UI implementation, the features need to be manually checked on the web pages.&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;b&amp;gt;Component Rendering:&amp;lt;/b&amp;gt; Ensure that all components from the original Ruby frontend are properly re-implemented in React.js and Typescript.&lt;br /&gt;
#&amp;lt;b&amp;gt;Styling Consistency: &amp;lt;/b&amp;gt; Verify that the new front-end maintains consistent styling with the rest of the application.&lt;br /&gt;
#&amp;lt;b&amp;gt;Functionality Testing:&amp;lt;/b&amp;gt; Test all interactive elements such as buttons, and input fields to ensure they work as expected.&lt;br /&gt;
#&amp;lt;b&amp;gt;Responsive Design:&amp;lt;/b&amp;gt; Check the responsiveness of the new front-end on different screen sizes and devices.&lt;br /&gt;
#&amp;lt;b&amp;gt;Show &amp;quot;Email Author&amp;quot; Link:&amp;lt;/b&amp;gt; Ensure that &amp;quot;Email Author&amp;quot; Link is there in the reimplemented React page so that the Review can be mailed to him/her.&lt;br /&gt;
#&amp;lt;b&amp;gt;Seeding the Database Functionality:&amp;lt;/b&amp;gt; Ensure that the Reviews are correctly read from a sample Database by seeding it correctly.&lt;br /&gt;
#&amp;lt;b&amp;gt;Interface Efficiency:&amp;lt;/b&amp;gt; Check if the new frontend enhances interface efficiency by being more intuitive and user-friendly.&lt;br /&gt;
&lt;br /&gt;
== Important Links ==&lt;br /&gt;
* GitHub repo [https://github.com/expertiza/reimplementation-front-end]&lt;br /&gt;
* Pull Request to be merged before starting this project [https://github.com/expertiza/reimplementation-front-end/pull/45]&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
=====Mentor===== &lt;br /&gt;
* '''Riya Gori'''&lt;br /&gt;
&lt;br /&gt;
=====Members===== &lt;br /&gt;
* '''Mitesh Agarwal''' (unityid: magarwa3)&lt;br /&gt;
* '''Shubham Loya''' (unityid: ssloya)&lt;br /&gt;
* '''Gwen Mason''' (unityid: cpmason)&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2444_Implement_Frontend_for_the_Review&amp;diff=155175</id>
		<title>CSC/ECE 517 Spring 2024 - E2444 Implement Frontend for the Review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2444_Implement_Frontend_for_the_Review&amp;diff=155175"/>
		<updated>2024-04-08T22:16:07Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview of Expertiza ==&lt;br /&gt;
Expertiza, constructed using Ruby on Rails, is an open-source learning management system that offers a diverse array of features. These include the ability to generate assignments, tests, assignment teams, courses, reviews for the assignments, etc. Notably, it excels in providing a comprehensive peer review system, fostering thorough feedback within teams and among group members. The central focus of the project revolves around enhancing the frontend components related to the Review. A specific challenge being tackled involves the reimplementation of the current non-Typescript Review Page to incorporate Typescript and React. Consequently, the team's task is to craft the User Interface for these components using React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The main objective of this project is to reimplement the front end for the Review view page within Expertiza.&lt;br /&gt;
 &lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The following tasks were required for the reimplementation :&lt;br /&gt;
#&amp;lt;b&amp;gt;Frontend Reimplementation:&amp;lt;/b&amp;gt; Reimplement the frontend of the Review page in React.js and Typescript which is currently in Ruby.&lt;br /&gt;
#&amp;lt;b&amp;gt;Seeding of Databse File &amp;lt;/b&amp;gt; There should be seeding of 1 file to simulate the review given by a user which will reflect in the Review UI page.&lt;br /&gt;
#&amp;lt;b&amp;gt;Removal of Unused Elements:&amp;lt;/b&amp;gt; Remove any unused elements such as URLs, color legends, etc., to streamline the interface.&lt;br /&gt;
#&amp;lt;b&amp;gt;Improve UI:&amp;lt;/b&amp;gt; We aim to improve user experience and interface efficiency by developing a refreshed front end using React JS and TypeScript.&lt;br /&gt;
&lt;br /&gt;
=='''Project 4 - DESIGN DOC'''==&lt;br /&gt;
&lt;br /&gt;
== Design Patterns ==&lt;br /&gt;
===Composite Design Pattern:===&lt;br /&gt;
&lt;br /&gt;
By nesting and composing elements like Show-Review, Email etc and others, we can effectively design our Review component by utilising the Composite Design Pattern.&lt;br /&gt;
&lt;br /&gt;
===DRY Principle:===&lt;br /&gt;
&lt;br /&gt;
We want to reduce redundancy  by using React's functionality to reuse pre-existing components like Show-Review and Email, in line with the DRY Principle.&lt;br /&gt;
&lt;br /&gt;
===Provider Pattern:===&lt;br /&gt;
&lt;br /&gt;
Our goal is to apply the Provider Pattern to React's Context API so that props can propagate naturally throughout the component hierarchy without requiring explicit prop drilling.&lt;br /&gt;
&lt;br /&gt;
===Observer Pattern:===&lt;br /&gt;
&lt;br /&gt;
Our goal is to take advantage of the Observer Pattern by using hooks like useEffect and useState along with React's Context API to manage component state and side effects efficiently.&lt;br /&gt;
&lt;br /&gt;
===HOC Pattern:===&lt;br /&gt;
&lt;br /&gt;
Routing for new pages can be made more efficient by using the Higher-Order Component pattern, or HOC Pattern. This entails creating functions that take an input component and provide a changed component with routing functionality.&lt;br /&gt;
&lt;br /&gt;
===Mediator Pattern:===&lt;br /&gt;
&lt;br /&gt;
Our goal is to apply the Mediator Pattern in light of the discrepancy between frontend requirements and backend data structures. With this method, we can easily change data as needed to ensure that it is consistent and compatible with the rest of our program.&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
The designs provided are for the existing Reviews Page, which has already been implemented. Our goal is to replicate these designs for the new components mentioned earlier in the project. This involves creating similar visual elements, layouts, and functionalities for these new components to maintain consistency and coherence across the application.&lt;br /&gt;
&lt;br /&gt;
== Existing Review Page ==&lt;br /&gt;
[[File:Existing-UI.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Existign Review page within expertiza&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reimplementation To Be Done ==&lt;br /&gt;
1. Our task is to reimplement the exact Review page which is currently in Ruby language to React and Typescript languages respectively.&amp;lt;br/&amp;gt;&lt;br /&gt;
2. With that, we will also be making the UI a little more responsive and improving the experience.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. We will be seeding a database file which will read the Reviews from that file to display it in the front-end. &amp;lt;br/&amp;gt;&lt;br /&gt;
4. Below is the Flow-Chart for the entire process.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flowchart-draw.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Flow-Chart of the Process&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
Since the changes revolve around UI implementation, the features need to be manually checked on the web pages.&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;b&amp;gt;Component Rendering:&amp;lt;/b&amp;gt; Ensure that all components from the original Ruby frontend are properly re-implemented in React.js and Typescript.&lt;br /&gt;
#&amp;lt;b&amp;gt;Styling Consistency: &amp;lt;/b&amp;gt; Verify that the new front-end maintains consistent styling with the rest of the application.&lt;br /&gt;
#&amp;lt;b&amp;gt;Functionality Testing:&amp;lt;/b&amp;gt; Test all interactive elements such as buttons, and input fields to ensure they work as expected.&lt;br /&gt;
#&amp;lt;b&amp;gt;Responsive Design:&amp;lt;/b&amp;gt; Check the responsiveness of the new front-end on different screen sizes and devices.&lt;br /&gt;
#&amp;lt;b&amp;gt;Show &amp;quot;Email Author&amp;quot; Link:&amp;lt;/b&amp;gt; Ensure that &amp;quot;Email Author&amp;quot; Link is there in the reimplemented React page so that the Review can be mailed to him/her.&lt;br /&gt;
#&amp;lt;b&amp;gt;Seeding the Database Functionality:&amp;lt;/b&amp;gt; Ensure that the Reviews are correctly read from a sample Database by seeding it correctly.&lt;br /&gt;
#&amp;lt;b&amp;gt;Interface Efficiency:&amp;lt;/b&amp;gt; Check if the new frontend enhances interface efficiency by being more intuitive and user-friendly.&lt;br /&gt;
&lt;br /&gt;
== Important Links ==&lt;br /&gt;
* GitHub repo [https://github.com/expertiza/reimplementation-front-end]&lt;br /&gt;
* Pull Request to be merged before starting this project [https://github.com/expertiza/reimplementation-front-end/pull/45]&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
=====Mentor===== &lt;br /&gt;
* '''Riya Gori'''&lt;br /&gt;
&lt;br /&gt;
=====Members===== &lt;br /&gt;
* '''Mitesh Agarwal''' (unityid: magarwa3)&lt;br /&gt;
* '''Shubham Loya''' (unityid: ssloya)&lt;br /&gt;
* '''Chris Mason''' (unityid: cpmason)&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Flowchart-draw.png&amp;diff=155173</id>
		<title>File:Flowchart-draw.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Flowchart-draw.png&amp;diff=155173"/>
		<updated>2024-04-08T22:11:38Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: Magarwa3 uploaded a new version of File:Flowchart-draw.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Flowchart-draw.png&amp;diff=155171</id>
		<title>File:Flowchart-draw.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Flowchart-draw.png&amp;diff=155171"/>
		<updated>2024-04-08T22:05:45Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2444_Implement_Frontend_for_the_Review&amp;diff=155167</id>
		<title>CSC/ECE 517 Spring 2024 - E2444 Implement Frontend for the Review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2444_Implement_Frontend_for_the_Review&amp;diff=155167"/>
		<updated>2024-04-08T21:55:13Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview of Expertiza ==&lt;br /&gt;
Expertiza, constructed using Ruby on Rails, is an open-source learning management system that offers a diverse array of features. These include the ability to generate assignments, tests, assignment teams, courses, reviews for the assignments, etc. Notably, it excels in providing a comprehensive peer review system, fostering thorough feedback within teams and among group members. The central focus of the project revolves around enhancing the frontend components related to the Review. A specific challenge being tackled involves the reimplementation of the current non-Typescript Review Page to incorporate Typescript and React. Consequently, the team's task is to craft the User Interface for these components using React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The main objective of this project is to reimplement the front end for the Review view page within Expertiza.&lt;br /&gt;
 &lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The following tasks were required for the reimplementation :&lt;br /&gt;
#&amp;lt;b&amp;gt;Frontend Reimplementation:&amp;lt;/b&amp;gt; Reimplement the frontend of the Review page in React.js and Typescript which is currently in Ruby.&lt;br /&gt;
#&amp;lt;b&amp;gt;Seeding of Databse File &amp;lt;/b&amp;gt; There should be seeding of 1 file to simulate the review given by a user which will reflect in the Review UI page.&lt;br /&gt;
#&amp;lt;b&amp;gt;Removal of Unused Elements:&amp;lt;/b&amp;gt; Remove any unused elements such as URLs, color legends, etc., to streamline the interface.&lt;br /&gt;
#&amp;lt;b&amp;gt;Improve UI:&amp;lt;/b&amp;gt; We aim to improve user experience and interface efficiency by developing a refreshed front end using React JS and TypeScript.&lt;br /&gt;
&lt;br /&gt;
=='''Project 4 - DESIGN DOC'''==&lt;br /&gt;
&lt;br /&gt;
== Design Patterns ==&lt;br /&gt;
===Composite Design Pattern:===&lt;br /&gt;
&lt;br /&gt;
By nesting and composing elements like Show-Review, Email etc and others, we can effectively design our Review component by utilising the Composite Design Pattern.&lt;br /&gt;
&lt;br /&gt;
===DRY Principle:===&lt;br /&gt;
&lt;br /&gt;
We want to reduce redundancy  by using React's functionality to reuse pre-existing components like Show-Review and Email, in line with the DRY Principle.&lt;br /&gt;
&lt;br /&gt;
===Provider Pattern:===&lt;br /&gt;
&lt;br /&gt;
Our goal is to apply the Provider Pattern to React's Context API so that props can propagate naturally throughout the component hierarchy without requiring explicit prop drilling.&lt;br /&gt;
&lt;br /&gt;
===Observer Pattern:===&lt;br /&gt;
&lt;br /&gt;
Our goal is to take advantage of the Observer Pattern by using hooks like useEffect and useState along with React's Context API to manage component state and side effects efficiently.&lt;br /&gt;
&lt;br /&gt;
===HOC Pattern:===&lt;br /&gt;
&lt;br /&gt;
Routing for new pages can be made more efficient by using the Higher-Order Component pattern, or HOC Pattern. This entails creating functions that take an input component and provide a changed component with routing functionality.&lt;br /&gt;
&lt;br /&gt;
===Mediator Pattern:===&lt;br /&gt;
&lt;br /&gt;
Our goal is to apply the Mediator Pattern in light of the discrepancy between frontend requirements and backend data structures. With this method, we can easily change data as needed to ensure that it is consistent and compatible with the rest of our program.&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
The designs provided are for the existing Reviews Page, which has already been implemented. Our goal is to replicate these designs for the new components mentioned earlier in the project. This involves creating similar visual elements, layouts, and functionalities for these new components to maintain consistency and coherence across the application.&lt;br /&gt;
&lt;br /&gt;
== Existing Review Page ==&lt;br /&gt;
[[File:Existing-UI.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Existign Review page within expertiza&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reimplementation To Be Done ==&lt;br /&gt;
Our task is to reimplement the exact Review page which is currently in Ruby language to React and Typescript languages respectively.&amp;lt;br&amp;gt;&lt;br /&gt;
With that, we will also be making the UI a little more responsive and improving the experience.&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
Since the changes revolve around UI implementation, the features need to be manually checked on the web pages.&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;b&amp;gt;Component Rendering:&amp;lt;/b&amp;gt; Ensure that all components from the original Ruby frontend are properly re-implemented in React.js and Typescript.&lt;br /&gt;
#&amp;lt;b&amp;gt;Styling Consistency: &amp;lt;/b&amp;gt; Verify that the new front-end maintains consistent styling with the rest of the application.&lt;br /&gt;
#&amp;lt;b&amp;gt;Functionality Testing:&amp;lt;/b&amp;gt; Test all interactive elements such as buttons, and input fields to ensure they work as expected.&lt;br /&gt;
#&amp;lt;b&amp;gt;Responsive Design:&amp;lt;/b&amp;gt; Check the responsiveness of the new front-end on different screen sizes and devices.&lt;br /&gt;
#&amp;lt;b&amp;gt;Show &amp;quot;Email Author&amp;quot; Link:&amp;lt;/b&amp;gt; Ensure that &amp;quot;Email Author&amp;quot; Link is there in the reimplemented React page so that the Review can be mailed to him/her.&lt;br /&gt;
#&amp;lt;b&amp;gt;Seeding the Database Functionality:&amp;lt;/b&amp;gt; Ensure that the Reviews are correctly read from a sample Database by seeding it correctly.&lt;br /&gt;
#&amp;lt;b&amp;gt;Interface Efficiency:&amp;lt;/b&amp;gt; Check if the new frontend enhances interface efficiency by being more intuitive and user-friendly.&lt;br /&gt;
&lt;br /&gt;
== Important Links ==&lt;br /&gt;
* GitHub repo [https://github.com/expertiza/reimplementation-front-end]&lt;br /&gt;
* Pull Request to be merged before starting this project [https://github.com/expertiza/reimplementation-front-end/pull/45]&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
=====Mentor===== &lt;br /&gt;
* Riya Gori&lt;br /&gt;
&lt;br /&gt;
=====Members===== &lt;br /&gt;
* '''Mitesh Agarwal''' (unityid: magarwa3)&lt;br /&gt;
* '''Shubham Loya''' (unityid: ssloya)&lt;br /&gt;
* '''Chris Mason''' (unityid: cpmason)&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Existing-UI.png&amp;diff=155143</id>
		<title>File:Existing-UI.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Existing-UI.png&amp;diff=155143"/>
		<updated>2024-04-08T21:29:04Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2444_Implement_Frontend_for_the_Review&amp;diff=154980</id>
		<title>CSC/ECE 517 Spring 2024 - E2444 Implement Frontend for the Review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2444_Implement_Frontend_for_the_Review&amp;diff=154980"/>
		<updated>2024-04-08T15:52:52Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: Created page with &amp;quot;== Expertiza == Expertiza is an open-source learning management system built with Ruby on Rails as its core. Its features include creating tests and assignments, managing assignment teams and courses, and above all having a solid framework in place to facilitate peer reviews and group comments. The main objective of this project is to develop frontend React Components, with a particular focus on the Grades View page. The goal is to create a fully functional user interfac...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Expertiza ==&lt;br /&gt;
Expertiza is an open-source learning management system built with Ruby on Rails as its core. Its features include creating tests and assignments, managing assignment teams and courses, and above all having a solid framework in place to facilitate peer reviews and group comments. The main objective of this project is to develop frontend React Components, with a particular focus on the Grades View page. The goal is to create a fully functional user interface for these components using React.js and TypeScript.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The main objective of this project is to reimplement the front end for the grades view page within Expertiza.&lt;br /&gt;
 &lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The following tasks were required for the reimplementation :&lt;br /&gt;
#&amp;lt;b&amp;gt;Frontend Reimplementation:&amp;lt;/b&amp;gt; Reimplement the frontend of the grades view page in React.js and Typescript which is currently in Ruby.&lt;br /&gt;
#&amp;lt;b&amp;gt;Removal of Checkboxes for Word Count &amp;lt;/b&amp;gt; Remove checkboxes related to word count criteria (&amp;gt;10 words, &amp;gt;20 words).&lt;br /&gt;
#&amp;lt;b&amp;gt;Enhanced &amp;quot;Show Submission&amp;quot; Button:&amp;lt;/b&amp;gt; The Show Button should reveal the submitted links and the submitted files.&lt;br /&gt;
#&amp;lt;b&amp;gt;Removal of Unused Elements:&amp;lt;/b&amp;gt; Remove any unused elements such as URLs, color legends, etc., to streamline the interface. If any column isn’t present, entire columns shouldn’t show up like teammate review&lt;br /&gt;
#&amp;lt;b&amp;gt;Include Heat Map:&amp;lt;/b&amp;gt; Heat map should be included in the grades view page.&lt;br /&gt;
#&amp;lt;b&amp;gt;Improve UI:&amp;lt;/b&amp;gt; Our aim is to improve user experience and interface efficiency by developing a refreshed front end using React JS and TypeScript.&lt;br /&gt;
&lt;br /&gt;
== Design Patterns ==&lt;br /&gt;
===Composite Design Pattern:===&lt;br /&gt;
&lt;br /&gt;
By nesting and composing elements like Table, Modal, and others, we can effectively design our Course component by utilising the Composite Design Pattern.&lt;br /&gt;
&lt;br /&gt;
===DRY Principle:===&lt;br /&gt;
&lt;br /&gt;
We want to reduce redundancy  by using React's functionality to reuse pre-existing components like Table and Modal, in line with the DRY Principle.&lt;br /&gt;
&lt;br /&gt;
===Provider Pattern:===&lt;br /&gt;
&lt;br /&gt;
Our goal is to apply the Provider Pattern to React's Context API so that props can propagate naturally throughout the component hierarchy without requiring explicit prop drilling.&lt;br /&gt;
&lt;br /&gt;
===Observer Pattern:===&lt;br /&gt;
&lt;br /&gt;
Our goal is to take advantage of the Observer Pattern by using hooks like useEffect and useState along with React's Context API to manage component state and side effects efficiently.&lt;br /&gt;
&lt;br /&gt;
===HOC Pattern:===&lt;br /&gt;
&lt;br /&gt;
Routing for new pages can be made more efficient by using the Higher-Order Component pattern, or HOC Pattern. This entails creating functions that take an input component and provide a changed component with routing functionality.&lt;br /&gt;
&lt;br /&gt;
===Mediator Pattern:===&lt;br /&gt;
&lt;br /&gt;
Our goal is to apply the Mediator Pattern in light of the discrepancy between frontend requirements and backend data structures. With this method, we can easily change data as needed to ensure that it is consistent and compatible with the rest of our program.&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
The designs provided are for the existing Grades View Page, which has already been implemented. Our goal is to replicate these designs for the new components mentioned earlier in the project. This involves creating similar visual elements, layouts, and functionalities for these new components to maintain consistency and coherence across the application.&lt;br /&gt;
&lt;br /&gt;
== Existing Grades View Page ==&lt;br /&gt;
[[File:Grades_View.png | 700px]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reimplementation To Be Done ==&lt;br /&gt;
Following is the Heat Map which is already implemented in the Expertiza. Our goal is to incorporate these changes into the current front end of the Expertiza and then start building our changes on it.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:heat_map.png | 700px]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
Since the changes revolve around UI implementation, the features need to be manually checked on the webpages..&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;b&amp;gt;Component Rendering:&amp;lt;/b&amp;gt; Ensure that all components from the original Ruby frontend are properly re-implemented in React.js and Typescript.&lt;br /&gt;
#&amp;lt;b&amp;gt;Styling Consistency: &amp;lt;/b&amp;gt; Verify that the new frontend maintains consistent styling with the rest of the application.&lt;br /&gt;
#&amp;lt;b&amp;gt;Functionality Testing:&amp;lt;/b&amp;gt; Test all interactive elements such as buttons, dropdowns, and input fields to ensure they work as expected.&lt;br /&gt;
#&amp;lt;b&amp;gt;Responsive Design:&amp;lt;/b&amp;gt; Check the responsiveness of the new frontend on different screen sizes and devices.&lt;br /&gt;
#&amp;lt;b&amp;gt;&amp;quot;Show Submission&amp;quot; Button:&amp;lt;/b&amp;gt; Ensure that submitted links are displayed correctly, and they lead to the appropriate destinations when clicked. Verify that submitted files are listed correctly, and they can be downloaded or viewed as intended.&lt;br /&gt;
#&amp;lt;b&amp;gt;Word Count Validation:&amp;lt;/b&amp;gt; Check if the word count validation is still functioning correctly without the checkboxes.&lt;br /&gt;
#&amp;lt;b&amp;gt;Heat Map Integration and Functionality:&amp;lt;/b&amp;gt; Verify that the heat map is integrated correctly and accurately represents the scores of peer reviews received.&lt;br /&gt;
#&amp;lt;b&amp;gt;Interface Efficiency:&amp;lt;/b&amp;gt; Check if the new frontend enhances interface efficiency by being more intuitive and user-friendly.&lt;br /&gt;
&lt;br /&gt;
== Important Links ==&lt;br /&gt;
* GitHub repo [https://github.com/expertiza/reimplementation-front-end]&lt;br /&gt;
* Pull Request to be merged before starting this project [https://github.com/expertiza/reimplementation-front-end/pull/45]&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
=====Mentor===== &lt;br /&gt;
* Riya Gori&lt;br /&gt;
&lt;br /&gt;
=====Members===== &lt;br /&gt;
* Mitesh Agarwal &amp;lt;magarwa3@ncsu.edu&amp;gt;&lt;br /&gt;
* Shubham Loya &amp;lt;ssloya@ncsu.edu&amp;gt;&lt;br /&gt;
* Chris Mason &amp;lt;cpmason@ncsu.edu&amp;gt;&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024&amp;diff=154979</id>
		<title>CSC/ECE 517 Spring 2024</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024&amp;diff=154979"/>
		<updated>2024-04-08T15:50:56Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[CSC/ECE 517 Spring 2024 - E2401 Implementing and testing import &amp;amp; export controllers]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2405 Refactor review_mapping_helper.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2407 Refactor review_mapping_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2428 Replicate Roles and Institution UIs ReactJS]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2429 Reimplement student_task list]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2430 Reimplement student_task view]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2410. View for Results of Bidding ]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2414 Grading Audit Trail]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - NTNX-1 : Extend NDB Operator to Support Postgres HA]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - ‬NTNX-2‬‭ : Snapshot Functionality for provisioned databases]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2411 : Fix &amp;quot;Back&amp;quot; link on “New Late Policy” page]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2416.  Reimplement the Question hierarchy]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2420. Reimplement student_quizzes_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2424. Reimplement the Bookmarks Controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2426. Create a UI for Assignment Edit page &amp;quot;Etc&amp;quot; tab in ReactJS]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2417. Reimplement submitted content controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2425. Create a Courses user interface in ReactJS]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2431. Reimplement  grades/view_team]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2404 Refactor student teams functionality]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2406 Refactor review_mapping_helper.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2403 Mentor-Meeting Management]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2421. Reimplement impersonating users (within impersonate controller.rb)]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2413. Testing - Answer Tagging]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2412. Testing for hamer.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2427. UI for questionnaire.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2419. Reimplement duties controller.rb and badges controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2432. UI for Participants.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - G2402 Implement REST client, REST API, and Graphql API endpoint for repositories]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - G2400 DevOp for GitHub Miner app]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2439 Testing for view_translation_substitutor.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2443 Reimplement grades_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2434 Reimplement Frontend for the Grades view]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2435 Implement Frontend for the My Profile]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2446 Implement Front End for Student Task List]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2444 Implement Frontend for the Review]]&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2427._UI_for_questionnaire.rb&amp;diff=154500</id>
		<title>CSC/ECE 517 Spring 2024 - E2427. UI for questionnaire.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2427._UI_for_questionnaire.rb&amp;diff=154500"/>
		<updated>2024-03-25T02:30:39Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview of Expertiza ==&lt;br /&gt;
Expertiza, constructed using Ruby on Rails, is an open-source learning management system that offers a diverse array of features. These include the ability to generate assignments, tests, assignment teams, and courses. Notably, it excels in providing a comprehensive peer review system, fostering thorough feedback within teams and among group members. The central focus of the project revolves around enhancing the frontend components related to the Questionnaire. A specific challenge being tackled involves restructuring the current non-Typescript questionnaire UI to incorporate Typescript. Consequently, the team's task is to craft the User Interface for these components using React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
== Description of the Project ==&lt;br /&gt;
&lt;br /&gt;
* Objective: Refactor the non-Typescript frontend questionnaire UI of Expertiza to use Typescript and develop the User Interface using React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
* Key Tasks:&lt;br /&gt;
** Log in as a Super Admin.&lt;br /&gt;
** Replicate the 'Administration' and 'Institution' UIs using ReactJS, ensuring they retain full functionality within the new TypeScript and ReactJS framework.&lt;br /&gt;
&lt;br /&gt;
* Development Process:&lt;br /&gt;
** Understand the Existing System: Analyze the current Ruby on Rails implementation of Questionnaire UIs, including data models, controllers, and views.&lt;br /&gt;
** Setup Development Environment: Establish a TypeScript and ReactJS environment for developing the new UIs.&lt;br /&gt;
** Design Components: Create React components corresponding to UI parts, focusing on state and props management.&lt;br /&gt;
** Implement Components: Develop these components in TypeScript, mirroring the existing UIs' functionality.&lt;br /&gt;
** Integrate Components: Incorporate the new components into the main application, ensuring compatibility and functionality with the backend.&lt;br /&gt;
** Review and Refactor: Enhance code quality through reviews and refactoring, emphasizing readability and efficiency.&lt;br /&gt;
&lt;br /&gt;
* Additional Features and Improvements:&lt;br /&gt;
** Enhance UI with tooltips, improved table positioning, and pagination.&lt;br /&gt;
** Introduce a new search functionality to search for questionnaires based on the query.&lt;br /&gt;
** Introduce the sorting functionality to sort questionnaires based on the query.&lt;br /&gt;
** Enhance code quality by adding comments, removing obsolete code, and implementing form validations.&lt;br /&gt;
&lt;br /&gt;
* Outcome: The project aims to transition the Expertiza UI component for 'Questionnaire' from Ruby on Rails to a more modern, efficient TypeScript and ReactJS-based implementation, incorporating user role restrictions and various UI improvements for a better user experience.&lt;br /&gt;
&lt;br /&gt;
== Technologies Used ==&lt;br /&gt;
&lt;br /&gt;
* '''React.js''': A JavaScript library for building user interfaces, particularly single-page applications. React will be used to develop dynamic and responsive UI components.&lt;br /&gt;
&lt;br /&gt;
* '''TypeScript''': An open-source language that builds on JavaScript by adding static type definitions. TypeScript allows for writing clearer and more robust code, facilitating easier debugging and maintenance.&lt;br /&gt;
&lt;br /&gt;
* '''Ruby on Rails''': Although the focus is on refactoring the front end, understanding the existing Ruby on Rails backend is crucial. Rails is a server-side web application framework written in Ruby, following the model-view-controller (MVC) framework.&lt;br /&gt;
&lt;br /&gt;
== Changes Made ==&lt;br /&gt;
&lt;br /&gt;
1. '''Refactored the Questionnaire UI''': The transition of the questionnaire UI frontend from its original non-TypeScript state to now fully incorporating TypeScript has been completed successfully, enhancing the code's reliability and ease of maintenance.&lt;br /&gt;
&lt;br /&gt;
2. '''Developed with React.js and Typescript''': The 'Questionnarie' user interface have been rebuilt using React.js and Typescript, ensuring dynamic and responsive behavior. The React components created are modular, reusable, and effectively manage state.&lt;br /&gt;
&lt;br /&gt;
3. '''Analyzed Existing Backend''': An in-depth analysis and comprehension of the current Ruby on Rails backend were attained to ensure the seamless integration and functionality with the new TypeScript and React.js frontend.&lt;br /&gt;
&lt;br /&gt;
4. '''UI Enhancements Implemented''': &amp;lt;br/&amp;gt;&lt;br /&gt;
a. The UI has been updated to match the rest of the Expertiza APP. &amp;lt;br/&amp;gt;&lt;br /&gt;
b. Buttons to edit and delete table entries are included inline.  &amp;lt;br/&amp;gt;&lt;br /&gt;
c. A button to add new entries is added above and on the right of the table. &amp;lt;br/&amp;gt;&lt;br /&gt;
d. Added the hover functionality to display the tooltips to 'Edit', 'Delete', 'New Questionnaire' button. &amp;lt;br/&amp;gt;&lt;br /&gt;
e. Pagination is included for the table to accommodate multiple questionnaires.&amp;lt;br/&amp;gt;&lt;br /&gt;
f. Added the search functionality on top of the table to search for a particular Questionnarie. &amp;lt;br/&amp;gt;&lt;br /&gt;
g. Clicking the button to add a new questionnaire opens a pop up box to fill in the name of the new Questionnarie. &amp;lt;br/&amp;gt;&lt;br /&gt;
h. Added the functionality to sort the surveys alphabetically (Name wise) in ascending or descending order. &lt;br /&gt;
&lt;br /&gt;
6. '''Enhancements in Code Quality and Maintenance''':&lt;br /&gt;
Thorough documentation and detailed comments have been incorporated into the new codebase to enhance readability and facilitate ongoing maintenance.&lt;br /&gt;
Obsolete or redundant code segments have been systematically removed, optimizing the application's efficiency.&lt;br /&gt;
Validators and robust error-handling mechanisms have been integrated to fortify the UI's resilience.&lt;br /&gt;
&lt;br /&gt;
7. '''Comprehensive Testing and Seamless Integration''': &lt;br /&gt;
The new UI components underwent rigorous testing, both in isolation and within the application's operational framework, ensuring precise functionality across diverse scenarios and datasets.&lt;br /&gt;
Seamless integration of the new components into the existing application infrastructure was meticulously executed to uphold compatibility and operational coherence.&lt;br /&gt;
&lt;br /&gt;
8. '''Review and Deployment Accomplished''':&lt;br /&gt;
Collaborative code reviews were conducted with the development team to identify and implement potential enhancements or essential adjustments.&lt;br /&gt;
The deployment of the updated application was meticulously prepared and executed, guaranteeing a seamless transition devoid of disruptions to the existing user base.&lt;br /&gt;
&lt;br /&gt;
== UI Enhancements and Features in Screenshots ==&lt;br /&gt;
&lt;br /&gt;
The UI has been updated to match the rest of the Expertiza APP. &lt;br /&gt;
[[File:UI.jpeg |1000px|center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;UI looks similar to Expertiza with Pagination at bottom&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Button to 'Edit' and 'Delete' were added inline. Also Added 'Tooltips' to 'Edit' and 'Delete' as well as 'Create New Questionnarie' Buttons. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  [[File:Edit-questionnarie.jpeg |1000px|center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Edit Button Tooltip&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  [[File:Delete-questionnarie.jpeg |1000px|center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Delete Button Tooltip&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  [[File:Questionnarie.jpeg |1000px|center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;New Questionnarie Button Tooltip&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adding a new questionnaire, editing an existing questionnaire ,or deleting a questionnaire results in a pop-up box to perform respective individual functionality&lt;br /&gt;
[[File:new-survey.jpeg |500px|center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;New questionnaire Pop-up Box&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:edit-survey.jpeg |500px|center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Edit questionnaire Pop-up Box&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:delete-survey.jpeg |500px|center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Delete questionnaire Pop-up Box&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Added the search functionality on top of the table to search for a particular questionnaire.&lt;br /&gt;
[[File:Search-bar.jpeg |1000px|center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Search Bar search for matching questionnaire&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sorting the Questionnaires Alphabetically (Ascending as well as Descending)&lt;br /&gt;
[[File:sort.jpeg |300px|center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Sorting questionnaire functionality&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
Testing was initially excluded from the project's scope, as the focus was on frontend development. Nevertheless, ensuring the functionality and user experience of a website's interface is crucial. Therefore, manual testing procedures will be used to validate the correct operation of the UI components. These procedures include:&lt;br /&gt;
&lt;br /&gt;
# Verifying all the added button links to ensure they function correctly.&lt;br /&gt;
# Testing whether the Search Bar accurately searches the matching questionnaire.&lt;br /&gt;
# Testing whether sorting functionality displays the result in correct ascending and descending order.&lt;br /&gt;
&lt;br /&gt;
== Contributors to this project ==&lt;br /&gt;
* '''Mitesh Agarwal''' (unityid: magarwa3, github: mitesh24100)&lt;br /&gt;
* '''Jeff Riehle''' (unityid: jriehle, github: jriehle)&lt;br /&gt;
* '''Shubham Loya''' (unityid: ssloya, github: crmgogo)&lt;br /&gt;
* '''Github repo''' https://github.com/jriehle/reimplementation-front-end&lt;br /&gt;
* '''Link to PR''' https://github.com/expertiza/reimplementation-front-end/pull/41&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2427._UI_for_questionnaire.rb&amp;diff=154324</id>
		<title>CSC/ECE 517 Spring 2024 - E2427. UI for questionnaire.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2427._UI_for_questionnaire.rb&amp;diff=154324"/>
		<updated>2024-03-25T01:35:03Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: Created page with &amp;quot;== Overview of Expertiza == Expertiza, constructed using Ruby on Rails, is an open-source learning management system that offers a diverse array of features. These include the ability to generate assignments, tests, assignment teams, and courses. Notably, it excels in providing a comprehensive peer review system, fostering thorough feedback within teams and among group members. The central focus of the project revolves around enhancing the frontend components related to...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview of Expertiza ==&lt;br /&gt;
Expertiza, constructed using Ruby on Rails, is an open-source learning management system that offers a diverse array of features. These include the ability to generate assignments, tests, assignment teams, and courses. Notably, it excels in providing a comprehensive peer review system, fostering thorough feedback within teams and among group members. The central focus of the project revolves around enhancing the frontend components related to the Questionnaire. A specific challenge being tackled involves restructuring the current non-Typescript questionnaire UI to incorporate Typescript. Consequently, the team's task is to craft the User Interface for these components using React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
== Description of the Project ==&lt;br /&gt;
&lt;br /&gt;
* Objective: Refactor the non-Typescript frontend questionnaire UI of Expertiza to use Typescript and develop the User Interface using React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
* Key Tasks:&lt;br /&gt;
** Log in as a Super Admin.&lt;br /&gt;
** Replicate the 'Administration' and 'Institution' UIs using ReactJS, ensuring they retain full functionality within the new TypeScript and ReactJS framework.&lt;br /&gt;
&lt;br /&gt;
* Development Process:&lt;br /&gt;
** Understand the Existing System: Analyze the current Ruby on Rails implementation of Questionnaire UIs, including data models, controllers, and views.&lt;br /&gt;
** Setup Development Environment: Establish a TypeScript and ReactJS environment for developing the new UIs.&lt;br /&gt;
** Design Components: Create React components corresponding to UI parts, focusing on state and props management.&lt;br /&gt;
** Implement Components: Develop these components in TypeScript, mirroring the existing UIs' functionality.&lt;br /&gt;
** Integrate Components: Incorporate the new components into the main application, ensuring compatibility and functionality with the backend.&lt;br /&gt;
** Review and Refactor: Enhance code quality through reviews and refactoring, emphasizing readability and efficiency.&lt;br /&gt;
&lt;br /&gt;
* Additional Features and Improvements:&lt;br /&gt;
** Enhance UI with tooltips, improved table positioning, and pagination.&lt;br /&gt;
** Introduce a new search functionality to search for questionnaires based on the query.&lt;br /&gt;
** Introduce the sorting functionality to sort questionnaires based on the query.&lt;br /&gt;
** Enhance code quality by adding comments, removing obsolete code, and implementing form validations.&lt;br /&gt;
&lt;br /&gt;
* Outcome: The project aims to transition the Expertiza UI component for 'Questionnaire' from Ruby on Rails to a more modern, efficient TypeScript and ReactJS-based implementation, incorporating user role restrictions and various UI improvements for a better user experience.&lt;br /&gt;
&lt;br /&gt;
== Technologies Used ==&lt;br /&gt;
&lt;br /&gt;
* '''React.js''': A JavaScript library for building user interfaces, particularly single-page applications. React will be used to develop dynamic and responsive UI components.&lt;br /&gt;
&lt;br /&gt;
* '''TypeScript''': An open-source language that builds on JavaScript by adding static type definitions. TypeScript allows for writing clearer and more robust code, facilitating easier debugging and maintenance.&lt;br /&gt;
&lt;br /&gt;
* '''Ruby on Rails''': Although the focus is on refactoring the front end, understanding the existing Ruby on Rails backend is crucial. Rails is a server-side web application framework written in Ruby, following the model-view-controller (MVC) framework.&lt;br /&gt;
&lt;br /&gt;
== Changes Made ==&lt;br /&gt;
&lt;br /&gt;
1. '''Refactored the Questionnaire UI''': The transition of the questionnaire UI frontend from its original non-TypeScript state to now fully incorporating TypeScript has been completed successfully, enhancing the code's reliability and ease of maintenance.&lt;br /&gt;
&lt;br /&gt;
2. '''Developed with React.js and Typescript''': The 'Questionnarie' user interface have been rebuilt using React.js and Typescript, ensuring dynamic and responsive behavior. The React components created are modular, reusable, and effectively manage state.&lt;br /&gt;
&lt;br /&gt;
3. '''Analyzed Existing Backend''': An in-depth analysis and comprehension of the current Ruby on Rails backend were attained to ensure the seamless integration and functionality with the new TypeScript and React.js frontend.&lt;br /&gt;
&lt;br /&gt;
4. '''UI Enhancements Implemented''': &lt;br /&gt;
a. The UI has been updated to match the rest of the Expertiza APP. &lt;br /&gt;
b. Buttons to edit and delete table entries are included inline.  &lt;br /&gt;
c. A button to add new entries is added above and on the right of the table. &lt;br /&gt;
d. Pagination is included for the table to accommodate multiple questionnaires.&lt;br /&gt;
e. Added the search functionality on top of the table to search for a particular Questionnarie.&lt;br /&gt;
f. Clicking the button to add a new questionnaire opens a pop up box to fill in the name of the new Questionnarie.&lt;br /&gt;
g. Added the functionality to sort the surveys alphabetically (Name wise) in ascending or descending order.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6. '''Enhancements in Code Quality and Maintenance''':&lt;br /&gt;
Thorough documentation and detailed comments have been incorporated into the new codebase to enhance readability and facilitate ongoing maintenance.&lt;br /&gt;
Obsolete or redundant code segments have been systematically removed, optimizing the application's efficiency.&lt;br /&gt;
Validators and robust error-handling mechanisms have been integrated to fortify the UI's resilience.&lt;br /&gt;
&lt;br /&gt;
7. '''Comprehensive Testing and Seamless Integration''': &lt;br /&gt;
The new UI components underwent rigorous testing, both in isolation and within the application's operational framework, ensuring precise functionality across diverse scenarios and datasets.&lt;br /&gt;
Seamless integration of the new components into the existing application infrastructure was meticulously executed to uphold compatibility and operational coherence.&lt;br /&gt;
&lt;br /&gt;
8. '''Review and Deployment Accomplished''':&lt;br /&gt;
Collaborative code reviews were conducted with the development team to identify and implement potential enhancements or essential adjustments.&lt;br /&gt;
The deployment of the updated application was meticulously prepared and executed, guaranteeing a seamless transition devoid of disruptions to the existing user base.&lt;br /&gt;
&lt;br /&gt;
== UI Enhancements and Features in Screenshots ==&lt;br /&gt;
&lt;br /&gt;
The UI has been updated to match the rest of the Expertiza APP. &lt;br /&gt;
[[File:UI.jpeg |1000px|center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;UI looks similar to Expertiza with Pagination at bottom&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Button to 'Edit' and 'Delete' were added inline. Also Added 'Tooltips' to 'Edit' and 'Delete' as well as 'Create New Questionnarie' Buttons.&lt;br /&gt;
&lt;br /&gt;
  [[File:Edit-questionnarie.jpeg |1000px|center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Edit Button Tooltip&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  [[File:Delete-questionnarie.jpeg |1000px|center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Delete Button Tooltip&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  [[File:Questionnarie.jpeg |1000px|center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;New Questionnarie Button Tooltip&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adding a new questionnaire, editing an existing questionnaire ,or deleting a questionnaire results in a pop-up box to perform respective individual functionality&lt;br /&gt;
[[File:new-survey.jpeg |500px|center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;New questionnaire Pop-up Box&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:edit-survey.jpeg |500px|center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Edit questionnaire Pop-up Box&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:delete-survey.jpeg |500px|center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Delete questionnaire Pop-up Box&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Added the search functionality on top of the table to search for a particular questionnaire.&lt;br /&gt;
[[File:Search-bar.jpeg |1000px|center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Search Bar search for matching questionnaire&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sorting the Questionnaires Alphabetically (Ascending as well as Descending)&lt;br /&gt;
[[File:sort.jpeg |300px|center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Sorting questionnaire functionality&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
Testing was initially excluded from the project's scope, as the focus was on frontend development. Nevertheless, ensuring the functionality and user experience of a website's interface is crucial. Therefore, manual testing procedures will be used to validate the correct operation of the UI components. These procedures include:&lt;br /&gt;
&lt;br /&gt;
# Verifying all the added button links to ensure they function correctly.&lt;br /&gt;
# Testing whether the Search Bar accurately searches the matching questionnaire.&lt;br /&gt;
# Testing whether sorting functionality displays the result in correct ascending and descending order.&lt;br /&gt;
&lt;br /&gt;
== Contributors to this project ==&lt;br /&gt;
* '''Mitesh Agarwal''' (unityid: magarwa3, github: mitesh24100)&lt;br /&gt;
* '''Jeff Riehle''' (unityid: jriehle, github: jriehle)&lt;br /&gt;
* '''Shubham Loya''' (unityid: ssloya, github: crmgogo)&lt;br /&gt;
* '''Github repo''' https://github.com/jriehle/reimplementation-front-end&lt;br /&gt;
* '''Link to PR''' https://github.com/expertiza/reimplementation-front-end/pull/40&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Edit-survey.jpeg&amp;diff=154262</id>
		<title>File:Edit-survey.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Edit-survey.jpeg&amp;diff=154262"/>
		<updated>2024-03-25T01:09:47Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Delete-survey.jpeg&amp;diff=154260</id>
		<title>File:Delete-survey.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Delete-survey.jpeg&amp;diff=154260"/>
		<updated>2024-03-25T01:09:31Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:New-survey.jpeg&amp;diff=154242</id>
		<title>File:New-survey.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:New-survey.jpeg&amp;diff=154242"/>
		<updated>2024-03-25T01:05:07Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Sort.jpeg&amp;diff=154240</id>
		<title>File:Sort.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Sort.jpeg&amp;diff=154240"/>
		<updated>2024-03-25T01:02:00Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Search-bar.jpeg&amp;diff=154199</id>
		<title>File:Search-bar.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Search-bar.jpeg&amp;diff=154199"/>
		<updated>2024-03-25T00:48:55Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Delete-questionnarie.jpeg&amp;diff=154169</id>
		<title>File:Delete-questionnarie.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Delete-questionnarie.jpeg&amp;diff=154169"/>
		<updated>2024-03-25T00:39:40Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Edit-questionnarie.jpeg&amp;diff=154166</id>
		<title>File:Edit-questionnarie.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Edit-questionnarie.jpeg&amp;diff=154166"/>
		<updated>2024-03-25T00:38:33Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Questionnarie.jpeg&amp;diff=154149</id>
		<title>File:Questionnarie.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Questionnarie.jpeg&amp;diff=154149"/>
		<updated>2024-03-25T00:34:40Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Delete.jpeg&amp;diff=154143</id>
		<title>File:Delete.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Delete.jpeg&amp;diff=154143"/>
		<updated>2024-03-25T00:33:53Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: Magarwa3 uploaded a new version of File:Delete.jpeg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:UI.jpeg&amp;diff=154088</id>
		<title>File:UI.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:UI.jpeg&amp;diff=154088"/>
		<updated>2024-03-25T00:19:57Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024&amp;diff=153801</id>
		<title>CSC/ECE 517 Spring 2024</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024&amp;diff=153801"/>
		<updated>2024-03-24T22:03:14Z</updated>

		<summary type="html">&lt;p&gt;Magarwa3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[CSC/ECE 517 Spring 2024 - E2405 Refactor review_mapping_helper.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2407 Refactor review_mapping_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2428 Replicate Roles and Institution UIs ReactJS]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2429 Reimplement student_task list]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2414 Grading Audit Trail]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - ‬NTNX-2‬‭ : Snapshot Functionality for provisioned databases]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2411 : Fix &amp;quot;Back&amp;quot; link on “New Late Policy” page]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2416.  Reimplement the Question hierarchy]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2420. Reimplement student_quizzes_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2424. Reimplement the Bookmarks Controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2426. Create a UI for Assignment Edit page &amp;quot;Etc&amp;quot; tab in ReactJS]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2417. Reimplement submitted content controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2425. Create a Courses user interface in ReactJS]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2431. Reimplement  grades/view_team]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2404 Refactor student teams functionality]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2403 Mentor-Meeting Management]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2421. Reimplement impersonating users (within impersonate controller.rb)]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2413. Testing - Answer Tagging]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2412. Testing for hamer.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2024 - E2427. UI for questionnaire.rb]]&lt;/div&gt;</summary>
		<author><name>Magarwa3</name></author>
	</entry>
</feed>