<?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=Msguron</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=Msguron"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Msguron"/>
	<updated>2026-05-10T15:37:03Z</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_-_E2534_UI_for_Assign_Reviewers&amp;diff=165219</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=165219"/>
		<updated>2025-04-23T21:49:52Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* Design Principles */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects. This project will focus on implementing this solution within the front end reimplementation environment using Typescript and React.&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
====Affected Repositories====&lt;br /&gt;
* The group will be modifying and updating the expertiza/reimplementation-frontend repository for the front end project&lt;br /&gt;
* Changes will be made with React and Typescript&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
In Expertiza, managing reviewer assignments is currently fragmented across different interfaces. The existing “Add Reviewer” UI (as shown in the screenshot) allows an instructor to assign a reviewer by entering a user login manually. While this supports basic functionality, it lacks a unified view and efficient controls for large-scale assignment management.&lt;br /&gt;
&lt;br /&gt;
[[File:ThreeColumnPage.png|center|border|600px|]]&amp;lt;/b&amp;gt;&lt;br /&gt;
Specifically, the problems include:&lt;br /&gt;
&amp;lt;li&amp;gt;Lack of Visibility: There is no consolidated interface showing topics, contributors, and reviewers in one place.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Manual Input Only: Adding reviewers requires entering login IDs, which is error-prone and not scalable.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Limited Reviewer Controls: There are no built-in options to delete, unsubmit, or manage existing reviews in context.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unclear Status: Review status (e.g., submitted, not submitted) is not easily visible or actionable from the main UI.&amp;lt;/li&amp;gt;&lt;br /&gt;
Without a structured layout, instructors cannot efficiently organize or control the review process, especially in larger courses or group projects.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We propose the implementation of a 3-column table layout that clearly organizes the review mapping with integrated reviewer management controls. This layout improves visibility, reduces friction in reviewer assignment, and offers direct interaction with review statuses.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Topic Selected: Displays the assigned topic or project name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contributor: Shows team name or student name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reviewed By:&lt;br /&gt;
Lists assigned reviewers with visual status indicators (🟢 Submitted / 🔴 Not Submitted).&lt;br /&gt;
'''Includes action buttons:'''&lt;br /&gt;
&amp;lt;li&amp;gt;Add Reviewer: Opens an input field/modal to add a new reviewer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Delete Reviewer: Removes a reviewer if the review has not been submitted.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsubmit: Allows instructors to revert a submitted review for edits or reassignment.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|800px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. The primary design goal will be to maintain a RESTful API structure to ensure the frontend-backend integration is seamless.  &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;participant.rb&amp;lt;/code&amp;gt; file holds the backend code, while the file that stores the UI layout from the above screenshot is a page called &amp;lt;code&amp;gt;reviews_summary&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
This solution will need to access multiple participants to render a view for a given topic. Key information like participant name and username will be needed. The key changes to make this file API compatible while maintaining the desired functionality includes &lt;br /&gt;
* Use ActiveModel::Serializers to handle JSON Responses from the front end.  &lt;br /&gt;
* Ensure the Model Supports CRUD Operations via a RESTful API. &lt;br /&gt;
** This means the model will need to be correctly connected to a controller that follows RESTful conventions (index, show, create, update, destroy) and returns JSON responses. &lt;br /&gt;
* Handle Validations and Errors Gracefully&lt;br /&gt;
** Ensure that the model returns structured error responses and generates HTTP response codes that can be used to create efficient and thorough test cases. &lt;br /&gt;
&lt;br /&gt;
===== Reviews_Summary =====&lt;br /&gt;
&lt;br /&gt;
This page will need to render the 3 column layout for displaying topics, reviewers, and reviews. It needs to support the desired interactivity to delete and unsubmit reviews, render topics, and show information about the assignment.&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|600px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend &amp;lt;code&amp;gt;responses_controller.rb&amp;lt;/code&amp;gt; API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|600px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;Add_Reviewer&amp;lt;/code&amp;gt; page. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
===== response.rb &amp;amp; responses_controller.rb =====&lt;br /&gt;
The page will need to interact with the RESTful API endpoints for Response to create a new response and assign it to a given reviewer. Logic may need to be added or stubbed to enable this functionality within the current reimplementation environment.&lt;br /&gt;
&lt;br /&gt;
===== Add_Reviewer =====&lt;br /&gt;
&lt;br /&gt;
This page will need to render a page with a text box to input the username of the desired reviewer. The user should then be able to assign that reviewer and formally create the desired instance of the response model once they click 'Add Reviewer'. Appropriate validations should be supported to only assign a user that already exists. Additionally, the user should be able to go back to the 3 column view previously discussed once they have completed adding a reviewer.&lt;br /&gt;
&lt;br /&gt;
==Design Principles==&lt;br /&gt;
&lt;br /&gt;
'''1.Single Responsibility Principle (SRP):''' Each part of the Assign Reviewer UI is built with a focused and singular responsibility.&lt;br /&gt;
*The '''AssignReviewer''' component manages the structure and overall orchestration, such as loading the assignment and table data.&lt;br /&gt;
*The '''Table''' component (imported from components/Table) is solely responsible for rendering the table layout.&lt;br /&gt;
*Each row and action (like &amp;quot;Add Reviewer,&amp;quot; &amp;quot;Unsubmit,&amp;quot; or &amp;quot;Delete&amp;quot;) encapsulates only the event logic relevant to that action, ensuring clarity and ease of debugging.&lt;br /&gt;
By following SRP, each unit of the UI remains small, understandable, and independently testable.&lt;br /&gt;
&lt;br /&gt;
'''2.Open/Closed Principle (OCP):''' The design is flexible — the code is open for extension but closed for direct modification.&lt;br /&gt;
*New features like adding an &amp;quot;Edit Reviewer&amp;quot; button or showing reviewer comments could be easily added by extending the current components without changing their internals.&lt;br /&gt;
'''3.DRY Principle (Don't Repeat Yourself):''' Repetitive patterns are avoided through reuse.&lt;br /&gt;
*Instead of duplicating HTML or event logic for every button, a single method handles Add, Unsubmit, and Delete actions dynamically.&lt;br /&gt;
*The table renders contributors, reviewers, and buttons all based on mapped data arrays, meaning no hardcoded repetition of layout or logic, This keeps the codebase much cleaner and reduces bugs caused by duplicated updates.&lt;br /&gt;
'''4.Separation of Concerns (SoC):'''Responsibilities are divided cleanly across concerns.&lt;br /&gt;
*Data is managed by useState and useLoaderData, ensuring UI components remain mostly focused on display.&lt;br /&gt;
*Business logic for review management (adding, deleting, unsubmitting) is neatly encapsulated inside helper functions (addReviewer, deleteReviewer, unsubmitReviewer).&lt;br /&gt;
*Presentation is handled by the Table component and Bootstrap styling separately.&lt;br /&gt;
This separation ensures that the project is scalable, easy to extend, and easier to maintain.&lt;br /&gt;
&lt;br /&gt;
'''5.Accessibility and Responsiveness:''' Accessibility and usability were considered during UI design.&lt;br /&gt;
*Buttons use semantic Button components from react-bootstrap&lt;br /&gt;
*Links for actions like &amp;quot;Delete Outstanding Reviews&amp;quot; are written to behave like real links with proper accessible styling (keyboard accessible).&lt;br /&gt;
*The table is responsive to window sizes due to Bootstrap grid and utility classes.&lt;br /&gt;
'''6.Consistency and Scalability:'''The code consistently uses modular imports, camelCase naming, and @tanstack/react-table for predictable table behavior.&lt;br /&gt;
*Table components follow the same column structure.&lt;br /&gt;
*Button designs for Add, Delete, and Unsubmit maintain consistent styling and behavior.&lt;br /&gt;
*Any additional reviewer management features (bulk delete, assignment reassignment, etc.) can be scaled easily because the current foundation is clean and extensible.&lt;br /&gt;
&lt;br /&gt;
==User Story==&lt;br /&gt;
As an instructor, I want to view a list of contributors along with the reviewers assigned to them, so that I can effectively manage the reviewer assignments. I also want the ability to unsubmit a reviewer, removing their responsibility for a specific review, and to delete a reviewer entirely from the review process if necessary. As a contributor, I want to view the status of my assignment and see who has been assigned to review it.&lt;br /&gt;
''''Use Case Diagram''''&lt;br /&gt;
The central user interacts with several use cases, represented by blue ovals surrounding the user. These use cases include:&lt;br /&gt;
&lt;br /&gt;
* '''View Selected Topic:'''Allows the user to view the topic chosen for review.&lt;br /&gt;
* '''View Contributors:''' Enables the user to see a list of contributors.&lt;br /&gt;
* '''View Reviewers and Review Status:'''Lets the user view the assigned reviewers and their current review status.&lt;br /&gt;
* '''Add Reviewers for Each Topic:'''Provides functionality to assign new reviewers to specific topics.&lt;br /&gt;
* '''Delete Reviewers for Each Topic:'''Allows the user to remove reviewers assigned to a topic.&lt;br /&gt;
* '''Unsubmit Review Status:''' Enables the user to change a reviewer’s status back to &amp;quot;Pending&amp;quot; if needed.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:user D11.png|250px|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UI Implementation ==&lt;br /&gt;
The upgraded functionality in Expertiza aims to optimize the assignment of reviewers to project submissions by offering a clear, efficient, and intuitive interface. This enhancement assists administrators in overseeing peer reviews more effectively, equipping them with tools to allocate reviewers, monitor their progress, and promote greater transparency throughout the review process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: Table ASSIGN REVIWER 1111.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Unsubmit Functionality and Interactive Design===&lt;br /&gt;
&lt;br /&gt;
The interface also provides an option to unsubmit reviews, enhancing flexibility and transparency in the peer-review process. When users move the cursor over the &amp;quot;Unsubmit&amp;quot; link, it changes to green, signaling that it is clickable and interactive.&lt;br /&gt;
&lt;br /&gt;
[[File: Reviewed by11..png |400px|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reviewer Management ===&lt;br /&gt;
&lt;br /&gt;
Admins can monitor review statuses and assign new reviewers through a clear and intuitive interface, enabling efficient management of peer reviews and promoting smooth collaboration.&lt;br /&gt;
&lt;br /&gt;
Administrators can seamlessly assign reviewers to submissions through a clear and intuitive interface:&lt;br /&gt;
[[File: Reviewed by222.png |400px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Add Reviewer ===&lt;br /&gt;
&amp;lt;li&amp;gt;''''Add Reviewer Button:'''' This functionality simplifies the reviewer assignment process by enabling administrators to enter user information and link them to specific projects or topics.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: add reviewer 22.jpg |500px|center]]&lt;br /&gt;
&lt;br /&gt;
== Code Snippets ==&lt;br /&gt;
===Interfaces for Data Representation===&lt;br /&gt;
===ReviewerAssignment Interface===&lt;br /&gt;
The ReviewerAssignment interface is designed to represent the structure of data related to project review management. It organizes key information for each project topic, including contributors and assigned reviewers.&lt;br /&gt;
&amp;lt;li&amp;gt;'''Topic:'''  Represents the title or subject of the project under review.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Contributors:''' An array of contributor names involved in the project submission.&lt;br /&gt;
&amp;lt;li&amp;gt;'''Reviewers:''' An array of reviewer objects, each containing the reviewer’s name and their current review status.&lt;br /&gt;
&lt;br /&gt;
This structured data model enables clear and efficient tracking of contributors and reviewers associated with each topic, supporting seamless management of peer reviews.&lt;br /&gt;
&lt;br /&gt;
[[File: Add Reviewer11.png |500px|center]]&lt;br /&gt;
&lt;br /&gt;
===Core Functions for Reviewer Management===&lt;br /&gt;
&lt;br /&gt;
'''addReviewer Function:'''&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Purpose:''' Adds a new reviewer to a specific topic within the table’s data structure.&lt;br /&gt;
&lt;br /&gt;
Process:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Iterates through all existing rows to locate the one that matches the provided topic.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If the topic is found and there are fewer than three reviewers already assigned, it appends a new reviewer object.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The newly added reviewer is automatically given a generated name and username, and their review status is set to &amp;quot;Pending&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If the topic does not match or already has three reviewers, the row remains unchanged.&amp;lt;/b&amp;gt;&lt;br /&gt;
[[File: const addreviewer.png |600px|center]]&lt;br /&gt;
&lt;br /&gt;
'''UnsubmitReviewer Function:'''&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Purpose:''' Resets the review status of a specific reviewer to &amp;quot;Pending&amp;quot; for a selected topic.&lt;br /&gt;
&lt;br /&gt;
Process:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Iterates through the table rows to find the one matching the given topic.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Within the matching row, identifies the reviewer by their name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Updates the reviewer’s status to &amp;quot;Pending&amp;quot; while keeping the rest of their information unchanged.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Leaves all other rows and reviewers unaffected.&lt;br /&gt;
[[File: const unsubmit reviewer.png |600px|center]]&lt;br /&gt;
&lt;br /&gt;
===Data Structure for Review Management===&lt;br /&gt;
Each topic in the system consists of:&lt;br /&gt;
&amp;lt;li&amp;gt;Contributor Details: Includes the names and usernames of contributors.&lt;br /&gt;
&amp;lt;li&amp;gt; Reviewer Details: Includes the names, usernames, and current review statuses of assigned reviewers.&lt;br /&gt;
&lt;br /&gt;
This structured dataset provides clarity and supports organized tracking and management of the review process.&lt;br /&gt;
[[File:  Dummy.png |500px|center]]&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Unit Tests===&lt;br /&gt;
Unit testing for TS/front end projects is most applicable for logic-heavy components, which in the case of our project includes the button functionality. The following test cases were included: &lt;br /&gt;
* Validating that the &amp;quot;Add Reviewer&amp;quot; button adds a new reviewer with a status of &amp;quot;Pending&amp;quot;.&lt;br /&gt;
* Validating that the &amp;quot;Delete outstanding Reviewers&amp;quot; button removes the reviewer's association from the topic.&lt;br /&gt;
*Ensure that all table columns — &amp;quot;Topic Selected,&amp;quot; &amp;quot;Contributor,&amp;quot; and &amp;quot;Reviewed By&amp;quot; — display accurate and consistent data for each assignment.&lt;br /&gt;
*Verify that any modifications to reviewers (adding, deleting, or unassigning) are properly reflected in the user interface.&lt;br /&gt;
*Confirm that unsubmitting a review does not remove the reviewer, only changes their status to (Pending).&lt;br /&gt;
*Validate that the &amp;quot;Add Reviewer&amp;quot; button is not rendered once the maximum number of reviewers (3) has been reached for a topic.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/b&amp;gt;&lt;br /&gt;
===AssignReviewer &amp;amp; Edit Reviewer Unit Test===&lt;br /&gt;
[[File: Test code11.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
===Manual Tests===&lt;br /&gt;
Preconditions include the following: &lt;br /&gt;
* The front end and back end need to be successfully integrated&lt;br /&gt;
* The database (db) file needs to be successfully seeded&lt;br /&gt;
* Username: admin&lt;br /&gt;
* Password: password123&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Test Plan for E2534 UI for Assign Reviewers&lt;br /&gt;
! Test ID&lt;br /&gt;
! Test Case&lt;br /&gt;
! Description&lt;br /&gt;
! Precondition&lt;br /&gt;
! Expected Results&lt;br /&gt;
! Actual Results&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Sign In and Navigate to Assign Reviewers&lt;br /&gt;
| Verify that an admin can sign in and navigate to the Assign Reviewers page.&lt;br /&gt;
| The admin is logged in using the credentials: username `admin` and password `password123`.&lt;br /&gt;
| The admin should successfully navigate to the Assign Reviewers page at assignments/edit/id. &lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Table Styling and Layout&lt;br /&gt;
| Verify that the table styling (fonts, spacing, headers) matches design guidelines.&lt;br /&gt;
| The latest code is deployed, and the frontend is running.&lt;br /&gt;
| The table should match the design guidelines for fonts, spacing, and alignment.&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Column Data Types&lt;br /&gt;
| Verify that each column in the table displays the correct data type. For example, the &amp;quot;Topic&amp;quot; column should contain text,&amp;quot; while the &amp;quot;Reviewed by&amp;quot; column should contain buttons. &lt;br /&gt;
| The table is populated with data.&lt;br /&gt;
| Each column should display data of the correct type (e.g., text, numbers, dates).&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Navigate to Assign Reviewer and test responsiveness&lt;br /&gt;
| Verify that the table columns adjust to fit the screen on smaller devices.&lt;br /&gt;
| The user is on the &amp;quot;Assign Reviewer&amp;quot; page.&lt;br /&gt;
| The table columns should resize to fit the screen without horizontal scrolling.&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Test Keyboard Navigation&lt;br /&gt;
| Verify that the user can navigate the table using the keyboard.&lt;br /&gt;
| The user is on the Assignment Reviewers page.&lt;br /&gt;
| The user should be able to navigate through the table using the Tab key.&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Pagination&lt;br /&gt;
| Verify that pagination works correctly when the table has more rows than fit on one page.&lt;br /&gt;
| The table contains more rows than fit on one page.&lt;br /&gt;
| Pagination controls should allow navigation between pages, and the correct rows should be displayed.&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Accessibility&lt;br /&gt;
| Verify that the UI meets accessibility standards (e.g., ARIA roles, keyboard navigation).&lt;br /&gt;
| The frontend is running.&lt;br /&gt;
| The UI should be navigable using a keyboard, and ARIA roles should be properly implemented.&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Add Reviewer Action Button Functionality &lt;br /&gt;
| Verify that by clicking &amp;quot;Add Reviewer&amp;quot; under the contributor column that the user is redirected to the &amp;quot;Add Reviewers&amp;quot; page&lt;br /&gt;
| User starts on the Assign Reviewers page&lt;br /&gt;
| The user should be redirected to an &amp;quot;Add Reviewer&amp;quot; page where they can add a username. &lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Delete Reviewer Action Button Functionality&lt;br /&gt;
| Clicking the delete reviewer action button should appropriately remove the review&lt;br /&gt;
| User starts on the Assign Reviewers page and there is already an existing review that is displayed&lt;br /&gt;
| Verify that by clicking &amp;quot;Delete Reviewer&amp;quot; the reviewer no longer displays in the &amp;quot;Reviewed by&amp;quot; column&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Delete Outstanding Reviewer Action Button Functionality&lt;br /&gt;
| Clicking the delete outstanding reviewer button should appear when appropriate and function correctly&lt;br /&gt;
| User starts on the Assign Reviewers page and there is a reviewer with a pending status&lt;br /&gt;
| Verify that the &amp;quot;Delete Outstanding Reviewer&amp;quot; button only appears when there are reviewers in a pending status for a topic, and that when the button is clicked they are removed successfully. The button should also disappear after this action. &lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Unsubmit Review Action Button Functionality&lt;br /&gt;
| The unsubmit review action button should appear when appropriate and function correctly&lt;br /&gt;
| User starts on the Assign Reviewers page and there is a reviewer assigned to a particular topic&lt;br /&gt;
| The unsubmit review should display for reviewers in any status, and clicking the button should ensure the review is no longer in a status of &amp;quot;submitted&amp;quot;&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Delete Review Action Button Functionality&lt;br /&gt;
| The delete review action button should appear when appropriate and function correctly&lt;br /&gt;
| The User starts on the Assign Reviewers page and there is a reviewer present under the &amp;quot;Reviewed by&amp;quot; column for a particular topic &lt;br /&gt;
| The delete review button should display for reviewers in any status, and clicking the button should ensure the review is deleted&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Add Reviewer Functionality&lt;br /&gt;
| The user is able to successfully add new reviewers&lt;br /&gt;
| The user has clicked on the &amp;quot;Add Reviewer&amp;quot; action button and is redirected to the Add Reviewer page&lt;br /&gt;
| The user is able to enter the username of a reviewer, submit the review by clicking the &amp;quot;Add Reviewer&amp;quot; button, and is redirected back to the Assign Reviewers page. &lt;br /&gt;
| Pass&lt;br /&gt;
|- &lt;br /&gt;
| 15&lt;br /&gt;
| New Reviewer Status&lt;br /&gt;
| New Reviewers that are added should have a correct review status displayed&lt;br /&gt;
| A new review has been added by first clicking on the &amp;quot;Add Reviewer&amp;quot; action button&lt;br /&gt;
| The reviewer's default status should be &amp;quot;pending&amp;quot; until they submit a review successfully&lt;br /&gt;
| Pass&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UI Edge Case Testing for Contributor &amp;amp; Reviewer Management ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ UI Edge Case Testing for Contributor &amp;amp; Reviewer Management&lt;br /&gt;
! Feature/Action&lt;br /&gt;
! Edge Case&lt;br /&gt;
! Expected Behavior&lt;br /&gt;
! Test Method&lt;br /&gt;
! Result&lt;br /&gt;
|-&lt;br /&gt;
| View Contributors/Topics&lt;br /&gt;
| No contributors exist&lt;br /&gt;
| UI shows an empty state message or placeholder&lt;br /&gt;
| Manual&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| View Contributors/Topics&lt;br /&gt;
| Contributors exist but no reviewers assigned&lt;br /&gt;
| Reviewer section remains empty with a helpful message&lt;br /&gt;
| Manual&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| View Contributors/Topics&lt;br /&gt;
| Inconsistent data (e.g., deleted topic)&lt;br /&gt;
| UI handles gracefully with fallback or error message&lt;br /&gt;
| Manual&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| Unsubmit Reviewer&lt;br /&gt;
| Reviewer hasn't submitted yet&lt;br /&gt;
| Action may be disabled or handled gracefully&lt;br /&gt;
| Manual&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| Delete Reviewer&lt;br /&gt;
| Reviewer is also assigned elsewhere&lt;br /&gt;
| Only delete from selected topic; no unintended data loss&lt;br /&gt;
| Integration/Manual&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| Delete Reviewer&lt;br /&gt;
| Reviewer has submitted a review&lt;br /&gt;
| Prompt confirmation, possibly restrict deletion&lt;br /&gt;
| Manual &lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| Add Reviewer&lt;br /&gt;
| Reviewer missing required fields&lt;br /&gt;
| Show validation error before submission&lt;br /&gt;
| UI/Manual&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| Add Reviewer&lt;br /&gt;
| Topic has max reviewers&lt;br /&gt;
| Prevent adding &lt;br /&gt;
| UI/Manual&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| Add Reviewer&lt;br /&gt;
| Added Reviewer persists after refreshing Assign Reviewers page&lt;br /&gt;
| Maintains status of pending&lt;br /&gt;
| Manual/Integration&lt;br /&gt;
| Pass &lt;br /&gt;
|-&lt;br /&gt;
| Contributor View&lt;br /&gt;
| Contributor has no reviewer assigned&lt;br /&gt;
| Show placeholder&lt;br /&gt;
| Manual&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Error Handling ==&lt;br /&gt;
'''Adding Reviewers Beyond the Limit:'''&lt;br /&gt;
*''Test:'' Attempt to add a reviewer when 3 reviewers are already assigned.&lt;br /&gt;
''Expected Handling:'' UI should prevent adding a 4th reviewer.&lt;br /&gt;
&lt;br /&gt;
'''Adding Non-Existent Reviewers:'''&lt;br /&gt;
*''Test :'' Attempt to add a reviewer whose username or ID does not exist in the system database.&lt;br /&gt;
''Expected Handling:'' The system should prevent adding the reviewer.&lt;br /&gt;
&lt;br /&gt;
'''UI Button Misclicks / Double Clicks:'''&lt;br /&gt;
*''Test :'' Double-click &amp;quot;Add Reviewer&amp;quot; or &amp;quot;Delete Reviewer&amp;quot; quickly.&lt;br /&gt;
''Expected Handling:'' Operations should only process once.&lt;br /&gt;
&lt;br /&gt;
'''Unsubmitting When Reviewer is Already Pending:'''&lt;br /&gt;
*''Test :''Try to &amp;quot;Unsubmit&amp;quot; a reviewer who already has a &amp;quot;Pending&amp;quot; status.&lt;br /&gt;
''Expected Handling:''Status should remain &amp;quot;Pending.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
This design document outlines a comprehensive plan for developing an enhanced UI for assigning reviewers in Expertiza. By utilizing React and TypeScript for the frontend, the solution aims to provide a smooth, intuitive experience that enables instructors to manage reviewer assignments efficiently. The adoption of modern technologies ensures high performance, scalability, and maintainable code. Additionally, this approach emphasizes data integrity and security, protecting the accuracy of assignment data while promoting a user-centric, responsive design that enhances usability across a range of devices.&lt;br /&gt;
&lt;br /&gt;
==Future Scope==&lt;br /&gt;
This project purposely did not include adding in meta reviewers from the old system in order to focus on core reviewer functionalities. However, in the future, this functionality may be added as needed. This project also did not focus specifically on the backend functionality, so there may be additional testing or implementation needed in order to ensure all API endpoints are tested thoroughly, error handling is successful, etc.&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* '''Github Repository:''' https://github.com/delaneydow/reimplementation-front-end&lt;br /&gt;
* '''Pull Request:''' https://github.com/expertiza/reimplementation-front-end/pull/95&lt;br /&gt;
* '''Youtube Video:''' https://youtu.be/uh5nBpmtzuY&lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
* Delaney Dow (dmdow@ncsu.edu)&lt;br /&gt;
* Manbir Guron (msguron@ncsu.edu)&lt;br /&gt;
* Elnaz Ghotbitaheri (eghotbi@ncsu.edu)&lt;br /&gt;
* Mentor: Vihar Manojkumar Shah (vshah23@ncsu.edu)&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=164929</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=164929"/>
		<updated>2025-04-23T01:14:57Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* AssignReviewer Test */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects. This project will focus on implementing this solution within the front end reimplementation environment using Typescript and React.&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
====Affected Repositories====&lt;br /&gt;
* The group will be modifying and updating the expertiza/reimplementation-frontend repository for the front end project&lt;br /&gt;
* Changes will be made with React and Typescript&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
In Expertiza, managing reviewer assignments is currently fragmented across different interfaces. The existing “Add Reviewer” UI (as shown in the screenshot) allows an instructor to assign a reviewer by entering a user login manually. While this supports basic functionality, it lacks a unified view and efficient controls for large-scale assignment management.&lt;br /&gt;
&lt;br /&gt;
[[File:ThreeColumnPage.png|center|border|600px|]]&amp;lt;/b&amp;gt;&lt;br /&gt;
Specifically, the problems include:&lt;br /&gt;
&amp;lt;li&amp;gt;Lack of Visibility: There is no consolidated interface showing topics, contributors, and reviewers in one place.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Manual Input Only: Adding reviewers requires entering login IDs, which is error-prone and not scalable.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Limited Reviewer Controls: There are no built-in options to delete, unsubmit, or manage existing reviews in context.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unclear Status: Review status (e.g., submitted, not submitted) is not easily visible or actionable from the main UI.&amp;lt;/li&amp;gt;&lt;br /&gt;
Without a structured layout, instructors cannot efficiently organize or control the review process, especially in larger courses or group projects.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We propose the implementation of a 3-column table layout that clearly organizes the review mapping with integrated reviewer management controls. This layout improves visibility, reduces friction in reviewer assignment, and offers direct interaction with review statuses.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Topic Selected: Displays the assigned topic or project name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contributor: Shows team name or student name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reviewed By:&lt;br /&gt;
Lists assigned reviewers with visual status indicators (🟢 Submitted / 🔴 Not Submitted).&lt;br /&gt;
'''Includes action buttons:'''&lt;br /&gt;
&amp;lt;li&amp;gt;Add Reviewer: Opens an input field/modal to add a new reviewer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Delete Reviewer: Removes a reviewer if the review has not been submitted.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsubmit: Allows instructors to revert a submitted review for edits or reassignment.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|800px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. The primary design goal will be to maintain a RESTful API structure to ensure the frontend-backend integration is seamless.  &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;participant.rb&amp;lt;/code&amp;gt; file holds the backend code, while the file that stores the UI layout from the above screenshot is a page called &amp;lt;code&amp;gt;reviews_summary&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
This solution will need to access multiple participants to render a view for a given topic. Key information like participant name and username will be needed. The key changes to make this file API compatible while maintaining the desired functionality includes &lt;br /&gt;
* Use ActiveModel::Serializers to handle JSON Responses from the front end.  &lt;br /&gt;
* Ensure the Model Supports CRUD Operations via a RESTful API. &lt;br /&gt;
** This means the model will need to be correctly connected to a controller that follows RESTful conventions (index, show, create, update, destroy) and returns JSON responses. &lt;br /&gt;
* Handle Validations and Errors Gracefully&lt;br /&gt;
** Ensure that the model returns structured error responses and generates HTTP response codes that can be used to create efficient and thorough test cases. &lt;br /&gt;
&lt;br /&gt;
===== Reviews_Summary =====&lt;br /&gt;
&lt;br /&gt;
This page will need to render the 3 column layout for displaying topics, reviewers, and reviews. It needs to support the desired interactivity to delete and unsubmit reviews, render topics, and show information about the assignment.&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|600px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend &amp;lt;code&amp;gt;responses_controller.rb&amp;lt;/code&amp;gt; API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|600px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;Add_Reviewer&amp;lt;/code&amp;gt; page. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
===== response.rb &amp;amp; responses_controller.rb =====&lt;br /&gt;
The page will need to interact with the RESTful API endpoints for Response to create a new response and assign it to a given reviewer. Logic may need to be added or stubbed to enable this functionality within the current reimplementation environment.&lt;br /&gt;
&lt;br /&gt;
===== Add_Reviewer =====&lt;br /&gt;
&lt;br /&gt;
This page will need to render a page with a text box to input the username of the desired reviewer. The user should then be able to assign that reviewer and formally create the desired instance of the response model once they click 'Add Reviewer'. Appropriate validations should be supported to only assign a user that already exists. Additionally, the user should be able to go back to the 3 column view previously discussed once they have completed adding a reviewer.&lt;br /&gt;
&lt;br /&gt;
==Design Principles==&lt;br /&gt;
&lt;br /&gt;
'''1.Single Responsibility Principle (SRP):''' Each part of the Assign Reviewer UI is built with a focused and singular responsibility.&lt;br /&gt;
*The '''AssignReviewer''' component manages the structure and overall orchestration, such as loading the assignment and table data.&lt;br /&gt;
*The '''Table''' component (imported from components/Table) is solely responsible for rendering the table layout.&lt;br /&gt;
*Each row and action (like &amp;quot;Add Reviewer,&amp;quot; &amp;quot;Unsubmit,&amp;quot; or &amp;quot;Delete&amp;quot;) encapsulates only the event logic relevant to that action, ensuring clarity and ease of debugging.&lt;br /&gt;
By following SRP, each unit of the UI remains small, understandable, and independently testable.&lt;br /&gt;
'''2.Open/Closed Principle (OCP):''' The design is flexible — the code is open for extension but closed for direct modification.&lt;br /&gt;
*New features like adding an &amp;quot;Edit Reviewer&amp;quot; button or showing reviewer comments could be easily added by extending the current components without changing their internals.&lt;br /&gt;
'''3.DRY Principle (Don't Repeat Yourself):''' Repetitive patterns are avoided through reuse.&lt;br /&gt;
*Instead of duplicating HTML or event logic for every button, a single method handles Add, Unsubmit, and Delete actions dynamically.&lt;br /&gt;
*The table renders contributors, reviewers, and buttons all based on mapped data arrays, meaning no hardcoded repetition of layout or logic, This keeps the codebase much cleaner and reduces bugs caused by duplicated updates.&lt;br /&gt;
'''4.Separation of Concerns (SoC):'''Responsibilities are divided cleanly across concerns.&lt;br /&gt;
*Data is managed by useState and useLoaderData, ensuring UI components remain mostly focused on display.&lt;br /&gt;
*Business logic for review management (adding, deleting, unsubmitting) is neatly encapsulated inside helper functions (addReviewer, deleteReviewer, unsubmitReviewer).&lt;br /&gt;
*Presentation is handled by the Table component and Bootstrap styling separately.&lt;br /&gt;
This separation ensures that the project is scalable, easy to extend, and easier to maintain.&lt;br /&gt;
'''5.Accessibility and Responsiveness:''' Accessibility and usability were considered during UI design.&lt;br /&gt;
*Buttons use semantic Button components from react-bootstrap&lt;br /&gt;
*Links for actions like &amp;quot;Delete Outstanding Reviews&amp;quot; are written to behave like real links with proper accessible styling (keyboard accessible).&lt;br /&gt;
*The table is responsive to window sizes due to Bootstrap grid and utility classes.&lt;br /&gt;
'''6.Consistency and Scalability:'''The code consistently uses modular imports, camelCase naming, and @tanstack/react-table for predictable table behavior.&lt;br /&gt;
*Table components follow the same column structure.&lt;br /&gt;
*Button designs for Add, Delete, and Unsubmit maintain consistent styling and behavior.&lt;br /&gt;
*Any additional reviewer management features (bulk delete, assignment reassignment, etc.) can be scaled easily because the current foundation is clean and extensible.&lt;br /&gt;
&lt;br /&gt;
==User Story==&lt;br /&gt;
As an instructor, I want to view a list of contributors along with the reviewers assigned to them, so that I can effectively manage the reviewer assignments. I also want the ability to unsubmit a reviewer, removing their responsibility for a specific review, and to delete a reviewer entirely from the review process if necessary. As a contributor, I want to view the status of my assignment and see who has been assigned to review it.&lt;br /&gt;
''''Use Case Diagram''''&lt;br /&gt;
The central user interacts with several use cases, represented by blue ovals surrounding the user. These use cases include:&lt;br /&gt;
&lt;br /&gt;
* '''View Selected Topic:'''Allows the user to view the topic chosen for review.&lt;br /&gt;
* '''View Contributors:''' Enables the user to see a list of contributors.&lt;br /&gt;
* '''View Reviewers and Review Status:'''Lets the user view the assigned reviewers and their current review status.&lt;br /&gt;
* '''Add Reviewers for Each Topic:'''Provides functionality to assign new reviewers to specific topics.&lt;br /&gt;
* '''Delete Reviewers for Each Topic:'''Allows the user to remove reviewers assigned to a topic.&lt;br /&gt;
* '''Unsubmit Review Status:''' Enables the user to change a reviewer’s status back to &amp;quot;Pending&amp;quot; if needed.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:user D11.png|250px|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UI Implementation ==&lt;br /&gt;
The upgraded functionality in Expertiza aims to optimize the assignment of reviewers to project submissions by offering a clear, efficient, and intuitive interface. This enhancement assists administrators in overseeing peer reviews more effectively, equipping them with tools to allocate reviewers, monitor their progress, and promote greater transparency throughout the review process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: Table ASSIGN REVIWER 1111.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Unsubmit Functionality and Interactive Design===&lt;br /&gt;
&lt;br /&gt;
The interface also provides an option to unsubmit reviews, enhancing flexibility and transparency in the peer-review process. When users move the cursor over the &amp;quot;Unsubmit&amp;quot; link, it changes to green, signaling that it is clickable and interactive.&lt;br /&gt;
&lt;br /&gt;
[[File: Reviewed by11..png |400px|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reviewer Management ===&lt;br /&gt;
&lt;br /&gt;
Admins can monitor review statuses and assign new reviewers through a clear and intuitive interface, enabling efficient management of peer reviews and promoting smooth collaboration.&lt;br /&gt;
&lt;br /&gt;
Administrators can seamlessly assign reviewers to submissions through a clear and intuitive interface:&lt;br /&gt;
[[File: Reviewed by222.png |400px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Add Reviewer ===&lt;br /&gt;
&amp;lt;li&amp;gt;''''Add Reviewer Button:'''' This functionality simplifies the reviewer assignment process by enabling administrators to enter user information and link them to specific projects or topics.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: add reviewer 22.jpg |500px|center]]&lt;br /&gt;
&lt;br /&gt;
== Code Snippets ==&lt;br /&gt;
===Interfaces for Data Representation===&lt;br /&gt;
===ReviewerAssignment Interface===&lt;br /&gt;
The ReviewerAssignment interface is designed to represent the structure of data related to project review management. It organizes key information for each project topic, including contributors and assigned reviewers.&lt;br /&gt;
&amp;lt;li&amp;gt;'''Topic:'''  Represents the title or subject of the project under review.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Contributors:''' An array of contributor names involved in the project submission.&lt;br /&gt;
&amp;lt;li&amp;gt;'''Reviewers:''' An array of reviewer objects, each containing the reviewer’s name and their current review status.&lt;br /&gt;
&lt;br /&gt;
This structured data model enables clear and efficient tracking of contributors and reviewers associated with each topic, supporting seamless management of peer reviews.&lt;br /&gt;
&lt;br /&gt;
[[File: Add Reviewer11.png |500px|center]]&lt;br /&gt;
&lt;br /&gt;
===Core Functions for Reviewer Management===&lt;br /&gt;
&lt;br /&gt;
'''addReviewer Function:'''&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Purpose:''' Adds a new reviewer to a specific topic within the table’s data structure.&lt;br /&gt;
&lt;br /&gt;
Process:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Iterates through all existing rows to locate the one that matches the provided topic.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If the topic is found and there are fewer than three reviewers already assigned, it appends a new reviewer object.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The newly added reviewer is automatically given a generated name and username, and their review status is set to &amp;quot;Pending&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If the topic does not match or already has three reviewers, the row remains unchanged.&amp;lt;/b&amp;gt;&lt;br /&gt;
[[File: const addreviewer.png |600px|center]]&lt;br /&gt;
&lt;br /&gt;
'''UnsubmitReviewer Function:'''&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Purpose:''' Resets the review status of a specific reviewer to &amp;quot;Pending&amp;quot; for a selected topic.&lt;br /&gt;
&lt;br /&gt;
Process:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Iterates through the table rows to find the one matching the given topic.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Within the matching row, identifies the reviewer by their name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Updates the reviewer’s status to &amp;quot;Pending&amp;quot; while keeping the rest of their information unchanged.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Leaves all other rows and reviewers unaffected.&lt;br /&gt;
[[File: const unsubmit reviewer.png |600px|center]]&lt;br /&gt;
&lt;br /&gt;
===Data Structure for Review Management===&lt;br /&gt;
Each topic in the system consists of:&lt;br /&gt;
&amp;lt;li&amp;gt;Contributor Details: Includes the names and usernames of contributors.&lt;br /&gt;
&amp;lt;li&amp;gt; Reviewer Details: Includes the names, usernames, and current review statuses of assigned reviewers.&lt;br /&gt;
&lt;br /&gt;
This structured dataset provides clarity and supports organized tracking and management of the review process.&lt;br /&gt;
[[File:  Dummy.png |500px|center]]&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Unit Tests===&lt;br /&gt;
Unit testing for TS/front end projects is most applicable for logic-heavy components, which in the case of our project includes the button functionality. The following test cases were included: &lt;br /&gt;
* Validating that the &amp;quot;Add Reviewer&amp;quot; button adds a new reviewer with a status of &amp;quot;Pending&amp;quot;.&lt;br /&gt;
* Validating that the &amp;quot;Delete outstanding Reviewers&amp;quot; button removes the reviewer's association from the topic.&lt;br /&gt;
*Ensure that all table columns — &amp;quot;Topic Selected,&amp;quot; &amp;quot;Contributor,&amp;quot; and &amp;quot;Reviewed By&amp;quot; — display accurate and consistent data for each assignment.&lt;br /&gt;
*Verify that any modifications to reviewers (adding, deleting, or unassigning) are properly reflected in the user interface.&lt;br /&gt;
*Confirm that unsubmitting a review does not remove the reviewer, only changes their status to (Pending).&lt;br /&gt;
*Validate that the &amp;quot;Add Reviewer&amp;quot; button is not rendered once the maximum number of reviewers (3) has been reached for a topic.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/b&amp;gt;&lt;br /&gt;
===AssignReviewer &amp;amp; Edit Reviewer Unit Test===&lt;br /&gt;
[[File: Test code11.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
===Manual Tests===&lt;br /&gt;
Preconditions include the following: &lt;br /&gt;
* The front end and back end need to be successfully integrated&lt;br /&gt;
* The database (db) file needs to be successfully seeded&lt;br /&gt;
* Username: admin&lt;br /&gt;
* Password: password123&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Test Plan for E2534 UI for Assign Reviewers&lt;br /&gt;
! Test ID&lt;br /&gt;
! Test Case&lt;br /&gt;
! Description&lt;br /&gt;
! Precondition&lt;br /&gt;
! Expected Results&lt;br /&gt;
! Actual Results&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Sign In and Navigate to Assign Reviewers&lt;br /&gt;
| Verify that an admin can sign in and navigate to the Assign Reviewers page.&lt;br /&gt;
| The admin is logged in using the credentials: username `admin` and password `password123`.&lt;br /&gt;
| The admin should successfully navigate to the Assign Reviewers page at assignments/edit/id. &lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Table Styling and Layout&lt;br /&gt;
| Verify that the table styling (fonts, spacing, headers) matches design guidelines.&lt;br /&gt;
| The latest code is deployed, and the frontend is running.&lt;br /&gt;
| The table should match the design guidelines for fonts, spacing, and alignment.&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Column Data Types&lt;br /&gt;
| Verify that each column in the table displays the correct data type. For example, the &amp;quot;Topic&amp;quot; column should contain text,&amp;quot; while the &amp;quot;Reviewed by&amp;quot; column should contain buttons. &lt;br /&gt;
| The table is populated with data.&lt;br /&gt;
| Each column should display data of the correct type (e.g., text, numbers, dates).&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Navigate to Assign Reviewer and test responsiveness&lt;br /&gt;
| Verify that the table columns adjust to fit the screen on smaller devices.&lt;br /&gt;
| The user is on the &amp;quot;Assign Reviewer&amp;quot; page.&lt;br /&gt;
| The table columns should resize to fit the screen without horizontal scrolling.&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Test Keyboard Navigation&lt;br /&gt;
| Verify that the user can navigate the table using the keyboard.&lt;br /&gt;
| The user is on the Assignment Reviewers page.&lt;br /&gt;
| The user should be able to navigate through the table using the Tab key.&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Pagination&lt;br /&gt;
| Verify that pagination works correctly when the table has more rows than fit on one page.&lt;br /&gt;
| The table contains more rows than fit on one page.&lt;br /&gt;
| Pagination controls should allow navigation between pages, and the correct rows should be displayed.&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Accessibility&lt;br /&gt;
| Verify that the UI meets accessibility standards (e.g., ARIA roles, keyboard navigation).&lt;br /&gt;
| The frontend is running.&lt;br /&gt;
| The UI should be navigable using a keyboard, and ARIA roles should be properly implemented.&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Add Reviewer Action Button Functionality &lt;br /&gt;
| Verify that by clicking &amp;quot;Add Reviewer&amp;quot; under the contributor column that the user is redirected to the &amp;quot;Add Reviewers&amp;quot; page&lt;br /&gt;
| User starts on the Assign Reviewers page&lt;br /&gt;
| The user should be redirected to an &amp;quot;Add Reviewer&amp;quot; page where they can add a username. &lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Delete Reviewer Action Button Functionality&lt;br /&gt;
| Clicking the delete reviewer action button should appropriately remove the review&lt;br /&gt;
| User starts on the Assign Reviewers page and there is already an existing review that is displayed&lt;br /&gt;
| Verify that by clicking &amp;quot;Delete Reviewer&amp;quot; the reviewer no longer displays in the &amp;quot;Reviewed by&amp;quot; column&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Delete Outstanding Reviewer Action Button Functionality&lt;br /&gt;
| Clicking the delete outstanding reviewer button should appear when appropriate and function correctly&lt;br /&gt;
| User starts on the Assign Reviewers page and there is a reviewer with a pending status&lt;br /&gt;
| Verify that the &amp;quot;Delete Outstanding Reviewer&amp;quot; button only appears when there are reviewers in a pending status for a topic, and that when the button is clicked they are removed successfully. The button should also disappear after this action. &lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Unsubmit Review Action Button Functionality&lt;br /&gt;
| The unsubmit review action button should appear when appropriate and function correctly&lt;br /&gt;
| User starts on the Assign Reviewers page and there is a reviewer assigned to a particular topic&lt;br /&gt;
| The unsubmit review should display for reviewers in any status, and clicking the button should ensure the review is no longer in a status of &amp;quot;submitted&amp;quot;&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Delete Review Action Button Functionality&lt;br /&gt;
| The delete review action button should appear when appropriate and function correctly&lt;br /&gt;
| The User starts on the Assign Reviewers page and there is a reviewer present under the &amp;quot;Reviewed by&amp;quot; column for a particular topic &lt;br /&gt;
| The delete review button should display for reviewers in any status, and clicking the button should ensure the review is deleted&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Add Reviewer Functionality&lt;br /&gt;
| The user is able to successfully add new reviewers&lt;br /&gt;
| The user has clicked on the &amp;quot;Add Reviewer&amp;quot; action button and is redirected to the Add Reviewer page&lt;br /&gt;
| The user is able to enter the username of a reviewer, submit the review by clicking the &amp;quot;Add Reviewer&amp;quot; button, and is redirected back to the Assign Reviewers page. &lt;br /&gt;
| Pass&lt;br /&gt;
|- &lt;br /&gt;
| 15&lt;br /&gt;
| New Reviewer Status&lt;br /&gt;
| New Reviewers that are added should have a correct review status displayed&lt;br /&gt;
| A new review has been added by first clicking on the &amp;quot;Add Reviewer&amp;quot; action button&lt;br /&gt;
| The reviewer's default status should be &amp;quot;pending&amp;quot; until they submit a review successfully&lt;br /&gt;
| Pass&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UI Edge Case Testing for Contributor &amp;amp; Reviewer Management ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ UI Edge Case Testing for Contributor &amp;amp; Reviewer Management&lt;br /&gt;
! Feature/Action&lt;br /&gt;
! Edge Case&lt;br /&gt;
! Expected Behavior&lt;br /&gt;
! Test Method&lt;br /&gt;
! Result&lt;br /&gt;
|-&lt;br /&gt;
| View Contributors/Topics&lt;br /&gt;
| No contributors exist&lt;br /&gt;
| UI shows an empty state message or placeholder&lt;br /&gt;
| Manual&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| View Contributors/Topics&lt;br /&gt;
| Contributors exist but no reviewers assigned&lt;br /&gt;
| Reviewer section remains empty with a helpful message&lt;br /&gt;
| Manual&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| View Contributors/Topics&lt;br /&gt;
| Inconsistent data (e.g., deleted topic)&lt;br /&gt;
| UI handles gracefully with fallback or error message&lt;br /&gt;
| Manual&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| View Review Status&lt;br /&gt;
| Review status field is missing/corrupted&lt;br /&gt;
| Show &amp;quot;Unknown&amp;quot; or fallback label, log issue&lt;br /&gt;
| Integration&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Unsubmit Reviewer&lt;br /&gt;
| Reviewer hasn't submitted yet&lt;br /&gt;
| Action may be disabled or handled gracefully&lt;br /&gt;
| Manual&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| Unsubmit Reviewer&lt;br /&gt;
| Server fails to update status&lt;br /&gt;
| Show error toast and preserve old status&lt;br /&gt;
| Integration &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Delete Reviewer&lt;br /&gt;
| Reviewer is also assigned elsewhere&lt;br /&gt;
| Only delete from selected topic; no unintended data loss&lt;br /&gt;
| Integration/Manual&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| Delete Reviewer&lt;br /&gt;
| Reviewer has submitted a review&lt;br /&gt;
| Prompt confirmation, possibly restrict deletion&lt;br /&gt;
| Manual &lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| Delete Reviewer&lt;br /&gt;
| Server fails on delete&lt;br /&gt;
| Show clear error and maintain reviewer in UI&lt;br /&gt;
| Integration&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Add Reviewer&lt;br /&gt;
| Duplicate reviewer assignment&lt;br /&gt;
| Prevent duplicates; show validation warning&lt;br /&gt;
| Integration&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Add Reviewer&lt;br /&gt;
| Reviewer missing required fields&lt;br /&gt;
| Show validation error before submission&lt;br /&gt;
| UI/Manual&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| Add Reviewer&lt;br /&gt;
| Topic has max reviewers&lt;br /&gt;
| Prevent adding &lt;br /&gt;
| UI/Manual&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| Add Reviewer&lt;br /&gt;
| Added Reviewer persists after refreshing Assign Reviewers page&lt;br /&gt;
| Maintains status of pending&lt;br /&gt;
| Manual/Integration&lt;br /&gt;
| Pass &lt;br /&gt;
|-&lt;br /&gt;
| Contributor View&lt;br /&gt;
| Contributor has no reviewer assigned&lt;br /&gt;
| Show placeholder&lt;br /&gt;
| Manual&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| Contributor View&lt;br /&gt;
| Contributor views others’ assignments (unauthorized)&lt;br /&gt;
| Restrict access or show permission error&lt;br /&gt;
| Integration&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Contributor View&lt;br /&gt;
| Reviewer status changes during contributor session&lt;br /&gt;
| Refresh &lt;br /&gt;
| System&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Error Handling ==&lt;br /&gt;
'''Adding Reviewers Beyond the Limit:'''&lt;br /&gt;
*''Test:'' Attempt to add a reviewer when 3 reviewers are already assigned.&lt;br /&gt;
''Expected Handling:'' UI should prevent adding a 4th reviewer.&lt;br /&gt;
&lt;br /&gt;
'''Adding Non-Existent Reviewers:'''&lt;br /&gt;
*''Test :'' Attempt to add a reviewer whose username or ID does not exist in the system database.&lt;br /&gt;
''Expected Handling:'' The system should prevent adding the reviewer.&lt;br /&gt;
&lt;br /&gt;
'''UI Button Misclicks / Double Clicks:'''&lt;br /&gt;
*''Test :'' Double-click &amp;quot;Add Reviewer&amp;quot; or &amp;quot;Delete Reviewer&amp;quot; quickly.&lt;br /&gt;
''Expected Handling:'' Operations should only process once.&lt;br /&gt;
&lt;br /&gt;
'''Unsubmitting When Reviewer is Already Pending:'''&lt;br /&gt;
*''Test :''Try to &amp;quot;Unsubmit&amp;quot; a reviewer who already has a &amp;quot;Pending&amp;quot; status.&lt;br /&gt;
''Expected Handling:''Status should remain &amp;quot;Pending.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
This design document outlines a comprehensive plan for developing an enhanced UI for assigning reviewers in Expertiza. By utilizing React and TypeScript for the frontend, the solution aims to provide a smooth, intuitive experience that enables instructors to manage reviewer assignments efficiently. The adoption of modern technologies ensures high performance, scalability, and maintainable code. Additionally, this approach emphasizes data integrity and security, protecting the accuracy of assignment data while promoting a user-centric, responsive design that enhances usability across a range of devices.&lt;br /&gt;
&lt;br /&gt;
==Future Scope==&lt;br /&gt;
This project purposely did not include adding in meta reviewers from the old system in order to focus on core reviewer functionalities. However, in the future, this functionality may be added as needed. This project also did not focus specifically on the backend functionality, so there may be additional testing or implementation needed in order to ensure all API endpoints are tested thoroughly, error handling is successful, etc.&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* '''Github Repository:''' https://github.com/delaneydow/reimplementation-front-end&lt;br /&gt;
* '''Pull Request:''' https://github.com/expertiza/reimplementation-front-end/pull/95&lt;br /&gt;
* '''Youtube Video:''' https://youtu.be/uh5nBpmtzuY&lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
* Delaney Dow (dmdow@ncsu.edu)&lt;br /&gt;
* Manbir Guron (msguron@ncsu.edu)&lt;br /&gt;
* Elnaz Ghotbitaheri (eghotbi@ncsu.edu)&lt;br /&gt;
* Mentor: Vihar Manojkumar Shah (vshah23@ncsu.edu)&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Test_code11.png&amp;diff=164928</id>
		<title>File:Test code11.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Test_code11.png&amp;diff=164928"/>
		<updated>2025-04-23T01:14:38Z</updated>

		<summary type="html">&lt;p&gt;Msguron: Msguron uploaded a new version of File:Test code11.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=164436</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=164436"/>
		<updated>2025-04-22T00:27:27Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* Testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects. This project will focus on implementing this solution within the front end reimplementation environment using Typescript and React.&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
====Affected Repositories====&lt;br /&gt;
* The group will be modifying and updating the expertiza/reimplementation-frontend repository for the front end project&lt;br /&gt;
* Changes will be made with React and Typescript&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
In Expertiza, managing reviewer assignments is currently fragmented across different interfaces. The existing “Add Reviewer” UI (as shown in the screenshot) allows an instructor to assign a reviewer by entering a user login manually. While this supports basic functionality, it lacks a unified view and efficient controls for large-scale assignment management.&lt;br /&gt;
&lt;br /&gt;
[[File:ThreeColumnPage.png|center|border|1000px|]]&amp;lt;/b&amp;gt;&lt;br /&gt;
Specifically, the problems include:&lt;br /&gt;
&amp;lt;li&amp;gt;Lack of Visibility: There is no consolidated interface showing topics, contributors, and reviewers in one place.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Manual Input Only: Adding reviewers requires entering login IDs, which is error-prone and not scalable.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Limited Reviewer Controls: There are no built-in options to delete, unsubmit, or manage existing reviews in context.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unclear Status: Review status (e.g., submitted, not submitted) is not easily visible or actionable from the main UI.&amp;lt;/li&amp;gt;&lt;br /&gt;
Without a structured layout, instructors cannot efficiently organize or control the review process, especially in larger courses or group projects.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We propose the implementation of a 3-column table layout that clearly organizes the review mapping with integrated reviewer management controls. This layout improves visibility, reduces friction in reviewer assignment, and offers direct interaction with review statuses.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Topic Selected: Displays the assigned topic or project name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contributor: Shows team name or student name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reviewed By:&lt;br /&gt;
Lists assigned reviewers with visual status indicators (🟢 Submitted / 🔴 Not Submitted).&lt;br /&gt;
'''Includes action buttons:'''&lt;br /&gt;
&amp;lt;li&amp;gt;Add Reviewer: Opens an input field/modal to add a new reviewer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Delete Reviewer: Removes a reviewer if the review has not been submitted.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsubmit: Allows instructors to revert a submitted review for edits or reassignment.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. The primary design goal will be to maintain a RESTful API structure to ensure the frontend-backend integration is seamless.  &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;participant.rb&amp;lt;/code&amp;gt; file holds the backend code, while the file that stores the UI layout from the above screenshot is a page called &amp;lt;code&amp;gt;reviews_summary&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
This solution will need to access multiple participants to render a view for a given topic. Key information like participant name and username will be needed. The key changes to make this file API compatible while maintaining the desired functionality includes &lt;br /&gt;
* Use ActiveModel::Serializers to handle JSON Responses from the front end.  &lt;br /&gt;
* Ensure the Model Supports CRUD Operations via a RESTful API. &lt;br /&gt;
** This means the model will need to be correctly connected to a controller that follows RESTful conventions (index, show, create, update, destroy) and returns JSON responses. &lt;br /&gt;
* Handle Validations and Errors Gracefully&lt;br /&gt;
** Ensure that the model returns structured error responses and generates HTTP response codes that can be used to create efficient and thorough test cases. &lt;br /&gt;
&lt;br /&gt;
===== Reviews_Summary =====&lt;br /&gt;
&lt;br /&gt;
This page will need to render the 3 column layout for displaying topics, reviewers, and reviews. It needs to support the desired interactivity to delete and unsubmit reviews, render topics, and show information about the assignment.&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend &amp;lt;code&amp;gt;responses_controller.rb&amp;lt;/code&amp;gt; API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;Add_Reviewer&amp;lt;/code&amp;gt; page. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
===== response.rb &amp;amp; responses_controller.rb =====&lt;br /&gt;
The page will need to interact with the RESTful API endpoints for Response to create a new response and assign it to a given reviewer. Logic may need to be added or stubbed to enable this functionality within the current reimplementation environment.&lt;br /&gt;
&lt;br /&gt;
===== Add_Reviewer =====&lt;br /&gt;
&lt;br /&gt;
This page will need to render a page with a text box to input the username of the desired reviewer. The user should then be able to assign that reviewer and formally create the desired instance of the response model once they click 'Add Reviewer'. Appropriate validations should be supported to only assign a user that already exists. Additionally, the user should be able to go back to the 3 column view previously discussed once they have completed adding a reviewer.&lt;br /&gt;
&lt;br /&gt;
==User Story==&lt;br /&gt;
As an instructor, I want to view a list of contributors along with the reviewers assigned to them, so that I can effectively manage the reviewer assignments. I also want the ability to unsubmit a reviewer, removing their responsibility for a specific review, and to delete a reviewer entirely from the review process if necessary. As a contributor, I want to view the status of my assignment and see who has been assigned to review it.&lt;br /&gt;
''''Use Case Diagram''''&lt;br /&gt;
The central user interacts with several use cases, represented by blue ovals surrounding the user. These use cases include:&lt;br /&gt;
&lt;br /&gt;
* '''View Selected Topic:'''Allows the user to view the topic chosen for review.&lt;br /&gt;
* '''View Contributors:''' Enables the user to see a list of contributors.&lt;br /&gt;
* '''View Reviewers and Review Status:'''Lets the user view the assigned reviewers and their current review status.&lt;br /&gt;
* '''Add Reviewers for Each Topic:'''Provides functionality to assign new reviewers to specific topics.&lt;br /&gt;
* '''Delete Reviewers for Each Topic:'''Allows the user to remove reviewers assigned to a topic.&lt;br /&gt;
* '''Unsubmit Review Status:''' Enables the user to change a reviewer’s status back to &amp;quot;Pending&amp;quot; if needed.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:user D11.png|250px|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UI Implementation ==&lt;br /&gt;
The upgraded functionality in Expertiza aims to optimize the assignment of reviewers to project submissions by offering a clear, efficient, and intuitive interface. This enhancement assists administrators in overseeing peer reviews more effectively, equipping them with tools to allocate reviewers, monitor their progress, and promote greater transparency throughout the review process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: Table ASSIGN REVIWER 11.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Unsubmit Functionality and Interactive Design===&lt;br /&gt;
&lt;br /&gt;
The interface also provides an option to unsubmit reviews, enhancing flexibility and transparency in the peer-review process. When users move the cursor over the &amp;quot;Unsubmit&amp;quot; link, it changes to green, signaling that it is clickable and interactive.&lt;br /&gt;
&lt;br /&gt;
[[File: Reviewed by..png |400px|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/b&amp;gt;&lt;br /&gt;
=== Reviewer Management ===&lt;br /&gt;
&lt;br /&gt;
Admins can monitor review statuses and assign new reviewers through a clear and intuitive interface, enabling efficient management of peer reviews and promoting smooth collaboration.&lt;br /&gt;
&lt;br /&gt;
Administrators can seamlessly assign reviewers to submissions through a clear and intuitive interface:&lt;br /&gt;
[[File: Reviewed by2.png |400px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Add Reviewer ===&lt;br /&gt;
&amp;lt;li&amp;gt;''''Add Reviewer Button:'''' This functionality simplifies the reviewer assignment process by enabling administrators to enter user information and link them to specific projects or topics.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Snippets ==&lt;br /&gt;
===Interfaces for Data Representation===&lt;br /&gt;
===ReviewerAssignment Interface===&lt;br /&gt;
The ReviewerAssignment interface is designed to represent the structure of data related to project review management. It organizes key information for each project topic, including contributors and assigned reviewers.&lt;br /&gt;
&amp;lt;li&amp;gt;'''Topic:'''  Represents the title or subject of the project under review.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Contributors:''' An array of contributor names involved in the project submission.&lt;br /&gt;
&amp;lt;li&amp;gt;'''Reviewers:''' An array of reviewer objects, each containing the reviewer’s name and their current review status.&lt;br /&gt;
&lt;br /&gt;
This structured data model enables clear and efficient tracking of contributors and reviewers associated with each topic, supporting seamless management of peer reviews.&lt;br /&gt;
&lt;br /&gt;
[[File: Add Reviewer11.png |500px|center]]&lt;br /&gt;
&lt;br /&gt;
===Core Functions for Reviewer Management===&lt;br /&gt;
&lt;br /&gt;
'''addReviewer Function:'''&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Purpose:''' Adds a new reviewer to a specific topic within the table’s data structure.&lt;br /&gt;
&lt;br /&gt;
Process:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Iterates through all existing rows to locate the one that matches the provided topic.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If the topic is found and there are fewer than three reviewers already assigned, it appends a new reviewer object.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The newly added reviewer is automatically given a generated name and username, and their review status is set to &amp;quot;Pending&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If the topic does not match or already has three reviewers, the row remains unchanged.&amp;lt;/b&amp;gt;&lt;br /&gt;
[[File: const addreviewer.png |600px|center]]&lt;br /&gt;
&lt;br /&gt;
'''UnsubmitReviewer Function:'''&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Purpose:''' Resets the review status of a specific reviewer to &amp;quot;Pending&amp;quot; for a selected topic.&lt;br /&gt;
&lt;br /&gt;
Process:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Iterates through the table rows to find the one matching the given topic.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Within the matching row, identifies the reviewer by their name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Updates the reviewer’s status to &amp;quot;Pending&amp;quot; while keeping the rest of their information unchanged.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Leaves all other rows and reviewers unaffected.&lt;br /&gt;
[[File: const unsubmit reviewer.png |600px|center]]&lt;br /&gt;
&lt;br /&gt;
===Data Structure for Review Management===&lt;br /&gt;
Each topic in the system consists of:&lt;br /&gt;
&amp;lt;li&amp;gt;Contributor Details: Includes the names and usernames of contributors.&lt;br /&gt;
&amp;lt;li&amp;gt; Reviewer Details: Includes the names, usernames, and current review statuses of assigned reviewers.&lt;br /&gt;
&lt;br /&gt;
This structured dataset provides clarity and supports organized tracking and management of the review process.&lt;br /&gt;
[[File:  Dummy.png |500px|center]]&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Unit Tests===&lt;br /&gt;
Unit testing for TS/front end projects is most applicable for logic-heavy components, which in the case of our project includes the button functionality. The following test cases were included: &lt;br /&gt;
* Validating that the &amp;quot;Add Reviewer&amp;quot; button places the reviewer in a status of (Pending)&lt;br /&gt;
* Validating that the &amp;quot;Delete outstanding Reviewer&amp;quot; button removes the reviewer's association from the topic &lt;br /&gt;
&lt;br /&gt;
===Manual Tests===&lt;br /&gt;
Preconditions include the following: &lt;br /&gt;
* The front end and back end need to be successfully integrated&lt;br /&gt;
* The database (db) file needs to be successfully seeded&lt;br /&gt;
* Username: admin&lt;br /&gt;
* Password: password123&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Test Plan for E2534 UI for Assign Reviewers&lt;br /&gt;
! Test ID&lt;br /&gt;
! Test Case&lt;br /&gt;
! Description&lt;br /&gt;
! Precondition&lt;br /&gt;
! Expected Results&lt;br /&gt;
! Actual Results&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Sign In and Navigate to Assign Reviewers&lt;br /&gt;
| Verify that an admin can sign in and navigate to the Assign Reviewers page.&lt;br /&gt;
| The admin is logged in using the credentials: username `admin` and password `password123`.&lt;br /&gt;
| The admin should successfully navigate to the Assign Reviewers page at assignments/edit/id. &lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Table Styling and Layout&lt;br /&gt;
| Verify that the table styling (fonts, spacing, headers) matches design guidelines.&lt;br /&gt;
| The latest code is deployed, and the frontend is running.&lt;br /&gt;
| The table should match the design guidelines for fonts, spacing, and alignment.&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Column Data Types&lt;br /&gt;
| Verify that each column in the table displays the correct data type. For example, the &amp;quot;Topic&amp;quot; column should contain text,&amp;quot; while the &amp;quot;Reviewed by&amp;quot; column should contain buttons. &lt;br /&gt;
| The table is populated with data.&lt;br /&gt;
| Each column should display data of the correct type (e.g., text, numbers, dates).&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Navigate to Assign Reviewer and test responsiveness&lt;br /&gt;
| Verify that the table columns adjust to fit the screen on smaller devices.&lt;br /&gt;
| The user is on the &amp;quot;Assign Reviewer&amp;quot; page.&lt;br /&gt;
| The table columns should resize to fit the screen without horizontal scrolling.&lt;br /&gt;
| TBD&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Test the Search Bar on the Assignment Reviewers Page&lt;br /&gt;
| Verify that the search bar can be shown/hidden and filters or sorts the desired columns in the table.&lt;br /&gt;
| The user is on the Assign Reviewers page.&lt;br /&gt;
| The search bar should appear when clicked, filter or sort the assignments, and hide when clicked again.&lt;br /&gt;
| TBD&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Test Keyboard Navigation&lt;br /&gt;
| Verify that the user can navigate the table using the keyboard.&lt;br /&gt;
| The user is on the Assignment Reviewers page.&lt;br /&gt;
| The user should be able to navigate through the table using the Tab key.&lt;br /&gt;
| TBD&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Pagination&lt;br /&gt;
| Verify that pagination works correctly when the table has more rows than fit on one page.&lt;br /&gt;
| The table contains more rows than fit on one page.&lt;br /&gt;
| Pagination controls should allow navigation between pages, and the correct rows should be displayed.&lt;br /&gt;
| TBD&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Accessibility&lt;br /&gt;
| Verify that the UI meets accessibility standards (e.g., ARIA roles, keyboard navigation).&lt;br /&gt;
| The frontend is running.&lt;br /&gt;
| The UI should be navigable using a keyboard, and ARIA roles should be properly implemented.&lt;br /&gt;
| TBD&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Add Reviewer Action Button Functionality &lt;br /&gt;
| Verify that by clicking &amp;quot;Add Reviewer&amp;quot; under the contributor column that the user is redirected to the &amp;quot;Add Reviewers&amp;quot; page&lt;br /&gt;
| User starts on the Assign Reviewers page&lt;br /&gt;
| The user should be redirected to an &amp;quot;Add Reviewer&amp;quot; page where they can add a username. &lt;br /&gt;
| TBD&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Delete Reviewer Action Button Functionality&lt;br /&gt;
| Clicking the delete reviewer action button should appropriately remove the review&lt;br /&gt;
| User starts on the Assign Reviewers page and there is already an existing review that is displayed&lt;br /&gt;
| Verify that by clicking &amp;quot;Delete Reviewer&amp;quot; the reviewer no longer displays in the &amp;quot;Reviewed by&amp;quot; column&lt;br /&gt;
| TBD&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Delete Outstanding Reviewer Action Button Functionality&lt;br /&gt;
| Clicking the delete outstanding reviewer button should appear when appropriate and function correctly&lt;br /&gt;
| User starts on the Assign Reviewers page and there is a reviewer with a pending status&lt;br /&gt;
| Verify that the &amp;quot;Delete Outstanding Reviewer&amp;quot; button only appears when there are reviewers in a pending status for a topic, and that when the button is clicked they are removed successfully. The button should also disappear after this action. &lt;br /&gt;
| TBD&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Unsubmit Review Action Button Functionality&lt;br /&gt;
| The unsubmit review action button should appear when appropriate and function correctly&lt;br /&gt;
| User starts on the Assign Reviewers page and there is a reviewer assigned to a particular topic&lt;br /&gt;
| The unsubmit review should display for reviewers in any status, and clicking the button should ensure the review is no longer in a status of &amp;quot;submitted&amp;quot;&lt;br /&gt;
| TBD&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Delete Review Action Button Functionality&lt;br /&gt;
| The delete review action button should appear when appropriate and function correctly&lt;br /&gt;
| The User starts on the Assign Reviewers page and there is a reviewer present under the &amp;quot;Reviewed by&amp;quot; column for a particular topic &lt;br /&gt;
| The delete review button should display for reviewers in any status, and clicking the button should ensure the review is deleted&lt;br /&gt;
| TBD&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| Add Reviewer Functionality&lt;br /&gt;
| The user is able to successfully add new reviewers&lt;br /&gt;
| The user has clicked on the &amp;quot;Add Reviewer&amp;quot; action button and is redirected to the Add Reviewer page&lt;br /&gt;
| The user is able to enter the username of a reviewer, submit the review by clicking the &amp;quot;Add Reviewer&amp;quot; button, and is redirected back to the Assign Reviewers page. &lt;br /&gt;
| Pass&lt;br /&gt;
|- &lt;br /&gt;
| 15&lt;br /&gt;
| New Reviewer Status&lt;br /&gt;
| New Reviewers that are added should have a correct review status displayed&lt;br /&gt;
| A new review has been added by first clicking on the &amp;quot;Add Reviewer&amp;quot; action button&lt;br /&gt;
| The reviewer's default status should be &amp;quot;pending&amp;quot; until they submit a review successfully&lt;br /&gt;
| Pass&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Future Scope==&lt;br /&gt;
This project purposely did not include adding in meta reviewers from the old system in order to focus on core reviewer functionalities. However, in the future, this functionality may be added as needed. This project also did not focus specifically on the backend functionality, so there may be additional testing or implementation needed in order to ensure all API endpoints are tested thoroughly, error handling is successful, etc. &lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* '''Github Repository:''' https://github.com/delaneydow/reimplementation-front-end&lt;br /&gt;
* '''Pull Request:''' https://github.com/expertiza/reimplementation-front-end/pull/95&lt;br /&gt;
* '''Youtube Video:'''&lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
* Delaney Dow (dmdow@ncsu.edu)&lt;br /&gt;
* Manbir Guron (msguron@ncsu.edu)&lt;br /&gt;
* Elnaz Ghotbitaheri (eghotbi@ncsu.edu)&lt;br /&gt;
* Mentor: Vihar Manojkumar Shah (vshah23@ncsu.edu)&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=164432</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=164432"/>
		<updated>2025-04-22T00:25:20Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* Testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects. This project will focus on implementing this solution within the front end reimplementation environment using Typescript and React.&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
====Affected Repositories====&lt;br /&gt;
* The group will be modifying and updating the expertiza/reimplementation-frontend repository for the front end project&lt;br /&gt;
* Changes will be made with React and Typescript&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
In Expertiza, managing reviewer assignments is currently fragmented across different interfaces. The existing “Add Reviewer” UI (as shown in the screenshot) allows an instructor to assign a reviewer by entering a user login manually. While this supports basic functionality, it lacks a unified view and efficient controls for large-scale assignment management.&lt;br /&gt;
&lt;br /&gt;
[[File:ThreeColumnPage.png|center|border|1000px|]]&amp;lt;/b&amp;gt;&lt;br /&gt;
Specifically, the problems include:&lt;br /&gt;
&amp;lt;li&amp;gt;Lack of Visibility: There is no consolidated interface showing topics, contributors, and reviewers in one place.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Manual Input Only: Adding reviewers requires entering login IDs, which is error-prone and not scalable.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Limited Reviewer Controls: There are no built-in options to delete, unsubmit, or manage existing reviews in context.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unclear Status: Review status (e.g., submitted, not submitted) is not easily visible or actionable from the main UI.&amp;lt;/li&amp;gt;&lt;br /&gt;
Without a structured layout, instructors cannot efficiently organize or control the review process, especially in larger courses or group projects.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We propose the implementation of a 3-column table layout that clearly organizes the review mapping with integrated reviewer management controls. This layout improves visibility, reduces friction in reviewer assignment, and offers direct interaction with review statuses.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Topic Selected: Displays the assigned topic or project name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contributor: Shows team name or student name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reviewed By:&lt;br /&gt;
Lists assigned reviewers with visual status indicators (🟢 Submitted / 🔴 Not Submitted).&lt;br /&gt;
'''Includes action buttons:'''&lt;br /&gt;
&amp;lt;li&amp;gt;Add Reviewer: Opens an input field/modal to add a new reviewer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Delete Reviewer: Removes a reviewer if the review has not been submitted.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsubmit: Allows instructors to revert a submitted review for edits or reassignment.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. The primary design goal will be to maintain a RESTful API structure to ensure the frontend-backend integration is seamless.  &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;participant.rb&amp;lt;/code&amp;gt; file holds the backend code, while the file that stores the UI layout from the above screenshot is a page called &amp;lt;code&amp;gt;reviews_summary&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
This solution will need to access multiple participants to render a view for a given topic. Key information like participant name and username will be needed. The key changes to make this file API compatible while maintaining the desired functionality includes &lt;br /&gt;
* Use ActiveModel::Serializers to handle JSON Responses from the front end.  &lt;br /&gt;
* Ensure the Model Supports CRUD Operations via a RESTful API. &lt;br /&gt;
** This means the model will need to be correctly connected to a controller that follows RESTful conventions (index, show, create, update, destroy) and returns JSON responses. &lt;br /&gt;
* Handle Validations and Errors Gracefully&lt;br /&gt;
** Ensure that the model returns structured error responses and generates HTTP response codes that can be used to create efficient and thorough test cases. &lt;br /&gt;
&lt;br /&gt;
===== Reviews_Summary =====&lt;br /&gt;
&lt;br /&gt;
This page will need to render the 3 column layout for displaying topics, reviewers, and reviews. It needs to support the desired interactivity to delete and unsubmit reviews, render topics, and show information about the assignment.&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend &amp;lt;code&amp;gt;responses_controller.rb&amp;lt;/code&amp;gt; API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;Add_Reviewer&amp;lt;/code&amp;gt; page. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
===== response.rb &amp;amp; responses_controller.rb =====&lt;br /&gt;
The page will need to interact with the RESTful API endpoints for Response to create a new response and assign it to a given reviewer. Logic may need to be added or stubbed to enable this functionality within the current reimplementation environment.&lt;br /&gt;
&lt;br /&gt;
===== Add_Reviewer =====&lt;br /&gt;
&lt;br /&gt;
This page will need to render a page with a text box to input the username of the desired reviewer. The user should then be able to assign that reviewer and formally create the desired instance of the response model once they click 'Add Reviewer'. Appropriate validations should be supported to only assign a user that already exists. Additionally, the user should be able to go back to the 3 column view previously discussed once they have completed adding a reviewer.&lt;br /&gt;
&lt;br /&gt;
==User Story==&lt;br /&gt;
As an instructor, I want to view a list of contributors along with the reviewers assigned to them, so that I can effectively manage the reviewer assignments. I also want the ability to unsubmit a reviewer, removing their responsibility for a specific review, and to delete a reviewer entirely from the review process if necessary. As a contributor, I want to view the status of my assignment and see who has been assigned to review it.&lt;br /&gt;
''''Use Case Diagram''''&lt;br /&gt;
The central user interacts with several use cases, represented by blue ovals surrounding the user. These use cases include:&lt;br /&gt;
&lt;br /&gt;
* '''View Selected Topic:'''Allows the user to view the topic chosen for review.&lt;br /&gt;
* '''View Contributors:''' Enables the user to see a list of contributors.&lt;br /&gt;
* '''View Reviewers and Review Status:'''Lets the user view the assigned reviewers and their current review status.&lt;br /&gt;
* '''Add Reviewers for Each Topic:'''Provides functionality to assign new reviewers to specific topics.&lt;br /&gt;
* '''Delete Reviewers for Each Topic:'''Allows the user to remove reviewers assigned to a topic.&lt;br /&gt;
* '''Unsubmit Review Status:''' Enables the user to change a reviewer’s status back to &amp;quot;Pending&amp;quot; if needed.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:user D11.png|250px|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UI Implementation ==&lt;br /&gt;
The upgraded functionality in Expertiza aims to optimize the assignment of reviewers to project submissions by offering a clear, efficient, and intuitive interface. This enhancement assists administrators in overseeing peer reviews more effectively, equipping them with tools to allocate reviewers, monitor their progress, and promote greater transparency throughout the review process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: Table ASSIGN REVIWER 11.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Unsubmit Functionality and Interactive Design===&lt;br /&gt;
&lt;br /&gt;
The interface also provides an option to unsubmit reviews, enhancing flexibility and transparency in the peer-review process. When users move the cursor over the &amp;quot;Unsubmit&amp;quot; link, it changes to green, signaling that it is clickable and interactive.&lt;br /&gt;
&lt;br /&gt;
[[File: Reviewed by..png |400px|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/b&amp;gt;&lt;br /&gt;
=== Reviewer Management ===&lt;br /&gt;
&lt;br /&gt;
Admins can monitor review statuses and assign new reviewers through a clear and intuitive interface, enabling efficient management of peer reviews and promoting smooth collaboration.&lt;br /&gt;
&lt;br /&gt;
Administrators can seamlessly assign reviewers to submissions through a clear and intuitive interface:&lt;br /&gt;
[[File: Reviewed by2.png |400px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Add Reviewer ===&lt;br /&gt;
&amp;lt;li&amp;gt;''''Add Reviewer Button:'''' This functionality simplifies the reviewer assignment process by enabling administrators to enter user information and link them to specific projects or topics.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Snippets ==&lt;br /&gt;
===Interfaces for Data Representation===&lt;br /&gt;
===ReviewerAssignment Interface===&lt;br /&gt;
The ReviewerAssignment interface is designed to represent the structure of data related to project review management. It organizes key information for each project topic, including contributors and assigned reviewers.&lt;br /&gt;
&amp;lt;li&amp;gt;'''Topic:'''  Represents the title or subject of the project under review.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Contributors:''' An array of contributor names involved in the project submission.&lt;br /&gt;
&amp;lt;li&amp;gt;'''Reviewers:''' An array of reviewer objects, each containing the reviewer’s name and their current review status.&lt;br /&gt;
&lt;br /&gt;
This structured data model enables clear and efficient tracking of contributors and reviewers associated with each topic, supporting seamless management of peer reviews.&lt;br /&gt;
&lt;br /&gt;
[[File: Add Reviewer11.png |500px|center]]&lt;br /&gt;
&lt;br /&gt;
===Core Functions for Reviewer Management===&lt;br /&gt;
&lt;br /&gt;
'''addReviewer Function:'''&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Purpose:''' Adds a new reviewer to a specific topic within the table’s data structure.&lt;br /&gt;
&lt;br /&gt;
Process:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Iterates through all existing rows to locate the one that matches the provided topic.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If the topic is found and there are fewer than three reviewers already assigned, it appends a new reviewer object.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The newly added reviewer is automatically given a generated name and username, and their review status is set to &amp;quot;Pending&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If the topic does not match or already has three reviewers, the row remains unchanged.&amp;lt;/b&amp;gt;&lt;br /&gt;
[[File: const addreviewer.png |600px|center]]&lt;br /&gt;
&lt;br /&gt;
'''UnsubmitReviewer Function:'''&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Purpose:''' Resets the review status of a specific reviewer to &amp;quot;Pending&amp;quot; for a selected topic.&lt;br /&gt;
&lt;br /&gt;
Process:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Iterates through the table rows to find the one matching the given topic.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Within the matching row, identifies the reviewer by their name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Updates the reviewer’s status to &amp;quot;Pending&amp;quot; while keeping the rest of their information unchanged.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Leaves all other rows and reviewers unaffected.&lt;br /&gt;
[[File: const unsubmit reviewer.png |600px|center]]&lt;br /&gt;
&lt;br /&gt;
===Data Structure for Review Management===&lt;br /&gt;
Each topic in the system consists of:&lt;br /&gt;
&amp;lt;li&amp;gt;Contributor Details: Includes the names and usernames of contributors.&lt;br /&gt;
&amp;lt;li&amp;gt; Reviewer Details: Includes the names, usernames, and current review statuses of assigned reviewers.&lt;br /&gt;
&lt;br /&gt;
This structured dataset provides clarity and supports organized tracking and management of the review process.&lt;br /&gt;
[[File:  Dummy.png |500px|center]]&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Unit Tests===&lt;br /&gt;
Unit testing for TS/front end projects is most applicable for logic-heavy components, which in the case of our project includes the button functionality. The following test cases were included: &lt;br /&gt;
* Validating that the &amp;quot;Add Reviewer&amp;quot; button places the reviewer in a status of (Pending)&lt;br /&gt;
* Validating that the &amp;quot;Delete outstanding Reviewer&amp;quot; button removes the reviewer's association from the topic &lt;br /&gt;
&lt;br /&gt;
===Manual Tests===&lt;br /&gt;
Preconditions include the following: &lt;br /&gt;
* The front end and back end need to be successfully integrated&lt;br /&gt;
* The database (db) file needs to be successfully seeded&lt;br /&gt;
* Username: admin&lt;br /&gt;
* Password: password123&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Test Plan for E2534 UI for Assign Reviewers&lt;br /&gt;
! Test ID&lt;br /&gt;
! Test Case&lt;br /&gt;
! Description&lt;br /&gt;
! Precondition&lt;br /&gt;
! Expected Results&lt;br /&gt;
! Actual Results&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Sign In and Navigate to Assign Reviewers&lt;br /&gt;
| Verify that an admin can sign in and navigate to the Assign Reviewers page.&lt;br /&gt;
| The admin is logged in using the credentials: username `admin` and password `password123`.&lt;br /&gt;
| The admin should successfully navigate to the Assign Reviewers page at assignments/edit/id. &lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Table Styling and Layout&lt;br /&gt;
| Verify that the table styling (fonts, spacing, headers) matches design guidelines.&lt;br /&gt;
| The latest code is deployed, and the frontend is running.&lt;br /&gt;
| The table should match the design guidelines for fonts, spacing, and alignment.&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Column Data Types&lt;br /&gt;
| Verify that each column in the table displays the correct data type. For example, the &amp;quot;Topic&amp;quot; column should contain text,&amp;quot; while the &amp;quot;Reviewed by&amp;quot; column should contain buttons. &lt;br /&gt;
| The table is populated with data.&lt;br /&gt;
| Each column should display data of the correct type (e.g., text, numbers, dates).&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Navigate to Assign Reviewer and test responsiveness&lt;br /&gt;
| Verify that the table columns adjust to fit the screen on smaller devices.&lt;br /&gt;
| The user is on the &amp;quot;Assign Reviewer&amp;quot; page.&lt;br /&gt;
| The table columns should resize to fit the screen without horizontal scrolling.&lt;br /&gt;
| TBD&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Test the Search Bar on the Assignment Reviewers Page&lt;br /&gt;
| Verify that the search bar can be shown/hidden and filters or sorts the desired columns in the table.&lt;br /&gt;
| The user is on the Assign Reviewers page.&lt;br /&gt;
| The search bar should appear when clicked, filter or sort the assignments, and hide when clicked again.&lt;br /&gt;
| TBD&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Test Keyboard Navigation&lt;br /&gt;
| Verify that the user can navigate the table using the keyboard.&lt;br /&gt;
| The user is on the Assignment Reviewers page.&lt;br /&gt;
| The user should be able to navigate through the table using the Tab key.&lt;br /&gt;
| TBD&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Pagination&lt;br /&gt;
| Verify that pagination works correctly when the table has more rows than fit on one page.&lt;br /&gt;
| The table contains more rows than fit on one page.&lt;br /&gt;
| Pagination controls should allow navigation between pages, and the correct rows should be displayed.&lt;br /&gt;
| TBD&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Accessibility&lt;br /&gt;
| Verify that the UI meets accessibility standards (e.g., ARIA roles, keyboard navigation).&lt;br /&gt;
| The frontend is running.&lt;br /&gt;
| The UI should be navigable using a keyboard, and ARIA roles should be properly implemented.&lt;br /&gt;
| TBD&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Add Reviewer Action Button Functionality &lt;br /&gt;
| Verify that by clicking &amp;quot;Add Reviewer&amp;quot; under the contributor column that the user is redirected to the &amp;quot;Add Reviewers&amp;quot; page&lt;br /&gt;
| User starts on the Assign Reviewers page&lt;br /&gt;
| The user should be redirected to an &amp;quot;Add Reviewer&amp;quot; page where they can add a username. &lt;br /&gt;
| TBD&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Delete Reviewer Action Button Functionality&lt;br /&gt;
| Clicking the delete reviewer action button should appropriately remove the review&lt;br /&gt;
| User starts on the Assign Reviewers page and there is already an existing review that is displayed&lt;br /&gt;
| Verify that by clicking &amp;quot;Delete Reviewer&amp;quot; the reviewer no longer displays in the &amp;quot;Reviewed by&amp;quot; column&lt;br /&gt;
| TBD&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Delete Outstanding Reviewer Action Button Functionality&lt;br /&gt;
| Clicking the delete outstanding reviewer button should appear when appropriate and function correctly&lt;br /&gt;
| User starts on the Assign Reviewers page and there is a reviewer with a pending status&lt;br /&gt;
| Verify that the &amp;quot;Delete Outstanding Reviewer&amp;quot; button only appears when there are reviewers in a pending status for a topic, and that when the button is clicked they are removed successfully. The button should also disappear after this action. &lt;br /&gt;
| TBD&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Unsubmit Review Action Button Functionality&lt;br /&gt;
| The unsubmit review action button should appear when appropriate and function correctly&lt;br /&gt;
| User starts on the Assign Reviewers page and there is a reviewer assigned to a particular topic&lt;br /&gt;
| The unsubmit review should display for reviewers in any status, and clicking the button should ensure the review is no longer in a status of &amp;quot;submitted&amp;quot;&lt;br /&gt;
| TBD&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Delete Review Action Button Functionality&lt;br /&gt;
| The delete review action button should appear when appropriate and function correctly&lt;br /&gt;
| The User starts on the Assign Reviewers page and there is a reviewer present under the &amp;quot;Reviewed by&amp;quot; column for a particular topic &lt;br /&gt;
| The delete review button should display for reviewers in any status, and clicking the button should ensure the review is deleted&lt;br /&gt;
| TBD&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| Add Reviewer Functionality&lt;br /&gt;
| The user is able to successfully add new reviewers&lt;br /&gt;
| The user has clicked on the &amp;quot;Add Reviewer&amp;quot; action button and is redirected to the Add Reviewer page&lt;br /&gt;
| The user is able to enter the username of a reviewer, submit the review by clicking the &amp;quot;Add Reviewer&amp;quot; button, and is redirected back to the Assign Reviewers page. &lt;br /&gt;
| TBD&lt;br /&gt;
|- &lt;br /&gt;
| 15&lt;br /&gt;
| New Reviewer Status&lt;br /&gt;
| New Reviewers that are added should have a correct review status displayed&lt;br /&gt;
| A new review has been added by first clicking on the &amp;quot;Add Reviewer&amp;quot; action button&lt;br /&gt;
| The reviewer's default status should be &amp;quot;pending&amp;quot; until they submit a review successfully&lt;br /&gt;
| TBD&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Future Scope==&lt;br /&gt;
This project purposely did not include adding in meta reviewers from the old system in order to focus on core reviewer functionalities. However, in the future, this functionality may be added as needed. This project also did not focus specifically on the backend functionality, so there may be additional testing or implementation needed in order to ensure all API endpoints are tested thoroughly, error handling is successful, etc. &lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* '''Github Repository:''' https://github.com/delaneydow/reimplementation-front-end&lt;br /&gt;
* '''Pull Request:''' https://github.com/expertiza/reimplementation-front-end/pull/95&lt;br /&gt;
* '''Youtube Video:'''&lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
* Delaney Dow (dmdow@ncsu.edu)&lt;br /&gt;
* Manbir Guron (msguron@ncsu.edu)&lt;br /&gt;
* Elnaz Ghotbitaheri (eghotbi@ncsu.edu)&lt;br /&gt;
* Mentor: Vihar Manojkumar Shah (vshah23@ncsu.edu)&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Table_ASSIGN_REVIWER_11.png&amp;diff=164427</id>
		<title>File:Table ASSIGN REVIWER 11.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Table_ASSIGN_REVIWER_11.png&amp;diff=164427"/>
		<updated>2025-04-22T00:22:19Z</updated>

		<summary type="html">&lt;p&gt;Msguron: Msguron uploaded a new version of File:Table ASSIGN REVIWER 11.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163189</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163189"/>
		<updated>2025-04-04T15:15:13Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects. This project will focus on implementing this solution within the front end reimplementation environment using Typescript and React.&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
In Expertiza, managing reviewer assignments is currently fragmented across different interfaces. The existing “Add Reviewer” UI (as shown in the screenshot) allows an instructor to assign a reviewer by entering a user login manually. While this supports basic functionality, it lacks a unified view and efficient controls for large-scale assignment management.&lt;br /&gt;
&lt;br /&gt;
[[File:ThreeColumnPage.png|center|border|1000px|]]&amp;lt;/b&amp;gt;&lt;br /&gt;
Specifically, the problems include:&lt;br /&gt;
&amp;lt;li&amp;gt;Lack of Visibility: There is no consolidated interface showing topics, contributors, and reviewers in one place.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Manual Input Only: Adding reviewers requires entering login IDs, which is error-prone and not scalable.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Limited Reviewer Controls: There are no built-in options to delete, unsubmit, or manage existing reviews in context.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unclear Status: Review status (e.g., submitted, not submitted) is not easily visible or actionable from the main UI.&amp;lt;/li&amp;gt;&lt;br /&gt;
Without a structured layout, instructors cannot efficiently organize or control the review process, especially in larger courses or group projects.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We propose the implementation of a 3-column table layout that clearly organizes the review mapping with integrated reviewer management controls. This layout improves visibility, reduces friction in reviewer assignment, and offers direct interaction with review statuses.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Topic Selected: Displays the assigned topic or project name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contributor: Shows team name or student name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reviewed By:&lt;br /&gt;
Lists assigned reviewers with visual status indicators (🟢 Submitted / 🔴 Not Submitted).&lt;br /&gt;
'''Includes action buttons:'''&lt;br /&gt;
&amp;lt;li&amp;gt;Add Reviewer: Opens an input field/modal to add a new reviewer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Delete Reviewer: Removes a reviewer if the review has not been submitted.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsubmit: Allows instructors to revert a submitted review for edits or reassignment.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. The primary design goal will be to maintain a RESTful API structure to ensure the frontend-backend integration is seamless.  &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;participant.rb&amp;lt;/code&amp;gt; file holds the backend code, while the file that stores the UI layout from the above screenshot is a page called &amp;lt;code&amp;gt;reviews_summary&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
This solution will need to access multiple participants to render a view for a given topic. Key information like participant name and username will be needed. The key changes to make this file API compatible while maintaining the desired functionality includes &lt;br /&gt;
* Use ActiveModel::Serializers to handle JSON Responses from the front end.  &lt;br /&gt;
* Ensure the Model Supports CRUD Operations via a RESTful API. &lt;br /&gt;
** This means the model will need to be correctly connected to a controller that follows RESTful conventions (index, show, create, update, destroy) and returns JSON responses. &lt;br /&gt;
* Handle Validations and Errors Gracefully&lt;br /&gt;
** Ensure that the model returns structured error responses and generates HTTP response codes that can be used to create efficient and thorough test cases. &lt;br /&gt;
&lt;br /&gt;
===== Reviews_Summary =====&lt;br /&gt;
&lt;br /&gt;
This page will need to render the 3 column layout for displaying topics, reviewers, and reviews. It needs to support the desired interactivity to delete and unsubmit reviews, render topics, and show information about the assignment.&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend &amp;lt;code&amp;gt;responses_controller.rb&amp;lt;/code&amp;gt; API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;Add_Reviewer&amp;lt;/code&amp;gt; page. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
===== response.rb &amp;amp; responses_controller.rb =====&lt;br /&gt;
The page will need to interact with the RESTful API endpoints for Response to create a new response and assign it to a given reviewer. Logic may need to be added or stubbed to enable this functionality within the current reimplementation environment.&lt;br /&gt;
&lt;br /&gt;
===== Add_Reviewer =====&lt;br /&gt;
&lt;br /&gt;
This page will need to render a page with a text box to input the username of the desired reviewer. The user should then be able to assign that reviewer and formally create the desired instance of the response model once they click 'Add Reviewer'. Appropriate validations should be supported to only assign a user that already exists. Additionally, the user should be able to go back to the 3 column view previously discussed once they have completed adding a reviewer.&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163188</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163188"/>
		<updated>2025-04-04T15:14:43Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects. This project will focus on implementing this solution within the front end reimplementation environment using TypeScript and React.&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
In Expertiza, managing reviewer assignments is currently fragmented across different interfaces. The existing “Add Reviewer” UI (as shown in the screenshot) allows an instructor to assign a reviewer by entering a user login manually. While this supports basic functionality, it lacks a unified view and efficient controls for large-scale assignment management.&lt;br /&gt;
&lt;br /&gt;
[[File:ThreeColumnPage.png|center|border|1000px|]]&amp;lt;/b&amp;gt;&lt;br /&gt;
Specifically, the problems include:&lt;br /&gt;
&amp;lt;li&amp;gt;Lack of Visibility: There is no consolidated interface showing topics, contributors, and reviewers in one place.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Manual Input Only: Adding reviewers requires entering login IDs, which is error-prone and not scalable.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Limited Reviewer Controls: There are no built-in options to delete, unsubmit, or manage existing reviews in context.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unclear Status: Review status (e.g., submitted, not submitted) is not easily visible or actionable from the main UI.&amp;lt;/li&amp;gt;&lt;br /&gt;
Without a structured layout, instructors cannot efficiently organize or control the review process, especially in larger courses or group projects.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We propose the implementation of a 3-column table layout that clearly organizes the review mapping with integrated reviewer management controls. This layout improves visibility, reduces friction in reviewer assignment, and offers direct interaction with review statuses.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Topic Selected: Displays the assigned topic or project name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contributor: Shows team name or student name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reviewed By:&lt;br /&gt;
Lists assigned reviewers with visual status indicators (🟢 Submitted / 🔴 Not Submitted).&lt;br /&gt;
'''Includes action buttons:'''&lt;br /&gt;
&amp;lt;li&amp;gt;Add Reviewer: Opens an input field/modal to add a new reviewer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Delete Reviewer: Removes a reviewer if the review has not been submitted.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsubmit: Allows instructors to revert a submitted review for edits or reassignment.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. The primary design goal will be to maintain a RESTful API structure to ensure the frontend-backend integration is seamless.  &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;participant.rb&amp;lt;/code&amp;gt; file holds the backend code, while the file that stores the UI layout from the above screenshot is a page called &amp;lt;code&amp;gt;reviews_summary&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
This solution will need to access multiple participants to render a view for a given topic. Key information like participant name and username will be needed. The key changes to make this file API compatible while maintaining the desired functionality includes &lt;br /&gt;
* Use ActiveModel::Serializers to handle JSON Responses from the front end.  &lt;br /&gt;
* Ensure the Model Supports CRUD Operations via a RESTful API. &lt;br /&gt;
** This means the model will need to be correctly connected to a controller that follows RESTful conventions (index, show, create, update, destroy) and returns JSON responses. &lt;br /&gt;
* Handle Validations and Errors Gracefully&lt;br /&gt;
** Ensure that the model returns structured error responses and generates HTTP response codes that can be used to create efficient and thorough test cases. &lt;br /&gt;
&lt;br /&gt;
===== Reviews_Summary =====&lt;br /&gt;
&lt;br /&gt;
This page will need to render the 3 column layout for displaying topics, reviewers, and reviews. It needs to support the desired interactivity to delete and unsubmit reviews, render topics, and show information about the assignment.&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend &amp;lt;code&amp;gt;responses_controller.rb&amp;lt;/code&amp;gt; API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;Add_Reviewer&amp;lt;/code&amp;gt; page. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
===== response.rb &amp;amp; responses_controller.rb =====&lt;br /&gt;
The page will need to interact with the RESTful API endpoints for Response to create a new response and assign it to a given reviewer. Logic may need to be added or stubbed to enable this functionality within the current reimplementation environment.&lt;br /&gt;
&lt;br /&gt;
===== Add_Reviewer =====&lt;br /&gt;
&lt;br /&gt;
This page will need to render a page with a text box to input the username of the desired reviewer. The user should then be able to assign that reviewer and formally create the desired instance of the response model once they click 'Add Reviewer'. Appropriate validations should be supported to only assign a user that already exists. Additionally, the user should be able to go back to the 3 column view previously discussed once they have completed adding a reviewer.&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163187</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163187"/>
		<updated>2025-04-04T15:13:06Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* reviews_summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
In Expertiza, managing reviewer assignments is currently fragmented across different interfaces. The existing “Add Reviewer” UI (as shown in the screenshot) allows an instructor to assign a reviewer by entering a user login manually. While this supports basic functionality, it lacks a unified view and efficient controls for large-scale assignment management.&lt;br /&gt;
&lt;br /&gt;
[[File:ThreeColumnPage.png|center|border|1000px|]]&amp;lt;/b&amp;gt;&lt;br /&gt;
Specifically, the problems include:&lt;br /&gt;
&amp;lt;li&amp;gt;Lack of Visibility: There is no consolidated interface showing topics, contributors, and reviewers in one place.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Manual Input Only: Adding reviewers requires entering login IDs, which is error-prone and not scalable.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Limited Reviewer Controls: There are no built-in options to delete, unsubmit, or manage existing reviews in context.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unclear Status: Review status (e.g., submitted, not submitted) is not easily visible or actionable from the main UI.&amp;lt;/li&amp;gt;&lt;br /&gt;
Without a structured layout, instructors cannot efficiently organize or control the review process, especially in larger courses or group projects.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We propose the implementation of a 3-column table layout that clearly organizes the review mapping with integrated reviewer management controls. This layout improves visibility, reduces friction in reviewer assignment, and offers direct interaction with review statuses.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Topic Selected: Displays the assigned topic or project name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contributor: Shows team name or student name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reviewed By:&lt;br /&gt;
Lists assigned reviewers with visual status indicators (🟢 Submitted / 🔴 Not Submitted).&lt;br /&gt;
'''Includes action buttons:'''&lt;br /&gt;
&amp;lt;li&amp;gt;Add Reviewer: Opens an input field/modal to add a new reviewer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Delete Reviewer: Removes a reviewer if the review has not been submitted.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsubmit: Allows instructors to revert a submitted review for edits or reassignment.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. The primary design goal will be to maintain a RESTful API structure to ensure the frontend-backend integration is seamless.  &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;participant.rb&amp;lt;/code&amp;gt; file holds the backend code, while the file that stores the UI layout from the above screenshot is a page called &amp;lt;code&amp;gt;reviews_summary&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
This solution will need to access multiple participants to render a view for a given topic. Key information like participant name and username will be needed. The key changes to make this file API compatible while maintaining the desired functionality includes &lt;br /&gt;
* Use ActiveModel::Serializers to handle JSON Responses from the front end.  &lt;br /&gt;
* Ensure the Model Supports CRUD Operations via a RESTful API. &lt;br /&gt;
** This means the model will need to be correctly connected to a controller that follows RESTful conventions (index, show, create, update, destroy) and returns JSON responses. &lt;br /&gt;
* Handle Validations and Errors Gracefully&lt;br /&gt;
** Ensure that the model returns structured error responses and generates HTTP response codes that can be used to create efficient and thorough test cases. &lt;br /&gt;
&lt;br /&gt;
===== Reviews_Summary =====&lt;br /&gt;
&lt;br /&gt;
This page will need to render the 3 column layout for displaying topics, reviewers, and reviews. It needs to support the desired interactivity to delete and unsubmit reviews, render topics, and show information about the assignment.&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend &amp;lt;code&amp;gt;responses_controller.rb&amp;lt;/code&amp;gt; API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;Add_Reviewer&amp;lt;/code&amp;gt; page. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
===== response.rb &amp;amp; responses_controller.rb =====&lt;br /&gt;
The page will need to interact with the RESTful API endpoints for Response to create a new response and assign it to a given reviewer. Logic may need to be added or stubbed to enable this functionality within the current reimplementation environment.&lt;br /&gt;
&lt;br /&gt;
===== Add_Reviewer =====&lt;br /&gt;
&lt;br /&gt;
This page will need to render a page with a text box to input the username of the desired reviewer. The user should then be able to assign that reviewer and formally create the desired instance of the response model once they click 'Add Reviewer'. Appropriate validations should be supported to only assign a user that already exists. Additionally, the user should be able to go back to the 3 column view previously discussed once they have completed adding a reviewer.&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163186</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163186"/>
		<updated>2025-04-04T15:12:42Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
In Expertiza, managing reviewer assignments is currently fragmented across different interfaces. The existing “Add Reviewer” UI (as shown in the screenshot) allows an instructor to assign a reviewer by entering a user login manually. While this supports basic functionality, it lacks a unified view and efficient controls for large-scale assignment management.&lt;br /&gt;
&lt;br /&gt;
[[File:ThreeColumnPage.png|center|border|1000px|]]&amp;lt;/b&amp;gt;&lt;br /&gt;
Specifically, the problems include:&lt;br /&gt;
&amp;lt;li&amp;gt;Lack of Visibility: There is no consolidated interface showing topics, contributors, and reviewers in one place.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Manual Input Only: Adding reviewers requires entering login IDs, which is error-prone and not scalable.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Limited Reviewer Controls: There are no built-in options to delete, unsubmit, or manage existing reviews in context.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unclear Status: Review status (e.g., submitted, not submitted) is not easily visible or actionable from the main UI.&amp;lt;/li&amp;gt;&lt;br /&gt;
Without a structured layout, instructors cannot efficiently organize or control the review process, especially in larger courses or group projects.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We propose the implementation of a 3-column table layout that clearly organizes the review mapping with integrated reviewer management controls. This layout improves visibility, reduces friction in reviewer assignment, and offers direct interaction with review statuses.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Topic Selected: Displays the assigned topic or project name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contributor: Shows team name or student name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reviewed By:&lt;br /&gt;
Lists assigned reviewers with visual status indicators (🟢 Submitted / 🔴 Not Submitted).&lt;br /&gt;
'''Includes action buttons:'''&lt;br /&gt;
&amp;lt;li&amp;gt;Add Reviewer: Opens an input field/modal to add a new reviewer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Delete Reviewer: Removes a reviewer if the review has not been submitted.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsubmit: Allows instructors to revert a submitted review for edits or reassignment.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. The primary design goal will be to maintain a RESTful API structure to ensure the frontend-backend integration is seamless.  &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;participant.rb&amp;lt;/code&amp;gt; file holds the backend code, while the file that stores the UI layout from the above screenshot is a page called &amp;lt;code&amp;gt;reviews_summary&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
This solution will need to access multiple participants to render a view for a given topic. Key information like participant name and username will be needed. The key changes to make this file API compatible while maintaining the desired functionality includes &lt;br /&gt;
* Use ActiveModel::Serializers to handle JSON Responses from the front end.  &lt;br /&gt;
* Ensure the Model Supports CRUD Operations via a RESTful API. &lt;br /&gt;
** This means the model will need to be correctly connected to a controller that follows RESTful conventions (index, show, create, update, destroy) and returns JSON responses. &lt;br /&gt;
* Handle Validations and Errors Gracefully&lt;br /&gt;
** Ensure that the model returns structured error responses and generates HTTP response codes that can be used to create efficient and thorough test cases. &lt;br /&gt;
&lt;br /&gt;
===== reviews_summary =====&lt;br /&gt;
&lt;br /&gt;
This page will need to render the 3 column layout for displaying topics, reviewers, and reviews. It needs to support the desired interactivity to delete and unsubmit reviews, render topics, and show information about the assignment.&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend &amp;lt;code&amp;gt;responses_controller.rb&amp;lt;/code&amp;gt; API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;Add_Reviewer&amp;lt;/code&amp;gt; page. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
===== response.rb &amp;amp; responses_controller.rb =====&lt;br /&gt;
The page will need to interact with the RESTful API endpoints for Response to create a new response and assign it to a given reviewer. Logic may need to be added or stubbed to enable this functionality within the current reimplementation environment.&lt;br /&gt;
&lt;br /&gt;
===== Add_Reviewer =====&lt;br /&gt;
&lt;br /&gt;
This page will need to render a page with a text box to input the username of the desired reviewer. The user should then be able to assign that reviewer and formally create the desired instance of the response model once they click 'Add Reviewer'. Appropriate validations should be supported to only assign a user that already exists. Additionally, the user should be able to go back to the 3 column view previously discussed once they have completed adding a reviewer.&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163185</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163185"/>
		<updated>2025-04-04T15:11:50Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
In Expertiza, managing reviewer assignments is currently fragmented across different interfaces. The existing “Add Reviewer” UI (as shown in the screenshot) allows an instructor to assign a reviewer by entering a user login manually. While this supports basic functionality, it lacks a unified view and efficient controls for large-scale assignment management.&lt;br /&gt;
&lt;br /&gt;
[[File:ThreeColumnPage.png|center|border|1000px|]]&amp;lt;/b&amp;gt;&lt;br /&gt;
Specifically, the problems include:&lt;br /&gt;
&amp;lt;li&amp;gt;Lack of Visibility: There is no consolidated interface showing topics, contributors, and reviewers in one place.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Manual Input Only: Adding reviewers requires entering login IDs, which is error-prone and not scalable.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Limited Reviewer Controls: There are no built-in options to delete, unsubmit, or manage existing reviews in context.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unclear Status: Review status (e.g., submitted, not submitted) is not easily visible or actionable from the main UI.&amp;lt;/li&amp;gt;&lt;br /&gt;
Without a structured layout, instructors cannot efficiently organize or control the review process, especially in larger courses or group projects.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We propose the implementation of a 3-column table layout that clearly organizes the review mapping with integrated reviewer management controls. This layout improves visibility, reduces friction in reviewer assignment, and offers direct interaction with review statuses.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Topic Selected: Displays the assigned topic or project name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contributor: Shows team name or student name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reviewed By:&lt;br /&gt;
Lists assigned reviewers with visual status indicators (🟢 Submitted / 🔴 Not Submitted).&lt;br /&gt;
'''Includes action buttons:'''&lt;br /&gt;
&amp;lt;li&amp;gt;Add Reviewer: Opens an input field/modal to add a new reviewer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Delete Reviewer: Removes a reviewer if the review has not been submitted.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsubmit: Allows instructors to revert a submitted review for edits or reassignment.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. The primary design goal will be to maintain a RESTful API structure to ensure the frontend-backend integration is seamless.  &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;participant.rb&amp;lt;/code&amp;gt; file holds the backend code, while the file that stores the UI layout from the above screenshot is a page called &amp;lt;code&amp;gt;reviews_summary&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
This solution will need to access multiple participants to render a view for a given topic. Key information like participant name and username will be needed. The key changes to make this file API compatible while maintaining the desired functionality includes &lt;br /&gt;
* Use ActiveModel::Serializers to handle JSON Responses from the front end.  &lt;br /&gt;
* Ensure the Model Supports CRUD Operations via a RESTful API. &lt;br /&gt;
** This means the model will need to be correctly connected to a controller that follows RESTful conventions (index, show, create, update, destroy) and returns JSON responses. &lt;br /&gt;
* Handle Validations and Errors Gracefully&lt;br /&gt;
** Ensure that the model returns structured error responses and generates HTTP response codes that can be used to create efficient and thorough test cases. &lt;br /&gt;
&lt;br /&gt;
===== reviews_summary =====&lt;br /&gt;
&lt;br /&gt;
This page will need to render the 3 column layout for displaying topics, reviewers, and reviews. It needs to support the desired interactivity to delete and unsubmit reviews, render topics, and show information about the assignment.&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend &amp;lt;code&amp;gt;responses_controller.rb&amp;lt;/code&amp;gt; API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;_add_reviewer.html.erb&amp;lt;/code&amp;gt; file. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
===== response.rb &amp;amp; responses_controller.rb =====&lt;br /&gt;
The page will need to interact with the RESTful API endpoints for Response to create a new response and assign it to a given reviewer. Logic may need to be added or stubbed to enable this functionality within the current reimplementation environment.&lt;br /&gt;
&lt;br /&gt;
===== _add_reviewer.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This view will need to render a page with a text box to input the username of the desired reviewer. The user should then be able to assign that reviewer and formally create the desired instance of the response model once they click 'Add Reviewer'. Appropriate validations should be supported to only assign a user that already exists. Additionally, the user should be able to go back to the 3 column view previously discussed once they have completed adding a reviewer.&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163184</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163184"/>
		<updated>2025-04-04T15:11:35Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* reviews_summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
In Expertiza, managing reviewer assignments is currently fragmented across different interfaces. The existing “Add Reviewer” UI (as shown in the screenshot) allows an instructor to assign a reviewer by entering a user login manually. While this supports basic functionality, it lacks a unified view and efficient controls for large-scale assignment management.&lt;br /&gt;
&lt;br /&gt;
[[File:ThreeColumnPage.png|center|border|1000px|]]&amp;lt;/b&amp;gt;&lt;br /&gt;
Specifically, the problems include:&lt;br /&gt;
&amp;lt;li&amp;gt;Lack of Visibility: There is no consolidated interface showing topics, contributors, and reviewers in one place.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Manual Input Only: Adding reviewers requires entering login IDs, which is error-prone and not scalable.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Limited Reviewer Controls: There are no built-in options to delete, unsubmit, or manage existing reviews in context.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unclear Status: Review status (e.g., submitted, not submitted) is not easily visible or actionable from the main UI.&amp;lt;/li&amp;gt;&lt;br /&gt;
Without a structured layout, instructors cannot efficiently organize or control the review process, especially in larger courses or group projects.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We propose the implementation of a 3-column table layout that clearly organizes the review mapping with integrated reviewer management controls. This layout improves visibility, reduces friction in reviewer assignment, and offers direct interaction with review statuses.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Topic Selected: Displays the assigned topic or project name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contributor: Shows team name or student name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reviewed By:&lt;br /&gt;
Lists assigned reviewers with visual status indicators (🟢 Submitted / 🔴 Not Submitted).&lt;br /&gt;
'''Includes action buttons:'''&lt;br /&gt;
&amp;lt;li&amp;gt;Add Reviewer: Opens an input field/modal to add a new reviewer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Delete Reviewer: Removes a reviewer if the review has not been submitted.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsubmit: Allows instructors to revert a submitted review for edits or reassignment.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. The primary design goal will be to maintain a RESTful API structure to ensure the frontend-backend integration is seamless.  &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;participant.rb&amp;lt;/code&amp;gt; file holds the backend code, while the file that stores the UI layout from the above screenshot is a page called &amp;lt;code&amp;gt;reviews_summary&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
This solution will need to access multiple participants to render a view for a given topic. Key information like participant name and username will be needed. The key changes to make this file API compatible while maintaining the desired functionality includes &lt;br /&gt;
* Use ActiveModel::Serializers to handle JSON Responses from the front end.  &lt;br /&gt;
* Ensure the Model Supports CRUD Operations via a RESTful API. &lt;br /&gt;
** This means the model will need to be correctly connected to a controller that follows RESTful conventions (index, show, create, update, destroy) and returns JSON responses. &lt;br /&gt;
* Handle Validations and Errors Gracefully&lt;br /&gt;
** Ensure that the model returns structured error responses and generates HTTP response codes that can be used to create efficient and thorough test cases. &lt;br /&gt;
&lt;br /&gt;
===== reviews_summary =====&lt;br /&gt;
&lt;br /&gt;
This page will need to render the 3 column layout for displaying topics, reviewers, and reviews. It needs to support the desired interactivity to delete and unsubmit reviews, render topics, and show information about the assignment.&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend &amp;lt;code&amp;gt;responses_controller.rb&amp;lt;/code&amp;gt; API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;_add_reviewer.html.erb&amp;lt;/code&amp;gt; file. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
===== response.rb &amp;amp; responses_controller.rb =====&lt;br /&gt;
The page will need to interact with the RESTful API endpoints for Response to create a new response and assign it to a given reviewer. Logic may need to be added or stubbed to enable this functionality within the current reimplementation environment.&lt;br /&gt;
&lt;br /&gt;
===== _add_reviewer.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This view will need to render a page with a text box to input the username of the desired reviewer. The user should then be able to assign that reviewer and formally create the desired instance of the response model once they click 'Add Reviewer'. Appropriate validations should be supported to only assign a user that already exists. Additionally, the user should be able to go back to the 3 column view previously discussed once they have completed adding a reviewer.&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163183</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163183"/>
		<updated>2025-04-04T15:11:22Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* Add action buttons to add reviewers to an assignment, delete outstanding reviewers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
In Expertiza, managing reviewer assignments is currently fragmented across different interfaces. The existing “Add Reviewer” UI (as shown in the screenshot) allows an instructor to assign a reviewer by entering a user login manually. While this supports basic functionality, it lacks a unified view and efficient controls for large-scale assignment management.&lt;br /&gt;
&lt;br /&gt;
[[File:ThreeColumnPage.png|center|border|1000px|]]&amp;lt;/b&amp;gt;&lt;br /&gt;
Specifically, the problems include:&lt;br /&gt;
&amp;lt;li&amp;gt;Lack of Visibility: There is no consolidated interface showing topics, contributors, and reviewers in one place.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Manual Input Only: Adding reviewers requires entering login IDs, which is error-prone and not scalable.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Limited Reviewer Controls: There are no built-in options to delete, unsubmit, or manage existing reviews in context.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unclear Status: Review status (e.g., submitted, not submitted) is not easily visible or actionable from the main UI.&amp;lt;/li&amp;gt;&lt;br /&gt;
Without a structured layout, instructors cannot efficiently organize or control the review process, especially in larger courses or group projects.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We propose the implementation of a 3-column table layout that clearly organizes the review mapping with integrated reviewer management controls. This layout improves visibility, reduces friction in reviewer assignment, and offers direct interaction with review statuses.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Topic Selected: Displays the assigned topic or project name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contributor: Shows team name or student name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reviewed By:&lt;br /&gt;
Lists assigned reviewers with visual status indicators (🟢 Submitted / 🔴 Not Submitted).&lt;br /&gt;
'''Includes action buttons:'''&lt;br /&gt;
&amp;lt;li&amp;gt;Add Reviewer: Opens an input field/modal to add a new reviewer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Delete Reviewer: Removes a reviewer if the review has not been submitted.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsubmit: Allows instructors to revert a submitted review for edits or reassignment.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. The primary design goal will be to maintain a RESTful API structure to ensure the frontend-backend integration is seamless.  &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;participant.rb&amp;lt;/code&amp;gt; file holds the backend code, while the file that stores the UI layout from the above screenshot is a page called &amp;lt;code&amp;gt;reviews_summary&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
This solution will need to access multiple participants to render a view for a given topic. Key information like participant name and username will be needed. The key changes to make this file API compatible while maintaining the desired functionality includes &lt;br /&gt;
* Use ActiveModel::Serializers to handle JSON Responses from the front end.  &lt;br /&gt;
* Ensure the Model Supports CRUD Operations via a RESTful API. &lt;br /&gt;
** This means the model will need to be correctly connected to a controller that follows RESTful conventions (index, show, create, update, destroy) and returns JSON responses. &lt;br /&gt;
* Handle Validations and Errors Gracefully&lt;br /&gt;
** Ensure that the model returns structured error responses and generates HTTP response codes that can be used to create efficient and thorough test cases. &lt;br /&gt;
&lt;br /&gt;
===== reviews_summary =====&lt;br /&gt;
&lt;br /&gt;
This will need to render the 3 column layout for displaying topics, reviewers, and reviews. It needs to support the desired interactivity to delete and unsubmit reviews, render topics, and show information about the assignment.&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend &amp;lt;code&amp;gt;responses_controller.rb&amp;lt;/code&amp;gt; API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;_add_reviewer.html.erb&amp;lt;/code&amp;gt; file. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
===== response.rb &amp;amp; responses_controller.rb =====&lt;br /&gt;
The page will need to interact with the RESTful API endpoints for Response to create a new response and assign it to a given reviewer. Logic may need to be added or stubbed to enable this functionality within the current reimplementation environment.&lt;br /&gt;
&lt;br /&gt;
===== _add_reviewer.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This view will need to render a page with a text box to input the username of the desired reviewer. The user should then be able to assign that reviewer and formally create the desired instance of the response model once they click 'Add Reviewer'. Appropriate validations should be supported to only assign a user that already exists. Additionally, the user should be able to go back to the 3 column view previously discussed once they have completed adding a reviewer.&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163176</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163176"/>
		<updated>2025-04-04T02:38:42Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* response.rb &amp;amp; responses_controller.rb */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
In Expertiza, managing reviewer assignments is currently fragmented across different interfaces. The existing “Add Reviewer” UI (as shown in the screenshot) allows an instructor to assign a reviewer by entering a user login manually. While this supports basic functionality, it lacks a unified view and efficient controls for large-scale assignment management.&lt;br /&gt;
&lt;br /&gt;
[[File:ThreeColumnPage.png|center|border|1000px|]]&amp;lt;/b&amp;gt;&lt;br /&gt;
Specifically, the problems include:&lt;br /&gt;
&amp;lt;li&amp;gt;Lack of Visibility: There is no consolidated interface showing topics, contributors, and reviewers in one place.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Manual Input Only: Adding reviewers requires entering login IDs, which is error-prone and not scalable.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Limited Reviewer Controls: There are no built-in options to delete, unsubmit, or manage existing reviews in context.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unclear Status: Review status (e.g., submitted, not submitted) is not easily visible or actionable from the main UI.&amp;lt;/li&amp;gt;&lt;br /&gt;
Without a structured layout, instructors cannot efficiently organize or control the review process, especially in larger courses or group projects.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We propose the implementation of a 3-column table layout that clearly organizes the review mapping with integrated reviewer management controls. This layout improves visibility, reduces friction in reviewer assignment, and offers direct interaction with review statuses.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Topic Selected: Displays the assigned topic or project name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contributor: Shows team name or student name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reviewed By:&lt;br /&gt;
Lists assigned reviewers with visual status indicators (🟢 Submitted / 🔴 Not Submitted).&lt;br /&gt;
'''Includes action buttons:'''&lt;br /&gt;
&amp;lt;li&amp;gt;Add Reviewer: Opens an input field/modal to add a new reviewer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Delete Reviewer: Removes a reviewer if the review has not been submitted.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsubmit: Allows instructors to revert a submitted review for edits or reassignment.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. The primary design goal will be to maintain a RESTful API structure to ensure the frontend-backend integration is seamless.  &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;participant.rb&amp;lt;/code&amp;gt; file holds the backend code, while the file that stores the UI layout from the above screenshot is &amp;lt;code&amp;gt;_reviews_summary.html.erb&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
This solution will need to access multiple participants to render a view for a given topic. Key information like participant name and username will be needed. The key changes to make this file API compatible while maintaining the desired functionality includes &lt;br /&gt;
* Use ActiveModel::Serializers to handle JSON Responses from the front end.  &lt;br /&gt;
* Ensure the Model Supports CRUD Operations via a RESTful API. &lt;br /&gt;
** This means the model will need to be correctly connected to a controller that follows RESTful conventions (index, show, create, update, destroy) and returns JSON responses. &lt;br /&gt;
* Handle Validations and Errors Gracefully&lt;br /&gt;
** Ensure that the model returns structured error responses and generates HTTP response codes that can be used to create efficient and thorough test cases. &lt;br /&gt;
&lt;br /&gt;
===== reviews_summary.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This view will need to render the 3 column layout for displaying topics, reviewers, and reviews. It needs to support the desired interactivity to delete and unsubmit reviews, render topics, and show information about the assignment.&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend &amp;lt;code&amp;gt;responses_controller.rb&amp;lt;/code&amp;gt; API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;_add_reviewer.html.erb&amp;lt;/code&amp;gt; file. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
===== response.rb &amp;amp; responses_controller.rb =====&lt;br /&gt;
The page will need to interact with the RESTful API endpoints for Response to create a new response and assign it to a given reviewer. Logic may need to be added or stubbed to enable this functionality within the current reimplementation environment.&lt;br /&gt;
&lt;br /&gt;
===== _add_reviewer.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This view will need to render a page with a text box to input the username of the desired reviewer. The user should then be able to assign that reviewer and formally create the desired instance of the response model once they click 'Add Reviewer'. Appropriate validations should be supported to only assign a user that already exists. Additionally, the user should be able to go back to the 3 column view previously discussed once they have completed adding a reviewer.&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163175</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163175"/>
		<updated>2025-04-04T02:10:45Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* response.rb */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
In Expertiza, managing reviewer assignments is currently fragmented across different interfaces. The existing “Add Reviewer” UI (as shown in the screenshot) allows an instructor to assign a reviewer by entering a user login manually. While this supports basic functionality, it lacks a unified view and efficient controls for large-scale assignment management.&lt;br /&gt;
&lt;br /&gt;
[[File:ThreeColumnPage.png|center|border|1000px|]]&amp;lt;/b&amp;gt;&lt;br /&gt;
Specifically, the problems include:&lt;br /&gt;
&amp;lt;li&amp;gt;Lack of Visibility: There is no consolidated interface showing topics, contributors, and reviewers in one place.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Manual Input Only: Adding reviewers requires entering login IDs, which is error-prone and not scalable.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Limited Reviewer Controls: There are no built-in options to delete, unsubmit, or manage existing reviews in context.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unclear Status: Review status (e.g., submitted, not submitted) is not easily visible or actionable from the main UI.&amp;lt;/li&amp;gt;&lt;br /&gt;
Without a structured layout, instructors cannot efficiently organize or control the review process, especially in larger courses or group projects.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We propose the implementation of a 3-column table layout that clearly organizes the review mapping with integrated reviewer management controls. This layout improves visibility, reduces friction in reviewer assignment, and offers direct interaction with review statuses.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Topic Selected: Displays the assigned topic or project name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contributor: Shows team name or student name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reviewed By:&lt;br /&gt;
Lists assigned reviewers with visual status indicators (🟢 Submitted / 🔴 Not Submitted).&lt;br /&gt;
'''Includes action buttons:'''&lt;br /&gt;
&amp;lt;li&amp;gt;Add Reviewer: Opens an input field/modal to add a new reviewer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Delete Reviewer: Removes a reviewer if the review has not been submitted.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsubmit: Allows instructors to revert a submitted review for edits or reassignment.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. The primary design goal will be to maintain a RESTful API structure to ensure the frontend-backend integration is seamless.  &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;participant.rb&amp;lt;/code&amp;gt; file holds the backend code, while the file that stores the UI layout from the above screenshot is &amp;lt;code&amp;gt;_reviews_summary.html.erb&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
This solution will need to access multiple participants to render a view for a given topic. Key information like participant name and username will be needed. The key changes to make this file API compatible while maintaining the desired functionality includes &lt;br /&gt;
* Use ActiveModel::Serializers to handle JSON Responses from the front end.  &lt;br /&gt;
* Ensure the Model Supports CRUD Operations via a RESTful API. &lt;br /&gt;
** This means the model will need to be correctly connected to a controller that follows RESTful conventions (index, show, create, update, destroy) and returns JSON responses. &lt;br /&gt;
* Handle Validations and Errors Gracefully&lt;br /&gt;
** Ensure that the model returns structured error responses and generates HTTP response codes that can be used to create efficient and thorough test cases. &lt;br /&gt;
&lt;br /&gt;
===== reviews_summary.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This view will need to render the 3 column layout for displaying topics, reviewers, and reviews. It needs to support the desired interactivity to delete and unsubmit reviews, render topics, and show information about the assignment.&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend &amp;lt;code&amp;gt;responses_controller.rb&amp;lt;/code&amp;gt; API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;_add_reviewer.html.erb&amp;lt;/code&amp;gt; file. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
===== response.rb &amp;amp; responses_controller.rb =====&lt;br /&gt;
The page will need to interact with the RESTful API endpoints for Response to create a new response. Logic may need to be added or stubbed to enable this functionality within the current reimplementation environment.&lt;br /&gt;
&lt;br /&gt;
===== _add_reviewer.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This view will need to render a page with a text box to input the username of the desired reviewer. The user should then be able to assign that reviewer and formally create the desired instance of the response model once they click 'Add Reviewer'. Appropriate validations should be supported to only assign a user that already exists. Additionally, the user should be able to go back to the 3 column view previously discussed once they have completed adding a reviewer.&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163174</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163174"/>
		<updated>2025-04-04T02:09:17Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
In Expertiza, managing reviewer assignments is currently fragmented across different interfaces. The existing “Add Reviewer” UI (as shown in the screenshot) allows an instructor to assign a reviewer by entering a user login manually. While this supports basic functionality, it lacks a unified view and efficient controls for large-scale assignment management.&lt;br /&gt;
&lt;br /&gt;
[[File:ThreeColumnPage.png|center|border|1000px|]]&amp;lt;/b&amp;gt;&lt;br /&gt;
Specifically, the problems include:&lt;br /&gt;
&amp;lt;li&amp;gt;Lack of Visibility: There is no consolidated interface showing topics, contributors, and reviewers in one place.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Manual Input Only: Adding reviewers requires entering login IDs, which is error-prone and not scalable.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Limited Reviewer Controls: There are no built-in options to delete, unsubmit, or manage existing reviews in context.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unclear Status: Review status (e.g., submitted, not submitted) is not easily visible or actionable from the main UI.&amp;lt;/li&amp;gt;&lt;br /&gt;
Without a structured layout, instructors cannot efficiently organize or control the review process, especially in larger courses or group projects.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We propose the implementation of a 3-column table layout that clearly organizes the review mapping with integrated reviewer management controls. This layout improves visibility, reduces friction in reviewer assignment, and offers direct interaction with review statuses.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Topic Selected: Displays the assigned topic or project name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contributor: Shows team name or student name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reviewed By:&lt;br /&gt;
Lists assigned reviewers with visual status indicators (🟢 Submitted / 🔴 Not Submitted).&lt;br /&gt;
'''Includes action buttons:'''&lt;br /&gt;
&amp;lt;li&amp;gt;Add Reviewer: Opens an input field/modal to add a new reviewer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Delete Reviewer: Removes a reviewer if the review has not been submitted.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsubmit: Allows instructors to revert a submitted review for edits or reassignment.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. The primary design goal will be to maintain a RESTful API structure to ensure the frontend-backend integration is seamless.  &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;participant.rb&amp;lt;/code&amp;gt; file holds the backend code, while the file that stores the UI layout from the above screenshot is &amp;lt;code&amp;gt;_reviews_summary.html.erb&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
This solution will need to access multiple participants to render a view for a given topic. Key information like participant name and username will be needed. The key changes to make this file API compatible while maintaining the desired functionality includes &lt;br /&gt;
* Use ActiveModel::Serializers to handle JSON Responses from the front end.  &lt;br /&gt;
* Ensure the Model Supports CRUD Operations via a RESTful API. &lt;br /&gt;
** This means the model will need to be correctly connected to a controller that follows RESTful conventions (index, show, create, update, destroy) and returns JSON responses. &lt;br /&gt;
* Handle Validations and Errors Gracefully&lt;br /&gt;
** Ensure that the model returns structured error responses and generates HTTP response codes that can be used to create efficient and thorough test cases. &lt;br /&gt;
&lt;br /&gt;
===== reviews_summary.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This view will need to render the 3 column layout for displaying topics, reviewers, and reviews. It needs to support the desired interactivity to delete and unsubmit reviews, render topics, and show information about the assignment.&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend &amp;lt;code&amp;gt;responses_controller.rb&amp;lt;/code&amp;gt; API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;_add_reviewer.html.erb&amp;lt;/code&amp;gt; file. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
===== response.rb =====&lt;br /&gt;
The page will need to interact with the RESTful API endpoints for Response to create a new response&lt;br /&gt;
&lt;br /&gt;
===== _add_reviewer.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This view will need to render a page with a text box to input the username of the desired reviewer. The user should then be able to assign that reviewer and formally create the desired instance of the response model once they click 'Add Reviewer'. Appropriate validations should be supported to only assign a user that already exists. Additionally, the user should be able to go back to the 3 column view previously discussed once they have completed adding a reviewer.&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163169</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163169"/>
		<updated>2025-04-04T02:05:18Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* _add_reviewer.html.erb */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
In Expertiza, managing reviewer assignments is currently fragmented across different interfaces. The existing “Add Reviewer” UI (as shown in the screenshot) allows an instructor to assign a reviewer by entering a user login manually. While this supports basic functionality, it lacks a unified view and efficient controls for large-scale assignment management.&lt;br /&gt;
&lt;br /&gt;
[[File:ThreeColumnPage.png|center|border|1000px|]]&amp;lt;/b&amp;gt;&lt;br /&gt;
Specifically, the problems include:&lt;br /&gt;
&amp;lt;li&amp;gt;Lack of Visibility: There is no consolidated interface showing topics, contributors, and reviewers in one place.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Manual Input Only: Adding reviewers requires entering login IDs, which is error-prone and not scalable.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Limited Reviewer Controls: There are no built-in options to delete, unsubmit, or manage existing reviews in context.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unclear Status: Review status (e.g., submitted, not submitted) is not easily visible or actionable from the main UI.&amp;lt;/li&amp;gt;&lt;br /&gt;
Without a structured layout, instructors cannot efficiently organize or control the review process, especially in larger courses or group projects.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We propose the implementation of a 3-column table layout that clearly organizes the review mapping with integrated reviewer management controls. This layout improves visibility, reduces friction in reviewer assignment, and offers direct interaction with review statuses.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Topic Selected: Displays the assigned topic or project name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contributor: Shows team name or student name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reviewed By:&lt;br /&gt;
Lists assigned reviewers with visual status indicators (🟢 Submitted / 🔴 Not Submitted).&lt;br /&gt;
'''Includes action buttons:'''&lt;br /&gt;
&amp;lt;li&amp;gt;Add Reviewer: Opens an input field/modal to add a new reviewer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Delete Reviewer: Removes a reviewer if the review has not been submitted.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsubmit: Allows instructors to revert a submitted review for edits or reassignment.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. The primary design goal will be to maintain a RESTful API structure to ensure the frontend-backend integration is seamless.  &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;participant.rb&amp;lt;/code&amp;gt; file holds the backend code, while the file that stores the UI layout from the above screenshot is &amp;lt;code&amp;gt;_reviews_summary.html.erb&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
This solution will need to access multiple participants to render a view for a given topic. Key information like participant name and username will be needed. The key changes to make this file API compatible while maintaining the desired functionality includes &lt;br /&gt;
* Use ActiveModel::Serializers to handle JSON Responses from the front end.  &lt;br /&gt;
* Ensure the Model Supports CRUD Operations via a RESTful API. &lt;br /&gt;
** This means the model will need to be correctly connected to a controller that follows RESTful conventions (index, show, create, update, destroy) and returns JSON responses. &lt;br /&gt;
* Handle Validations and Errors Gracefully&lt;br /&gt;
** Ensure that the model returns structured error responses and generates HTTP response codes that can be used to create efficient and thorough test cases. &lt;br /&gt;
&lt;br /&gt;
===== reviews_summary.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This view will need to render the 3 column layout for displaying topics, reviewers, and reviews. It needs to support the desired interactivity to delete and unsubmit reviews, render topics, and show information about the assignment.&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend &amp;lt;code&amp;gt;responses_controller.rb&amp;lt;/code&amp;gt; API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;_add_reviewer.html.erb&amp;lt;/code&amp;gt; file. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
===== _add_reviewer.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This view will need to render a page with a text box to input the username of the desired reviewer. The user should then be able to assign that reviewer and formally create the desired instance of the response model once they click 'Add Reviewer'. Appropriate validations should be supported to only assign a user that already exists. Additionally, the user should be able to go back to the 3 column view previously discussed once they have completed adding a reviewer.&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163168</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163168"/>
		<updated>2025-04-04T02:02:23Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* _add_reviewer.html.erb */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
In Expertiza, managing reviewer assignments is currently fragmented across different interfaces. The existing “Add Reviewer” UI (as shown in the screenshot) allows an instructor to assign a reviewer by entering a user login manually. While this supports basic functionality, it lacks a unified view and efficient controls for large-scale assignment management.&lt;br /&gt;
&lt;br /&gt;
[[File:ThreeColumnPage.png|center|border|1000px|]]&amp;lt;/b&amp;gt;&lt;br /&gt;
Specifically, the problems include:&lt;br /&gt;
&amp;lt;li&amp;gt;Lack of Visibility: There is no consolidated interface showing topics, contributors, and reviewers in one place.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Manual Input Only: Adding reviewers requires entering login IDs, which is error-prone and not scalable.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Limited Reviewer Controls: There are no built-in options to delete, unsubmit, or manage existing reviews in context.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unclear Status: Review status (e.g., submitted, not submitted) is not easily visible or actionable from the main UI.&amp;lt;/li&amp;gt;&lt;br /&gt;
Without a structured layout, instructors cannot efficiently organize or control the review process, especially in larger courses or group projects.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We propose the implementation of a 3-column table layout that clearly organizes the review mapping with integrated reviewer management controls. This layout improves visibility, reduces friction in reviewer assignment, and offers direct interaction with review statuses.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Topic Selected: Displays the assigned topic or project name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contributor: Shows team name or student name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reviewed By:&lt;br /&gt;
Lists assigned reviewers with visual status indicators (🟢 Submitted / 🔴 Not Submitted).&lt;br /&gt;
'''Includes action buttons:'''&lt;br /&gt;
&amp;lt;li&amp;gt;Add Reviewer: Opens an input field/modal to add a new reviewer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Delete Reviewer: Removes a reviewer if the review has not been submitted.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsubmit: Allows instructors to revert a submitted review for edits or reassignment.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. The primary design goal will be to maintain a RESTful API structure to ensure the frontend-backend integration is seamless.  &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;participant.rb&amp;lt;/code&amp;gt; file holds the backend code, while the file that stores the UI layout from the above screenshot is &amp;lt;code&amp;gt;_reviews_summary.html.erb&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
This solution will need to access multiple participants to render a view for a given topic. Key information like participant name and username will be needed. The key changes to make this file API compatible while maintaining the desired functionality includes &lt;br /&gt;
* Use ActiveModel::Serializers to handle JSON Responses from the front end.  &lt;br /&gt;
* Ensure the Model Supports CRUD Operations via a RESTful API. &lt;br /&gt;
** This means the model will need to be correctly connected to a controller that follows RESTful conventions (index, show, create, update, destroy) and returns JSON responses. &lt;br /&gt;
* Handle Validations and Errors Gracefully&lt;br /&gt;
** Ensure that the model returns structured error responses and generates HTTP response codes that can be used to create efficient and thorough test cases. &lt;br /&gt;
&lt;br /&gt;
===== reviews_summary.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This view will need to render the 3 column layout for displaying topics, reviewers, and reviews. It needs to support the desired interactivity to delete and unsubmit reviews, render topics, and show information about the assignment.&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend &amp;lt;code&amp;gt;responses_controller.rb&amp;lt;/code&amp;gt; API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;_add_reviewer.html.erb&amp;lt;/code&amp;gt; file. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
===== _add_reviewer.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This view will need to render a page with a text box to input the username of the desired reviewer. The user should then be able to assign that reviewer and formally create the desired instance of the response model once they click 'Add Reviewer'. Appropriate validations should be supported to only assign a user that already exists.&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163167</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163167"/>
		<updated>2025-04-04T01:59:09Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* _add_reviewer.html.erb */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
In Expertiza, managing reviewer assignments is currently fragmented across different interfaces. The existing “Add Reviewer” UI (as shown in the screenshot) allows an instructor to assign a reviewer by entering a user login manually. While this supports basic functionality, it lacks a unified view and efficient controls for large-scale assignment management.&lt;br /&gt;
&lt;br /&gt;
[[File:ThreeColumnPage.png|center|border|1000px|]]&amp;lt;/b&amp;gt;&lt;br /&gt;
Specifically, the problems include:&lt;br /&gt;
&amp;lt;li&amp;gt;Lack of Visibility: There is no consolidated interface showing topics, contributors, and reviewers in one place.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Manual Input Only: Adding reviewers requires entering login IDs, which is error-prone and not scalable.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Limited Reviewer Controls: There are no built-in options to delete, unsubmit, or manage existing reviews in context.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unclear Status: Review status (e.g., submitted, not submitted) is not easily visible or actionable from the main UI.&amp;lt;/li&amp;gt;&lt;br /&gt;
Without a structured layout, instructors cannot efficiently organize or control the review process, especially in larger courses or group projects.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We propose the implementation of a 3-column table layout that clearly organizes the review mapping with integrated reviewer management controls. This layout improves visibility, reduces friction in reviewer assignment, and offers direct interaction with review statuses.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Topic Selected: Displays the assigned topic or project name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contributor: Shows team name or student name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reviewed By:&lt;br /&gt;
Lists assigned reviewers with visual status indicators (🟢 Submitted / 🔴 Not Submitted).&lt;br /&gt;
'''Includes action buttons:'''&lt;br /&gt;
&amp;lt;li&amp;gt;Add Reviewer: Opens an input field/modal to add a new reviewer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Delete Reviewer: Removes a reviewer if the review has not been submitted.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsubmit: Allows instructors to revert a submitted review for edits or reassignment.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. The primary design goal will be to maintain a RESTful API structure to ensure the frontend-backend integration is seamless.  &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;participant.rb&amp;lt;/code&amp;gt; file holds the backend code, while the file that stores the UI layout from the above screenshot is &amp;lt;code&amp;gt;_reviews_summary.html.erb&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
This solution will need to access multiple participants to render a view for a given topic. Key information like participant name and username will be needed. The key changes to make this file API compatible while maintaining the desired functionality includes &lt;br /&gt;
* Use ActiveModel::Serializers to handle JSON Responses from the front end.  &lt;br /&gt;
* Ensure the Model Supports CRUD Operations via a RESTful API. &lt;br /&gt;
** This means the model will need to be correctly connected to a controller that follows RESTful conventions (index, show, create, update, destroy) and returns JSON responses. &lt;br /&gt;
* Handle Validations and Errors Gracefully&lt;br /&gt;
** Ensure that the model returns structured error responses and generates HTTP response codes that can be used to create efficient and thorough test cases. &lt;br /&gt;
&lt;br /&gt;
===== reviews_summary.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This view will need to render the 3 column layout for displaying topics, reviewers, and reviews. It needs to support the desired interactivity to delete and unsubmit reviews, render topics, and show information about the assignment.&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend &amp;lt;code&amp;gt;responses_controller.rb&amp;lt;/code&amp;gt; API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;_add_reviewer.html.erb&amp;lt;/code&amp;gt; file. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
===== _add_reviewer.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This view will need to render a page with a text box to input the username of the desired reviewer. The user should then be able to assign that reviewer and formally create the desired instance of the response model once they click 'Add Reviewer'&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163166</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163166"/>
		<updated>2025-04-04T01:58:56Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* reviews_summary.html.erb */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
In Expertiza, managing reviewer assignments is currently fragmented across different interfaces. The existing “Add Reviewer” UI (as shown in the screenshot) allows an instructor to assign a reviewer by entering a user login manually. While this supports basic functionality, it lacks a unified view and efficient controls for large-scale assignment management.&lt;br /&gt;
&lt;br /&gt;
[[File:ThreeColumnPage.png|center|border|1000px|]]&amp;lt;/b&amp;gt;&lt;br /&gt;
Specifically, the problems include:&lt;br /&gt;
&amp;lt;li&amp;gt;Lack of Visibility: There is no consolidated interface showing topics, contributors, and reviewers in one place.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Manual Input Only: Adding reviewers requires entering login IDs, which is error-prone and not scalable.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Limited Reviewer Controls: There are no built-in options to delete, unsubmit, or manage existing reviews in context.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unclear Status: Review status (e.g., submitted, not submitted) is not easily visible or actionable from the main UI.&amp;lt;/li&amp;gt;&lt;br /&gt;
Without a structured layout, instructors cannot efficiently organize or control the review process, especially in larger courses or group projects.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We propose the implementation of a 3-column table layout that clearly organizes the review mapping with integrated reviewer management controls. This layout improves visibility, reduces friction in reviewer assignment, and offers direct interaction with review statuses.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Topic Selected: Displays the assigned topic or project name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contributor: Shows team name or student name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reviewed By:&lt;br /&gt;
Lists assigned reviewers with visual status indicators (🟢 Submitted / 🔴 Not Submitted).&lt;br /&gt;
'''Includes action buttons:'''&lt;br /&gt;
&amp;lt;li&amp;gt;Add Reviewer: Opens an input field/modal to add a new reviewer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Delete Reviewer: Removes a reviewer if the review has not been submitted.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsubmit: Allows instructors to revert a submitted review for edits or reassignment.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. The primary design goal will be to maintain a RESTful API structure to ensure the frontend-backend integration is seamless.  &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;participant.rb&amp;lt;/code&amp;gt; file holds the backend code, while the file that stores the UI layout from the above screenshot is &amp;lt;code&amp;gt;_reviews_summary.html.erb&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
This solution will need to access multiple participants to render a view for a given topic. Key information like participant name and username will be needed. The key changes to make this file API compatible while maintaining the desired functionality includes &lt;br /&gt;
* Use ActiveModel::Serializers to handle JSON Responses from the front end.  &lt;br /&gt;
* Ensure the Model Supports CRUD Operations via a RESTful API. &lt;br /&gt;
** This means the model will need to be correctly connected to a controller that follows RESTful conventions (index, show, create, update, destroy) and returns JSON responses. &lt;br /&gt;
* Handle Validations and Errors Gracefully&lt;br /&gt;
** Ensure that the model returns structured error responses and generates HTTP response codes that can be used to create efficient and thorough test cases. &lt;br /&gt;
&lt;br /&gt;
===== reviews_summary.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This view will need to render the 3 column layout for displaying topics, reviewers, and reviews. It needs to support the desired interactivity to delete and unsubmit reviews, render topics, and show information about the assignment.&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend &amp;lt;code&amp;gt;responses_controller.rb&amp;lt;/code&amp;gt; API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;_add_reviewer.html.erb&amp;lt;/code&amp;gt; file. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
===== _add_reviewer.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This file will need to render a page with a text box to input the username of the desired reviewer. The user should then be able to assign that reviewer and formally create the desired instance of the response model once they click 'Add Reviewer'&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163122</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163122"/>
		<updated>2025-04-03T22:01:04Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* Problem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
In Expertiza, managing reviewer assignments is currently fragmented across different interfaces. The existing “Add Reviewer” UI (as shown in the screenshot) allows an instructor to assign a reviewer by entering a user login manually. While this supports basic functionality, it lacks a unified view and efficient controls for large-scale assignment management.&lt;br /&gt;
&lt;br /&gt;
[[File:ThreeColumnPage.png|center|border|1000px|]]&amp;lt;/b&amp;gt;&lt;br /&gt;
Specifically, the problems include:&lt;br /&gt;
&amp;lt;li&amp;gt;Lack of Visibility: There is no consolidated interface showing topics, contributors, and reviewers in one place.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Manual Input Only: Adding reviewers requires entering login IDs, which is error-prone and not scalable.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Limited Reviewer Controls: There are no built-in options to delete, unsubmit, or manage existing reviews in context.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unclear Status: Review status (e.g., submitted, not submitted) is not easily visible or actionable from the main UI.&amp;lt;/li&amp;gt;&lt;br /&gt;
Without a structured layout, instructors cannot efficiently organize or control the review process, especially in larger courses or group projects.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We propose the implementation of a 3-column table layout that clearly organizes the review mapping with integrated reviewer management controls. This layout improves visibility, reduces friction in reviewer assignment, and offers direct interaction with review statuses.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Topic Selected: Displays the assigned topic or project name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contributor: Shows team name or student name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reviewed By:&lt;br /&gt;
Lists assigned reviewers with visual status indicators (🟢 Submitted / 🔴 Not Submitted).&lt;br /&gt;
'''Includes action buttons:'''&lt;br /&gt;
&amp;lt;li&amp;gt;Add Reviewer: Opens an input field/modal to add a new reviewer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Delete Reviewer: Removes a reviewer if the review has not been submitted.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsubmit: Allows instructors to revert a submitted review for edits or reassignment.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;participant.rb&amp;lt;/code&amp;gt; file holds the backend code, while the file that stores the UI layout from the above screenshot is &amp;lt;code&amp;gt;_reviews_summary.html.erb&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
This solution will need to access multiple participants to render a view for a given topic. Key information like participant name and username will be needed.&lt;br /&gt;
&lt;br /&gt;
===== reviews_summary.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This file will need to render the 3 column layout for displaying topics, reviewers, and reviews. It needs to support the desired interactivity to delete and unsubmit reviews, render topics, and show information about the assignment.&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend &amp;lt;code&amp;gt;responses_controller.rb&amp;lt;/code&amp;gt; API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;_add_reviewer.html.erb&amp;lt;/code&amp;gt; file. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
===== _add_reviewer.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This file will need to render a page with a text box to input the username of the desired reviewer. The user should then be able to assign that reviewer and formally create the desired instance of the response model once they click 'Add Reviewer'&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163121</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163121"/>
		<updated>2025-04-03T22:00:52Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
In Expertiza, managing reviewer assignments is currently fragmented across different interfaces. The existing “Add Reviewer” UI (as shown in the screenshot) allows an instructor to assign a reviewer by entering a user login manually. While this supports basic functionality, it lacks a unified view and efficient controls for large-scale assignment management.&lt;br /&gt;
&lt;br /&gt;
[[File:ThreeColumnPage|center|border|1000px|]]&amp;lt;/b&amp;gt;&lt;br /&gt;
Specifically, the problems include:&lt;br /&gt;
&amp;lt;li&amp;gt;Lack of Visibility: There is no consolidated interface showing topics, contributors, and reviewers in one place.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Manual Input Only: Adding reviewers requires entering login IDs, which is error-prone and not scalable.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Limited Reviewer Controls: There are no built-in options to delete, unsubmit, or manage existing reviews in context.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unclear Status: Review status (e.g., submitted, not submitted) is not easily visible or actionable from the main UI.&amp;lt;/li&amp;gt;&lt;br /&gt;
Without a structured layout, instructors cannot efficiently organize or control the review process, especially in larger courses or group projects.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We propose the implementation of a 3-column table layout that clearly organizes the review mapping with integrated reviewer management controls. This layout improves visibility, reduces friction in reviewer assignment, and offers direct interaction with review statuses.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Topic Selected: Displays the assigned topic or project name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contributor: Shows team name or student name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reviewed By:&lt;br /&gt;
Lists assigned reviewers with visual status indicators (🟢 Submitted / 🔴 Not Submitted).&lt;br /&gt;
'''Includes action buttons:'''&lt;br /&gt;
&amp;lt;li&amp;gt;Add Reviewer: Opens an input field/modal to add a new reviewer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Delete Reviewer: Removes a reviewer if the review has not been submitted.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsubmit: Allows instructors to revert a submitted review for edits or reassignment.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;participant.rb&amp;lt;/code&amp;gt; file holds the backend code, while the file that stores the UI layout from the above screenshot is &amp;lt;code&amp;gt;_reviews_summary.html.erb&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
This solution will need to access multiple participants to render a view for a given topic. Key information like participant name and username will be needed.&lt;br /&gt;
&lt;br /&gt;
===== reviews_summary.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This file will need to render the 3 column layout for displaying topics, reviewers, and reviews. It needs to support the desired interactivity to delete and unsubmit reviews, render topics, and show information about the assignment.&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend &amp;lt;code&amp;gt;responses_controller.rb&amp;lt;/code&amp;gt; API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;_add_reviewer.html.erb&amp;lt;/code&amp;gt; file. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
===== _add_reviewer.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This file will need to render a page with a text box to input the username of the desired reviewer. The user should then be able to assign that reviewer and formally create the desired instance of the response model once they click 'Add Reviewer'&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:ThreeColumnPage.png&amp;diff=163120</id>
		<title>File:ThreeColumnPage.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:ThreeColumnPage.png&amp;diff=163120"/>
		<updated>2025-04-03T22:00:35Z</updated>

		<summary type="html">&lt;p&gt;Msguron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163118</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163118"/>
		<updated>2025-04-03T21:59:02Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* reviews_summary.html.erb */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
In Expertiza, managing reviewer assignments is currently fragmented across different interfaces. The existing “Add Reviewer” UI (as shown in the screenshot) allows an instructor to assign a reviewer by entering a user login manually. While this supports basic functionality, it lacks a unified view and efficient controls for large-scale assignment management.&lt;br /&gt;
&lt;br /&gt;
[[File:1371.png|center|border|1000px|]]&amp;lt;/b&amp;gt;&lt;br /&gt;
Specifically, the problems include:&lt;br /&gt;
&amp;lt;li&amp;gt;Lack of Visibility: There is no consolidated interface showing topics, contributors, and reviewers in one place.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Manual Input Only: Adding reviewers requires entering login IDs, which is error-prone and not scalable.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Limited Reviewer Controls: There are no built-in options to delete, unsubmit, or manage existing reviews in context.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unclear Status: Review status (e.g., submitted, not submitted) is not easily visible or actionable from the main UI.&amp;lt;/li&amp;gt;&lt;br /&gt;
Without a structured layout, instructors cannot efficiently organize or control the review process, especially in larger courses or group projects.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We propose the implementation of a 3-column table layout that clearly organizes the review mapping with integrated reviewer management controls. This layout improves visibility, reduces friction in reviewer assignment, and offers direct interaction with review statuses.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Topic Selected: Displays the assigned topic or project name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contributor: Shows team name or student name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reviewed By:&lt;br /&gt;
Lists assigned reviewers with visual status indicators (🟢 Submitted / 🔴 Not Submitted).&lt;br /&gt;
'''Includes action buttons:'''&lt;br /&gt;
&amp;lt;li&amp;gt;Add Reviewer: Opens an input field/modal to add a new reviewer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Delete Reviewer: Removes a reviewer if the review has not been submitted.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsubmit: Allows instructors to revert a submitted review for edits or reassignment.&amp;lt;/li&amp;gt;&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;participant.rb&amp;lt;/code&amp;gt; file holds the backend code, while the file that stores the UI layout from the above screenshot is &amp;lt;code&amp;gt;_reviews_summary.html.erb&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
This solution will need to access multiple participants to render a view for a given topic. Key information like participant name and username will be needed.&lt;br /&gt;
&lt;br /&gt;
===== reviews_summary.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This file will need to render the 3 column layout for displaying topics, reviewers, and reviews. It needs to support the desired interactivity to delete and unsubmit reviews, render topics, and show information about the assignment.&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend &amp;lt;code&amp;gt;responses_controller.rb&amp;lt;/code&amp;gt; API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;_add_reviewer.html.erb&amp;lt;/code&amp;gt; file. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
===== _add_reviewer.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This file will need to render a page with a text box to input the username of the desired reviewer. The user should then be able to assign that reviewer and formally create the desired instance of the response model once they click 'Add Reviewer'&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163116</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163116"/>
		<updated>2025-04-03T21:58:24Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* reviews_summary.html.erb */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
In Expertiza, managing reviewer assignments is currently fragmented across different interfaces. The existing “Add Reviewer” UI (as shown in the screenshot) allows an instructor to assign a reviewer by entering a user login manually. While this supports basic functionality, it lacks a unified view and efficient controls for large-scale assignment management.&lt;br /&gt;
&lt;br /&gt;
[[File:1371.png|center|border|1000px|]]&amp;lt;/b&amp;gt;&lt;br /&gt;
Specifically, the problems include:&lt;br /&gt;
&amp;lt;li&amp;gt;Lack of Visibility: There is no consolidated interface showing topics, contributors, and reviewers in one place.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Manual Input Only: Adding reviewers requires entering login IDs, which is error-prone and not scalable.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Limited Reviewer Controls: There are no built-in options to delete, unsubmit, or manage existing reviews in context.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unclear Status: Review status (e.g., submitted, not submitted) is not easily visible or actionable from the main UI.&amp;lt;/li&amp;gt;&lt;br /&gt;
Without a structured layout, instructors cannot efficiently organize or control the review process, especially in larger courses or group projects.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We propose the implementation of a 3-column table layout that clearly organizes the review mapping with integrated reviewer management controls. This layout improves visibility, reduces friction in reviewer assignment, and offers direct interaction with review statuses.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Topic Selected: Displays the assigned topic or project name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contributor: Shows team name or student name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reviewed By:&lt;br /&gt;
Lists assigned reviewers with visual status indicators (🟢 Submitted / 🔴 Not Submitted).&lt;br /&gt;
'''Includes action buttons:'''&lt;br /&gt;
&amp;lt;li&amp;gt;Add Reviewer: Opens an input field/modal to add a new reviewer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Delete Reviewer: Removes a reviewer if the review has not been submitted.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsubmit: Allows instructors to revert a submitted review for edits or reassignment.&amp;lt;/li&amp;gt;&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;participant.rb&amp;lt;/code&amp;gt; file holds the backend code, while the file that stores the UI layout from the above screenshot is &amp;lt;code&amp;gt;_reviews_summary.html.erb&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
This solution will need to access multiple participants to render a view for a given topic. Key information like participant name and username will be needed.&lt;br /&gt;
&lt;br /&gt;
===== reviews_summary.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This file will need to render the 3 column layout for displaying topics, reviewers, and reviews. It needs to support the desired interactivity to delete and unsubmit reviews, render topics,&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend &amp;lt;code&amp;gt;responses_controller.rb&amp;lt;/code&amp;gt; API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;_add_reviewer.html.erb&amp;lt;/code&amp;gt; file. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
===== _add_reviewer.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This file will need to render a page with a text box to input the username of the desired reviewer. The user should then be able to assign that reviewer and formally create the desired instance of the response model once they click 'Add Reviewer'&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163115</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163115"/>
		<updated>2025-04-03T21:57:39Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* participant.rb */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
In Expertiza, managing reviewer assignments is currently fragmented across different interfaces. The existing “Add Reviewer” UI (as shown in the screenshot) allows an instructor to assign a reviewer by entering a user login manually. While this supports basic functionality, it lacks a unified view and efficient controls for large-scale assignment management.&lt;br /&gt;
&lt;br /&gt;
[[File:1371.png|center|border|1000px|]]&amp;lt;/b&amp;gt;&lt;br /&gt;
Specifically, the problems include:&lt;br /&gt;
&amp;lt;li&amp;gt;Lack of Visibility: There is no consolidated interface showing topics, contributors, and reviewers in one place.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Manual Input Only: Adding reviewers requires entering login IDs, which is error-prone and not scalable.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Limited Reviewer Controls: There are no built-in options to delete, unsubmit, or manage existing reviews in context.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unclear Status: Review status (e.g., submitted, not submitted) is not easily visible or actionable from the main UI.&amp;lt;/li&amp;gt;&lt;br /&gt;
Without a structured layout, instructors cannot efficiently organize or control the review process, especially in larger courses or group projects.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We propose the implementation of a 3-column table layout that clearly organizes the review mapping with integrated reviewer management controls. This layout improves visibility, reduces friction in reviewer assignment, and offers direct interaction with review statuses.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Topic Selected: Displays the assigned topic or project name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contributor: Shows team name or student name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reviewed By:&lt;br /&gt;
Lists assigned reviewers with visual status indicators (🟢 Submitted / 🔴 Not Submitted).&lt;br /&gt;
'''Includes action buttons:'''&lt;br /&gt;
&amp;lt;li&amp;gt;Add Reviewer: Opens an input field/modal to add a new reviewer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Delete Reviewer: Removes a reviewer if the review has not been submitted.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsubmit: Allows instructors to revert a submitted review for edits or reassignment.&amp;lt;/li&amp;gt;&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;participant.rb&amp;lt;/code&amp;gt; file holds the backend code, while the file that stores the UI layout from the above screenshot is &amp;lt;code&amp;gt;_reviews_summary.html.erb&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
This solution will need to access multiple participants to render a view for a given topic. Key information like participant name and username will be needed.&lt;br /&gt;
&lt;br /&gt;
===== reviews_summary.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This file will need to render the 3 column layout for displaying topics, reviewers, and reviews.&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend &amp;lt;code&amp;gt;responses_controller.rb&amp;lt;/code&amp;gt; API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;_add_reviewer.html.erb&amp;lt;/code&amp;gt; file. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
===== _add_reviewer.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This file will need to render a page with a text box to input the username of the desired reviewer. The user should then be able to assign that reviewer and formally create the desired instance of the response model once they click 'Add Reviewer'&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163114</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163114"/>
		<updated>2025-04-03T21:56:28Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* reviews_summary.html.erb */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
In Expertiza, managing reviewer assignments is currently fragmented across different interfaces. The existing “Add Reviewer” UI (as shown in the screenshot) allows an instructor to assign a reviewer by entering a user login manually. While this supports basic functionality, it lacks a unified view and efficient controls for large-scale assignment management.&lt;br /&gt;
&lt;br /&gt;
[[File:1371.png|center|border|1000px|]]&amp;lt;/b&amp;gt;&lt;br /&gt;
Specifically, the problems include:&lt;br /&gt;
&amp;lt;li&amp;gt;Lack of Visibility: There is no consolidated interface showing topics, contributors, and reviewers in one place.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Manual Input Only: Adding reviewers requires entering login IDs, which is error-prone and not scalable.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Limited Reviewer Controls: There are no built-in options to delete, unsubmit, or manage existing reviews in context.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unclear Status: Review status (e.g., submitted, not submitted) is not easily visible or actionable from the main UI.&amp;lt;/li&amp;gt;&lt;br /&gt;
Without a structured layout, instructors cannot efficiently organize or control the review process, especially in larger courses or group projects.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We propose the implementation of a 3-column table layout that clearly organizes the review mapping with integrated reviewer management controls. This layout improves visibility, reduces friction in reviewer assignment, and offers direct interaction with review statuses.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Topic Selected: Displays the assigned topic or project name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contributor: Shows team name or student name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reviewed By:&lt;br /&gt;
Lists assigned reviewers with visual status indicators (🟢 Submitted / 🔴 Not Submitted).&lt;br /&gt;
'''Includes action buttons:'''&lt;br /&gt;
&amp;lt;li&amp;gt;Add Reviewer: Opens an input field/modal to add a new reviewer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Delete Reviewer: Removes a reviewer if the review has not been submitted.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsubmit: Allows instructors to revert a submitted review for edits or reassignment.&amp;lt;/li&amp;gt;&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;participant.rb&amp;lt;/code&amp;gt; file holds the backend code, while the file that stores the UI layout from the above screenshot is &amp;lt;code&amp;gt;_reviews_summary.html.erb&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
===== reviews_summary.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This file will need to render the 3 column layout for displaying topics, reviewers, and reviews.&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend &amp;lt;code&amp;gt;responses_controller.rb&amp;lt;/code&amp;gt; API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;_add_reviewer.html.erb&amp;lt;/code&amp;gt; file. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
===== _add_reviewer.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This file will need to render a page with a text box to input the username of the desired reviewer. The user should then be able to assign that reviewer and formally create the desired instance of the response model once they click 'Add Reviewer'&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163113</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163113"/>
		<updated>2025-04-03T21:55:42Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
In Expertiza, managing reviewer assignments is currently fragmented across different interfaces. The existing “Add Reviewer” UI (as shown in the screenshot) allows an instructor to assign a reviewer by entering a user login manually. While this supports basic functionality, it lacks a unified view and efficient controls for large-scale assignment management.&lt;br /&gt;
&lt;br /&gt;
[[File:1371.png|center|border|1000px|]]&amp;lt;/b&amp;gt;&lt;br /&gt;
Specifically, the problems include:&lt;br /&gt;
&amp;lt;li&amp;gt;Lack of Visibility: There is no consolidated interface showing topics, contributors, and reviewers in one place.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Manual Input Only: Adding reviewers requires entering login IDs, which is error-prone and not scalable.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Limited Reviewer Controls: There are no built-in options to delete, unsubmit, or manage existing reviews in context.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unclear Status: Review status (e.g., submitted, not submitted) is not easily visible or actionable from the main UI.&amp;lt;/li&amp;gt;&lt;br /&gt;
Without a structured layout, instructors cannot efficiently organize or control the review process, especially in larger courses or group projects.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We propose the implementation of a 3-column table layout that clearly organizes the review mapping with integrated reviewer management controls. This layout improves visibility, reduces friction in reviewer assignment, and offers direct interaction with review statuses.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Topic Selected: Displays the assigned topic or project name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contributor: Shows team name or student name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reviewed By:&lt;br /&gt;
Lists assigned reviewers with visual status indicators (🟢 Submitted / 🔴 Not Submitted).&lt;br /&gt;
'''Includes action buttons:'''&lt;br /&gt;
&amp;lt;li&amp;gt;Add Reviewer: Opens an input field/modal to add a new reviewer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Delete Reviewer: Removes a reviewer if the review has not been submitted.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsubmit: Allows instructors to revert a submitted review for edits or reassignment.&amp;lt;/li&amp;gt;&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;participant.rb&amp;lt;/code&amp;gt; file holds the backend code, while the file that stores the UI layout from the above screenshot is &amp;lt;code&amp;gt;_reviews_summary.html.erb&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
===== reviews_summary.html.erb =====&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend &amp;lt;code&amp;gt;responses_controller.rb&amp;lt;/code&amp;gt; API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;_add_reviewer.html.erb&amp;lt;/code&amp;gt; file. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
===== _add_reviewer.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This file will need to render a page with a text box to input the username of the desired reviewer. The user should then be able to assign that reviewer and formally create the desired instance of the response model once they click 'Add Reviewer'&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163106</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163106"/>
		<updated>2025-04-03T21:40:40Z</updated>

		<summary type="html">&lt;p&gt;Msguron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
In Expertiza, managing reviewer assignments is currently fragmented across different interfaces. The existing “Add Reviewer” UI (as shown in the screenshot) allows an instructor to assign a reviewer by entering a user login manually. While this supports basic functionality, it lacks a unified view and efficient controls for large-scale assignment management.&lt;br /&gt;
&lt;br /&gt;
[[File:image1.jpg|center|border|1000px|]]&amp;lt;/b&amp;gt;&lt;br /&gt;
Specifically, the problems include:&lt;br /&gt;
&amp;lt;li&amp;gt;Lack of Visibility: There is no consolidated interface showing topics, contributors, and reviewers in one place.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Manual Input Only: Adding reviewers requires entering login IDs, which is error-prone and not scalable.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Limited Reviewer Controls: There are no built-in options to delete, unsubmit, or manage existing reviews in context.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unclear Status: Review status (e.g., submitted, not submitted) is not easily visible or actionable from the main UI.&amp;lt;/li&amp;gt;&lt;br /&gt;
Without a structured layout, instructors cannot efficiently organize or control the review process, especially in larger courses or group projects.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We propose the implementation of a 3-column table layout that clearly organizes the review mapping with integrated reviewer management controls. This layout improves visibility, reduces friction in reviewer assignment, and offers direct interaction with review statuses.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Topic Selected: Displays the assigned topic or project name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contributor: Shows team name or student name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reviewed By:&lt;br /&gt;
Lists assigned reviewers with visual status indicators (🟢 Submitted / 🔴 Not Submitted).&lt;br /&gt;
'''Includes action buttons:'''&lt;br /&gt;
&amp;lt;li&amp;gt;Add Reviewer: Opens an input field/modal to add a new reviewer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Delete Reviewer: Removes a reviewer if the review has not been submitted.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsubmit: Allows instructors to revert a submitted review for edits or reassignment.&amp;lt;/li&amp;gt;&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;participant.rb&amp;lt;/code&amp;gt; file holds the backend code, while the file that stores the UI layout from the above screenshot is &amp;lt;code&amp;gt;_reviews_summary.html.erb&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
===== reviews_summary.html.erb =====&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend &amp;lt;code&amp;gt;responses_controller.rb&amp;lt;/code&amp;gt; API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; file. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
===== reviews_summary.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This file will need to render a page with a text box to input the username of the desired reviewer. The user should then be able to assign that reviewer and formally create the desired instance of the response model once they click 'Add Reviewer'&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163105</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163105"/>
		<updated>2025-04-03T21:40:24Z</updated>

		<summary type="html">&lt;p&gt;Msguron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=E2534: UI Assign for Reviewers =&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with &amp;quot;Assignment&amp;quot;, &amp;quot;Contributor&amp;quot;, and &amp;quot;Reviewers&amp;quot; columns===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
In Expertiza, managing reviewer assignments is currently fragmented across different interfaces. The existing “Add Reviewer” UI (as shown in the screenshot) allows an instructor to assign a reviewer by entering a user login manually. While this supports basic functionality, it lacks a unified view and efficient controls for large-scale assignment management.&lt;br /&gt;
&lt;br /&gt;
[[File:image1.jpg|center|border|1000px|]]&amp;lt;/b&amp;gt;&lt;br /&gt;
Specifically, the problems include:&lt;br /&gt;
&amp;lt;li&amp;gt;Lack of Visibility: There is no consolidated interface showing topics, contributors, and reviewers in one place.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Manual Input Only: Adding reviewers requires entering login IDs, which is error-prone and not scalable.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Limited Reviewer Controls: There are no built-in options to delete, unsubmit, or manage existing reviews in context.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unclear Status: Review status (e.g., submitted, not submitted) is not easily visible or actionable from the main UI.&amp;lt;/li&amp;gt;&lt;br /&gt;
Without a structured layout, instructors cannot efficiently organize or control the review process, especially in larger courses or group projects.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We propose the implementation of a 3-column table layout that clearly organizes the review mapping with integrated reviewer management controls. This layout improves visibility, reduces friction in reviewer assignment, and offers direct interaction with review statuses.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Topic Selected: Displays the assigned topic or project name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contributor: Shows team name or student name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reviewed By:&lt;br /&gt;
Lists assigned reviewers with visual status indicators (🟢 Submitted / 🔴 Not Submitted).&lt;br /&gt;
'''Includes action buttons:'''&lt;br /&gt;
&amp;lt;li&amp;gt;Add Reviewer: Opens an input field/modal to add a new reviewer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Delete Reviewer: Removes a reviewer if the review has not been submitted.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsubmit: Allows instructors to revert a submitted review for edits or reassignment.&amp;lt;/li&amp;gt;&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;participant.rb&amp;lt;/code&amp;gt; file holds the backend code, while the file that stores the UI layout from the above screenshot is &amp;lt;code&amp;gt;_reviews_summary.html.erb&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
===== reviews_summary.html.erb =====&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend &amp;lt;code&amp;gt;responses_controller.rb&amp;lt;/code&amp;gt; API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; file. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
===== reviews_summary.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This file will need to render a page with a text box to input the username of the desired reviewer. The user should then be able to assign that reviewer and formally create the desired instance of the response model once they click 'Add Reviewer'&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163103</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163103"/>
		<updated>2025-04-03T21:39:10Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=E2534: UI Assign for Reviewers =&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with assignment, contributor, and reviewer columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with assignment, contributor, and reviewer columns===&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;participant.rb&amp;lt;/code&amp;gt; file holds the backend code, while the file that stores the UI layout from the above screenshot is &amp;lt;code&amp;gt;_reviews_summary.html.erb&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
===== reviews_summary.html.erb =====&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend &amp;lt;code&amp;gt;responses_controller.rb&amp;lt;/code&amp;gt; API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; file. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
===== reviews_summary.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This file will need to render a page with a text box to input the username of the desired reviewer. The user should then be able to assign that reviewer and formally create the desired instance of the response model once they click 'Add Reviewer'&lt;br /&gt;
&lt;br /&gt;
==Implementation Plan==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163102</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163102"/>
		<updated>2025-04-03T21:38:58Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=E2534: UI Assign for Reviewers =&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with assignment, contributor, and reviewer columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with assignment, contributor, and reviewer columns===&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;participant.rb&amp;lt;/code&amp;gt; file holds the backend code, while the file that stores the UI layout from the above screenshot is &amp;lt;code&amp;gt;_reviews_summary.html.erb&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
===== reviews_summary.html.erb =====&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend &amp;lt;code&amp;gt;responses_controller&amp;lt;/code&amp;gt; API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; file. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
===== reviews_summary.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This file will need to render a page with a text box to input the username of the desired reviewer. The user should then be able to assign that reviewer and formally create the desired instance of the response model once they click 'Add Reviewer'&lt;br /&gt;
&lt;br /&gt;
==Implementation Plan==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163101</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163101"/>
		<updated>2025-04-03T21:38:18Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* Add action buttons to add reviewers to an assignment, delete outstanding reviewers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=E2534: UI Assign for Reviewers =&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with assignment, contributor, and reviewer columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with assignment, contributor, and reviewer columns===&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;participant.rb&amp;lt;/code&amp;gt; file holds the backend code, while the file that stores the UI layout from the above screenshot is &amp;lt;code&amp;gt;_reviews_summary.html.erb&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
===== reviews_summary.html.erb =====&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; file. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
===== reviews_summary.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This file will need to render a page with a text box to input the username of the desired reviewer. The user should then be able to assign that reviewer and formally create the desired instance of the response model once they click 'Add Reviewer'&lt;br /&gt;
&lt;br /&gt;
==Implementation Plan==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163100</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163100"/>
		<updated>2025-04-03T21:38:07Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* Allow for the addition of reviewers by their username */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=E2534: UI Assign for Reviewers =&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with assignment, contributor, and reviewer columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with assignment, contributor, and reviewer columns===&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;participant.rb&amp;lt;/code&amp;gt; file holds the backend code, while the file that stores the UI layout from the above screenshot is &amp;lt;code&amp;gt;_reviews_summary.html.erb&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
==== reviews_summary.html.erb ====&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; file. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
===== reviews_summary.html.erb =====&lt;br /&gt;
&lt;br /&gt;
This file will need to render a page with a text box to input the username of the desired reviewer. The user should then be able to assign that reviewer and formally create the desired instance of the response model once they click 'Add Reviewer'&lt;br /&gt;
&lt;br /&gt;
==Implementation Plan==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163099</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163099"/>
		<updated>2025-04-03T21:37:54Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=E2534: UI Assign for Reviewers =&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with assignment, contributor, and reviewer columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with assignment, contributor, and reviewer columns===&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;participant.rb&amp;lt;/code&amp;gt; file holds the backend code, while the file that stores the UI layout from the above screenshot is &amp;lt;code&amp;gt;_reviews_summary.html.erb&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
==== reviews_summary.html.erb ====&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; file. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
==== reviews_summary.html.erb ====&lt;br /&gt;
&lt;br /&gt;
This file will need to render a page with a text box to input the username of the desired reviewer. The user should then be able to assign that reviewer and formally create the desired instance of the response model once they click 'Add Reviewer'&lt;br /&gt;
&lt;br /&gt;
==Implementation Plan==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163097</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163097"/>
		<updated>2025-04-03T21:35:45Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=E2534: UI Assign for Reviewers =&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with assignment, contributor, and reviewer columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with assignment, contributor, and reviewer columns===&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;participant.rb&amp;lt;/code&amp;gt; file holds the backend code, while the file that stores the UI layout from the above screenshot is &amp;lt;code&amp;gt;_reviews_summary.html.erb&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
==== reviews_summary.html.erb ====&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;_assign_reviewer.html.erb&amp;lt;/code&amp;gt; file. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
==Implementation Plan==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163095</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163095"/>
		<updated>2025-04-03T21:35:10Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=E2534: UI Assign for Reviewers =&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with assignment, contributor, and reviewer columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with assignment, contributor, and reviewer columns===&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. &lt;br /&gt;
&lt;br /&gt;
The participant.rb file holds the backend code, while the file that stores the UI layout from the above screenshot is &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;_assign_reviewer.html.erb&amp;lt;/code&amp;gt; file. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
==Implementation Plan==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163094</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163094"/>
		<updated>2025-04-03T21:34:56Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=E2534: UI Assign for Reviewers =&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with assignment, contributor, and reviewer columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with assignment, contributor, and reviewer columns===&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. &lt;br /&gt;
&lt;br /&gt;
The participant.rb file holds the backend code, while the file that stores the UI layout from the above screenshot is reviews_summary.html.erb. &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; page mentioned previously&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;_assign_reviewer.html.erb&amp;lt;/code&amp;gt; file. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
==Implementation Plan==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163093</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163093"/>
		<updated>2025-04-03T21:34:43Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=E2534: UI Assign for Reviewers =&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with assignment, contributor, and reviewer columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with assignment, contributor, and reviewer columns===&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. &lt;br /&gt;
&lt;br /&gt;
The participant.rb file holds the backend code, while the file that stores the UI layout from the above screenshot is reviews_summary.html.erb. &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend API endpoints to destroy or unsubmit a review for testing. This functionality can be included with the &amp;lt;code&amp;gt;reviews_summary.html.erb&amp;lt;/code&amp;gt; page&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;_assign_reviewer.html.erb&amp;lt;/code&amp;gt; file. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
==Implementation Plan==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163091</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163091"/>
		<updated>2025-04-03T21:33:45Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=E2534: UI Assign for Reviewers =&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with assignment, contributor, and reviewer columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with assignment, contributor, and reviewer columns===&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. &lt;br /&gt;
&lt;br /&gt;
The participant.rb file holds the backend code, while the file that stores the UI layout from the above screenshot is reviews_summary.html.erb. &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend API endpoints to destroy or unsubmit a review for testing.&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;_assign_reviewer.html.erb&amp;lt;/code&amp;gt; file. Additionally, this page will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
==Implementation Plan==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163090</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163090"/>
		<updated>2025-04-03T21:33:28Z</updated>

		<summary type="html">&lt;p&gt;Msguron: /* Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=E2534: UI Assign for Reviewers =&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with assignment, contributor, and reviewer columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with assignment, contributor, and reviewer columns===&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. &lt;br /&gt;
&lt;br /&gt;
The participant.rb file holds the backend code, while the file that stores the UI layout from the above screenshot is reviews_summary.html.erb. &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend API endpoints to destroy or unsubmit a review for testing.&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;_assign_reviewer.html.erb&amp;lt;/code&amp;gt; file. Additionally, we will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;/code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
==Implementation Plan==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163089</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163089"/>
		<updated>2025-04-03T21:33:17Z</updated>

		<summary type="html">&lt;p&gt;Msguron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=E2534: UI Assign for Reviewers =&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with assignment, contributor, and reviewer columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with assignment, contributor, and reviewer columns===&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. &lt;br /&gt;
&lt;br /&gt;
The participant.rb file holds the backend code, while the file that stores the UI layout from the above screenshot is reviews_summary.html.erb. &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend API endpoints to destroy or unsubmit a review for testing.&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;_assign_reviewer.html.erb&amp;lt;/code&amp;gt; file. Additionally, we will need to interact with the &amp;lt;code&amp;gt;response.rb&amp;lt;\code&amp;gt; model to create a new review and notify the user that they have been added as a reviewer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Implementation Plan==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163087</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163087"/>
		<updated>2025-04-03T21:29:37Z</updated>

		<summary type="html">&lt;p&gt;Msguron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=E2534: UI Assign for Reviewers =&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with assignment, contributor, and reviewer columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with assignment, contributor, and reviewer columns===&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. &lt;br /&gt;
&lt;br /&gt;
The participant.rb file holds the backend code, while the file that stores the UI layout from the above screenshot is reviews_summary.html.erb. &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend API endpoints to destroy or unsubmit a review for testing.&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project. This page will need to be included in a separate &amp;lt;code&amp;gt;_assign_reviewer.html.erb&amp;lt;/code&amp;gt; file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Implementation Plan==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163083</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163083"/>
		<updated>2025-04-03T21:20:51Z</updated>

		<summary type="html">&lt;p&gt;Msguron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=E2534: UI Assign for Reviewers =&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with assignment, contributor, and reviewer columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with assignment, contributor, and reviewer columns===&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. &lt;br /&gt;
&lt;br /&gt;
The participant.rb file holds the backend code, while the file that stores the UI layout from the above screenshot is _________. &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend API endpoints to destroy or unsubmit a review for testing.&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Implementation Plan==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163082</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163082"/>
		<updated>2025-04-03T21:20:16Z</updated>

		<summary type="html">&lt;p&gt;Msguron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=E2534: UI Assign for Reviewers =&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with assignment, contributor, and reviewer columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with assignment, contributor, and reviewer columns===&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. &lt;br /&gt;
&lt;br /&gt;
The participant.rb file holds the backend code, while the file that stores the UI layout from the above screenshot is _________. &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend API endpoints to destroy or unsubmit a review for testing.&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
[[Screenshot 2025-04-03 171612.png|center|border|1000px|View of page for assigning a reviewer to an assignment]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Create a separate page linked from the main 3 column interface, there should be a page that supports the input of a username and then assigns that user to the review. The backend API may need to be stubbed at this point to sufficiently test this page, as the full functionality for assigning reviewers is not present in the reimplementation project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Implementation Plan==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2025-04-03_171612.png&amp;diff=163081</id>
		<title>File:Screenshot 2025-04-03 171612.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2025-04-03_171612.png&amp;diff=163081"/>
		<updated>2025-04-03T21:16:52Z</updated>

		<summary type="html">&lt;p&gt;Msguron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163079</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_UI_for_Assign_Reviewers&amp;diff=163079"/>
		<updated>2025-04-03T21:12:00Z</updated>

		<summary type="html">&lt;p&gt;Msguron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=E2534: UI Assign for Reviewers =&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
This project will improve the UI functionality to assign reviewers to assignments. This interface needs to be streamlined and only expose a few key fields, while allowing for the simple assignment and deletion of reviewers from projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific Objectives==&lt;br /&gt;
&lt;br /&gt;
* Create a 3 column layout with assignment, contributor, and reviewer columns&lt;br /&gt;
* Add action buttons to add reviewers to an assignment, delete outstanding reviewers&lt;br /&gt;
* Add buttons to unsubmit or delete each review in the review column&lt;br /&gt;
* Allow for the addition of reviewers by their username&lt;br /&gt;
&lt;br /&gt;
==Proposed Changes==&lt;br /&gt;
&lt;br /&gt;
===Create a 3 column layout with assignment, contributor, and reviewer columns===&lt;br /&gt;
&lt;br /&gt;
===Add action buttons to add reviewers to an assignment, delete outstanding reviewers===&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
There needs to be a reviewer management system in the form of action buttons. The two possible options include adding a reviewer to the selected topic, and deleting any outstanding reviewers from the topic that have already been assigned. Without this functionality, the users would not be able to manually add or remove reviewers from a particular topic when necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUI.png|center|border|1000px|View of where the action buttons for reviewer management would be]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
The solution will focus on reimplementing the UI so that it is compatible with both the front end and back end implementations and is therefore two-pronged. One one hand, the front end/UI needs to be re-implemented, while the backend also needs to be reimplemented for API calls while maintaining the same functionality. &lt;br /&gt;
&lt;br /&gt;
The participant.rb file holds the backend code, while the file that stores the UI layout from the above screenshot is _________. &lt;br /&gt;
&lt;br /&gt;
=====participant.rb=====&lt;br /&gt;
&lt;br /&gt;
===Add buttons to unsubmit or delete each review in the review column===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Instructors need to be able to unsubmit or delete reviews that were submitted in error or were otherwise deficient. Managing this on a per-assignment basis is helpful given the usual linear flow of assignment, submission, and review.&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewerUnsubmit.png|center|border|1000px|View of where the buttons for review unsubmit and delete should be]]&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
The button should not require supplemental interaction from the user, and should indicate the resulting status of the assignment and reviews once pressed. We may initially need to stub the relevant backend API endpoints to destroy or unsubmit a review for testing.&lt;br /&gt;
&lt;br /&gt;
===Allow for the addition of reviewers by their username===&lt;br /&gt;
&lt;br /&gt;
==== Problem ====&lt;br /&gt;
&lt;br /&gt;
Instructors and TAs would like to manually assign reviewers to assignments, and would like to do this in a streamlined fashion. There needs to be functionality to add a user by entering their username, immediately associating them as a reviewer with that assignment.&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Implementation Plan==&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:ReviewerUnsubmit.png&amp;diff=163077</id>
		<title>File:ReviewerUnsubmit.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:ReviewerUnsubmit.png&amp;diff=163077"/>
		<updated>2025-04-03T21:10:59Z</updated>

		<summary type="html">&lt;p&gt;Msguron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025&amp;diff=163018</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=163018"/>
		<updated>2025-04-03T00:18:20Z</updated>

		<summary type="html">&lt;p&gt;Msguron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[CSC/ECE 517 Spring 2025 - E2503. Refactor the Team hierarchy]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2025 - E2504. Mentor-meeting management]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2025 - E2505. Testing Answer Tagging]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2025 - E2508. Reimplement bidding-algorithm web service]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2025 - E2509. Reimplement feedback_response_map.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2025 - E2519. Implement view for results of bidding]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2025 - E2522. Enhancing UI Consistency in Expertiza 1]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2025 - E2520. Reimplement heatgrid UI for reviews]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2025 - E2517. Reimplement internationalization (frontend + backend)]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2025 - E2523: Enhancing UI Consistency in Expertiza 2]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2025 - E2515:  Reimplement student_teams_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2025 - E2501:  Refactor review_mapping_helper.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2025 - E2502:  Refactor review_mapping_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2025 - E2512. Reimplement responses controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2025 - E2510. Reimplement grades_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2025 - E2507. Reimplement back end for submission records]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2025 - E2514. Reimplement student_quizzes_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2025 - E2518. Reimplement password resets (frontend + backend)]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2025 - E2516. Reimplement teams_users_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2025 - E2511. Reimplement participants_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2025 - E2521. UI for View submissions/assign grades (except heatgrid)]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2025 - E2513. Reimplement sign_up_topic.rb as project_topic.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2025 - E2506. Implement testing for new Bookmarks Controller]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2025 - E2532. Reimplement Missing ResponseMap Subclasses]]&lt;br /&gt;
&lt;br /&gt;
== Final Projects ==&lt;br /&gt;
* [[CSC/ECE 517 Spring 2025 - E2539 Reimplement Student Task View (Frontend + Backend)]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2025 - E2521 UI for View submissions/assign grades (except heatgrid)]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2025 - E2530 Reimplement Grades Controller (Frontend + Backend)]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2025 - E2538 Reimplementing Questionnaire Page in Expertiza]]&lt;br /&gt;
* [[CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers]]&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_Reimplement_Internationalization&amp;diff=163017</id>
		<title>CSC/ECE 517 Spring 2025 - E2534 Reimplement Internationalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2534_Reimplement_Internationalization&amp;diff=163017"/>
		<updated>2025-04-03T00:17:49Z</updated>

		<summary type="html">&lt;p&gt;Msguron: Msguron moved page CSC/ECE 517 Spring 2025 - E2534 Reimplement Internationalization to CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers: Misspelled title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[CSC/ECE 517 Spring 2025 - E2534 UI for Assign Reviewers]]&lt;/div&gt;</summary>
		<author><name>Msguron</name></author>
	</entry>
</feed>