<?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=Skshett2</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=Skshett2"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Skshett2"/>
	<updated>2026-05-13T08:07:14Z</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_2024_-_E2435_Implement_Frontend_for_the_My_Profile&amp;diff=156574</id>
		<title>CSC/ECE 517 Spring 2024 - E2435 Implement Frontend for the My Profile</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2435_Implement_Frontend_for_the_My_Profile&amp;diff=156574"/>
		<updated>2024-04-24T02:20:18Z</updated>

		<summary type="html">&lt;p&gt;Skshett2: /* Contributors to this project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Expertiza ==&lt;br /&gt;
&lt;br /&gt;
Expertiza stands as a versatile open-source web application constructed on the robust Ruby on Rails framework. Its primary function revolves around empowering instructors to craft tailored assignments, complete with curated topic lists, providing students with ample options for selection. Moreover, the platform extends its capabilities to facilitate seamless team formation, enabling students to collaborate efficiently on assignments and larger-scale projects.&lt;br /&gt;
&lt;br /&gt;
One of Expertiza's standout features lies in its support for peer review processes, a crucial aspect of modern education. Through this functionality, students can engage in constructive feedback exchanges, offering evaluations and critiques on their peers' submissions. What sets Expertiza apart is its flexibility in accommodating various document formats, including URLs and wiki pages, ensuring comprehensive assessment avenues.&lt;br /&gt;
&lt;br /&gt;
In essence, Expertiza represents more than just a mere educational tool; it embodies a comprehensive solution for managing assignments, fostering teamwork, and facilitating peer evaluations. Its open-source nature further enhances accessibility, making it freely available to educational institutions and individuals alike, thereby democratizing access to quality education tools.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
The My Profile page in Expertiza currently implemented in Ruby needs to be reimplemented using React and TypeScript to enhance user experience and maintainability. The reimplementation aims to maintain feature parity while improving intuitiveness and usability.&lt;br /&gt;
&lt;br /&gt;
== Exisiting My Profile Page ==&lt;br /&gt;
[[File:Profile frontend.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Existing My Profile page within expertiza&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Flow Diagram ==&lt;br /&gt;
&lt;br /&gt;
The actor can interact with the 'My Profile Page' by viewing the current information about the user and can also edit/update the information present on it. The Flow diagram below represents the interaction between the user (Actor) and the model, controllers and the database.&lt;br /&gt;
[[File:Sequence.drawio.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Flow Diagram&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reimplementation Details ==&lt;br /&gt;
&lt;br /&gt;
=== Technologies === &lt;br /&gt;
*React: Front-end library for building user interfaces.&lt;br /&gt;
*TypeScript: Adds static typing to JavaScript, enhancing code quality and maintainability.&lt;br /&gt;
&lt;br /&gt;
=== Reimplementation in React and TypeScript ===&lt;br /&gt;
*Rewrite the Profile Controller logic in React components.&lt;br /&gt;
*Convert form submissions and updates to asynchronous requests using React hooks or class-based components.&lt;br /&gt;
&lt;br /&gt;
=== Anonymized View ===&lt;br /&gt;
*Ensure the option for anonymized view is preserved in the new implementation.&lt;br /&gt;
*Create a toggle or checkbox to switch between anonymized and standard views.&lt;br /&gt;
&lt;br /&gt;
=== Timezones ===&lt;br /&gt;
* '''Description:''' Users will have the ability to set their preferred timezone, ensuring that timestamps and deadlines are displayed accurately according to their local time.&lt;br /&gt;
* '''Details'''&lt;br /&gt;
**Users can select their timezone from a dropdown menu or similar interface, choosing from a list of supported timezones.&lt;br /&gt;
**The selected timezone will be used to convert timestamps and deadlines to the user's local time, providing a more accurate representation of time-sensitive information.&lt;br /&gt;
**This feature improves usability and reduces confusion by presenting time-related information in a format that is familiar and relevant to the user.&lt;br /&gt;
&lt;br /&gt;
=== Email Options === &lt;br /&gt;
* '''Description:''' Users can customize their email notification preferences for various events such as work reviews, submissions, and meta-reviews.&lt;br /&gt;
* '''Details'''&lt;br /&gt;
**Checkboxes or similar controls will allow users to opt-in or opt-out of email notifications for specific events.&lt;br /&gt;
**Users can select the types of notifications they wish to receive, tailoring their email preferences to suit their needs and preferences.&lt;br /&gt;
**This feature provides users with greater control over their communication preferences, reducing unnecessary email notifications and improving overall user satisfaction.&lt;br /&gt;
&lt;br /&gt;
=== User Interface Enhancement ===&lt;br /&gt;
&lt;br /&gt;
* '''Description:''' The user interface (UI) will undergo a redesign to make it more intuitive and visually appealing. The goal is to create a modern look and feel that aligns with current design trends while ensuring consistency with the existing Expertiza interface.The UI design will be homogeneous to the current reimplementation of Expertiza to maintain consistency across the platform. It will feature a clean and intuitive layout with clear navigation and easily identifiable controls.&lt;br /&gt;
* '''Details:'''&lt;br /&gt;
**The redesign will focus on improving the layout, typography, color scheme, and overall aesthetic appeal of the user profile page.&lt;br /&gt;
**Elements such as buttons, forms, and navigation will be redesigned to provide a more seamless and enjoyable user experience.&lt;br /&gt;
**Homogeneity with the current reimplementation of Expertiza will be maintained to provide continuity and familiarity for existing users.&lt;br /&gt;
&lt;br /&gt;
=== Form Handling ===&lt;br /&gt;
*Refactor the form handling logic to work seamlessly with React's state management system.&lt;br /&gt;
*Implement form validation and error handling to provide a smoother user experience.&lt;br /&gt;
&lt;br /&gt;
=== Routing and Navigation ===&lt;br /&gt;
*Adjust routing and navigation to accommodate the new React components.&lt;br /&gt;
*Ensure proper redirection upon form submissions and updates.&lt;br /&gt;
&lt;br /&gt;
=== Modularization and Componentization ===&lt;br /&gt;
*Break down complex functionalities into smaller, reusable components in React.&lt;br /&gt;
*Each component should have a single responsibility, making it easier to understand and maintain.&lt;br /&gt;
*Use clear and descriptive names for components, variables, and functions to convey their purpose effectively.&lt;br /&gt;
&lt;br /&gt;
=== Consistent Coding Style ===&lt;br /&gt;
*Enforce a consistent coding style across the project using linters and code formatting tools.&lt;br /&gt;
*Follow established coding conventions and best practices to ensure readability and maintainability.&lt;br /&gt;
*Document code with comments and annotations to explain complex logic or implementation details.&lt;br /&gt;
&lt;br /&gt;
=== Testing and Quality Assurance ===&lt;br /&gt;
*Conduct thorough testing of the reimplementation to ensure functionality and compatibility across browsers and devices.&lt;br /&gt;
*Address any bugs or issues discovered during testing before deploying the new version.&lt;br /&gt;
&lt;br /&gt;
== Design Principles followed ==&lt;br /&gt;
&lt;br /&gt;
=== Single Responsibility Principle (SRP) ===&lt;br /&gt;
&lt;br /&gt;
*Each React component will have a single responsibility, such as displaying user information, managing language preferences, or handling email options.&lt;br /&gt;
*Separate concerns such as data fetching, state management, and rendering to improve modularity and maintainability.&lt;br /&gt;
&lt;br /&gt;
=== Separation of Concerns (SoC) ===&lt;br /&gt;
&lt;br /&gt;
*Dividing the user profile page into distinct components for different sections, such as profile information, language preferences, and email options.&lt;br /&gt;
&lt;br /&gt;
=== Don't Repeat Yourself (DRY) ===&lt;br /&gt;
&lt;br /&gt;
*Refactoring redundant code or logic into reusable React components, hooks, or utility functions.&lt;br /&gt;
*Avoiding duplicate data-fetching or state management logic across multiple components by centralizing it in shared modules.&lt;br /&gt;
&lt;br /&gt;
=== Open/Closed Principle (OCP) ===&lt;br /&gt;
&lt;br /&gt;
*Designing components to be open for extension by allowing for customization or configuration through props or context.&lt;br /&gt;
*Ensuring that components can be extended or modified without altering their core functionality by adhering to React's composition model.&lt;br /&gt;
&lt;br /&gt;
==Files Added / Changed == &lt;br /&gt;
&lt;br /&gt;
=== Edit.tsx ===&lt;br /&gt;
&lt;br /&gt;
The Edit component is a React functional component that manages the user profile information form. It integrates the Formik library to handle form state, validation, and submission efficiently.&lt;br /&gt;
The form includes various input fields such as full name, password, confirm password, email, institution, action preference, handle, preferred time zone, and preferred language. Each field is initialized with default values using the initialValues object.&lt;br /&gt;
&lt;br /&gt;
To enforce validation rules, a Yup validation schema is defined. It ensures that fields like full name, password, confirm password, email, and handle are required and follow specific formats. Validation errors are displayed below each input field using the ErrorMessage component from Formik.&lt;br /&gt;
&lt;br /&gt;
Additionally, the form layout and styling are improved to enhance the user experience. Labels for input fields are styled to have a bold font-weight, enhancing readability. The submit button is styled using React Bootstrap's Button component with a variant of &amp;quot;outline-success&amp;quot; for a visually appealing appearance.&lt;br /&gt;
&lt;br /&gt;
A helpful note is added below the password fields, informing users that leaving the password field blank will result in no updates to the password. This ensures clarity and guides users effectively through the form.&lt;br /&gt;
&lt;br /&gt;
Overall, these changes enhance the user profile page by providing a structured and visually appealing form with robust validation and error handling capabilities, resulting in an improved user experience.&lt;br /&gt;
&lt;br /&gt;
[[File:Edit-1.png | 1000px| center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Changes in Edit.tsx&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Edit-2.png | 1000px| center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Changes in Edit.tsx&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Edit-3.png | 1000px| center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Changes in Edit.tsx&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit.css ===&lt;br /&gt;
&lt;br /&gt;
In the edit.css file, additional styles were added to further refine the appearance and layout of the user profile editing page. Specifically, adjustments were made to the .edit-form-container class to refine padding and limit the maximum width of the form container. These modifications aim to optimize the layout and improve readability.&lt;br /&gt;
&lt;br /&gt;
A new class named .italics was introduced to style the italicized note below the password field. This class adjusts the font style, size, and margins to ensure the note is visually distinct and easily noticeable.&lt;br /&gt;
&lt;br /&gt;
Lastly, a .custom-column-flex class was created to facilitate a flexbox layout with a column direction. This class helps align form elements vertically, ensuring consistent spacing and alignment across different screen sizes. Overall, these changes contribute to a more polished and user-friendly user profile editing experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Style-1.png | 1000px| center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Changes in Edit.css&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== New My Profile Page ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Current-my-profile-1.jpeg | 1000px| center]]&lt;br /&gt;
[[File:Current-my-profile-2.jpeg | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;New my profile page&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The My Profile page has been reimplemented using React and TypeScript to improve user experience and make it easier to maintain. The goal of the reimplementation is to keep all the existing features while making the page more intuitive and user-friendly.&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
*'''Component Rendering:''' During our testing process, we thoroughly validated that all elements within the pages were correctly translated into React.js and Typescript components. We ensured that each component was properly implemented according to the specified requirements and guidelines.&lt;br /&gt;
&lt;br /&gt;
*'''Styling Consistency:''' We rigorously checked that the new frontend design maintained uniform styling consistent with the existing application. This involved reviewing CSS files, inspecting page layouts, and verifying color schemes, fonts, and spacing to ensure visual coherence across the entire application.&lt;br /&gt;
&lt;br /&gt;
*'''Functionality Testing:''' Our testing efforts focused on assessing the functionality of interactive features such as buttons and input fields to guarantee they operated as intended. We conducted comprehensive tests to validate user interactions, form submissions, and any other dynamic elements on the pages.&lt;br /&gt;
&lt;br /&gt;
*'''Responsive Design Testing:''' To ensure a seamless user experience across different screen sizes and devices, we conducted thorough testing for responsiveness. This involved resizing browser windows and testing on various devices to confirm that the pages adapted appropriately to different viewport dimensions.&lt;br /&gt;
&lt;br /&gt;
*'''Integration Testing:''' Integration testing was performed to test the integration of different components and modules within the pages. We verified that all components interacted correctly with each other and that data flow and state management were properly handled throughout the application.&lt;br /&gt;
&lt;br /&gt;
*'''Cross-Browser Testing:''' To ensure broad compatibility, we conducted cross-browser testing to verify that the pages rendered correctly and functioned as expected across different web browsers. We tested on popular browsers such as Chrome, Firefox, Safari, and Edge to ensure a consistent experience for all users.&lt;br /&gt;
&lt;br /&gt;
== Team == &lt;br /&gt;
===== Mentor =====&lt;br /&gt;
* '''Riya Gori''' (rygori@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
===== Members =====&lt;br /&gt;
* '''Aakarsh Satish''' (asatish2@ncsu.edu)&lt;br /&gt;
* '''Shubh Nisar''' (snisar@ncsu.edu)'''&lt;br /&gt;
* '''Sinchana Shetty''' (skshett2@ncsu.edu)'''&lt;br /&gt;
&lt;br /&gt;
== Contributors to this project ==&lt;br /&gt;
* '''Shubh Nisar''' (unityid: snisar, github: Shubh-Nisar)&lt;br /&gt;
* '''Aakarsh Satish''' (unityid: asatish2, github: Aakarsh-Satish)&lt;br /&gt;
* '''Sinchana Shetty''' (unityid: skshett2, github: sinchanashetty11)&lt;br /&gt;
* '''Github repo''' https://github.com/sinchanashetty11/reimplementation-front-end&lt;br /&gt;
* '''Link to PR''' https://github.com/expertiza/reimplementation-front-end/pull/53&lt;/div&gt;</summary>
		<author><name>Skshett2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2435_Implement_Frontend_for_the_My_Profile&amp;diff=156568</id>
		<title>CSC/ECE 517 Spring 2024 - E2435 Implement Frontend for the My Profile</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2435_Implement_Frontend_for_the_My_Profile&amp;diff=156568"/>
		<updated>2024-04-24T02:19:10Z</updated>

		<summary type="html">&lt;p&gt;Skshett2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Expertiza ==&lt;br /&gt;
&lt;br /&gt;
Expertiza stands as a versatile open-source web application constructed on the robust Ruby on Rails framework. Its primary function revolves around empowering instructors to craft tailored assignments, complete with curated topic lists, providing students with ample options for selection. Moreover, the platform extends its capabilities to facilitate seamless team formation, enabling students to collaborate efficiently on assignments and larger-scale projects.&lt;br /&gt;
&lt;br /&gt;
One of Expertiza's standout features lies in its support for peer review processes, a crucial aspect of modern education. Through this functionality, students can engage in constructive feedback exchanges, offering evaluations and critiques on their peers' submissions. What sets Expertiza apart is its flexibility in accommodating various document formats, including URLs and wiki pages, ensuring comprehensive assessment avenues.&lt;br /&gt;
&lt;br /&gt;
In essence, Expertiza represents more than just a mere educational tool; it embodies a comprehensive solution for managing assignments, fostering teamwork, and facilitating peer evaluations. Its open-source nature further enhances accessibility, making it freely available to educational institutions and individuals alike, thereby democratizing access to quality education tools.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
The My Profile page in Expertiza currently implemented in Ruby needs to be reimplemented using React and TypeScript to enhance user experience and maintainability. The reimplementation aims to maintain feature parity while improving intuitiveness and usability.&lt;br /&gt;
&lt;br /&gt;
== Exisiting My Profile Page ==&lt;br /&gt;
[[File:Profile frontend.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Existing My Profile page within expertiza&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Flow Diagram ==&lt;br /&gt;
&lt;br /&gt;
The actor can interact with the 'My Profile Page' by viewing the current information about the user and can also edit/update the information present on it. The Flow diagram below represents the interaction between the user (Actor) and the model, controllers and the database.&lt;br /&gt;
[[File:Sequence.drawio.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Flow Diagram&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reimplementation Details ==&lt;br /&gt;
&lt;br /&gt;
=== Technologies === &lt;br /&gt;
*React: Front-end library for building user interfaces.&lt;br /&gt;
*TypeScript: Adds static typing to JavaScript, enhancing code quality and maintainability.&lt;br /&gt;
&lt;br /&gt;
=== Reimplementation in React and TypeScript ===&lt;br /&gt;
*Rewrite the Profile Controller logic in React components.&lt;br /&gt;
*Convert form submissions and updates to asynchronous requests using React hooks or class-based components.&lt;br /&gt;
&lt;br /&gt;
=== Anonymized View ===&lt;br /&gt;
*Ensure the option for anonymized view is preserved in the new implementation.&lt;br /&gt;
*Create a toggle or checkbox to switch between anonymized and standard views.&lt;br /&gt;
&lt;br /&gt;
=== Timezones ===&lt;br /&gt;
* '''Description:''' Users will have the ability to set their preferred timezone, ensuring that timestamps and deadlines are displayed accurately according to their local time.&lt;br /&gt;
* '''Details'''&lt;br /&gt;
**Users can select their timezone from a dropdown menu or similar interface, choosing from a list of supported timezones.&lt;br /&gt;
**The selected timezone will be used to convert timestamps and deadlines to the user's local time, providing a more accurate representation of time-sensitive information.&lt;br /&gt;
**This feature improves usability and reduces confusion by presenting time-related information in a format that is familiar and relevant to the user.&lt;br /&gt;
&lt;br /&gt;
=== Email Options === &lt;br /&gt;
* '''Description:''' Users can customize their email notification preferences for various events such as work reviews, submissions, and meta-reviews.&lt;br /&gt;
* '''Details'''&lt;br /&gt;
**Checkboxes or similar controls will allow users to opt-in or opt-out of email notifications for specific events.&lt;br /&gt;
**Users can select the types of notifications they wish to receive, tailoring their email preferences to suit their needs and preferences.&lt;br /&gt;
**This feature provides users with greater control over their communication preferences, reducing unnecessary email notifications and improving overall user satisfaction.&lt;br /&gt;
&lt;br /&gt;
=== User Interface Enhancement ===&lt;br /&gt;
&lt;br /&gt;
* '''Description:''' The user interface (UI) will undergo a redesign to make it more intuitive and visually appealing. The goal is to create a modern look and feel that aligns with current design trends while ensuring consistency with the existing Expertiza interface.The UI design will be homogeneous to the current reimplementation of Expertiza to maintain consistency across the platform. It will feature a clean and intuitive layout with clear navigation and easily identifiable controls.&lt;br /&gt;
* '''Details:'''&lt;br /&gt;
**The redesign will focus on improving the layout, typography, color scheme, and overall aesthetic appeal of the user profile page.&lt;br /&gt;
**Elements such as buttons, forms, and navigation will be redesigned to provide a more seamless and enjoyable user experience.&lt;br /&gt;
**Homogeneity with the current reimplementation of Expertiza will be maintained to provide continuity and familiarity for existing users.&lt;br /&gt;
&lt;br /&gt;
=== Form Handling ===&lt;br /&gt;
*Refactor the form handling logic to work seamlessly with React's state management system.&lt;br /&gt;
*Implement form validation and error handling to provide a smoother user experience.&lt;br /&gt;
&lt;br /&gt;
=== Routing and Navigation ===&lt;br /&gt;
*Adjust routing and navigation to accommodate the new React components.&lt;br /&gt;
*Ensure proper redirection upon form submissions and updates.&lt;br /&gt;
&lt;br /&gt;
=== Modularization and Componentization ===&lt;br /&gt;
*Break down complex functionalities into smaller, reusable components in React.&lt;br /&gt;
*Each component should have a single responsibility, making it easier to understand and maintain.&lt;br /&gt;
*Use clear and descriptive names for components, variables, and functions to convey their purpose effectively.&lt;br /&gt;
&lt;br /&gt;
=== Consistent Coding Style ===&lt;br /&gt;
*Enforce a consistent coding style across the project using linters and code formatting tools.&lt;br /&gt;
*Follow established coding conventions and best practices to ensure readability and maintainability.&lt;br /&gt;
*Document code with comments and annotations to explain complex logic or implementation details.&lt;br /&gt;
&lt;br /&gt;
=== Testing and Quality Assurance ===&lt;br /&gt;
*Conduct thorough testing of the reimplementation to ensure functionality and compatibility across browsers and devices.&lt;br /&gt;
*Address any bugs or issues discovered during testing before deploying the new version.&lt;br /&gt;
&lt;br /&gt;
== Design Principles followed ==&lt;br /&gt;
&lt;br /&gt;
=== Single Responsibility Principle (SRP) ===&lt;br /&gt;
&lt;br /&gt;
*Each React component will have a single responsibility, such as displaying user information, managing language preferences, or handling email options.&lt;br /&gt;
*Separate concerns such as data fetching, state management, and rendering to improve modularity and maintainability.&lt;br /&gt;
&lt;br /&gt;
=== Separation of Concerns (SoC) ===&lt;br /&gt;
&lt;br /&gt;
*Dividing the user profile page into distinct components for different sections, such as profile information, language preferences, and email options.&lt;br /&gt;
&lt;br /&gt;
=== Don't Repeat Yourself (DRY) ===&lt;br /&gt;
&lt;br /&gt;
*Refactoring redundant code or logic into reusable React components, hooks, or utility functions.&lt;br /&gt;
*Avoiding duplicate data-fetching or state management logic across multiple components by centralizing it in shared modules.&lt;br /&gt;
&lt;br /&gt;
=== Open/Closed Principle (OCP) ===&lt;br /&gt;
&lt;br /&gt;
*Designing components to be open for extension by allowing for customization or configuration through props or context.&lt;br /&gt;
*Ensuring that components can be extended or modified without altering their core functionality by adhering to React's composition model.&lt;br /&gt;
&lt;br /&gt;
==Files Added / Changed == &lt;br /&gt;
&lt;br /&gt;
=== Edit.tsx ===&lt;br /&gt;
&lt;br /&gt;
The Edit component is a React functional component that manages the user profile information form. It integrates the Formik library to handle form state, validation, and submission efficiently.&lt;br /&gt;
The form includes various input fields such as full name, password, confirm password, email, institution, action preference, handle, preferred time zone, and preferred language. Each field is initialized with default values using the initialValues object.&lt;br /&gt;
&lt;br /&gt;
To enforce validation rules, a Yup validation schema is defined. It ensures that fields like full name, password, confirm password, email, and handle are required and follow specific formats. Validation errors are displayed below each input field using the ErrorMessage component from Formik.&lt;br /&gt;
&lt;br /&gt;
Additionally, the form layout and styling are improved to enhance the user experience. Labels for input fields are styled to have a bold font-weight, enhancing readability. The submit button is styled using React Bootstrap's Button component with a variant of &amp;quot;outline-success&amp;quot; for a visually appealing appearance.&lt;br /&gt;
&lt;br /&gt;
A helpful note is added below the password fields, informing users that leaving the password field blank will result in no updates to the password. This ensures clarity and guides users effectively through the form.&lt;br /&gt;
&lt;br /&gt;
Overall, these changes enhance the user profile page by providing a structured and visually appealing form with robust validation and error handling capabilities, resulting in an improved user experience.&lt;br /&gt;
&lt;br /&gt;
[[File:Edit-1.png | 1000px| center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Changes in Edit.tsx&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Edit-2.png | 1000px| center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Changes in Edit.tsx&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Edit-3.png | 1000px| center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Changes in Edit.tsx&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit.css ===&lt;br /&gt;
&lt;br /&gt;
In the edit.css file, additional styles were added to further refine the appearance and layout of the user profile editing page. Specifically, adjustments were made to the .edit-form-container class to refine padding and limit the maximum width of the form container. These modifications aim to optimize the layout and improve readability.&lt;br /&gt;
&lt;br /&gt;
A new class named .italics was introduced to style the italicized note below the password field. This class adjusts the font style, size, and margins to ensure the note is visually distinct and easily noticeable.&lt;br /&gt;
&lt;br /&gt;
Lastly, a .custom-column-flex class was created to facilitate a flexbox layout with a column direction. This class helps align form elements vertically, ensuring consistent spacing and alignment across different screen sizes. Overall, these changes contribute to a more polished and user-friendly user profile editing experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Style-1.png | 1000px| center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Changes in Edit.css&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== New My Profile Page ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Current-my-profile-1.jpeg | 1000px| center]]&lt;br /&gt;
[[File:Current-my-profile-2.jpeg | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;New my profile page&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The My Profile page has been reimplemented using React and TypeScript to improve user experience and make it easier to maintain. The goal of the reimplementation is to keep all the existing features while making the page more intuitive and user-friendly.&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
*'''Component Rendering:''' During our testing process, we thoroughly validated that all elements within the pages were correctly translated into React.js and Typescript components. We ensured that each component was properly implemented according to the specified requirements and guidelines.&lt;br /&gt;
&lt;br /&gt;
*'''Styling Consistency:''' We rigorously checked that the new frontend design maintained uniform styling consistent with the existing application. This involved reviewing CSS files, inspecting page layouts, and verifying color schemes, fonts, and spacing to ensure visual coherence across the entire application.&lt;br /&gt;
&lt;br /&gt;
*'''Functionality Testing:''' Our testing efforts focused on assessing the functionality of interactive features such as buttons and input fields to guarantee they operated as intended. We conducted comprehensive tests to validate user interactions, form submissions, and any other dynamic elements on the pages.&lt;br /&gt;
&lt;br /&gt;
*'''Responsive Design Testing:''' To ensure a seamless user experience across different screen sizes and devices, we conducted thorough testing for responsiveness. This involved resizing browser windows and testing on various devices to confirm that the pages adapted appropriately to different viewport dimensions.&lt;br /&gt;
&lt;br /&gt;
*'''Integration Testing:''' Integration testing was performed to test the integration of different components and modules within the pages. We verified that all components interacted correctly with each other and that data flow and state management were properly handled throughout the application.&lt;br /&gt;
&lt;br /&gt;
*'''Cross-Browser Testing:''' To ensure broad compatibility, we conducted cross-browser testing to verify that the pages rendered correctly and functioned as expected across different web browsers. We tested on popular browsers such as Chrome, Firefox, Safari, and Edge to ensure a consistent experience for all users.&lt;br /&gt;
&lt;br /&gt;
== Team == &lt;br /&gt;
===== Mentor =====&lt;br /&gt;
* '''Riya Gori''' (rygori@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
===== Members =====&lt;br /&gt;
* '''Aakarsh Satish''' (asatish2@ncsu.edu)&lt;br /&gt;
* '''Shubh Nisar''' (snisar@ncsu.edu)'''&lt;br /&gt;
* '''Sinchana Shetty''' (skshett2@ncsu.edu)'''&lt;br /&gt;
&lt;br /&gt;
== Contributors to this project ==&lt;br /&gt;
* '''Shubh Nisar''' (unityid: snisar, github: Shubh-Nisar)&lt;br /&gt;
* '''Aakarsh Satish''' (unityid: asatish2, github: Aakarsh-Satish)&lt;br /&gt;
* '''Sinchana Shetty''' (unityid: skshett2, github: sinchanashetty11)&lt;br /&gt;
* '''Github repo''' https://github.com/sinchanashetty11/reimplementation-front-end&lt;br /&gt;
* '''Link to PR''' https://github.com/expertiza/reimplementation-front-end/pull/40&lt;/div&gt;</summary>
		<author><name>Skshett2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=156566</id>
		<title>CSC/ECE 517 Spring 2024 - E2428 Replicate Roles and Institution UIs ReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=156566"/>
		<updated>2024-04-24T02:18:38Z</updated>

		<summary type="html">&lt;p&gt;Skshett2: /* Contributors to this project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview of Expertiza ==&lt;br /&gt;
Expertiza is an open-source learning management system designed with Ruby on Rails, facilitating a myriad of functionalities including the creation of assignments, tests, assignment teams, and courses. It stands out for its comprehensive peer review system, allowing thorough feedback among teams and group members. The focal point of this project is to enhance the User, Institution, and Roles frontend components. The specific challenge addressed involves refactoring the existing non-Typescript questionnaire UI to employ Typescript. Consequently, the team is tasked with developing these components' User Interface utilizing React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
== Description of the Project ==&lt;br /&gt;
&lt;br /&gt;
* Objective: Refactor the non-Typescript frontend questionnaire UI of Expertiza to use Typescript and develop the User Interface using React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
* Key Tasks:&lt;br /&gt;
** Log in as a Super Admin.&lt;br /&gt;
** Navigate to Administrator settings to access and replicate 'Roles' and 'Institution' UIs.&lt;br /&gt;
** Replicate the 'Roles' and 'Institution' UIs using ReactJS, ensuring they retain full functionality within the new TypeScript and ReactJS framework.&lt;br /&gt;
&lt;br /&gt;
* Development Process:&lt;br /&gt;
** Understand the Existing System: Analyze the current Ruby on Rails implementation of Roles and Institution UIs, including data models, controllers, and views.&lt;br /&gt;
** Set up Development Environment: Establish a TypeScript and ReactJS environment for developing the new UIs.&lt;br /&gt;
** Design Components: Create React components corresponding to UI parts, focusing on state and props management.&lt;br /&gt;
** Implement Components: Develop these components in TypeScript, mirroring the existing UIs' functionality.&lt;br /&gt;
** Integrate Components: Incorporate the new components into the main application, ensuring compatibility and functionality with the backend.&lt;br /&gt;
** Review and Refactor: Enhance code quality through reviews and refactoring, emphasizing readability and efficiency.&lt;br /&gt;
&lt;br /&gt;
* Additional Features and Improvements:&lt;br /&gt;
** Implement role-based access restrictions for actions within the roles and institutions sections.&lt;br /&gt;
** Enhance UI with tooltips, improved table positioning, and pagination.&lt;br /&gt;
** Introduce a new column for displaying parent names.&lt;br /&gt;
** Enhance code quality by adding comments, removing obsolete code, and implementing form validations.&lt;br /&gt;
&lt;br /&gt;
* Outcome: The project aims to transition the Expertiza UI components for 'Roles' and 'Institution' from Ruby on Rails to a more modern, efficient TypeScript and ReactJS-based implementation, incorporating user role restrictions and various UI improvements for a better user experience.&lt;br /&gt;
&lt;br /&gt;
== Technologies Used ==&lt;br /&gt;
&lt;br /&gt;
* '''React.js''': A JavaScript library for building user interfaces, particularly single-page applications. React will be used to develop dynamic and responsive UI components.&lt;br /&gt;
&lt;br /&gt;
* '''TypeScript''': An open-source language that builds on JavaScript by adding static type definitions. TypeScript allows for writing clearer and more robust code, facilitating easier debugging and maintenance.&lt;br /&gt;
&lt;br /&gt;
* '''Ruby on Rails''': Although the focus is on refactoring the front end, understanding the existing Ruby on Rails backend is crucial. Rails is a server-side web application framework written in Ruby, following the model-view-controller (MVC) framework.&lt;br /&gt;
&lt;br /&gt;
== Changes Made ==&lt;br /&gt;
&lt;br /&gt;
1. '''Refactored the Questionnaire UI''': The existing non-TypeScript frontend of the questionnaire UI has been successfully transitioned to use TypeScript, enhancing code reliability and maintainability.&lt;br /&gt;
&lt;br /&gt;
2. '''Developed with React.js''': The 'Roles' and 'Institution' user interfaces have been rebuilt using React.js, ensuring dynamic and responsive behavior. The React components created are modular, reusable, and effectively manage state.&lt;br /&gt;
&lt;br /&gt;
3. '''Integrated TypeScript''': TypeScript has been implemented across the new UI components, providing better type-checking, reducing runtime errors, and facilitating easier debugging and maintenance.&lt;br /&gt;
&lt;br /&gt;
4. '''Analyzed Existing Backend''': A thorough analysis and understanding of the existing Ruby on Rails backend were achieved to ensure seamless integration and functionality with the new TypeScript and React.js frontend.&lt;br /&gt;
&lt;br /&gt;
5. '''UI Enhancements Implemented''': &lt;br /&gt;
Role-based access restrictions have been introduced to enhance security and user experience.&lt;br /&gt;
The user interface has been improved with intuitive navigational elements, tooltips for better guidance, enhanced table positioning, and pagination.&lt;br /&gt;
New UI elements, such as a column for displaying parent names, have been added where necessary.&lt;br /&gt;
&lt;br /&gt;
6. '''Code Quality and Maintenance Improvements''':&lt;br /&gt;
Detailed comments and documentation have been added to the new codebase for better understandability and maintainability.&lt;br /&gt;
Obsolete or redundant code segments have been removed to streamline the application.&lt;br /&gt;
Validations and error-handling mechanisms have been implemented to improve the robustness of the UI.&lt;br /&gt;
&lt;br /&gt;
7. '''Thorough Testing and Integration''': &lt;br /&gt;
The new UI components have been thoroughly tested both individually and within the application context to ensure correct functionality across different scenarios and data sets.&lt;br /&gt;
The new components have been integrated into the existing application infrastructure, ensuring compatibility and functional integrity.&lt;br /&gt;
&lt;br /&gt;
8. '''Review and Deployment Accomplished''':&lt;br /&gt;
Code reviews were conducted with the development team to identify and implement potential improvements or necessary adjustments.&lt;br /&gt;
The deployment of the updated application was prepared and executed, ensuring a smooth transition that did not adversely affect the existing user base.&lt;br /&gt;
&lt;br /&gt;
== UI Enhancements and Features in Screenshots ==&lt;br /&gt;
&lt;br /&gt;
Role-based access restrictions: The update role option is disabled based on the role of user.&lt;br /&gt;
[[File:Screenshot 2024-03-23 at 9.07.25 PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
A new column labeled &amp;quot;Parent Name&amp;quot; has been introduced on the Manage Role page, as illustrated in the accompanying screenshot. Additionally, the screenshot highlights the interactive feature where hovering over the 'Create Role' button, a functionality that is consistently applied to the 'Edit' and 'Delete' buttons as well. The layout of the table has been adjusted for optimal web page integration, and pagination has been implemented to enhance navigation and usability.&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.05.27_PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.06.05_PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
When creating a new role, the role name must not include any numeric characters:&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.08.04_PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
The files have been transitioned to TypeScript:&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.49.58_PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
Testing was initially not considered within the project's scope, given its emphasis on frontend development. Nonetheless, verifying the functionality and user experience of a website's interface is essential. To this end, manual testing procedures will be employed to ascertain the correct operation of the UI components. These tests include:&lt;br /&gt;
&lt;br /&gt;
# Verifying all the added button links to ensure they function correctly.&lt;br /&gt;
# Testing the navigation routes for all five components within the Administration Section on the website's navigation bar.&lt;br /&gt;
# Checking that the data is accurately displayed and corresponds with each specific component's page.&lt;br /&gt;
&lt;br /&gt;
== Contributors to this project ==&lt;br /&gt;
* '''Shubh Nisar''' (unityid: snisar, github: Shubh-Nisar)&lt;br /&gt;
* '''Aakarsh Satish''' (unityid: asatish2, github: Aakarsh-Satish)&lt;br /&gt;
* '''Sinchana Shetty''' (unityid: skshett2, github: sinchanashetty11)&lt;br /&gt;
* '''Github repo''' https://github.com/Shubh-Nisar/reimplementation-front-end&lt;br /&gt;
* '''Link to PR''' https://github.com/expertiza/reimplementation-front-end/pull/53&lt;/div&gt;</summary>
		<author><name>Skshett2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2435_Implement_Frontend_for_the_My_Profile&amp;diff=156549</id>
		<title>CSC/ECE 517 Spring 2024 - E2435 Implement Frontend for the My Profile</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2435_Implement_Frontend_for_the_My_Profile&amp;diff=156549"/>
		<updated>2024-04-24T02:14:11Z</updated>

		<summary type="html">&lt;p&gt;Skshett2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Expertiza ==&lt;br /&gt;
&lt;br /&gt;
Expertiza stands as a versatile open-source web application constructed on the robust Ruby on Rails framework. Its primary function revolves around empowering instructors to craft tailored assignments, complete with curated topic lists, providing students with ample options for selection. Moreover, the platform extends its capabilities to facilitate seamless team formation, enabling students to collaborate efficiently on assignments and larger-scale projects.&lt;br /&gt;
&lt;br /&gt;
One of Expertiza's standout features lies in its support for peer review processes, a crucial aspect of modern education. Through this functionality, students can engage in constructive feedback exchanges, offering evaluations and critiques on their peers' submissions. What sets Expertiza apart is its flexibility in accommodating various document formats, including URLs and wiki pages, ensuring comprehensive assessment avenues.&lt;br /&gt;
&lt;br /&gt;
In essence, Expertiza represents more than just a mere educational tool; it embodies a comprehensive solution for managing assignments, fostering teamwork, and facilitating peer evaluations. Its open-source nature further enhances accessibility, making it freely available to educational institutions and individuals alike, thereby democratizing access to quality education tools.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
The My Profile page in Expertiza currently implemented in Ruby needs to be reimplemented using React and TypeScript to enhance user experience and maintainability. The reimplementation aims to maintain feature parity while improving intuitiveness and usability.&lt;br /&gt;
&lt;br /&gt;
== Exisiting My Profile Page ==&lt;br /&gt;
[[File:Profile frontend.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Existing My Profile page within expertiza&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Flow Diagram ==&lt;br /&gt;
&lt;br /&gt;
The actor can interact with the 'My Profile Page' by viewing the current information about the user and can also edit/update the information present on it. The Flow diagram below represents the interaction between the user (Actor) and the model, controllers and the database.&lt;br /&gt;
[[File:Sequence.drawio.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Flow Diagram&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reimplementation Details ==&lt;br /&gt;
&lt;br /&gt;
=== Technologies === &lt;br /&gt;
*React: Front-end library for building user interfaces.&lt;br /&gt;
*TypeScript: Adds static typing to JavaScript, enhancing code quality and maintainability.&lt;br /&gt;
&lt;br /&gt;
=== Reimplementation in React and TypeScript ===&lt;br /&gt;
*Rewrite the Profile Controller logic in React components.&lt;br /&gt;
*Convert form submissions and updates to asynchronous requests using React hooks or class-based components.&lt;br /&gt;
&lt;br /&gt;
=== Anonymized View ===&lt;br /&gt;
*Ensure the option for anonymized view is preserved in the new implementation.&lt;br /&gt;
*Create a toggle or checkbox to switch between anonymized and standard views.&lt;br /&gt;
&lt;br /&gt;
=== Timezones ===&lt;br /&gt;
* '''Description:''' Users will have the ability to set their preferred timezone, ensuring that timestamps and deadlines are displayed accurately according to their local time.&lt;br /&gt;
* '''Details'''&lt;br /&gt;
**Users can select their timezone from a dropdown menu or similar interface, choosing from a list of supported timezones.&lt;br /&gt;
**The selected timezone will be used to convert timestamps and deadlines to the user's local time, providing a more accurate representation of time-sensitive information.&lt;br /&gt;
**This feature improves usability and reduces confusion by presenting time-related information in a format that is familiar and relevant to the user.&lt;br /&gt;
&lt;br /&gt;
=== Email Options === &lt;br /&gt;
* '''Description:''' Users can customize their email notification preferences for various events such as work reviews, submissions, and meta-reviews.&lt;br /&gt;
* '''Details'''&lt;br /&gt;
**Checkboxes or similar controls will allow users to opt-in or opt-out of email notifications for specific events.&lt;br /&gt;
**Users can select the types of notifications they wish to receive, tailoring their email preferences to suit their needs and preferences.&lt;br /&gt;
**This feature provides users with greater control over their communication preferences, reducing unnecessary email notifications and improving overall user satisfaction.&lt;br /&gt;
&lt;br /&gt;
=== User Interface Enhancement ===&lt;br /&gt;
&lt;br /&gt;
* '''Description:''' The user interface (UI) will undergo a redesign to make it more intuitive and visually appealing. The goal is to create a modern look and feel that aligns with current design trends while ensuring consistency with the existing Expertiza interface.The UI design will be homogeneous to the current reimplementation of Expertiza to maintain consistency across the platform. It will feature a clean and intuitive layout with clear navigation and easily identifiable controls.&lt;br /&gt;
* '''Details:'''&lt;br /&gt;
**The redesign will focus on improving the layout, typography, color scheme, and overall aesthetic appeal of the user profile page.&lt;br /&gt;
**Elements such as buttons, forms, and navigation will be redesigned to provide a more seamless and enjoyable user experience.&lt;br /&gt;
**Homogeneity with the current reimplementation of Expertiza will be maintained to provide continuity and familiarity for existing users.&lt;br /&gt;
&lt;br /&gt;
=== Form Handling ===&lt;br /&gt;
*Refactor the form handling logic to work seamlessly with React's state management system.&lt;br /&gt;
*Implement form validation and error handling to provide a smoother user experience.&lt;br /&gt;
&lt;br /&gt;
=== Routing and Navigation ===&lt;br /&gt;
*Adjust routing and navigation to accommodate the new React components.&lt;br /&gt;
*Ensure proper redirection upon form submissions and updates.&lt;br /&gt;
&lt;br /&gt;
=== Modularization and Componentization ===&lt;br /&gt;
*Break down complex functionalities into smaller, reusable components in React.&lt;br /&gt;
*Each component should have a single responsibility, making it easier to understand and maintain.&lt;br /&gt;
*Use clear and descriptive names for components, variables, and functions to convey their purpose effectively.&lt;br /&gt;
&lt;br /&gt;
=== Consistent Coding Style ===&lt;br /&gt;
*Enforce a consistent coding style across the project using linters and code formatting tools.&lt;br /&gt;
*Follow established coding conventions and best practices to ensure readability and maintainability.&lt;br /&gt;
*Document code with comments and annotations to explain complex logic or implementation details.&lt;br /&gt;
&lt;br /&gt;
=== Testing and Quality Assurance ===&lt;br /&gt;
*Conduct thorough testing of the reimplementation to ensure functionality and compatibility across browsers and devices.&lt;br /&gt;
*Address any bugs or issues discovered during testing before deploying the new version.&lt;br /&gt;
&lt;br /&gt;
== Design Principles followed ==&lt;br /&gt;
&lt;br /&gt;
=== Single Responsibility Principle (SRP) ===&lt;br /&gt;
&lt;br /&gt;
*Each React component will have a single responsibility, such as displaying user information, managing language preferences, or handling email options.&lt;br /&gt;
*Separate concerns such as data fetching, state management, and rendering to improve modularity and maintainability.&lt;br /&gt;
&lt;br /&gt;
=== Separation of Concerns (SoC) ===&lt;br /&gt;
&lt;br /&gt;
*Dividing the user profile page into distinct components for different sections, such as profile information, language preferences, and email options.&lt;br /&gt;
&lt;br /&gt;
=== Don't Repeat Yourself (DRY) ===&lt;br /&gt;
&lt;br /&gt;
*Refactoring redundant code or logic into reusable React components, hooks, or utility functions.&lt;br /&gt;
*Avoiding duplicate data-fetching or state management logic across multiple components by centralizing it in shared modules.&lt;br /&gt;
&lt;br /&gt;
=== Open/Closed Principle (OCP) ===&lt;br /&gt;
&lt;br /&gt;
*Designing components to be open for extension by allowing for customization or configuration through props or context.&lt;br /&gt;
*Ensuring that components can be extended or modified without altering their core functionality by adhering to React's composition model.&lt;br /&gt;
&lt;br /&gt;
==Files Added / Changed == &lt;br /&gt;
&lt;br /&gt;
=== Edit.tsx ===&lt;br /&gt;
&lt;br /&gt;
The Edit component is a React functional component that manages the user profile information form. It integrates the Formik library to handle form state, validation, and submission efficiently.&lt;br /&gt;
The form includes various input fields such as full name, password, confirm password, email, institution, action preference, handle, preferred time zone, and preferred language. Each field is initialized with default values using the initialValues object.&lt;br /&gt;
&lt;br /&gt;
To enforce validation rules, a Yup validation schema is defined. It ensures that fields like full name, password, confirm password, email, and handle are required and follow specific formats. Validation errors are displayed below each input field using the ErrorMessage component from Formik.&lt;br /&gt;
&lt;br /&gt;
Additionally, the form layout and styling are improved to enhance the user experience. Labels for input fields are styled to have a bold font-weight, enhancing readability. The submit button is styled using React Bootstrap's Button component with a variant of &amp;quot;outline-success&amp;quot; for a visually appealing appearance.&lt;br /&gt;
&lt;br /&gt;
A helpful note is added below the password fields, informing users that leaving the password field blank will result in no updates to the password. This ensures clarity and guides users effectively through the form.&lt;br /&gt;
&lt;br /&gt;
Overall, these changes enhance the user profile page by providing a structured and visually appealing form with robust validation and error handling capabilities, resulting in an improved user experience.&lt;br /&gt;
&lt;br /&gt;
[[File:Edit-1.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Changes in Edit.tsx&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Edit-2.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Changes in Edit.tsx&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Edit-3.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Changes in Edit.tsx&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Edit.css ===&lt;br /&gt;
&lt;br /&gt;
In the edit.css file, additional styles were added to further refine the appearance and layout of the user profile editing page. Specifically, adjustments were made to the .edit-form-container class to refine padding and limit the maximum width of the form container. These modifications aim to optimize the layout and improve readability.&lt;br /&gt;
&lt;br /&gt;
A new class named .italics was introduced to style the italicized note below the password field. This class adjusts the font style, size, and margins to ensure the note is visually distinct and easily noticeable.&lt;br /&gt;
&lt;br /&gt;
Lastly, a .custom-column-flex class was created to facilitate a flexbox layout with a column direction. This class helps align form elements vertically, ensuring consistent spacing and alignment across different screen sizes. Overall, these changes contribute to a more polished and user-friendly user profile editing experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Style-1.png | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Changes in Edit.css&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== New My Profile Page ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Current-my-profile-1.jpeg | 1000px| center]]&lt;br /&gt;
[[File:Current-my-profile-2.jpeg | 1000px| center]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Current my profile page&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The My Profile page has been reimplemented using React and TypeScript to improve user experience and make it easier to maintain. The goal of the reimplementation is to keep all the existing features while making the page more intuitive and user-friendly.&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
*'''Component Rendering:''' During our testing process, we thoroughly validated that all elements within the pages were correctly translated into React.js and Typescript components. We ensured that each component was properly implemented according to the specified requirements and guidelines.&lt;br /&gt;
&lt;br /&gt;
*'''Styling Consistency:''' We rigorously checked that the new frontend design maintained uniform styling consistent with the existing application. This involved reviewing CSS files, inspecting page layouts, and verifying color schemes, fonts, and spacing to ensure visual coherence across the entire application.&lt;br /&gt;
&lt;br /&gt;
*'''Functionality Testing:''' Our testing efforts focused on assessing the functionality of interactive features such as buttons and input fields to guarantee they operated as intended. We conducted comprehensive tests to validate user interactions, form submissions, and any other dynamic elements on the pages.&lt;br /&gt;
&lt;br /&gt;
*'''Responsive Design Testing:''' To ensure a seamless user experience across different screen sizes and devices, we conducted thorough testing for responsiveness. This involved resizing browser windows and testing on various devices to confirm that the pages adapted appropriately to different viewport dimensions.&lt;br /&gt;
&lt;br /&gt;
*'''Integration Testing:''' Integration testing was performed to test the integration of different components and modules within the pages. We verified that all components interacted correctly with each other and that data flow and state management were properly handled throughout the application.&lt;br /&gt;
&lt;br /&gt;
*'''Cross-Browser Testing:''' To ensure broad compatibility, we conducted cross-browser testing to verify that the pages rendered correctly and functioned as expected across different web browsers. We tested on popular browsers such as Chrome, Firefox, Safari, and Edge to ensure a consistent experience for all users.&lt;br /&gt;
&lt;br /&gt;
== Team == &lt;br /&gt;
===== Mentor =====&lt;br /&gt;
* '''Riya Gori''' (rygori@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
===== Members =====&lt;br /&gt;
* '''Aakarsh Satish''' (asatish2@ncsu.edu)&lt;br /&gt;
* '''Shubh Nisar''' (snisar@ncsu.edu)'''&lt;br /&gt;
* '''Sinchana Shetty''' (skshett2@ncsu.edu)'''&lt;/div&gt;</summary>
		<author><name>Skshett2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2435_Implement_Frontend_for_the_My_Profile&amp;diff=154966</id>
		<title>CSC/ECE 517 Spring 2024 - E2435 Implement Frontend for the My Profile</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2435_Implement_Frontend_for_the_My_Profile&amp;diff=154966"/>
		<updated>2024-04-08T02:54:29Z</updated>

		<summary type="html">&lt;p&gt;Skshett2: Created page with &amp;quot;Introduction&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Introduction&lt;/div&gt;</summary>
		<author><name>Skshett2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024&amp;diff=154965</id>
		<title>CSC/ECE 517 Spring 2024</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024&amp;diff=154965"/>
		<updated>2024-04-08T02:53:42Z</updated>

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

		<summary type="html">&lt;p&gt;Skshett2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview of Expertiza ==&lt;br /&gt;
Expertiza is an open-source learning management system designed with Ruby on Rails, facilitating a myriad of functionalities including the creation of assignments, tests, assignment teams, and courses. It stands out for its comprehensive peer review system, allowing thorough feedback among teams and group members. The focal point of this project is to enhance the User, Institution, and Roles frontend components. The specific challenge addressed involves refactoring the existing non-Typescript questionnaire UI to employ Typescript. Consequently, the team is tasked with developing these components' User Interface utilizing React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
== Description of the Project ==&lt;br /&gt;
&lt;br /&gt;
* Objective: Refactor the non-Typescript frontend questionnaire UI of Expertiza to use Typescript and develop the User Interface using React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
* Key Tasks:&lt;br /&gt;
** Log in as a Super Admin.&lt;br /&gt;
** Navigate to Administrator settings to access and replicate 'Roles' and 'Institution' UIs.&lt;br /&gt;
** Replicate the 'Roles' and 'Institution' UIs using ReactJS, ensuring they retain full functionality within the new TypeScript and ReactJS framework.&lt;br /&gt;
&lt;br /&gt;
* Development Process:&lt;br /&gt;
** Understand the Existing System: Analyze the current Ruby on Rails implementation of Roles and Institution UIs, including data models, controllers, and views.&lt;br /&gt;
** Setup Development Environment: Establish a TypeScript and ReactJS environment for developing the new UIs.&lt;br /&gt;
** Design Components: Create React components corresponding to UI parts, focusing on state and props management.&lt;br /&gt;
** Implement Components: Develop these components in TypeScript, mirroring the existing UIs' functionality.&lt;br /&gt;
** Integrate Components: Incorporate the new components into the main application, ensuring compatibility and functionality with the backend.&lt;br /&gt;
** Review and Refactor: Enhance code quality through reviews and refactoring, emphasizing readability and efficiency.&lt;br /&gt;
&lt;br /&gt;
* Additional Features and Improvements:&lt;br /&gt;
** Implement role-based access restrictions for actions within the roles and institutions sections.&lt;br /&gt;
** Enhance UI with tooltips, improved table positioning, and pagination.&lt;br /&gt;
** Introduce a new column for displaying parent names.&lt;br /&gt;
** Enhance code quality by adding comments, removing obsolete code, and implementing form validations.&lt;br /&gt;
&lt;br /&gt;
* Outcome: The project aims to transition the Expertiza UI components for 'Roles' and 'Institution' from Ruby on Rails to a more modern, efficient TypeScript and ReactJS-based implementation, incorporating user role restrictions and various UI improvements for a better user experience.&lt;br /&gt;
&lt;br /&gt;
== Technologies Used ==&lt;br /&gt;
&lt;br /&gt;
* '''React.js''': A JavaScript library for building user interfaces, particularly single-page applications. React will be used to develop dynamic and responsive UI components.&lt;br /&gt;
&lt;br /&gt;
* '''TypeScript''': An open-source language that builds on JavaScript by adding static type definitions. TypeScript allows for writing clearer and more robust code, facilitating easier debugging and maintenance.&lt;br /&gt;
&lt;br /&gt;
* '''Ruby on Rails''': Although the focus is on refactoring the front end, understanding the existing Ruby on Rails backend is crucial. Rails is a server-side web application framework written in Ruby, following the model-view-controller (MVC) framework.&lt;br /&gt;
&lt;br /&gt;
== Changes Made ==&lt;br /&gt;
&lt;br /&gt;
1. '''Refactored the Questionnaire UI''': The existing non-TypeScript frontend of the questionnaire UI has been successfully transitioned to use TypeScript, enhancing code reliability and maintainability.&lt;br /&gt;
&lt;br /&gt;
2. '''Developed with React.js''': The 'Roles' and 'Institution' user interfaces have been rebuilt using React.js, ensuring dynamic and responsive behavior. The React components created are modular, reusable, and effectively manage state.&lt;br /&gt;
&lt;br /&gt;
3. '''Integrated TypeScript''': TypeScript has been implemented across the new UI components, providing better type-checking, reducing runtime errors, and facilitating easier debugging and maintenance.&lt;br /&gt;
&lt;br /&gt;
4. '''Analyzed Existing Backend''': A thorough analysis and understanding of the existing Ruby on Rails backend were achieved to ensure seamless integration and functionality with the new TypeScript and React.js frontend.&lt;br /&gt;
&lt;br /&gt;
5. '''UI Enhancements Implemented''': &lt;br /&gt;
Role-based access restrictions have been introduced to enhance security and user experience.&lt;br /&gt;
The user interface has been improved with intuitive navigational elements, tooltips for better guidance, enhanced table positioning, and pagination.&lt;br /&gt;
New UI elements, such as a column for displaying parent names, have been added where necessary.&lt;br /&gt;
&lt;br /&gt;
6. '''Code Quality and Maintenance Improvements''':&lt;br /&gt;
Detailed comments and documentation have been added to the new codebase for better understandability and maintainability.&lt;br /&gt;
Obsolete or redundant code segments have been removed to streamline the application.&lt;br /&gt;
Validations and error-handling mechanisms have been implemented to improve the robustness of the UI.&lt;br /&gt;
&lt;br /&gt;
7. '''Thorough Testing and Integration''': &lt;br /&gt;
The new UI components have been thoroughly tested both individually and within the application context to ensure correct functionality across different scenarios and data sets.&lt;br /&gt;
The new components have been integrated into the existing application infrastructure, ensuring compatibility and functional integrity.&lt;br /&gt;
&lt;br /&gt;
8. '''Review and Deployment Accomplished''':&lt;br /&gt;
Code reviews were conducted with the development team to identify and implement potential improvements or necessary adjustments.&lt;br /&gt;
The deployment of the updated application was prepared and executed, ensuring a smooth transition that did not adversely affect the existing user base.&lt;br /&gt;
&lt;br /&gt;
== UI Enhancements and Features in Screenshots ==&lt;br /&gt;
&lt;br /&gt;
Role-based access restrictions: The update role option is disabled based on the role of user.&lt;br /&gt;
[[File:Screenshot 2024-03-23 at 9.07.25 PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
A new column labeled &amp;quot;Parent Name&amp;quot; has been introduced on the Manage Role page, as illustrated in the accompanying screenshot. Additionally, the screenshot highlights the interactive feature where hovering over the 'Create Role' button, a functionality that is consistently applied to the 'Edit' and 'Delete' buttons as well. The layout of the table has been adjusted for optimal web page integration, and pagination has been implemented to enhance navigation and usability.&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.05.27_PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.06.05_PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
When creating a new role, the role name must not include any numeric characters:&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.08.04_PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
The files have been transitioned to TypeScript:&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.49.58_PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
Testing was initially not considered within the project's scope, given its emphasis on frontend development. Nonetheless, verifying the functionality and user experience of a website's interface is essential. To this end, manual testing procedures will be employed to ascertain the correct operation of the UI components. These tests include:&lt;br /&gt;
&lt;br /&gt;
# Verifying all the added button links to ensure they function correctly.&lt;br /&gt;
# Testing the navigation routes for all five components within the Administration Section on the website's navigation bar.&lt;br /&gt;
# Checking that the data is accurately displayed and corresponds with each specific component's page.&lt;br /&gt;
&lt;br /&gt;
== Contributors to this project ==&lt;br /&gt;
* '''Shubh Nisar''' (unityid: snisar, github: Shubh-Nisar)&lt;br /&gt;
* '''Aakarsh Satish''' (unityid: asatish2, github: Aakarsh-Satish)&lt;br /&gt;
* '''Sinchana Shetty''' (unityid: skshett2, github: sinchanashetty11)&lt;br /&gt;
* '''Github repo''' https://github.com/Shubh-Nisar/reimplementation-front-end&lt;br /&gt;
* '''Link to PR''' https://github.com/expertiza/reimplementation-front-end/pull/40&lt;/div&gt;</summary>
		<author><name>Skshett2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=153718</id>
		<title>CSC/ECE 517 Spring 2024 - E2428 Replicate Roles and Institution UIs ReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=153718"/>
		<updated>2024-03-24T20:48:27Z</updated>

		<summary type="html">&lt;p&gt;Skshett2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview of Expertiza ==&lt;br /&gt;
Expertiza is an open-source learning management system designed with Ruby on Rails, facilitating a myriad of functionalities including the creation of assignments, tests, assignment teams, and courses. It stands out for its comprehensive peer review system, allowing thorough feedback among teams and group members. The focal point of this project is to enhance the User, Institution, and Roles frontend components. The specific challenge addressed involves refactoring the existing non-Typescript questionnaire UI to employ Typescript. Consequently, the team is tasked with developing these components' User Interface utilizing React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
== Description of the Project ==&lt;br /&gt;
&lt;br /&gt;
* Objective: Refactor the non-Typescript frontend questionnaire UI of Expertiza to use Typescript and develop the User Interface using React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
* Key Tasks:&lt;br /&gt;
** Log in as a Super Admin.&lt;br /&gt;
** Navigate to Administrator settings to access and replicate 'Roles' and 'Institution' UIs.&lt;br /&gt;
** Replicate the 'Roles' and 'Institution' UIs using ReactJS, ensuring they retain full functionality within the new TypeScript and ReactJS framework.&lt;br /&gt;
&lt;br /&gt;
* Development Process:&lt;br /&gt;
** Understand the Existing System: Analyze the current Ruby on Rails implementation of Roles and Institution UIs, including data models, controllers, and views.&lt;br /&gt;
** Setup Development Environment: Establish a TypeScript and ReactJS environment for developing the new UIs.&lt;br /&gt;
** Design Components: Create React components corresponding to UI parts, focusing on state and props management.&lt;br /&gt;
** Implement Components: Develop these components in TypeScript, mirroring the existing UIs' functionality.&lt;br /&gt;
** Integrate Components: Incorporate the new components into the main application, ensuring compatibility and functionality with the backend.&lt;br /&gt;
** Review and Refactor: Enhance code quality through reviews and refactoring, emphasizing readability and efficiency.&lt;br /&gt;
&lt;br /&gt;
* Additional Features and Improvements:&lt;br /&gt;
** Implement role-based access restrictions for actions within the roles and institutions sections.&lt;br /&gt;
** Enhance UI with tooltips, improved table positioning, and pagination.&lt;br /&gt;
** Introduce a new column for displaying parent names.&lt;br /&gt;
** Enhance code quality by adding comments, removing obsolete code, and implementing form validations.&lt;br /&gt;
&lt;br /&gt;
* Outcome: The project aims to transition the Expertiza UI components for 'Roles' and 'Institution' from Ruby on Rails to a more modern, efficient TypeScript and ReactJS-based implementation, incorporating user role restrictions and various UI improvements for a better user experience.&lt;br /&gt;
&lt;br /&gt;
== Technologies Used ==&lt;br /&gt;
&lt;br /&gt;
* '''React.js''': A JavaScript library for building user interfaces, particularly single-page applications. React will be used to develop dynamic and responsive UI components.&lt;br /&gt;
&lt;br /&gt;
* '''TypeScript''': An open-source language that builds on JavaScript by adding static type definitions. TypeScript allows for writing clearer and more robust code, facilitating easier debugging and maintenance.&lt;br /&gt;
&lt;br /&gt;
* '''Ruby on Rails''': Although the focus is on refactoring the front end, understanding the existing Ruby on Rails backend is crucial. Rails is a server-side web application framework written in Ruby, following the model-view-controller (MVC) framework.&lt;br /&gt;
&lt;br /&gt;
== Changes Made ==&lt;br /&gt;
&lt;br /&gt;
1. '''Refactored the Questionnaire UI''': The existing non-TypeScript frontend of the questionnaire UI has been successfully transitioned to use TypeScript, enhancing code reliability and maintainability.&lt;br /&gt;
&lt;br /&gt;
2. '''Developed with React.js''': The 'Roles' and 'Institution' user interfaces have been rebuilt using React.js, ensuring dynamic and responsive behavior. The React components created are modular, reusable, and effectively manage state.&lt;br /&gt;
&lt;br /&gt;
3. '''Integrated TypeScript''': TypeScript has been implemented across the new UI components, providing better type-checking, reducing runtime errors, and facilitating easier debugging and maintenance.&lt;br /&gt;
&lt;br /&gt;
4. '''Analyzed Existing Backend''': A thorough analysis and understanding of the existing Ruby on Rails backend were achieved to ensure seamless integration and functionality with the new TypeScript and React.js frontend.&lt;br /&gt;
&lt;br /&gt;
5. '''UI Enhancements Implemented''': &lt;br /&gt;
Role-based access restrictions have been introduced to enhance security and user experience.&lt;br /&gt;
The user interface has been improved with intuitive navigational elements, tooltips for better guidance, enhanced table positioning, and pagination.&lt;br /&gt;
New UI elements, such as a column for displaying parent names, have been added where necessary.&lt;br /&gt;
&lt;br /&gt;
6. '''Code Quality and Maintenance Improvements''':&lt;br /&gt;
Detailed comments and documentation have been added to the new codebase for better understandability and maintainability.&lt;br /&gt;
Obsolete or redundant code segments have been removed to streamline the application.&lt;br /&gt;
Validations and error-handling mechanisms have been implemented to improve the robustness of the UI.&lt;br /&gt;
&lt;br /&gt;
7. '''Thorough Testing and Integration''': &lt;br /&gt;
The new UI components have been thoroughly tested both individually and within the application context to ensure correct functionality across different scenarios and data sets.&lt;br /&gt;
The new components have been integrated into the existing application infrastructure, ensuring compatibility and functional integrity.&lt;br /&gt;
&lt;br /&gt;
8. '''Review and Deployment Accomplished''':&lt;br /&gt;
Code reviews were conducted with the development team to identify and implement potential improvements or necessary adjustments.&lt;br /&gt;
The deployment of the updated application was prepared and executed, ensuring a smooth transition that did not adversely affect the existing user base.&lt;br /&gt;
&lt;br /&gt;
== UI Enhancements and Features in Screenshots ==&lt;br /&gt;
&lt;br /&gt;
Role-based access restrictions: The update role option is disabled based on the role of user.&lt;br /&gt;
[[File:Screenshot 2024-03-23 at 9.07.25 PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
A new column labeled &amp;quot;Parent Name&amp;quot; has been introduced on the Manage Role page, as illustrated in the accompanying screenshot. Additionally, the screenshot highlights the interactive feature where hovering over the 'Create Role' button, a functionality that is consistently applied to the 'Edit' and 'Delete' buttons as well. The layout of the table has been adjusted for optimal web page integration, and pagination has been implemented to enhance navigation and usability.&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.05.27_PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.06.05_PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
When creating a new role, the role name must not include any numeric characters:&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.08.04_PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
The files have been transitioned to TypeScript:&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.49.58_PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
Testing was initially not considered within the project's scope, given its emphasis on frontend development. Nonetheless, verifying the functionality and user experience of a website's interface is essential. To this end, manual testing procedures will be employed to ascertain the correct operation of the UI components. These tests include:&lt;br /&gt;
&lt;br /&gt;
# Verifying all the added button links to ensure they function correctly.&lt;br /&gt;
# Testing the navigation routes for all five components within the Administration Section on the website's navigation bar.&lt;br /&gt;
# Checking that the data is accurately displayed and corresponds with each specific component's page.&lt;br /&gt;
&lt;br /&gt;
== Contributors to this project ==&lt;br /&gt;
* '''Shubh Nisar''' (unityid: snisar, github: Shubh-Nisar)&lt;br /&gt;
* '''Aakarsh Satish''' (unityid: asatish, github: Aakarsh-Satish)&lt;br /&gt;
* '''Sinchana Shetty''' (unityid: skshett2, github: sinchanashetty11)&lt;br /&gt;
* '''Github repo''' https://github.com/Shubh-Nisar/reimplementation-front-end&lt;br /&gt;
* '''Link to PR''' https://github.com/expertiza/reimplementation-front-end/pull/40&lt;/div&gt;</summary>
		<author><name>Skshett2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=153467</id>
		<title>CSC/ECE 517 Spring 2024 - E2428 Replicate Roles and Institution UIs ReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=153467"/>
		<updated>2024-03-24T16:44:41Z</updated>

		<summary type="html">&lt;p&gt;Skshett2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview of Expertiza ==&lt;br /&gt;
Expertiza is an open-source learning management system designed with Ruby on Rails, facilitating a myriad of functionalities including the creation of assignments, tests, assignment teams, and courses. It stands out for its comprehensive peer review system, allowing thorough feedback among teams and group members. The focal point of this project is to enhance the User, Institution, and Roles frontend components. The specific challenge addressed involves refactoring the existing non-Typescript questionnaire UI to employ Typescript. Consequently, the team is tasked with developing these components' User Interface utilizing React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
== Description of the Project ==&lt;br /&gt;
&lt;br /&gt;
* Objective: Refactor the non-Typescript frontend questionnaire UI of Expertiza to use Typescript and develop the User Interface using React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
* Key Tasks:&lt;br /&gt;
** Log in as a Super Admin.&lt;br /&gt;
** Navigate to Administrator settings to access and replicate 'Roles' and 'Institution' UIs.&lt;br /&gt;
** Replicate the 'Roles' and 'Institution' UIs using ReactJS, ensuring they retain full functionality within the new TypeScript and ReactJS framework.&lt;br /&gt;
&lt;br /&gt;
* Development Process:&lt;br /&gt;
** Understand the Existing System: Analyze the current Ruby on Rails implementation of Roles and Institution UIs, including data models, controllers, and views.&lt;br /&gt;
** Setup Development Environment: Establish a TypeScript and ReactJS environment for developing the new UIs.&lt;br /&gt;
** Design Components: Create React components corresponding to UI parts, focusing on state and props management.&lt;br /&gt;
** Implement Components: Develop these components in TypeScript, mirroring the existing UIs' functionality.&lt;br /&gt;
** Integrate Components: Incorporate the new components into the main application, ensuring compatibility and functionality with the backend.&lt;br /&gt;
** Review and Refactor: Enhance code quality through reviews and refactoring, emphasizing readability and efficiency.&lt;br /&gt;
&lt;br /&gt;
* Additional Features and Improvements:&lt;br /&gt;
** Implement role-based access restrictions for actions within the roles and institutions sections.&lt;br /&gt;
** Enhance UI with tooltips, improved table positioning, and pagination.&lt;br /&gt;
** Introduce a new column for displaying parent names.&lt;br /&gt;
** Enhance code quality by adding comments, removing obsolete code, and implementing form validations.&lt;br /&gt;
&lt;br /&gt;
* Outcome: The project aims to transition the Expertiza UI components for 'Roles' and 'Institution' from Ruby on Rails to a more modern, efficient TypeScript and ReactJS-based implementation, incorporating user role restrictions and various UI improvements for a better user experience.&lt;br /&gt;
&lt;br /&gt;
== Technologies Used ==&lt;br /&gt;
&lt;br /&gt;
* '''React.js''': A JavaScript library for building user interfaces, particularly single-page applications. React will be used to develop dynamic and responsive UI components.&lt;br /&gt;
&lt;br /&gt;
* '''TypeScript''': An open-source language that builds on JavaScript by adding static type definitions. TypeScript allows for writing clearer and more robust code, facilitating easier debugging and maintenance.&lt;br /&gt;
&lt;br /&gt;
* '''Ruby on Rails''': Although the focus is on refactoring the front end, understanding the existing Ruby on Rails backend is crucial. Rails is a server-side web application framework written in Ruby, following the model-view-controller (MVC) framework.&lt;br /&gt;
&lt;br /&gt;
== Changes Made ==&lt;br /&gt;
&lt;br /&gt;
1. '''Refactored the Questionnaire UI''': The existing non-TypeScript frontend of the questionnaire UI has been successfully transitioned to use TypeScript, enhancing code reliability and maintainability.&lt;br /&gt;
&lt;br /&gt;
2. '''Developed with React.js''': The 'Roles' and 'Institution' user interfaces have been rebuilt using React.js, ensuring dynamic and responsive behavior. The React components created are modular, reusable, and effectively manage state.&lt;br /&gt;
&lt;br /&gt;
3. '''Integrated TypeScript''': TypeScript has been implemented across the new UI components, providing better type-checking, reducing runtime errors, and facilitating easier debugging and maintenance.&lt;br /&gt;
&lt;br /&gt;
4. '''Analyzed Existing Backend''': A thorough analysis and understanding of the existing Ruby on Rails backend were achieved to ensure seamless integration and functionality with the new TypeScript and React.js frontend.&lt;br /&gt;
&lt;br /&gt;
5. '''UI Enhancements Implemented''': &lt;br /&gt;
Role-based access restrictions have been introduced to enhance security and user experience.&lt;br /&gt;
The user interface has been improved with intuitive navigational elements, tooltips for better guidance, enhanced table positioning, and pagination.&lt;br /&gt;
New UI elements, such as a column for displaying parent names, have been added where necessary.&lt;br /&gt;
&lt;br /&gt;
6. '''Code Quality and Maintenance Improvements''':&lt;br /&gt;
Detailed comments and documentation have been added to the new codebase for better understandability and maintainability.&lt;br /&gt;
Obsolete or redundant code segments have been removed to streamline the application.&lt;br /&gt;
Validations and error-handling mechanisms have been implemented to improve the robustness of the UI.&lt;br /&gt;
&lt;br /&gt;
7. '''Thorough Testing and Integration''': &lt;br /&gt;
The new UI components have been thoroughly tested both individually and within the application context to ensure correct functionality across different scenarios and data sets.&lt;br /&gt;
The new components have been integrated into the existing application infrastructure, ensuring compatibility and functional integrity.&lt;br /&gt;
&lt;br /&gt;
8. '''Review and Deployment Accomplished''':&lt;br /&gt;
Code reviews were conducted with the development team to identify and implement potential improvements or necessary adjustments.&lt;br /&gt;
The deployment of the updated application was prepared and executed, ensuring a smooth transition that did not adversely affect the existing user base.&lt;br /&gt;
&lt;br /&gt;
== UI Enhancements and Features in Screenshots ==&lt;br /&gt;
&lt;br /&gt;
Role-based access restrictions: The update role option is disabled based on the role of user.&lt;br /&gt;
[[File:Screenshot 2024-03-23 at 9.07.25 PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
A new column labeled &amp;quot;Parent Name&amp;quot; has been introduced on the Manage Role page, as illustrated in the accompanying screenshot. Additionally, the screenshot highlights the interactive feature where hovering over the 'Create Role' button, a functionality that is consistently applied to the 'Edit' and 'Delete' buttons as well. The layout of the table has been adjusted for optimal web page integration, and pagination has been implemented to enhance navigation and usability.&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.05.27_PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.06.05_PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
When creating a new role, the role name must not include any numeric characters:&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.08.04_PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
The files have been transitioned to TypeScript:&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.49.58_PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
Testing was initially not considered within the project's scope, given its emphasis on frontend development. Nonetheless, verifying the functionality and user experience of a website's interface is essential. To this end, manual testing procedures will be employed to ascertain the correct operation of the UI components. These tests include:&lt;br /&gt;
&lt;br /&gt;
# Verifying all the added button links to ensure they function correctly.&lt;br /&gt;
# Testing the navigation routes for all five components within the Administration Section on the website's navigation bar.&lt;br /&gt;
# Checking that the data is accurately displayed and corresponds with each specific component's page.&lt;br /&gt;
&lt;br /&gt;
== Contributors to this project ==&lt;br /&gt;
* '''Shubh Nisar''' (unityid: snisar, github: Shubh-Nisar)&lt;br /&gt;
* '''Aakarsh Satish''' (unityid: asatish, github: Aakarsh-Satish)&lt;br /&gt;
* '''Sinchana Shetty''' (unityid: skshett2, github: sinchanashetty11)&lt;br /&gt;
* '''Github repo''' https://github.com/Shubh-Nisar/reimplementation-front-end&lt;br /&gt;
* '''Link to PR''' https://github.com/expertiza/reimplementation-front-end/pull/7&lt;/div&gt;</summary>
		<author><name>Skshett2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=153341</id>
		<title>CSC/ECE 517 Spring 2024 - E2428 Replicate Roles and Institution UIs ReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=153341"/>
		<updated>2024-03-24T04:23:49Z</updated>

		<summary type="html">&lt;p&gt;Skshett2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview of Expertiza ==&lt;br /&gt;
Expertiza is an open-source learning management system designed with Ruby on Rails, facilitating a myriad of functionalities including the creation of assignments, tests, assignment teams, and courses. It stands out for its comprehensive peer review system, allowing thorough feedback among teams and group members. The focal point of this project is to enhance the User, Institution, and Roles frontend components. The specific challenge addressed involves refactoring the existing non-Typescript questionnaire UI to employ Typescript. Consequently, the team is tasked with developing these components' User Interface utilizing React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
== Description of the Project ==&lt;br /&gt;
&lt;br /&gt;
* Objective: Refactor the non-Typescript frontend questionnaire UI of Expertiza to use Typescript and develop the User Interface using React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
* Key Tasks:&lt;br /&gt;
** Log in as a Super Admin.&lt;br /&gt;
** Navigate to Administrator settings to access and replicate 'Roles' and 'Institution' UIs.&lt;br /&gt;
** Replicate the 'Roles' and 'Institution' UIs using ReactJS, ensuring they retain full functionality within the new TypeScript and ReactJS framework.&lt;br /&gt;
&lt;br /&gt;
* Development Process:&lt;br /&gt;
** Understand the Existing System: Analyze the current Ruby on Rails implementation of Roles and Institution UIs, including data models, controllers, and views.&lt;br /&gt;
** Setup Development Environment: Establish a TypeScript and ReactJS environment for developing the new UIs.&lt;br /&gt;
** Design Components: Create React components corresponding to UI parts, focusing on state and props management.&lt;br /&gt;
** Implement Components: Develop these components in TypeScript, mirroring the existing UIs' functionality.&lt;br /&gt;
** Integrate Components: Incorporate the new components into the main application, ensuring compatibility and functionality with the backend.&lt;br /&gt;
** Review and Refactor: Enhance code quality through reviews and refactoring, emphasizing readability and efficiency.&lt;br /&gt;
&lt;br /&gt;
* Additional Features and Improvements:&lt;br /&gt;
** Implement role-based access restrictions for actions within the roles and institutions sections.&lt;br /&gt;
** Enhance UI with tooltips, improved table positioning, and pagination.&lt;br /&gt;
** Introduce a new column for displaying parent names.&lt;br /&gt;
** Enhance code quality by adding comments, removing obsolete code, and implementing form validations.&lt;br /&gt;
&lt;br /&gt;
* Outcome: The project aims to transition the Expertiza UI components for 'Roles' and 'Institution' from Ruby on Rails to a more modern, efficient TypeScript and ReactJS-based implementation, incorporating user role restrictions and various UI improvements for a better user experience.&lt;br /&gt;
&lt;br /&gt;
== Technologies Used ==&lt;br /&gt;
&lt;br /&gt;
* '''React.js''': A JavaScript library for building user interfaces, particularly single-page applications. React will be used to develop dynamic and responsive UI components.&lt;br /&gt;
&lt;br /&gt;
* '''TypeScript''': An open-source language that builds on JavaScript by adding static type definitions. TypeScript allows for writing clearer and more robust code, facilitating easier debugging and maintenance.&lt;br /&gt;
&lt;br /&gt;
* '''Ruby on Rails''': Although the focus is on refactoring the front end, understanding the existing Ruby on Rails backend is crucial. Rails is a server-side web application framework written in Ruby, following the model-view-controller (MVC) framework.&lt;br /&gt;
&lt;br /&gt;
== Changes Made ==&lt;br /&gt;
&lt;br /&gt;
1. '''Refactored the Questionnaire UI''': The existing non-TypeScript frontend of the questionnaire UI has been successfully transitioned to use TypeScript, enhancing code reliability and maintainability.&lt;br /&gt;
&lt;br /&gt;
2. '''Developed with React.js''': The 'Roles' and 'Institution' user interfaces have been rebuilt using React.js, ensuring dynamic and responsive behavior. The React components created are modular, reusable, and effectively manage state.&lt;br /&gt;
&lt;br /&gt;
3. '''Integrated TypeScript''': TypeScript has been implemented across the new UI components, providing better type-checking, reducing runtime errors, and facilitating easier debugging and maintenance.&lt;br /&gt;
&lt;br /&gt;
4. '''Analyzed Existing Backend''': A thorough analysis and understanding of the existing Ruby on Rails backend were achieved to ensure seamless integration and functionality with the new TypeScript and React.js frontend.&lt;br /&gt;
&lt;br /&gt;
5. '''UI Enhancements Implemented''': &lt;br /&gt;
    - Role-based access restrictions have been introduced to enhance security and user experience.&lt;br /&gt;
    - The user interface has been improved with intuitive navigational elements, tooltips for better guidance, enhanced table positioning, and pagination.&lt;br /&gt;
    - New UI elements, such as a column for displaying parent names, have been added where necessary.&lt;br /&gt;
&lt;br /&gt;
6. '''Code Quality and Maintenance Improvements''':&lt;br /&gt;
    - Detailed comments and documentation have been added to the new codebase for better understandability and maintainability.&lt;br /&gt;
    - Obsolete or redundant code segments have been removed to streamline the application.&lt;br /&gt;
    - Validations and error-handling mechanisms have been implemented to improve the robustness of the UI.&lt;br /&gt;
&lt;br /&gt;
7. '''Thorough Testing and Integration''': &lt;br /&gt;
    - The new UI components have been thoroughly tested both individually and within the application context to ensure correct functionality across different scenarios and data sets.&lt;br /&gt;
    - The new components have been integrated into the existing application infrastructure, ensuring compatibility and functional integrity.&lt;br /&gt;
&lt;br /&gt;
8. '''Review and Deployment Accomplished''':&lt;br /&gt;
    - Code reviews were conducted with the development team to identify and implement potential improvements or necessary adjustments.&lt;br /&gt;
    - The deployment of the updated application was prepared and executed, ensuring a smooth transition that did not adversely affect the existing user base.&lt;br /&gt;
&lt;br /&gt;
== UI Enhancements and Features in Screenshots ==&lt;br /&gt;
&lt;br /&gt;
Role-based access restrictions: The update role option is disabled based on the role of user.&lt;br /&gt;
[[File:Screenshot 2024-03-23 at 9.07.25 PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
A new column labeled &amp;quot;Parent Name&amp;quot; has been introduced on the Manage Role page, as illustrated in the accompanying screenshot. Additionally, the screenshot highlights the interactive feature where hovering over the 'Create Role' button, a functionality that is consistently applied to the 'Edit' and 'Delete' buttons as well. The layout of the table has been adjusted for optimal web page integration, and pagination has been implemented to enhance navigation and usability.&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.05.27_PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.06.05_PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
When creating a new role, the role name must not include any numeric characters:&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.08.04_PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
The files have been transitioned to TypeScript:&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.49.58_PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
Testing was initially not considered within the project's scope, given its emphasis on frontend development. Nonetheless, verifying the functionality and user experience of a website's interface is essential. To this end, manual testing procedures will be employed to ascertain the correct operation of the UI components. These tests include:&lt;br /&gt;
&lt;br /&gt;
# Verifying all the added button links to ensure they function correctly.&lt;br /&gt;
# Testing the navigation routes for all five components within the Administration Section on the website's navigation bar.&lt;br /&gt;
# Checking that the data is accurately displayed and corresponds with each specific component's page.&lt;br /&gt;
&lt;br /&gt;
== Contributors to this project ==&lt;br /&gt;
* '''Shubh Nisar''' (unityid: snisar, github: Shubh-Nisar)&lt;br /&gt;
* '''Aakarsh Satish''' (unityid: asatish, github: Aakarsh-Satish)&lt;br /&gt;
* '''Sinchana Shetty''' (unityid: skshett2, github: sinchanashetty11)&lt;br /&gt;
* '''Github repo''' https://github.com/Shubh-Nisar/reimplementation-front-end&lt;br /&gt;
* '''Link to PR''' https://github.com/expertiza/reimplementation-front-end/pull/7&lt;/div&gt;</summary>
		<author><name>Skshett2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=153340</id>
		<title>CSC/ECE 517 Spring 2024 - E2428 Replicate Roles and Institution UIs ReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=153340"/>
		<updated>2024-03-24T04:16:41Z</updated>

		<summary type="html">&lt;p&gt;Skshett2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview of Expertiza ==&lt;br /&gt;
Expertiza is an open-source learning management system designed with Ruby on Rails, facilitating a myriad of functionalities including the creation of assignments, tests, assignment teams, and courses. It stands out for its comprehensive peer review system, allowing thorough feedback among teams and group members. The focal point of this project is to enhance the User, Institution, and Roles frontend components. The specific challenge addressed involves refactoring the existing non-Typescript questionnaire UI to employ Typescript. Consequently, the team is tasked with developing these components' User Interface utilizing React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
== Description of the Project ==&lt;br /&gt;
&lt;br /&gt;
* Objective: Refactor the non-Typescript frontend questionnaire UI of Expertiza to use Typescript and develop the User Interface using React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
* Key Tasks:&lt;br /&gt;
** Log in as a Super Admin.&lt;br /&gt;
** Navigate to Administrator settings to access and replicate 'Roles' and 'Institution' UIs.&lt;br /&gt;
** Replicate the 'Roles' and 'Institution' UIs using ReactJS, ensuring they retain full functionality within the new TypeScript and ReactJS framework.&lt;br /&gt;
&lt;br /&gt;
* Development Process:&lt;br /&gt;
** Understand the Existing System: Analyze the current Ruby on Rails implementation of Roles and Institution UIs, including data models, controllers, and views.&lt;br /&gt;
** Setup Development Environment: Establish a TypeScript and ReactJS environment for developing the new UIs.&lt;br /&gt;
** Design Components: Create React components corresponding to UI parts, focusing on state and props management.&lt;br /&gt;
** Implement Components: Develop these components in TypeScript, mirroring the existing UIs' functionality.&lt;br /&gt;
** Integrate Components: Incorporate the new components into the main application, ensuring compatibility and functionality with the backend.&lt;br /&gt;
** Review and Refactor: Enhance code quality through reviews and refactoring, emphasizing readability and efficiency.&lt;br /&gt;
&lt;br /&gt;
* Additional Features and Improvements:&lt;br /&gt;
** Implement role-based access restrictions for actions within the roles and institutions sections.&lt;br /&gt;
** Enhance UI with tooltips, improved table positioning, and pagination.&lt;br /&gt;
** Introduce a new column for displaying parent names.&lt;br /&gt;
** Enhance code quality by adding comments, removing obsolete code, and implementing form validations.&lt;br /&gt;
&lt;br /&gt;
* Outcome: The project aims to transition the Expertiza UI components for 'Roles' and 'Institution' from Ruby on Rails to a more modern, efficient TypeScript and ReactJS-based implementation, incorporating user role restrictions and various UI improvements for a better user experience.&lt;br /&gt;
&lt;br /&gt;
== Technologies Used ==&lt;br /&gt;
&lt;br /&gt;
* '''React.js''': A JavaScript library for building user interfaces, particularly single-page applications. React will be used to develop dynamic and responsive UI components.&lt;br /&gt;
&lt;br /&gt;
* '''TypeScript''': An open-source language that builds on JavaScript by adding static type definitions. TypeScript allows for writing clearer and more robust code, facilitating easier debugging and maintenance.&lt;br /&gt;
&lt;br /&gt;
* '''Ruby on Rails''': Although the focus is on refactoring the front end, understanding the existing Ruby on Rails backend is crucial. Rails is a server-side web application framework written in Ruby, following the model-view-controller (MVC) framework.&lt;br /&gt;
&lt;br /&gt;
== Changes Made ==&lt;br /&gt;
&lt;br /&gt;
1. '''Refactored the Questionnaire UI''': The existing non-TypeScript frontend of the questionnaire UI has been successfully transitioned to use TypeScript, enhancing code reliability and maintainability.&lt;br /&gt;
&lt;br /&gt;
2. '''Developed with React.js''': The 'Roles' and 'Institution' user interfaces have been rebuilt using React.js, ensuring dynamic and responsive behavior. The React components created are modular, reusable, and effectively manage state.&lt;br /&gt;
&lt;br /&gt;
3. '''Integrated TypeScript''': TypeScript has been implemented across the new UI components, providing better type-checking, reducing runtime errors, and facilitating easier debugging and maintenance.&lt;br /&gt;
&lt;br /&gt;
4. '''Analyzed Existing Backend''': A thorough analysis and understanding of the existing Ruby on Rails backend were achieved to ensure seamless integration and functionality with the new TypeScript and React.js frontend.&lt;br /&gt;
&lt;br /&gt;
5. '''UI Enhancements Implemented''': &lt;br /&gt;
    - Role-based access restrictions have been introduced to enhance security and user experience.&lt;br /&gt;
    - The user interface has been improved with intuitive navigational elements, tooltips for better guidance, enhanced table positioning, and pagination.&lt;br /&gt;
    - New UI elements, such as a column for displaying parent names, have been added where necessary.&lt;br /&gt;
&lt;br /&gt;
6. '''Code Quality and Maintenance Improvements''':&lt;br /&gt;
    - Detailed comments and documentation have been added to the new codebase for better understandability and maintainability.&lt;br /&gt;
    - Obsolete or redundant code segments have been removed to streamline the application.&lt;br /&gt;
    - Validations and error-handling mechanisms have been implemented to improve the robustness of the UI.&lt;br /&gt;
&lt;br /&gt;
7. '''Thorough Testing and Integration''': &lt;br /&gt;
    - The new UI components have been thoroughly tested both individually and within the application context to ensure correct functionality across different scenarios and data sets.&lt;br /&gt;
    - The new components have been integrated into the existing application infrastructure, ensuring compatibility and functional integrity.&lt;br /&gt;
&lt;br /&gt;
8. '''Review and Deployment Accomplished''':&lt;br /&gt;
    - Code reviews were conducted with the development team to identify and implement potential improvements or necessary adjustments.&lt;br /&gt;
    - The deployment of the updated application was prepared and executed, ensuring a smooth transition that did not adversely affect the existing user base.&lt;br /&gt;
&lt;br /&gt;
== UI Enhancements and Features in Screenshots ==&lt;br /&gt;
&lt;br /&gt;
Role-based access restrictions: The update role option is disabled based on the role of user.&lt;br /&gt;
[[File:Screenshot 2024-03-23 at 9.07.25 PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
A new column labeled &amp;quot;Parent Name&amp;quot; has been introduced on the Manage Role page, as illustrated in the accompanying screenshot. Additionally, the screenshot highlights the interactive feature where hovering over the 'Create Role' button, a functionality that is consistently applied to the 'Edit' and 'Delete' buttons as well. The layout of the table has been adjusted for optimal web page integration, and pagination has been implemented to enhance navigation and usability.&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.05.27_PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.06.05_PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
When creating a new role, the role name must not include any numeric characters:&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.08.04_PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
The files have been transitioned to TypeScript:&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.49.58_PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
Testing was initially not considered within the project's scope, given its emphasis on frontend development. Nonetheless, verifying the functionality and user experience of a website's interface is essential. To this end, manual testing procedures will be employed to ascertain the correct operation of the UI components. These tests include:&lt;br /&gt;
&lt;br /&gt;
# Verifying all the added button links to ensure they function correctly.&lt;br /&gt;
# Testing the navigation routes for all five components within the Administration Section on the website's navigation bar.&lt;br /&gt;
# Checking that the data is accurately displayed and corresponds with each specific component's page.&lt;/div&gt;</summary>
		<author><name>Skshett2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=153314</id>
		<title>CSC/ECE 517 Spring 2024 - E2428 Replicate Roles and Institution UIs ReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=153314"/>
		<updated>2024-03-24T01:51:59Z</updated>

		<summary type="html">&lt;p&gt;Skshett2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview of Expertiza ==&lt;br /&gt;
Expertiza is an open-source learning management system designed with Ruby on Rails, facilitating a myriad of functionalities including the creation of assignments, tests, assignment teams, and courses. It stands out for its comprehensive peer review system, allowing thorough feedback among teams and group members. The focal point of this project is to enhance the User, Institution, and Roles frontend components. The specific challenge addressed involves refactoring the existing non-Typescript questionnaire UI to employ Typescript. Consequently, the team is tasked with developing these components' User Interface utilizing React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
== Description of the Project ==&lt;br /&gt;
&lt;br /&gt;
* Objective: Refactor the non-Typescript frontend questionnaire UI of Expertiza to use Typescript and develop the User Interface using React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
* Key Tasks:&lt;br /&gt;
** Log in as a Super Admin.&lt;br /&gt;
** Navigate to Administrator settings to access and replicate 'Roles' and 'Institution' UIs.&lt;br /&gt;
** Replicate the 'Roles' and 'Institution' UIs using ReactJS, ensuring they retain full functionality within the new TypeScript and ReactJS framework.&lt;br /&gt;
&lt;br /&gt;
* Development Process:&lt;br /&gt;
** Understand the Existing System: Analyze the current Ruby on Rails implementation of Roles and Institution UIs, including data models, controllers, and views.&lt;br /&gt;
** Setup Development Environment: Establish a TypeScript and ReactJS environment for developing the new UIs.&lt;br /&gt;
** Design Components: Create React components corresponding to UI parts, focusing on state and props management.&lt;br /&gt;
** Implement Components: Develop these components in TypeScript, mirroring the existing UIs' functionality.&lt;br /&gt;
** Integrate Components: Incorporate the new components into the main application, ensuring compatibility and functionality with the backend.&lt;br /&gt;
** Review and Refactor: Enhance code quality through reviews and refactoring, emphasizing readability and efficiency.&lt;br /&gt;
&lt;br /&gt;
* Additional Features and Improvements:&lt;br /&gt;
** Implement role-based access restrictions for actions within the roles and institutions sections.&lt;br /&gt;
** Enhance UI with tooltips, improved table positioning, and pagination.&lt;br /&gt;
** Introduce a new column for displaying parent names.&lt;br /&gt;
** Enhance code quality by adding comments, removing obsolete code, and implementing form validations.&lt;br /&gt;
&lt;br /&gt;
* Outcome: The project aims to transition the Expertiza UI components for 'Roles' and 'Institution' from Ruby on Rails to a more modern, efficient TypeScript and ReactJS-based implementation, incorporating user role restrictions and various UI improvements for a better user experience.&lt;br /&gt;
&lt;br /&gt;
== Technologies Used ==&lt;br /&gt;
&lt;br /&gt;
* '''React.js''': A JavaScript library for building user interfaces, particularly single-page applications. React will be used to develop dynamic and responsive UI components.&lt;br /&gt;
&lt;br /&gt;
* '''TypeScript''': An open-source language that builds on JavaScript by adding static type definitions. TypeScript allows for writing clearer and more robust code, facilitating easier debugging and maintenance.&lt;br /&gt;
&lt;br /&gt;
* '''Ruby on Rails''': Although the focus is on refactoring the front end, understanding the existing Ruby on Rails backend is crucial. Rails is a server-side web application framework written in Ruby, following the model-view-controller (MVC) framework.&lt;br /&gt;
&lt;br /&gt;
== Changes Made ==&lt;br /&gt;
&lt;br /&gt;
1. '''Refactored the Questionnaire UI''': The existing non-TypeScript frontend of the questionnaire UI has been successfully transitioned to use TypeScript, enhancing code reliability and maintainability.&lt;br /&gt;
&lt;br /&gt;
2. '''Developed with React.js''': The 'Roles' and 'Institution' user interfaces have been rebuilt using React.js, ensuring dynamic and responsive behavior. The React components created are modular, reusable, and effectively manage state.&lt;br /&gt;
&lt;br /&gt;
3. '''Integrated TypeScript''': TypeScript has been implemented across the new UI components, providing better type-checking, reducing runtime errors, and facilitating easier debugging and maintenance.&lt;br /&gt;
&lt;br /&gt;
4. '''Analyzed Existing Backend''': A thorough analysis and understanding of the existing Ruby on Rails backend were achieved to ensure seamless integration and functionality with the new TypeScript and React.js frontend.&lt;br /&gt;
&lt;br /&gt;
5. '''UI Enhancements Implemented''': &lt;br /&gt;
    - Role-based access restrictions have been introduced to enhance security and user experience.&lt;br /&gt;
    - The user interface has been improved with intuitive navigational elements, tooltips for better guidance, enhanced table positioning, and pagination.&lt;br /&gt;
    - New UI elements, such as a column for displaying parent names, have been added where necessary.&lt;br /&gt;
&lt;br /&gt;
6. '''Code Quality and Maintenance Improvements''':&lt;br /&gt;
    - Detailed comments and documentation have been added to the new codebase for better understandability and maintainability.&lt;br /&gt;
    - Obsolete or redundant code segments have been removed to streamline the application.&lt;br /&gt;
    - Validations and error-handling mechanisms have been implemented to improve the robustness of the UI.&lt;br /&gt;
&lt;br /&gt;
7. '''Thorough Testing and Integration''': &lt;br /&gt;
    - The new UI components have been thoroughly tested both individually and within the application context to ensure correct functionality across different scenarios and data sets.&lt;br /&gt;
    - The new components have been integrated into the existing application infrastructure, ensuring compatibility and functional integrity.&lt;br /&gt;
&lt;br /&gt;
8. '''Review and Deployment Accomplished''':&lt;br /&gt;
    - Code reviews were conducted with the development team to identify and implement potential improvements or necessary adjustments.&lt;br /&gt;
    - The deployment of the updated application was prepared and executed, ensuring a smooth transition that did not adversely affect the existing user base.&lt;br /&gt;
&lt;br /&gt;
== UI Enhancements and Features in Screenshots ==&lt;br /&gt;
&lt;br /&gt;
Role-based access restrictions: The update role option is disabled based on the role of user.&lt;br /&gt;
[[File:Screenshot 2024-03-23 at 9.07.25 PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
A new column labeled &amp;quot;Parent Name&amp;quot; has been introduced on the Manage Role page, as illustrated in the accompanying screenshot. Additionally, the screenshot highlights the interactive feature where hovering over the 'Create Role' button, a functionality that is consistently applied to the 'Edit' and 'Delete' buttons as well. The layout of the table has been adjusted for optimal web page integration, and pagination has been implemented to enhance navigation and usability.&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.05.27_PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.06.05_PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
When creating a new role, the role name must not include any numeric characters:&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.08.04_PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
The files have been transitioned to TypeScript:&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.49.58_PM.png |1000px|center]]&lt;/div&gt;</summary>
		<author><name>Skshett2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=153313</id>
		<title>CSC/ECE 517 Spring 2024 - E2428 Replicate Roles and Institution UIs ReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=153313"/>
		<updated>2024-03-24T01:51:20Z</updated>

		<summary type="html">&lt;p&gt;Skshett2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview of Expertiza ==&lt;br /&gt;
Expertiza is an open-source learning management system designed with Ruby on Rails, facilitating a myriad of functionalities including the creation of assignments, tests, assignment teams, and courses. It stands out for its comprehensive peer review system, allowing thorough feedback among teams and group members. The focal point of this project is to enhance the User, Institution, and Roles frontend components. The specific challenge addressed involves refactoring the existing non-Typescript questionnaire UI to employ Typescript. Consequently, the team is tasked with developing these components' User Interface utilizing React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
== Description of the Project ==&lt;br /&gt;
&lt;br /&gt;
* Objective: Refactor the non-Typescript frontend questionnaire UI of Expertiza to use Typescript and develop the User Interface using React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
* Key Tasks:&lt;br /&gt;
** Log in as a Super Admin.&lt;br /&gt;
** Navigate to Administrator settings to access and replicate 'Roles' and 'Institution' UIs.&lt;br /&gt;
** Replicate the 'Roles' and 'Institution' UIs using ReactJS, ensuring they retain full functionality within the new TypeScript and ReactJS framework.&lt;br /&gt;
&lt;br /&gt;
* Development Process:&lt;br /&gt;
** Understand the Existing System: Analyze the current Ruby on Rails implementation of Roles and Institution UIs, including data models, controllers, and views.&lt;br /&gt;
** Setup Development Environment: Establish a TypeScript and ReactJS environment for developing the new UIs.&lt;br /&gt;
** Design Components: Create React components corresponding to UI parts, focusing on state and props management.&lt;br /&gt;
** Implement Components: Develop these components in TypeScript, mirroring the existing UIs' functionality.&lt;br /&gt;
** Integrate Components: Incorporate the new components into the main application, ensuring compatibility and functionality with the backend.&lt;br /&gt;
** Review and Refactor: Enhance code quality through reviews and refactoring, emphasizing readability and efficiency.&lt;br /&gt;
&lt;br /&gt;
* Additional Features and Improvements:&lt;br /&gt;
** Implement role-based access restrictions for actions within the roles and institutions sections.&lt;br /&gt;
** Enhance UI with tooltips, improved table positioning, and pagination.&lt;br /&gt;
** Introduce a new column for displaying parent names.&lt;br /&gt;
** Enhance code quality by adding comments, removing obsolete code, and implementing form validations.&lt;br /&gt;
&lt;br /&gt;
* Outcome: The project aims to transition the Expertiza UI components for 'Roles' and 'Institution' from Ruby on Rails to a more modern, efficient TypeScript and ReactJS-based implementation, incorporating user role restrictions and various UI improvements for a better user experience.&lt;br /&gt;
&lt;br /&gt;
== Technologies Used ==&lt;br /&gt;
&lt;br /&gt;
* '''React.js''': A JavaScript library for building user interfaces, particularly single-page applications. React will be used to develop dynamic and responsive UI components.&lt;br /&gt;
&lt;br /&gt;
* '''TypeScript''': An open-source language that builds on JavaScript by adding static type definitions. TypeScript allows for writing clearer and more robust code, facilitating easier debugging and maintenance.&lt;br /&gt;
&lt;br /&gt;
* '''Ruby on Rails''': Although the focus is on refactoring the front end, understanding the existing Ruby on Rails backend is crucial. Rails is a server-side web application framework written in Ruby, following the model-view-controller (MVC) framework.&lt;br /&gt;
&lt;br /&gt;
== Changes Made ==&lt;br /&gt;
&lt;br /&gt;
1. '''Refactored the Questionnaire UI''': The existing non-TypeScript frontend of the questionnaire UI has been successfully transitioned to use TypeScript, enhancing code reliability and maintainability.&lt;br /&gt;
&lt;br /&gt;
2. '''Developed with React.js''': The 'Roles' and 'Institution' user interfaces have been rebuilt using React.js, ensuring dynamic and responsive behavior. The React components created are modular, reusable, and effectively manage state.&lt;br /&gt;
&lt;br /&gt;
3. '''Integrated TypeScript''': TypeScript has been implemented across the new UI components, providing better type-checking, reducing runtime errors, and facilitating easier debugging and maintenance.&lt;br /&gt;
&lt;br /&gt;
4. '''Analyzed Existing Backend''': A thorough analysis and understanding of the existing Ruby on Rails backend were achieved to ensure seamless integration and functionality with the new TypeScript and React.js frontend.&lt;br /&gt;
&lt;br /&gt;
5. '''UI Enhancements Implemented''': &lt;br /&gt;
    - Role-based access restrictions have been introduced to enhance security and user experience.&lt;br /&gt;
    - The user interface has been improved with intuitive navigational elements, tooltips for better guidance, enhanced table positioning, and pagination.&lt;br /&gt;
    - New UI elements, such as a column for displaying parent names, have been added where necessary.&lt;br /&gt;
&lt;br /&gt;
6. '''Code Quality and Maintenance Improvements''':&lt;br /&gt;
    - Detailed comments and documentation have been added to the new codebase for better understandability and maintainability.&lt;br /&gt;
    - Obsolete or redundant code segments have been removed to streamline the application.&lt;br /&gt;
    - Validations and error-handling mechanisms have been implemented to improve the robustness of the UI.&lt;br /&gt;
&lt;br /&gt;
7. '''Thorough Testing and Integration''': &lt;br /&gt;
    - The new UI components have been thoroughly tested both individually and within the application context to ensure correct functionality across different scenarios and data sets.&lt;br /&gt;
    - The new components have been integrated into the existing application infrastructure, ensuring compatibility and functional integrity.&lt;br /&gt;
&lt;br /&gt;
8. '''Review and Deployment Accomplished''':&lt;br /&gt;
    - Code reviews were conducted with the development team to identify and implement potential improvements or necessary adjustments.&lt;br /&gt;
    - The deployment of the updated application was prepared and executed, ensuring a smooth transition that did not adversely affect the existing user base.&lt;br /&gt;
&lt;br /&gt;
== UI Enhancements and Features in Screenshots ==&lt;br /&gt;
&lt;br /&gt;
Role-based access restrictions: The update role option is disabled based on the role of user.&lt;br /&gt;
[[File:Screenshot 2024-03-23 at 9.07.25 PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
A new column labeled &amp;quot;Parent Name&amp;quot; has been introduced on the Manage Role page, as illustrated in the accompanying screenshot. Additionally, the screenshot highlights the interactive feature where hovering over the 'Create Role' button, a functionality that is consistently applied to the 'Edit' and 'Delete' buttons as well. The layout of the table has been adjusted for optimal web page integration, and pagination has been implemented to enhance navigation and usability.&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.05.27_PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.06.05_PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
When creating a new role, the role name must not include any numeric characters:&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.08.04_PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
The files have been transitioned to TypeScript:&lt;br /&gt;
[[Screenshot_2024-03-23_at_9.49.58_PM.png |1000px|center]]&lt;/div&gt;</summary>
		<author><name>Skshett2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2024-03-23_at_9.49.58_PM.png&amp;diff=153312</id>
		<title>File:Screenshot 2024-03-23 at 9.49.58 PM.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2024-03-23_at_9.49.58_PM.png&amp;diff=153312"/>
		<updated>2024-03-24T01:51:03Z</updated>

		<summary type="html">&lt;p&gt;Skshett2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Skshett2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=153311</id>
		<title>CSC/ECE 517 Spring 2024 - E2428 Replicate Roles and Institution UIs ReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=153311"/>
		<updated>2024-03-24T01:46:07Z</updated>

		<summary type="html">&lt;p&gt;Skshett2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview of Expertiza ==&lt;br /&gt;
Expertiza is an open-source learning management system designed with Ruby on Rails, facilitating a myriad of functionalities including the creation of assignments, tests, assignment teams, and courses. It stands out for its comprehensive peer review system, allowing thorough feedback among teams and group members. The focal point of this project is to enhance the User, Institution, and Roles frontend components. The specific challenge addressed involves refactoring the existing non-Typescript questionnaire UI to employ Typescript. Consequently, the team is tasked with developing these components' User Interface utilizing React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
== Description of the Project ==&lt;br /&gt;
&lt;br /&gt;
* Objective: Refactor the non-Typescript frontend questionnaire UI of Expertiza to use Typescript and develop the User Interface using React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
* Key Tasks:&lt;br /&gt;
** Log in as a Super Admin.&lt;br /&gt;
** Navigate to Administrator settings to access and replicate 'Roles' and 'Institution' UIs.&lt;br /&gt;
** Replicate the 'Roles' and 'Institution' UIs using ReactJS, ensuring they retain full functionality within the new TypeScript and ReactJS framework.&lt;br /&gt;
&lt;br /&gt;
* Development Process:&lt;br /&gt;
** Understand the Existing System: Analyze the current Ruby on Rails implementation of Roles and Institution UIs, including data models, controllers, and views.&lt;br /&gt;
** Setup Development Environment: Establish a TypeScript and ReactJS environment for developing the new UIs.&lt;br /&gt;
** Design Components: Create React components corresponding to UI parts, focusing on state and props management.&lt;br /&gt;
** Implement Components: Develop these components in TypeScript, mirroring the existing UIs' functionality.&lt;br /&gt;
** Integrate Components: Incorporate the new components into the main application, ensuring compatibility and functionality with the backend.&lt;br /&gt;
** Review and Refactor: Enhance code quality through reviews and refactoring, emphasizing readability and efficiency.&lt;br /&gt;
&lt;br /&gt;
* Additional Features and Improvements:&lt;br /&gt;
** Implement role-based access restrictions for actions within the roles and institutions sections.&lt;br /&gt;
** Enhance UI with tooltips, improved table positioning, and pagination.&lt;br /&gt;
** Introduce a new column for displaying parent names.&lt;br /&gt;
** Enhance code quality by adding comments, removing obsolete code, and implementing form validations.&lt;br /&gt;
&lt;br /&gt;
* Outcome: The project aims to transition the Expertiza UI components for 'Roles' and 'Institution' from Ruby on Rails to a more modern, efficient TypeScript and ReactJS-based implementation, incorporating user role restrictions and various UI improvements for a better user experience.&lt;br /&gt;
&lt;br /&gt;
== Technologies Used ==&lt;br /&gt;
&lt;br /&gt;
* '''React.js''': A JavaScript library for building user interfaces, particularly single-page applications. React will be used to develop dynamic and responsive UI components.&lt;br /&gt;
&lt;br /&gt;
* '''TypeScript''': An open-source language that builds on JavaScript by adding static type definitions. TypeScript allows for writing clearer and more robust code, facilitating easier debugging and maintenance.&lt;br /&gt;
&lt;br /&gt;
* '''Ruby on Rails''': Although the focus is on refactoring the front end, understanding the existing Ruby on Rails backend is crucial. Rails is a server-side web application framework written in Ruby, following the model-view-controller (MVC) framework.&lt;br /&gt;
&lt;br /&gt;
== Changes Made ==&lt;br /&gt;
&lt;br /&gt;
1. '''Refactored the Questionnaire UI''': The existing non-TypeScript frontend of the questionnaire UI has been successfully transitioned to use TypeScript, enhancing code reliability and maintainability.&lt;br /&gt;
&lt;br /&gt;
2. '''Developed with React.js''': The 'Roles' and 'Institution' user interfaces have been rebuilt using React.js, ensuring dynamic and responsive behavior. The React components created are modular, reusable, and effectively manage state.&lt;br /&gt;
&lt;br /&gt;
3. '''Integrated TypeScript''': TypeScript has been implemented across the new UI components, providing better type-checking, reducing runtime errors, and facilitating easier debugging and maintenance.&lt;br /&gt;
&lt;br /&gt;
4. '''Analyzed Existing Backend''': A thorough analysis and understanding of the existing Ruby on Rails backend were achieved to ensure seamless integration and functionality with the new TypeScript and React.js frontend.&lt;br /&gt;
&lt;br /&gt;
5. '''UI Enhancements Implemented''': &lt;br /&gt;
    - Role-based access restrictions have been introduced to enhance security and user experience.&lt;br /&gt;
    - The user interface has been improved with intuitive navigational elements, tooltips for better guidance, enhanced table positioning, and pagination.&lt;br /&gt;
    - New UI elements, such as a column for displaying parent names, have been added where necessary.&lt;br /&gt;
&lt;br /&gt;
6. '''Code Quality and Maintenance Improvements''':&lt;br /&gt;
    - Detailed comments and documentation have been added to the new codebase for better understandability and maintainability.&lt;br /&gt;
    - Obsolete or redundant code segments have been removed to streamline the application.&lt;br /&gt;
    - Validations and error-handling mechanisms have been implemented to improve the robustness of the UI.&lt;br /&gt;
&lt;br /&gt;
7. '''Thorough Testing and Integration''': &lt;br /&gt;
    - The new UI components have been thoroughly tested both individually and within the application context to ensure correct functionality across different scenarios and data sets.&lt;br /&gt;
    - The new components have been integrated into the existing application infrastructure, ensuring compatibility and functional integrity.&lt;br /&gt;
&lt;br /&gt;
8. '''Review and Deployment Accomplished''':&lt;br /&gt;
    - Code reviews were conducted with the development team to identify and implement potential improvements or necessary adjustments.&lt;br /&gt;
    - The deployment of the updated application was prepared and executed, ensuring a smooth transition that did not adversely affect the existing user base.&lt;br /&gt;
&lt;br /&gt;
== UI Enhancements and Features in Screenshots ==&lt;br /&gt;
&lt;br /&gt;
Role-based access restrictions: The update role option is disabled based on the role of user.&lt;br /&gt;
[[File:Screenshot 2024-03-23 at 9.07.25 PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
A new column labeled &amp;quot;Parent Name&amp;quot; has been introduced on the Manage Role page, as illustrated in the accompanying screenshot. Additionally, the screenshot highlights the interactive feature where hovering over the 'Create Role' button, a functionality that is consistently applied to the 'Edit' and 'Delete' buttons as well. The layout of the table has been adjusted for optimal web page integration, and pagination has been implemented to enhance navigation and usability.&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.05.27_PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.06.05_PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
When creating a new role, the role name must not include any numeric characters:&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.08.04_PM.png |1000px|center]]&lt;/div&gt;</summary>
		<author><name>Skshett2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2024-03-23_at_9.08.04_PM.png&amp;diff=153310</id>
		<title>File:Screenshot 2024-03-23 at 9.08.04 PM.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2024-03-23_at_9.08.04_PM.png&amp;diff=153310"/>
		<updated>2024-03-24T01:45:44Z</updated>

		<summary type="html">&lt;p&gt;Skshett2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Skshett2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=153309</id>
		<title>CSC/ECE 517 Spring 2024 - E2428 Replicate Roles and Institution UIs ReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=153309"/>
		<updated>2024-03-24T01:43:42Z</updated>

		<summary type="html">&lt;p&gt;Skshett2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview of Expertiza ==&lt;br /&gt;
Expertiza is an open-source learning management system designed with Ruby on Rails, facilitating a myriad of functionalities including the creation of assignments, tests, assignment teams, and courses. It stands out for its comprehensive peer review system, allowing thorough feedback among teams and group members. The focal point of this project is to enhance the User, Institution, and Roles frontend components. The specific challenge addressed involves refactoring the existing non-Typescript questionnaire UI to employ Typescript. Consequently, the team is tasked with developing these components' User Interface utilizing React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
== Description of the Project ==&lt;br /&gt;
&lt;br /&gt;
* Objective: Refactor the non-Typescript frontend questionnaire UI of Expertiza to use Typescript and develop the User Interface using React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
* Key Tasks:&lt;br /&gt;
** Log in as a Super Admin.&lt;br /&gt;
** Navigate to Administrator settings to access and replicate 'Roles' and 'Institution' UIs.&lt;br /&gt;
** Replicate the 'Roles' and 'Institution' UIs using ReactJS, ensuring they retain full functionality within the new TypeScript and ReactJS framework.&lt;br /&gt;
&lt;br /&gt;
* Development Process:&lt;br /&gt;
** Understand the Existing System: Analyze the current Ruby on Rails implementation of Roles and Institution UIs, including data models, controllers, and views.&lt;br /&gt;
** Setup Development Environment: Establish a TypeScript and ReactJS environment for developing the new UIs.&lt;br /&gt;
** Design Components: Create React components corresponding to UI parts, focusing on state and props management.&lt;br /&gt;
** Implement Components: Develop these components in TypeScript, mirroring the existing UIs' functionality.&lt;br /&gt;
** Integrate Components: Incorporate the new components into the main application, ensuring compatibility and functionality with the backend.&lt;br /&gt;
** Review and Refactor: Enhance code quality through reviews and refactoring, emphasizing readability and efficiency.&lt;br /&gt;
&lt;br /&gt;
* Additional Features and Improvements:&lt;br /&gt;
** Implement role-based access restrictions for actions within the roles and institutions sections.&lt;br /&gt;
** Enhance UI with tooltips, improved table positioning, and pagination.&lt;br /&gt;
** Introduce a new column for displaying parent names.&lt;br /&gt;
** Enhance code quality by adding comments, removing obsolete code, and implementing form validations.&lt;br /&gt;
&lt;br /&gt;
* Outcome: The project aims to transition the Expertiza UI components for 'Roles' and 'Institution' from Ruby on Rails to a more modern, efficient TypeScript and ReactJS-based implementation, incorporating user role restrictions and various UI improvements for a better user experience.&lt;br /&gt;
&lt;br /&gt;
== Technologies Used ==&lt;br /&gt;
&lt;br /&gt;
* '''React.js''': A JavaScript library for building user interfaces, particularly single-page applications. React will be used to develop dynamic and responsive UI components.&lt;br /&gt;
&lt;br /&gt;
* '''TypeScript''': An open-source language that builds on JavaScript by adding static type definitions. TypeScript allows for writing clearer and more robust code, facilitating easier debugging and maintenance.&lt;br /&gt;
&lt;br /&gt;
* '''Ruby on Rails''': Although the focus is on refactoring the front end, understanding the existing Ruby on Rails backend is crucial. Rails is a server-side web application framework written in Ruby, following the model-view-controller (MVC) framework.&lt;br /&gt;
&lt;br /&gt;
== Changes Made ==&lt;br /&gt;
&lt;br /&gt;
1. '''Refactored the Questionnaire UI''': The existing non-TypeScript frontend of the questionnaire UI has been successfully transitioned to use TypeScript, enhancing code reliability and maintainability.&lt;br /&gt;
&lt;br /&gt;
2. '''Developed with React.js''': The 'Roles' and 'Institution' user interfaces have been rebuilt using React.js, ensuring dynamic and responsive behavior. The React components created are modular, reusable, and effectively manage state.&lt;br /&gt;
&lt;br /&gt;
3. '''Integrated TypeScript''': TypeScript has been implemented across the new UI components, providing better type-checking, reducing runtime errors, and facilitating easier debugging and maintenance.&lt;br /&gt;
&lt;br /&gt;
4. '''Analyzed Existing Backend''': A thorough analysis and understanding of the existing Ruby on Rails backend were achieved to ensure seamless integration and functionality with the new TypeScript and React.js frontend.&lt;br /&gt;
&lt;br /&gt;
5. '''UI Enhancements Implemented''': &lt;br /&gt;
    - Role-based access restrictions have been introduced to enhance security and user experience.&lt;br /&gt;
    - The user interface has been improved with intuitive navigational elements, tooltips for better guidance, enhanced table positioning, and pagination.&lt;br /&gt;
    - New UI elements, such as a column for displaying parent names, have been added where necessary.&lt;br /&gt;
&lt;br /&gt;
6. '''Code Quality and Maintenance Improvements''':&lt;br /&gt;
    - Detailed comments and documentation have been added to the new codebase for better understandability and maintainability.&lt;br /&gt;
    - Obsolete or redundant code segments have been removed to streamline the application.&lt;br /&gt;
    - Validations and error-handling mechanisms have been implemented to improve the robustness of the UI.&lt;br /&gt;
&lt;br /&gt;
7. '''Thorough Testing and Integration''': &lt;br /&gt;
    - The new UI components have been thoroughly tested both individually and within the application context to ensure correct functionality across different scenarios and data sets.&lt;br /&gt;
    - The new components have been integrated into the existing application infrastructure, ensuring compatibility and functional integrity.&lt;br /&gt;
&lt;br /&gt;
8. '''Review and Deployment Accomplished''':&lt;br /&gt;
    - Code reviews were conducted with the development team to identify and implement potential improvements or necessary adjustments.&lt;br /&gt;
    - The deployment of the updated application was prepared and executed, ensuring a smooth transition that did not adversely affect the existing user base.&lt;br /&gt;
&lt;br /&gt;
== UI Enhancements and Features in Screenshots ==&lt;br /&gt;
&lt;br /&gt;
Role-based access restrictions: The update role option is disabled based on the role of user.&lt;br /&gt;
[[File:Screenshot 2024-03-23 at 9.07.25 PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
A new column labeled &amp;quot;Parent Name&amp;quot; has been introduced on the Manage Role page, as illustrated in the accompanying screenshot. Additionally, the screenshot highlights the interactive feature where hovering over the 'Create Role' button, a functionality that is consistently applied to the 'Edit' and 'Delete' buttons as well. The layout of the table has been adjusted for optimal web page integration, and pagination has been implemented to enhance navigation and usability.&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.05.27_PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_2024-03-23_at_9.06.05_PM.png |1000px|center]]&lt;/div&gt;</summary>
		<author><name>Skshett2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2024-03-23_at_9.06.05_PM.png&amp;diff=153308</id>
		<title>File:Screenshot 2024-03-23 at 9.06.05 PM.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2024-03-23_at_9.06.05_PM.png&amp;diff=153308"/>
		<updated>2024-03-24T01:43:21Z</updated>

		<summary type="html">&lt;p&gt;Skshett2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Skshett2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2024-03-23_at_9.05.27_PM.png&amp;diff=153307</id>
		<title>File:Screenshot 2024-03-23 at 9.05.27 PM.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2024-03-23_at_9.05.27_PM.png&amp;diff=153307"/>
		<updated>2024-03-24T01:38:51Z</updated>

		<summary type="html">&lt;p&gt;Skshett2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Skshett2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=153305</id>
		<title>CSC/ECE 517 Spring 2024 - E2428 Replicate Roles and Institution UIs ReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=153305"/>
		<updated>2024-03-24T01:38:20Z</updated>

		<summary type="html">&lt;p&gt;Skshett2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview of Expertiza ==&lt;br /&gt;
Expertiza is an open-source learning management system designed with Ruby on Rails, facilitating a myriad of functionalities including the creation of assignments, tests, assignment teams, and courses. It stands out for its comprehensive peer review system, allowing thorough feedback among teams and group members. The focal point of this project is to enhance the User, Institution, and Roles frontend components. The specific challenge addressed involves refactoring the existing non-Typescript questionnaire UI to employ Typescript. Consequently, the team is tasked with developing these components' User Interface utilizing React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
== Description of the Project ==&lt;br /&gt;
&lt;br /&gt;
* Objective: Refactor the non-Typescript frontend questionnaire UI of Expertiza to use Typescript and develop the User Interface using React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
* Key Tasks:&lt;br /&gt;
** Log in as a Super Admin.&lt;br /&gt;
** Navigate to Administrator settings to access and replicate 'Roles' and 'Institution' UIs.&lt;br /&gt;
** Replicate the 'Roles' and 'Institution' UIs using ReactJS, ensuring they retain full functionality within the new TypeScript and ReactJS framework.&lt;br /&gt;
&lt;br /&gt;
* Development Process:&lt;br /&gt;
** Understand the Existing System: Analyze the current Ruby on Rails implementation of Roles and Institution UIs, including data models, controllers, and views.&lt;br /&gt;
** Setup Development Environment: Establish a TypeScript and ReactJS environment for developing the new UIs.&lt;br /&gt;
** Design Components: Create React components corresponding to UI parts, focusing on state and props management.&lt;br /&gt;
** Implement Components: Develop these components in TypeScript, mirroring the existing UIs' functionality.&lt;br /&gt;
** Integrate Components: Incorporate the new components into the main application, ensuring compatibility and functionality with the backend.&lt;br /&gt;
** Review and Refactor: Enhance code quality through reviews and refactoring, emphasizing readability and efficiency.&lt;br /&gt;
&lt;br /&gt;
* Additional Features and Improvements:&lt;br /&gt;
** Implement role-based access restrictions for actions within the roles and institutions sections.&lt;br /&gt;
** Enhance UI with tooltips, improved table positioning, and pagination.&lt;br /&gt;
** Introduce a new column for displaying parent names.&lt;br /&gt;
** Enhance code quality by adding comments, removing obsolete code, and implementing form validations.&lt;br /&gt;
&lt;br /&gt;
* Outcome: The project aims to transition the Expertiza UI components for 'Roles' and 'Institution' from Ruby on Rails to a more modern, efficient TypeScript and ReactJS-based implementation, incorporating user role restrictions and various UI improvements for a better user experience.&lt;br /&gt;
&lt;br /&gt;
== Technologies Used ==&lt;br /&gt;
&lt;br /&gt;
* '''React.js''': A JavaScript library for building user interfaces, particularly single-page applications. React will be used to develop dynamic and responsive UI components.&lt;br /&gt;
&lt;br /&gt;
* '''TypeScript''': An open-source language that builds on JavaScript by adding static type definitions. TypeScript allows for writing clearer and more robust code, facilitating easier debugging and maintenance.&lt;br /&gt;
&lt;br /&gt;
* '''Ruby on Rails''': Although the focus is on refactoring the front end, understanding the existing Ruby on Rails backend is crucial. Rails is a server-side web application framework written in Ruby, following the model-view-controller (MVC) framework.&lt;br /&gt;
&lt;br /&gt;
== Changes Made ==&lt;br /&gt;
&lt;br /&gt;
1. '''Refactored the Questionnaire UI''': The existing non-TypeScript frontend of the questionnaire UI has been successfully transitioned to use TypeScript, enhancing code reliability and maintainability.&lt;br /&gt;
&lt;br /&gt;
2. '''Developed with React.js''': The 'Roles' and 'Institution' user interfaces have been rebuilt using React.js, ensuring dynamic and responsive behavior. The React components created are modular, reusable, and effectively manage state.&lt;br /&gt;
&lt;br /&gt;
3. '''Integrated TypeScript''': TypeScript has been implemented across the new UI components, providing better type-checking, reducing runtime errors, and facilitating easier debugging and maintenance.&lt;br /&gt;
&lt;br /&gt;
4. '''Analyzed Existing Backend''': A thorough analysis and understanding of the existing Ruby on Rails backend were achieved to ensure seamless integration and functionality with the new TypeScript and React.js frontend.&lt;br /&gt;
&lt;br /&gt;
5. '''UI Enhancements Implemented''': &lt;br /&gt;
    - Role-based access restrictions have been introduced to enhance security and user experience.&lt;br /&gt;
    - The user interface has been improved with intuitive navigational elements, tooltips for better guidance, enhanced table positioning, and pagination.&lt;br /&gt;
    - New UI elements, such as a column for displaying parent names, have been added where necessary.&lt;br /&gt;
&lt;br /&gt;
6. '''Code Quality and Maintenance Improvements''':&lt;br /&gt;
    - Detailed comments and documentation have been added to the new codebase for better understandability and maintainability.&lt;br /&gt;
    - Obsolete or redundant code segments have been removed to streamline the application.&lt;br /&gt;
    - Validations and error-handling mechanisms have been implemented to improve the robustness of the UI.&lt;br /&gt;
&lt;br /&gt;
7. '''Thorough Testing and Integration''': &lt;br /&gt;
    - The new UI components have been thoroughly tested both individually and within the application context to ensure correct functionality across different scenarios and data sets.&lt;br /&gt;
    - The new components have been integrated into the existing application infrastructure, ensuring compatibility and functional integrity.&lt;br /&gt;
&lt;br /&gt;
8. '''Review and Deployment Accomplished''':&lt;br /&gt;
    - Code reviews were conducted with the development team to identify and implement potential improvements or necessary adjustments.&lt;br /&gt;
    - The deployment of the updated application was prepared and executed, ensuring a smooth transition that did not adversely affect the existing user base.&lt;br /&gt;
&lt;br /&gt;
== UI Enhancements and Features in Screenshots ==&lt;br /&gt;
&lt;br /&gt;
Role-based access restrictions: The update role option is disabled based on the role of user.&lt;br /&gt;
[[File:Screenshot 2024-03-23 at 9.07.25 PM.png |1000px|center]]&lt;br /&gt;
&lt;br /&gt;
Added new column &amp;quot;parent name&amp;quot; in the manage role page:&lt;/div&gt;</summary>
		<author><name>Skshett2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2024-03-23_at_9.07.25_PM.png&amp;diff=153302</id>
		<title>File:Screenshot 2024-03-23 at 9.07.25 PM.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2024-03-23_at_9.07.25_PM.png&amp;diff=153302"/>
		<updated>2024-03-24T01:31:58Z</updated>

		<summary type="html">&lt;p&gt;Skshett2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Skshett2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=153301</id>
		<title>CSC/ECE 517 Spring 2024 - E2428 Replicate Roles and Institution UIs ReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=153301"/>
		<updated>2024-03-24T01:31:09Z</updated>

		<summary type="html">&lt;p&gt;Skshett2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview of Expertiza ==&lt;br /&gt;
Expertiza is an open-source learning management system designed with Ruby on Rails, facilitating a myriad of functionalities including the creation of assignments, tests, assignment teams, and courses. It stands out for its comprehensive peer review system, allowing thorough feedback among teams and group members. The focal point of this project is to enhance the User, Institution, and Roles frontend components. The specific challenge addressed involves refactoring the existing non-Typescript questionnaire UI to employ Typescript. Consequently, the team is tasked with developing these components' User Interface utilizing React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
== Description of the Project ==&lt;br /&gt;
&lt;br /&gt;
* Objective: Refactor the non-Typescript frontend questionnaire UI of Expertiza to use Typescript and develop the User Interface using React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
* Key Tasks:&lt;br /&gt;
** Log in as a Super Admin.&lt;br /&gt;
** Navigate to Administrator settings to access and replicate 'Roles' and 'Institution' UIs.&lt;br /&gt;
** Replicate the 'Roles' and 'Institution' UIs using ReactJS, ensuring they retain full functionality within the new TypeScript and ReactJS framework.&lt;br /&gt;
&lt;br /&gt;
* Development Process:&lt;br /&gt;
** Understand the Existing System: Analyze the current Ruby on Rails implementation of Roles and Institution UIs, including data models, controllers, and views.&lt;br /&gt;
** Setup Development Environment: Establish a TypeScript and ReactJS environment for developing the new UIs.&lt;br /&gt;
** Design Components: Create React components corresponding to UI parts, focusing on state and props management.&lt;br /&gt;
** Implement Components: Develop these components in TypeScript, mirroring the existing UIs' functionality.&lt;br /&gt;
** Integrate Components: Incorporate the new components into the main application, ensuring compatibility and functionality with the backend.&lt;br /&gt;
** Review and Refactor: Enhance code quality through reviews and refactoring, emphasizing readability and efficiency.&lt;br /&gt;
&lt;br /&gt;
* Additional Features and Improvements:&lt;br /&gt;
** Implement role-based access restrictions for actions within the roles and institutions sections.&lt;br /&gt;
** Enhance UI with tooltips, improved table positioning, and pagination.&lt;br /&gt;
** Introduce a new column for displaying parent names.&lt;br /&gt;
** Enhance code quality by adding comments, removing obsolete code, and implementing form validations.&lt;br /&gt;
&lt;br /&gt;
* Outcome: The project aims to transition the Expertiza UI components for 'Roles' and 'Institution' from Ruby on Rails to a more modern, efficient TypeScript and ReactJS-based implementation, incorporating user role restrictions and various UI improvements for a better user experience.&lt;br /&gt;
&lt;br /&gt;
== Technologies Used ==&lt;br /&gt;
&lt;br /&gt;
* '''React.js''': A JavaScript library for building user interfaces, particularly single-page applications. React will be used to develop dynamic and responsive UI components.&lt;br /&gt;
&lt;br /&gt;
* '''TypeScript''': An open-source language that builds on JavaScript by adding static type definitions. TypeScript allows for writing clearer and more robust code, facilitating easier debugging and maintenance.&lt;br /&gt;
&lt;br /&gt;
* '''Ruby on Rails''': Although the focus is on refactoring the front end, understanding the existing Ruby on Rails backend is crucial. Rails is a server-side web application framework written in Ruby, following the model-view-controller (MVC) framework.&lt;br /&gt;
&lt;br /&gt;
== Changes Made ==&lt;br /&gt;
&lt;br /&gt;
1. '''Refactored the Questionnaire UI''': The existing non-TypeScript frontend of the questionnaire UI has been successfully transitioned to use TypeScript, enhancing code reliability and maintainability.&lt;br /&gt;
&lt;br /&gt;
2. '''Developed with React.js''': The 'Roles' and 'Institution' user interfaces have been rebuilt using React.js, ensuring dynamic and responsive behavior. The React components created are modular, reusable, and effectively manage state.&lt;br /&gt;
&lt;br /&gt;
3. '''Integrated TypeScript''': TypeScript has been implemented across the new UI components, providing better type-checking, reducing runtime errors, and facilitating easier debugging and maintenance.&lt;br /&gt;
&lt;br /&gt;
4. '''Analyzed Existing Backend''': A thorough analysis and understanding of the existing Ruby on Rails backend were achieved to ensure seamless integration and functionality with the new TypeScript and React.js frontend.&lt;br /&gt;
&lt;br /&gt;
5. '''UI Enhancements Implemented''': &lt;br /&gt;
    - Role-based access restrictions have been introduced to enhance security and user experience.&lt;br /&gt;
    - The user interface has been improved with intuitive navigational elements, tooltips for better guidance, enhanced table positioning, and pagination.&lt;br /&gt;
    - New UI elements, such as a column for displaying parent names, have been added where necessary.&lt;br /&gt;
&lt;br /&gt;
6. '''Code Quality and Maintenance Improvements''':&lt;br /&gt;
    - Detailed comments and documentation have been added to the new codebase for better understandability and maintainability.&lt;br /&gt;
    - Obsolete or redundant code segments have been removed to streamline the application.&lt;br /&gt;
    - Validations and error-handling mechanisms have been implemented to improve the robustness of the UI.&lt;br /&gt;
&lt;br /&gt;
7. '''Thorough Testing and Integration''': &lt;br /&gt;
    - The new UI components have been thoroughly tested both individually and within the application context to ensure correct functionality across different scenarios and data sets.&lt;br /&gt;
    - The new components have been integrated into the existing application infrastructure, ensuring compatibility and functional integrity.&lt;br /&gt;
&lt;br /&gt;
8. '''Review and Deployment Accomplished''':&lt;br /&gt;
    - Code reviews were conducted with the development team to identify and implement potential improvements or necessary adjustments.&lt;br /&gt;
    - The deployment of the updated application was prepared and executed, ensuring a smooth transition that did not adversely affect the existing user base.&lt;br /&gt;
&lt;br /&gt;
== UI Enhancements and Features in Screenshots ==&lt;br /&gt;
&lt;br /&gt;
Role-based access restrictions:&lt;/div&gt;</summary>
		<author><name>Skshett2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=153270</id>
		<title>CSC/ECE 517 Spring 2024 - E2428 Replicate Roles and Institution UIs ReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=153270"/>
		<updated>2024-03-24T00:53:28Z</updated>

		<summary type="html">&lt;p&gt;Skshett2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview of Expertiza ==&lt;br /&gt;
Expertiza is an open-source learning management system designed with Ruby on Rails, facilitating a myriad of functionalities including the creation of assignments, tests, assignment teams, and courses. It stands out for its comprehensive peer review system, allowing thorough feedback among teams and group members. The focal point of this project is to enhance the User, Institution, and Roles frontend components. The specific challenge addressed involves refactoring the existing non-Typescript questionnaire UI to employ Typescript. Consequently, the team is tasked with developing these components' User Interface utilizing React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
== Description of the Project ==&lt;br /&gt;
&lt;br /&gt;
* Objective: Refactor the non-Typescript frontend questionnaire UI of Expertiza to use Typescript and develop the User Interface using React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
* Key Tasks:&lt;br /&gt;
** Log in as a Super Admin.&lt;br /&gt;
** Navigate to Administrator settings to access and replicate 'Roles' and 'Institution' UIs.&lt;br /&gt;
** Replicate the 'Roles' and 'Institution' UIs using ReactJS, ensuring they retain full functionality within the new TypeScript and ReactJS framework.&lt;br /&gt;
&lt;br /&gt;
* Development Process:&lt;br /&gt;
** Understand the Existing System: Analyze the current Ruby on Rails implementation of Roles and Institution UIs, including data models, controllers, and views.&lt;br /&gt;
** Setup Development Environment: Establish a TypeScript and ReactJS environment for developing the new UIs.&lt;br /&gt;
** Design Components: Create React components corresponding to UI parts, focusing on state and props management.&lt;br /&gt;
** Implement Components: Develop these components in TypeScript, mirroring the existing UIs' functionality.&lt;br /&gt;
** Integrate Components: Incorporate the new components into the main application, ensuring compatibility and functionality with the backend.&lt;br /&gt;
** Review and Refactor: Enhance code quality through reviews and refactoring, emphasizing readability and efficiency.&lt;br /&gt;
&lt;br /&gt;
* Additional Features and Improvements:&lt;br /&gt;
** Implement role-based access restrictions for actions within the roles and institutions sections.&lt;br /&gt;
** Enhance UI with tooltips, improved table positioning, and pagination.&lt;br /&gt;
** Introduce a new column for displaying parent names.&lt;br /&gt;
** Enhance code quality by adding comments, removing obsolete code, and implementing form validations.&lt;br /&gt;
&lt;br /&gt;
* Outcome: The project aims to transition the Expertiza UI components for 'Roles' and 'Institution' from Ruby on Rails to a more modern, efficient TypeScript and ReactJS-based implementation, incorporating user role restrictions and various UI improvements for a better user experience.&lt;br /&gt;
&lt;br /&gt;
== Technologies Used ==&lt;br /&gt;
&lt;br /&gt;
* '''React.js''': A JavaScript library for building user interfaces, particularly single-page applications. React will be used to develop dynamic and responsive UI components.&lt;br /&gt;
&lt;br /&gt;
* '''TypeScript''': An open-source language that builds on JavaScript by adding static type definitions. TypeScript allows for writing clearer and more robust code, facilitating easier debugging and maintenance.&lt;br /&gt;
&lt;br /&gt;
* '''Ruby on Rails''': Although the focus is on refactoring the front end, understanding the existing Ruby on Rails backend is crucial. Rails is a server-side web application framework written in Ruby, following the model-view-controller (MVC) framework.&lt;br /&gt;
&lt;br /&gt;
== Changes Made ==&lt;br /&gt;
&lt;br /&gt;
1. '''Refactored the Questionnaire UI''': The existing non-TypeScript frontend of the questionnaire UI has been successfully transitioned to use TypeScript, enhancing code reliability and maintainability.&lt;br /&gt;
&lt;br /&gt;
2. '''Developed with React.js''': The 'Roles' and 'Institution' user interfaces have been rebuilt using React.js, ensuring dynamic and responsive behavior. The React components created are modular, reusable, and effectively manage state.&lt;br /&gt;
&lt;br /&gt;
3. '''Integrated TypeScript''': TypeScript has been implemented across the new UI components, providing better type-checking, reducing runtime errors, and facilitating easier debugging and maintenance.&lt;br /&gt;
&lt;br /&gt;
4. '''Analyzed Existing Backend''': A thorough analysis and understanding of the existing Ruby on Rails backend were achieved to ensure seamless integration and functionality with the new TypeScript and React.js frontend.&lt;br /&gt;
&lt;br /&gt;
5. '''UI Enhancements Implemented''': &lt;br /&gt;
    - Role-based access restrictions have been introduced to enhance security and user experience.&lt;br /&gt;
    - The user interface has been improved with intuitive navigational elements, tooltips for better guidance, enhanced table positioning, and pagination.&lt;br /&gt;
    - New UI elements, such as a column for displaying parent names, have been added where necessary.&lt;br /&gt;
&lt;br /&gt;
6. '''Code Quality and Maintenance Improvements''':&lt;br /&gt;
    - Detailed comments and documentation have been added to the new codebase for better understandability and maintainability.&lt;br /&gt;
    - Obsolete or redundant code segments have been removed to streamline the application.&lt;br /&gt;
    - Validations and error-handling mechanisms have been implemented to improve the robustness of the UI.&lt;br /&gt;
&lt;br /&gt;
7. '''Thorough Testing and Integration''': &lt;br /&gt;
    - The new UI components have been thoroughly tested both individually and within the application context to ensure correct functionality across different scenarios and data sets.&lt;br /&gt;
    - The new components have been integrated into the existing application infrastructure, ensuring compatibility and functional integrity.&lt;br /&gt;
&lt;br /&gt;
8. '''Review and Deployment Accomplished''':&lt;br /&gt;
    - Code reviews were conducted with the development team to identify and implement potential improvements or necessary adjustments.&lt;br /&gt;
    - The deployment of the updated application was prepared and executed, ensuring a smooth transition that did not adversely affect the existing user base.&lt;/div&gt;</summary>
		<author><name>Skshett2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=153248</id>
		<title>CSC/ECE 517 Spring 2024 - E2428 Replicate Roles and Institution UIs ReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=153248"/>
		<updated>2024-03-24T00:27:40Z</updated>

		<summary type="html">&lt;p&gt;Skshett2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview of Expertiza ==&lt;br /&gt;
Expertiza is an open-source learning management system designed with Ruby on Rails, facilitating a myriad of functionalities including the creation of assignments, tests, assignment teams, and courses. It stands out for its comprehensive peer review system, allowing thorough feedback among teams and group members. The focal point of this project is to enhance the User, Institution, and Roles frontend components. The specific challenge addressed involves refactoring the existing non-Typescript questionnaire UI to employ Typescript. Consequently, the team is tasked with developing these components' User Interface utilizing React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
== Description of the Project ==&lt;br /&gt;
&lt;br /&gt;
* Objective: Refactor the non-Typescript frontend questionnaire UI of Expertiza to use Typescript and develop the User Interface using React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
* Key Tasks:&lt;br /&gt;
** Log in as a Super Admin.&lt;br /&gt;
** Navigate to Administrator settings to access and replicate 'Roles' and 'Institution' UIs.&lt;br /&gt;
** Replicate the 'Roles' and 'Institution' UIs using ReactJS, ensuring they retain full functionality within the new TypeScript and ReactJS framework.&lt;br /&gt;
&lt;br /&gt;
* Development Process:&lt;br /&gt;
** Understand the Existing System: Analyze the current Ruby on Rails implementation of Roles and Institution UIs, including data models, controllers, and views.&lt;br /&gt;
** Setup Development Environment: Establish a TypeScript and ReactJS environment for developing the new UIs.&lt;br /&gt;
** Design Components: Create React components corresponding to UI parts, focusing on state and props management.&lt;br /&gt;
** Implement Components: Develop these components in TypeScript, mirroring the existing UIs' functionality.&lt;br /&gt;
** Integrate Components: Incorporate the new components into the main application, ensuring compatibility and functionality with the backend.&lt;br /&gt;
** Review and Refactor: Enhance code quality through reviews and refactoring, emphasizing readability and efficiency.&lt;br /&gt;
&lt;br /&gt;
* Additional Features and Improvements:&lt;br /&gt;
** Implement role-based access restrictions for actions within the roles and institutions sections.&lt;br /&gt;
** Enhance UI with tooltips, improved table positioning, and pagination.&lt;br /&gt;
** Introduce a new column for displaying parent names.&lt;br /&gt;
** Enhance code quality by adding comments, removing obsolete code, and implementing form validations.&lt;br /&gt;
&lt;br /&gt;
* Outcome: The project aims to transition the Expertiza UI components for 'Roles' and 'Institution' from Ruby on Rails to a more modern, efficient TypeScript and ReactJS-based implementation, incorporating user role restrictions and various UI improvements for a better user experience.&lt;br /&gt;
&lt;br /&gt;
== Technologies Used ==&lt;br /&gt;
&lt;br /&gt;
* '''React.js''': A JavaScript library for building user interfaces, particularly single-page applications. React will be used to develop dynamic and responsive UI components.&lt;br /&gt;
&lt;br /&gt;
* '''TypeScript''': An open-source language that builds on JavaScript by adding static type definitions. TypeScript allows for writing clearer and more robust code, facilitating easier debugging and maintenance.&lt;br /&gt;
&lt;br /&gt;
* '''Ruby on Rails''': Although the focus is on refactoring the front end, understanding the existing Ruby on Rails backend is crucial. Rails is a server-side web application framework written in Ruby, following the model-view-controller (MVC) framework.&lt;br /&gt;
&lt;br /&gt;
== Changes to be Made ==&lt;br /&gt;
&lt;br /&gt;
1. '''Refactoring the Questionnaire UI''': Transition the existing non-TypeScript frontend of the questionnaire UI to use TypeScript, enhancing code reliability and maintainability.&lt;br /&gt;
&lt;br /&gt;
2. '''Developing with React.js''': Utilize React.js to rebuild the 'Roles' and 'Institution' user interfaces, ensuring that they are dynamic and responsive. The React components should be modular, reusable, and maintain state effectively.&lt;br /&gt;
&lt;br /&gt;
3. '''Integrating TypeScript''': Implement TypeScript across the new UI components for better type-checking, reducing runtime errors and facilitating debugging and maintenance.&lt;br /&gt;
&lt;br /&gt;
4. '''Understanding Existing Backend''': Gain a comprehensive understanding of the existing Ruby on Rails backend to ensure seamless integration and functionality with the new TypeScript and React.js frontend.&lt;br /&gt;
&lt;br /&gt;
5. '''UI Enhancements''': &lt;br /&gt;
    - Introduce role-based access restrictions to enhance security and user experience.&lt;br /&gt;
    - Improve the user interface with intuitive navigational elements, tooltips for better user guidance, and enhanced table positioning and pagination for ease of use.&lt;br /&gt;
    - Add new UI elements where necessary, such as a column for displaying parent names in relevant tables.&lt;br /&gt;
&lt;br /&gt;
6. '''Code Quality and Maintenance''':&lt;br /&gt;
    - Add detailed comments and documentation to the new codebase for better understandability and maintainability.&lt;br /&gt;
    - Remove any obsolete or redundant code segments to streamline the application.&lt;br /&gt;
    - Implement validations and error-handling mechanisms to improve the robustness of the UI.&lt;br /&gt;
&lt;br /&gt;
7. '''Testing and Integration''': &lt;br /&gt;
    - Thoroughly test the new UI components individually and within the context of the entire application to ensure they function correctly across different scenarios and data sets.&lt;br /&gt;
    - Integrate the new components into the existing application infrastructure, ensuring compatibility and functional integrity.&lt;br /&gt;
&lt;br /&gt;
8. '''Review and Deployment''':&lt;br /&gt;
    - Conduct code reviews with the development team to identify any potential improvements or necessary adjustments.&lt;br /&gt;
    - Prepare for the deployment of the updated application, ensuring that the transition is smooth and does not affect the existing user base adversely.&lt;/div&gt;</summary>
		<author><name>Skshett2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=153246</id>
		<title>CSC/ECE 517 Spring 2024 - E2428 Replicate Roles and Institution UIs ReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=153246"/>
		<updated>2024-03-24T00:23:46Z</updated>

		<summary type="html">&lt;p&gt;Skshett2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview of Expertiza ==&lt;br /&gt;
Expertiza is an open-source learning management system designed with Ruby on Rails, facilitating a myriad of functionalities including the creation of assignments, tests, assignment teams, and courses. It stands out for its comprehensive peer review system, allowing thorough feedback among teams and group members. The focal point of this project is to enhance the User, Institution, and Roles frontend components. The specific challenge addressed involves refactoring the existing non-Typescript questionnaire UI to employ Typescript. Consequently, the team is tasked with developing these components' User Interface utilizing React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
== Description of the Project ==&lt;br /&gt;
&lt;br /&gt;
* Objective: Refactor the non-Typescript frontend questionnaire UI of Expertiza to use Typescript and develop the User Interface using React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
* Key Tasks:&lt;br /&gt;
** Log in as a Super Admin.&lt;br /&gt;
** Navigate to Administrator settings to access and replicate 'Roles' and 'Institution' UIs.&lt;br /&gt;
** Replicate the 'Roles' and 'Institution' UIs using ReactJS, ensuring they retain full functionality within the new TypeScript and ReactJS framework.&lt;br /&gt;
&lt;br /&gt;
* Development Process:&lt;br /&gt;
** Understand the Existing System: Analyze the current Ruby on Rails implementation of Roles and Institution UIs, including data models, controllers, and views.&lt;br /&gt;
** Setup Development Environment: Establish a TypeScript and ReactJS environment for developing the new UIs.&lt;br /&gt;
** Design Components: Create React components corresponding to UI parts, focusing on state and props management.&lt;br /&gt;
** Implement Components: Develop these components in TypeScript, mirroring the existing UIs' functionality.&lt;br /&gt;
** Integrate Components: Incorporate the new components into the main application, ensuring compatibility and functionality with the backend.&lt;br /&gt;
** Review and Refactor: Enhance code quality through reviews and refactoring, emphasizing readability and efficiency.&lt;br /&gt;
&lt;br /&gt;
* Additional Features and Improvements:&lt;br /&gt;
** Implement role-based access restrictions for actions within the roles and institutions sections.&lt;br /&gt;
** Enhance UI with tooltips, improved table positioning, and pagination.&lt;br /&gt;
** Introduce a new column for displaying parent names.&lt;br /&gt;
** Enhance code quality by adding comments, removing obsolete code, and implementing form validations.&lt;br /&gt;
&lt;br /&gt;
* Outcome: The project aims to transition the Expertiza UI components for 'Roles' and 'Institution' from Ruby on Rails to a more modern, efficient TypeScript and ReactJS-based implementation, incorporating user role restrictions and various UI improvements for a better user experience.&lt;br /&gt;
&lt;br /&gt;
== Technologies Used ==&lt;br /&gt;
&lt;br /&gt;
* '''React.js''': A JavaScript library for building user interfaces, particularly single-page applications. React will be used to develop dynamic and responsive UI components.&lt;br /&gt;
&lt;br /&gt;
* '''TypeScript''': An open-source language that builds on JavaScript by adding static type definitions. TypeScript allows for writing clearer and more robust code, facilitating easier debugging and maintenance.&lt;br /&gt;
&lt;br /&gt;
* '''Ruby on Rails''': Although the focus is on refactoring the front end, understanding the existing Ruby on Rails backend is crucial. Rails is a server-side web application framework written in Ruby, following the model-view-controller (MVC) framework.&lt;/div&gt;</summary>
		<author><name>Skshett2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=153244</id>
		<title>CSC/ECE 517 Spring 2024 - E2428 Replicate Roles and Institution UIs ReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=153244"/>
		<updated>2024-03-24T00:23:25Z</updated>

		<summary type="html">&lt;p&gt;Skshett2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview of Expertiza ==&lt;br /&gt;
Expertiza is an open-source learning management system designed with Ruby on Rails, facilitating a myriad of functionalities including the creation of assignments, tests, assignment teams, and courses. It stands out for its comprehensive peer review system, allowing thorough feedback among teams and group members. The focal point of this project is to enhance the User, Institution, and Roles frontend components. The specific challenge addressed involves refactoring the existing non-Typescript questionnaire UI to employ Typescript. Consequently, the team is tasked with developing these components' User Interface utilizing React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
== Description of the Project ==&lt;br /&gt;
&lt;br /&gt;
* Objective: Refactor the non-Typescript frontend questionnaire UI of Expertiza to use Typescript and develop the User Interface using React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
* Key Tasks:&lt;br /&gt;
** Log in as a Super Admin.&lt;br /&gt;
** Navigate to Administrator settings to access and replicate 'Roles' and 'Institution' UIs.&lt;br /&gt;
** Replicate the 'Roles' and 'Institution' UIs using ReactJS, ensuring they retain full functionality within the new TypeScript and ReactJS framework.&lt;br /&gt;
&lt;br /&gt;
* Development Process:&lt;br /&gt;
** Understand the Existing System: Analyze the current Ruby on Rails implementation of Roles and Institution UIs, including data models, controllers, and views.&lt;br /&gt;
** Setup Development Environment: Establish a TypeScript and ReactJS environment for developing the new UIs.&lt;br /&gt;
** Design Components: Create React components corresponding to UI parts, focusing on state and props management.&lt;br /&gt;
** Implement Components: Develop these components in TypeScript, mirroring the existing UIs' functionality.&lt;br /&gt;
** Integrate Components: Incorporate the new components into the main application, ensuring compatibility and functionality with the backend.&lt;br /&gt;
** Review and Refactor: Enhance code quality through reviews and refactoring, emphasizing readability and efficiency.&lt;br /&gt;
&lt;br /&gt;
* Additional Features and Improvements:&lt;br /&gt;
** Implement role-based access restrictions for actions within the roles and institutions sections.&lt;br /&gt;
** Enhance UI with tooltips, improved table positioning, and pagination.&lt;br /&gt;
** Introduce a new column for displaying parent names.&lt;br /&gt;
** Enhance code quality by adding comments, removing obsolete code, and implementing form validations.&lt;br /&gt;
&lt;br /&gt;
* Outcome: The project aims to transition the Expertiza UI components for 'Roles' and 'Institution' from Ruby on Rails to a more modern, efficient TypeScript and ReactJS-based implementation, incorporating user role restrictions and various UI improvements for a better user experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Technologies Used ==&lt;br /&gt;
&lt;br /&gt;
* '''React.js''': A JavaScript library for building user interfaces, particularly single-page applications. React will be used to develop dynamic and responsive UI components.&lt;br /&gt;
&lt;br /&gt;
* '''TypeScript''': An open-source language that builds on JavaScript by adding static type definitions. TypeScript allows for writing clearer and more robust code, facilitating easier debugging and maintenance.&lt;br /&gt;
&lt;br /&gt;
* '''Ruby on Rails''': Although the focus is on refactoring the front end, understanding the existing Ruby on Rails backend is crucial. Rails is a server-side web application framework written in Ruby, following the model-view-controller (MVC) framework.&lt;/div&gt;</summary>
		<author><name>Skshett2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=153241</id>
		<title>CSC/ECE 517 Spring 2024 - E2428 Replicate Roles and Institution UIs ReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=153241"/>
		<updated>2024-03-24T00:19:08Z</updated>

		<summary type="html">&lt;p&gt;Skshett2: /* Description of Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview of Expertiza ==&lt;br /&gt;
Expertiza is an open-source learning management system designed with Ruby on Rails, facilitating a myriad of functionalities including the creation of assignments, tests, assignment teams, and courses. It stands out for its comprehensive peer review system, allowing thorough feedback among teams and group members. The focal point of this project is to enhance the User, Institution, and Roles frontend components. The specific challenge addressed involves refactoring the existing non-Typescript questionnaire UI to employ Typescript. Consequently, the team is tasked with developing these components' User Interface utilizing React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
== Description of the Project ==&lt;br /&gt;
&lt;br /&gt;
* Objective: Refactor the non-Typescript frontend questionnaire UI of Expertiza to use Typescript and develop the User Interface using React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
* Key Tasks:&lt;br /&gt;
** Log in as a Super Admin.&lt;br /&gt;
** Navigate to Administrator settings to access and replicate 'Roles' and 'Institution' UIs.&lt;br /&gt;
** Replicate the 'Roles' and 'Institution' UIs using ReactJS, ensuring they retain full functionality within the new TypeScript and ReactJS framework.&lt;br /&gt;
&lt;br /&gt;
* Development Process:&lt;br /&gt;
** Understand the Existing System: Analyze the current Ruby on Rails implementation of Roles and Institution UIs, including data models, controllers, and views.&lt;br /&gt;
** Setup Development Environment: Establish a TypeScript and ReactJS environment for developing the new UIs.&lt;br /&gt;
** Design Components: Create React components corresponding to UI parts, focusing on state and props management.&lt;br /&gt;
** Implement Components: Develop these components in TypeScript, mirroring the existing UIs' functionality.&lt;br /&gt;
** Integrate Components: Incorporate the new components into the main application, ensuring compatibility and functionality with the backend.&lt;br /&gt;
** Review and Refactor: Enhance code quality through reviews and refactoring, emphasizing readability and efficiency.&lt;br /&gt;
&lt;br /&gt;
* Additional Features and Improvements:&lt;br /&gt;
** Implement role-based access restrictions for actions within the roles and institutions sections.&lt;br /&gt;
** Enhance UI with tooltips, improved table positioning, and pagination.&lt;br /&gt;
** Introduce a new column for displaying parent names.&lt;br /&gt;
** Enhance code quality by adding comments, removing obsolete code, and implementing form validations.&lt;br /&gt;
&lt;br /&gt;
* Outcome: The project aims to transition the Expertiza UI components for 'Roles' and 'Institution' from Ruby on Rails to a more modern, efficient TypeScript and ReactJS-based implementation, incorporating user role restrictions and various UI improvements for a better user experience.&lt;/div&gt;</summary>
		<author><name>Skshett2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=153201</id>
		<title>CSC/ECE 517 Spring 2024 - E2428 Replicate Roles and Institution UIs ReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=153201"/>
		<updated>2024-03-23T23:26:24Z</updated>

		<summary type="html">&lt;p&gt;Skshett2: /* Overview of Expertiza */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview of Expertiza ==&lt;br /&gt;
Expertiza is an open-source learning management system designed with Ruby on Rails, facilitating a myriad of functionalities including the creation of assignments, tests, assignment teams, and courses. It stands out for its comprehensive peer review system, allowing thorough feedback among teams and group members. The focal point of this project is to enhance the User, Institution, and Roles frontend components. The specific challenge addressed involves refactoring the existing non-Typescript questionnaire UI to employ Typescript. Consequently, the team is tasked with developing these components' User Interface utilizing React.js and Typescript.&lt;br /&gt;
&lt;br /&gt;
== Description of Project ==&lt;br /&gt;
This project focuses on creating User Interfaces for the 5 components of the Administration Section of the website - '''Roles, Institutions, Administrators, Super Administrators, Instructors''' pages using React JS. Previously, Ruby template parser was used for building the application. However, in the new reimplementation the backend and frontend applications have been separated and they are run independently. This allows us to have more flexibility with the technology stack. It is for this reason, the frontend application is being developed using React JS.&lt;br /&gt;
&lt;br /&gt;
The components that we are responsible for are the pages for Roles, Institutions, Administrators, Super Administrators, Instructors. The previous implementation just listed out the names along with the options to show, edit or delete them. In the new implementation, we aim to beautify these pages by making use of CSS frameworks with React JS. &lt;br /&gt;
&lt;br /&gt;
Following are the changes that will be done in the new implementation:&lt;br /&gt;
&lt;br /&gt;
1. Render the data on the respective pages in a tabular format shown in the mock up designs.&lt;br /&gt;
&lt;br /&gt;
2. Provide the buttons for creating, editing and deleting entities depending on the pages in the tables.&lt;br /&gt;
&lt;br /&gt;
3. Displaying appropriate alerts after any changes are made (create/edit/delete).&lt;br /&gt;
&lt;br /&gt;
4. Integrate the frontend functionalities mentioned with the backend.&lt;/div&gt;</summary>
		<author><name>Skshett2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=152965</id>
		<title>CSC/ECE 517 Spring 2024 - E2428 Replicate Roles and Institution UIs ReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024_-_E2428_Replicate_Roles_and_Institution_UIs_ReactJS&amp;diff=152965"/>
		<updated>2024-03-18T21:05:57Z</updated>

		<summary type="html">&lt;p&gt;Skshett2: Created page with &amp;quot;== Overview of Expertiza == Expertiza is a learning management system that is developed with Ruby on Rails and is accessible as open source software. It can create assignments, tests, assignment teams, and courses, among a wide range of other features and functions. It also has a thorough system for giving other teams and groups of teammates peer reviews and feedback. The files that are largely addressed in this project are the frontend React Components of User, Institut...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview of Expertiza ==&lt;br /&gt;
Expertiza is a learning management system that is developed with Ruby on Rails and is accessible as open source software. It can create assignments, tests, assignment teams, and courses, among a wide range of other features and functions. It also has a thorough system for giving other teams and groups of teammates peer reviews and feedback. The files that are largely addressed in this project are the frontend React Components of User, Institution and Roles. A fully functional UI for these components will be developed using React for this project.&lt;br /&gt;
&lt;br /&gt;
== Description of Project ==&lt;br /&gt;
This project focuses on creating User Interfaces for the 5 components of the Administration Section of the website - '''Roles, Institutions, Administrators, Super Administrators, Instructors''' pages using React JS. Previously, Ruby template parser was used for building the application. However, in the new reimplementation the backend and frontend applications have been separated and they are run independently. This allows us to have more flexibility with the technology stack. It is for this reason, the frontend application is being developed using React JS.&lt;br /&gt;
&lt;br /&gt;
The components that we are responsible for are the pages for Roles, Institutions, Administrators, Super Administrators, Instructors. The previous implementation just listed out the names along with the options to show, edit or delete them. In the new implementation, we aim to beautify these pages by making use of CSS frameworks with React JS. &lt;br /&gt;
&lt;br /&gt;
Following are the changes that will be done in the new implementation:&lt;br /&gt;
&lt;br /&gt;
1. Render the data on the respective pages in a tabular format shown in the mock up designs.&lt;br /&gt;
&lt;br /&gt;
2. Provide the buttons for creating, editing and deleting entities depending on the pages in the tables.&lt;br /&gt;
&lt;br /&gt;
3. Displaying appropriate alerts after any changes are made (create/edit/delete).&lt;br /&gt;
&lt;br /&gt;
4. Integrate the frontend functionalities mentioned with the backend.&lt;/div&gt;</summary>
		<author><name>Skshett2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024&amp;diff=152964</id>
		<title>CSC/ECE 517 Spring 2024</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2024&amp;diff=152964"/>
		<updated>2024-03-18T21:04:23Z</updated>

		<summary type="html">&lt;p&gt;Skshett2: Created page with &amp;quot;* CSC/ECE 517 Spring 2024 - E2428 Replicate Roles and Institution UIs ReactJS&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[CSC/ECE 517 Spring 2024 - E2428 Replicate Roles and Institution UIs ReactJS]]&lt;/div&gt;</summary>
		<author><name>Skshett2</name></author>
	</entry>
</feed>