<?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=Kjayesh</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=Kjayesh"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Kjayesh"/>
	<updated>2026-05-13T04:41:03Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2341._UI_for_Participants.rb&amp;diff=149645</id>
		<title>CSC/ECE 517 Spring 2023 - E2341. UI for Participants.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2341._UI_for_Participants.rb&amp;diff=149645"/>
		<updated>2023-04-13T01:12:02Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: /* About */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About ==&lt;br /&gt;
The aim of Program 4 is to create a UI for participants.rb using React. There are totally 4 main views to be implemented. They are:&lt;br /&gt;
&lt;br /&gt;
1. participants.js &amp;lt;br&amp;gt;&lt;br /&gt;
2. createParticipants.js &amp;lt;br&amp;gt;&lt;br /&gt;
3. updateParticipants.js &amp;lt;br&amp;gt;&lt;br /&gt;
4. deleteParticipants.js &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the design diagram for the UI implementation:&lt;br /&gt;
&lt;br /&gt;
[[File:designDiagram.png | 1000px]]&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
=== participants.js (Manage participants) === &lt;br /&gt;
&lt;br /&gt;
This is the main page that allows the user to manage participants' information. All the other pages like create participants, update participants, and delete participants can be accessed from this page.&lt;br /&gt;
&lt;br /&gt;
We intend to create the Manage Participants page something like this:&lt;br /&gt;
&lt;br /&gt;
[[File:ManageParticipant.png | 1000px]]&lt;br /&gt;
&lt;br /&gt;
=== createParticipants.js ===&lt;br /&gt;
&lt;br /&gt;
In the create participants popup window, the user will be able to create a participant by entering his/her username, first name, last name, email, role, email preferences, institution, and the grade of the participant for a course or a particular assignment. &lt;br /&gt;
&lt;br /&gt;
We have planned to create the page in this manner.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateParticipant.png | 1000px]]&lt;br /&gt;
&lt;br /&gt;
=== updateParticipants.rb ===&lt;br /&gt;
&lt;br /&gt;
On this page, the user will be able to update the details of an existing participant. We intend to create the update participants page something like this:&lt;br /&gt;
&lt;br /&gt;
[[File:UpdateParticipant.png | 1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== deleteParticpants.rb ===&lt;br /&gt;
&lt;br /&gt;
By clicking the delete participant option, the user will be prompted with a popup window that asks for confirmation from the user. Doing this will completely delete the participant from the records if they are not associated elsewhere (as a reviewer or reviewee for another assignment).&lt;br /&gt;
&lt;br /&gt;
This is how we plan to design this popup window.&lt;br /&gt;
&lt;br /&gt;
[[File:deleteParticipant.png | 1000px]]&lt;br /&gt;
&lt;br /&gt;
== Database ==&lt;br /&gt;
&lt;br /&gt;
Since we do not have a database to implement in the reimplementation_front_end GitHub repo, we have to mock the databases. This is done by creating a JSON file where all the columns related to participants are entered.&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
Apart from testing the pages manually, there is no need of writing automated tests for this program.&lt;br /&gt;
&lt;br /&gt;
=== participants.js(Manage Participants) ===&lt;br /&gt;
&lt;br /&gt;
We will have to ensure that view of this appears properly, with all the necessary options (delete, edit, create) for the participants. We will have to also make sure that the details are displayed in table format as shown in the figure. The search bar, next page and other options should also be verified accordingly.&lt;br /&gt;
&lt;br /&gt;
=== createparticipants.js ===&lt;br /&gt;
&lt;br /&gt;
1. Verify that the create participant popup window is displayed when the user clicks on the &amp;quot;Create Participant&amp;quot; icon button on the top right corner. &lt;br /&gt;
&lt;br /&gt;
2. Check that all the required fields are present and labelled appropriately. &lt;br /&gt;
&lt;br /&gt;
3. Verify that the user is able to select a role from the dropdown list. &lt;br /&gt;
&lt;br /&gt;
4. Verify if the checkboxes for email preferences are working correctly.&lt;br /&gt;
&lt;br /&gt;
5. Verify that the user is able to select an institution from the dropdown list. &lt;br /&gt;
&lt;br /&gt;
6. Test the close button to ensure that the popup window closes without creating a new participant.&lt;br /&gt;
&lt;br /&gt;
7. Verify that the create participant popup window closes after successful participant creation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== editparticipants.js ===&lt;br /&gt;
&lt;br /&gt;
1. Verify that the edit participant popup window is displayed when the user clicks on the &amp;quot;Edit Participant&amp;quot; icon button for each user. &lt;br /&gt;
&lt;br /&gt;
2. Check that all the required fields are present and labelled appropriately. &lt;br /&gt;
&lt;br /&gt;
3. Verify that the user is able to change the selected role from the dropdown list. &lt;br /&gt;
&lt;br /&gt;
4. Verify if the user can edit the checkboxes for email preferences.&lt;br /&gt;
&lt;br /&gt;
5. Verify that the user is able to change the selected institution from the dropdown list. &lt;br /&gt;
&lt;br /&gt;
6. Test the close button to ensure that the popup window closes without editing a new participant.&lt;br /&gt;
&lt;br /&gt;
7. Verify that the create participant popup window closes after a successful participant update.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== deleteparticipant.js ===&lt;br /&gt;
&lt;br /&gt;
1. Verify that the delete pop-up window appears when the user clicks the delete icon button.&lt;br /&gt;
&lt;br /&gt;
2. Verify that the delete pop-up window closes when the user clicks on the &amp;quot;close&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
3. Verify that the delete pop-up window closes after a successful participant deletion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Relevant Links ==&lt;br /&gt;
GitHub repository: https://github.com/amarthyasa/reimplementation-front-end &amp;lt;br&amp;gt;&lt;br /&gt;
Pull request: https://github.com/expertiza/reimplementation-front-end/pull/5&lt;br /&gt;
&lt;br /&gt;
== Team == &lt;br /&gt;
=== Mentor === &lt;br /&gt;
Rucha Kolekar&amp;lt;br&amp;gt;&lt;br /&gt;
=== Student Team ===&lt;br /&gt;
Amarthya Sivakumar Annu (asivaku5@ncsu.edu) &amp;lt;br&amp;gt;&lt;br /&gt;
Ajay Krishna Raveendar (araveen@ncsu.edu) &amp;lt;br&amp;gt;&lt;br /&gt;
Kiron Jayesh (kjayesh@ncsu.edu) &amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:DesignDiagram.png&amp;diff=149642</id>
		<title>File:DesignDiagram.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:DesignDiagram.png&amp;diff=149642"/>
		<updated>2023-04-13T01:10:50Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2341._UI_for_Participants.rb&amp;diff=149606</id>
		<title>CSC/ECE 517 Spring 2023 - E2341. UI for Participants.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2341._UI_for_Participants.rb&amp;diff=149606"/>
		<updated>2023-04-13T00:21:47Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: /* Relevant Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About ==&lt;br /&gt;
The aim of Program 4 is to create a UI for participants.rb using React. There are totally 4 main views to be implemented. They are:&lt;br /&gt;
&lt;br /&gt;
1. participants.js &amp;lt;br&amp;gt;&lt;br /&gt;
2. createParticipants.js &amp;lt;br&amp;gt;&lt;br /&gt;
3. updateParticipants.js &amp;lt;br&amp;gt;&lt;br /&gt;
4. deleteParticipants.js &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
=== participants.js (Manage participants) === &lt;br /&gt;
&lt;br /&gt;
This is the main page that allows the user to manage participants' information. All the other pages like create participants, update participants, and delete participants can be accessed from this page.&lt;br /&gt;
&lt;br /&gt;
We intend to create the Manage Participants page something like this:&lt;br /&gt;
&lt;br /&gt;
[[File:ManageParticipant.png | 1000px]]&lt;br /&gt;
&lt;br /&gt;
=== createParticipants.js ===&lt;br /&gt;
&lt;br /&gt;
In the create participants popup window, the user will be able to create a participant by entering his/her username, first name, last name, email, role, email preferences, institution, and the grade of the participant for a course or a particular assignment. &lt;br /&gt;
&lt;br /&gt;
We have planned to create the page in this manner.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateParticipant.png | 1000px]]&lt;br /&gt;
&lt;br /&gt;
=== updateParticipants.rb ===&lt;br /&gt;
&lt;br /&gt;
On this page, the user will be able to update the details of an existing participant. We intend to create the update participants page something like this:&lt;br /&gt;
&lt;br /&gt;
[[File:UpdateParticipant.png | 1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== deleteParticpants.rb ===&lt;br /&gt;
&lt;br /&gt;
By clicking the delete participant option, the user will be prompted with a popup window that asks for confirmation from the user. Doing this will completely delete the participant from the records if they are not associated elsewhere (as a reviewer or reviewee for another assignment).&lt;br /&gt;
&lt;br /&gt;
This is how we plan to design this popup window.&lt;br /&gt;
&lt;br /&gt;
[[File:deleteParticipant.png | 1000px]]&lt;br /&gt;
&lt;br /&gt;
== Database ==&lt;br /&gt;
&lt;br /&gt;
Since we do not have a database to implement in the reimplementation_front_end GitHub repo, we have to mock the databases. This is done by creating a JSON file where all the columns related to participants are entered.&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
Apart from testing the pages manually, there is no need of writing automated tests for this program.&lt;br /&gt;
&lt;br /&gt;
=== participants.js(Manage Participants) ===&lt;br /&gt;
&lt;br /&gt;
We will have to ensure that view of this appears properly, with all the necessary options (delete, edit, create) for the participants. We will have to also make sure that the details are displayed in table format as shown in the figure. The search bar, next page and other options should also be verified accordingly.&lt;br /&gt;
&lt;br /&gt;
=== createparticipants.js ===&lt;br /&gt;
&lt;br /&gt;
1. Verify that the create participant popup window is displayed when the user clicks on the &amp;quot;Create Participant&amp;quot; icon button on the top right corner. &lt;br /&gt;
&lt;br /&gt;
2. Check that all the required fields are present and labelled appropriately. &lt;br /&gt;
&lt;br /&gt;
3. Verify that the user is able to select a role from the dropdown list. &lt;br /&gt;
&lt;br /&gt;
4. Verify if the checkboxes for email preferences are working correctly.&lt;br /&gt;
&lt;br /&gt;
5. Verify that the user is able to select an institution from the dropdown list. &lt;br /&gt;
&lt;br /&gt;
6. Test the close button to ensure that the popup window closes without creating a new participant.&lt;br /&gt;
&lt;br /&gt;
7. Verify that the create participant popup window closes after successful participant creation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== editparticipants.js ===&lt;br /&gt;
&lt;br /&gt;
1. Verify that the edit participant popup window is displayed when the user clicks on the &amp;quot;Edit Participant&amp;quot; icon button for each user. &lt;br /&gt;
&lt;br /&gt;
2. Check that all the required fields are present and labelled appropriately. &lt;br /&gt;
&lt;br /&gt;
3. Verify that the user is able to change the selected role from the dropdown list. &lt;br /&gt;
&lt;br /&gt;
4. Verify if the user can edit the checkboxes for email preferences.&lt;br /&gt;
&lt;br /&gt;
5. Verify that the user is able to change the selected institution from the dropdown list. &lt;br /&gt;
&lt;br /&gt;
6. Test the close button to ensure that the popup window closes without editing a new participant.&lt;br /&gt;
&lt;br /&gt;
7. Verify that the create participant popup window closes after a successful participant update.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== deleteparticipant.js ===&lt;br /&gt;
&lt;br /&gt;
1. Verify that the delete pop-up window appears when the user clicks the delete icon button.&lt;br /&gt;
&lt;br /&gt;
2. Verify that the delete pop-up window closes when the user clicks on the &amp;quot;close&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
3. Verify that the delete pop-up window closes after a successful participant deletion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Relevant Links ==&lt;br /&gt;
GitHub repository: https://github.com/amarthyasa/reimplementation-front-end &amp;lt;br&amp;gt;&lt;br /&gt;
Pull request: https://github.com/expertiza/reimplementation-front-end/pull/5&lt;br /&gt;
&lt;br /&gt;
== Team == &lt;br /&gt;
=== Mentor === &lt;br /&gt;
Rucha Kolekar&amp;lt;br&amp;gt;&lt;br /&gt;
=== Student Team ===&lt;br /&gt;
Amarthya Sivakumar Annu (asivaku5@ncsu.edu) &amp;lt;br&amp;gt;&lt;br /&gt;
Ajay Krishna Raveendar (araveen@ncsu.edu) &amp;lt;br&amp;gt;&lt;br /&gt;
Kiron Jayesh (kjayesh@ncsu.edu) &amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2341._UI_for_Participants.rb&amp;diff=148963</id>
		<title>CSC/ECE 517 Spring 2023 - E2341. UI for Participants.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2341._UI_for_Participants.rb&amp;diff=148963"/>
		<updated>2023-04-07T04:20:29Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About ==&lt;br /&gt;
The aim of Program 4 is to create a UI for participants.rb using React. There are totally 4 main views to be implemented. They are:&lt;br /&gt;
&lt;br /&gt;
1. participants.js &amp;lt;br&amp;gt;&lt;br /&gt;
2. createParticipants.js &amp;lt;br&amp;gt;&lt;br /&gt;
3. updateParticipants.js &amp;lt;br&amp;gt;&lt;br /&gt;
4. deleteParticipants.js &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
=== participants.js (Manage participants) === &lt;br /&gt;
&lt;br /&gt;
This is the main page that allows the user to manage participants' information. All the other pages like create participants, update participants, and delete participants can be accessed from this page.&lt;br /&gt;
&lt;br /&gt;
We intend to create the Manage Participants page something like this:&lt;br /&gt;
&lt;br /&gt;
[[File:ManageParticipant.png | 1000px]]&lt;br /&gt;
&lt;br /&gt;
=== createParticipants.js ===&lt;br /&gt;
&lt;br /&gt;
In the create participants popup window, the user will be able to create a participant by entering his/her username, first name, last name, email, role, email preferences, institution, and the grade of the participant for a course or a particular assignment. &lt;br /&gt;
&lt;br /&gt;
We have planned to create the page in this manner.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateParticipant.png | 1000px]]&lt;br /&gt;
&lt;br /&gt;
=== updateParticipants.rb ===&lt;br /&gt;
&lt;br /&gt;
On this page, the user will be able to update the details of an existing participant. We intend to create the update participants page something like this:&lt;br /&gt;
&lt;br /&gt;
[[File:UpdateParticipant.png | 1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== deleteParticpants.rb ===&lt;br /&gt;
&lt;br /&gt;
By clicking the delete participant option, the user will be prompted with a popup window that asks for confirmation from the user. Doing this will completely delete the participant from the records if they are not associated elsewhere (as a reviewer or reviewee for another assignment).&lt;br /&gt;
&lt;br /&gt;
This is how we plan to design this popup window.&lt;br /&gt;
&lt;br /&gt;
[[File:deleteParticipant.png | 1000px]]&lt;br /&gt;
&lt;br /&gt;
== Database ==&lt;br /&gt;
&lt;br /&gt;
Since we do not have a database to implement in the reimplementation_front_end GitHub repo, we have to mock the databases. This is done by creating a JSON file where all the columns related to participants are entered.&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
Apart from testing the pages manually, there is no need of writing automated tests for this program.&lt;br /&gt;
&lt;br /&gt;
== Relevant Links ==&lt;br /&gt;
GitHub repository: https://github.com/amarthyasa/reimplementation-front-end&lt;br /&gt;
Pull request: https://github.com/expertiza/reimplementation-front-end/pull/5&lt;br /&gt;
&lt;br /&gt;
== Team == &lt;br /&gt;
=== Mentor === &lt;br /&gt;
Rucha Kolekar&amp;lt;br&amp;gt;&lt;br /&gt;
=== Student Team ===&lt;br /&gt;
Amarthya Sivakumar Annu (asivaku5@ncsu.edu) &amp;lt;br&amp;gt;&lt;br /&gt;
Ajay Krishna Raveendar (araveen@ncsu.edu) &amp;lt;br&amp;gt;&lt;br /&gt;
Kiron Jayesh (kjayesh@ncsu.edu) &amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2341._UI_for_Participants.rb&amp;diff=148962</id>
		<title>CSC/ECE 517 Spring 2023 - E2341. UI for Participants.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2341._UI_for_Participants.rb&amp;diff=148962"/>
		<updated>2023-04-07T04:15:13Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About ==&lt;br /&gt;
The aim of Program 4 is to create a UI for participants.rb using React. There are totally 4 main views to be implemented. They are:&lt;br /&gt;
&lt;br /&gt;
1. participants.js &amp;lt;br&amp;gt;&lt;br /&gt;
2. createParticipants.js &amp;lt;br&amp;gt;&lt;br /&gt;
3. updateParticipants.js &amp;lt;br&amp;gt;&lt;br /&gt;
4. deleteParticipants.js &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
=== participants.js (Manage participants) === &lt;br /&gt;
&lt;br /&gt;
This is the main page that allows the user to manage participants' information. All the other pages like create participants, update participants, and delete participants can be accessed from this page.&lt;br /&gt;
&lt;br /&gt;
We intend to create the Manage Participants page something like this:&lt;br /&gt;
&lt;br /&gt;
[[File:ManageParticipant.png | 1000px]]&lt;br /&gt;
&lt;br /&gt;
=== createParticipants.js ===&lt;br /&gt;
&lt;br /&gt;
In the create participants popup window, the user will be able to create a participant by entering his/her username, first name, last name, email, role, email preferences, institution, and the grade of the participant for a course or a particular assignment. &lt;br /&gt;
&lt;br /&gt;
We have planned to create the page in this manner.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateParticipant.png | 1000px]]&lt;br /&gt;
&lt;br /&gt;
=== updateParticipants.rb ===&lt;br /&gt;
&lt;br /&gt;
On this page, the user will be able to update the details of an existing participant. We intend to create the update participants page something like this:&lt;br /&gt;
&lt;br /&gt;
[[File:UpdateParticipant.png | 1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== deleteParticpants.rb ===&lt;br /&gt;
&lt;br /&gt;
By clicking the delete participant option, the user will be prompted with a popup window that asks for confirmation from the user. Doing this will completely delete the participant from the records if they are not associated elsewhere (as a reviewer or reviewee for another assignment).&lt;br /&gt;
&lt;br /&gt;
This is how we plan to design this popup window.&lt;br /&gt;
&lt;br /&gt;
[[File:deleteParticipant.png | 1000px]]&lt;br /&gt;
&lt;br /&gt;
== Database ==&lt;br /&gt;
&lt;br /&gt;
Since we do not have a database to implement in the reimplementation_front_end GitHub repo, we have to mock the databases. This is done by creating a JSON file where all the columns related to participants are entered.&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
Apart from testing the pages manually, there is no need of writing automated tests for this program.&lt;br /&gt;
&lt;br /&gt;
== Team == &lt;br /&gt;
=== Mentor === &lt;br /&gt;
Rucha Kolekar&amp;lt;br&amp;gt;&lt;br /&gt;
=== Student Team ===&lt;br /&gt;
Amarthya Sivakumar Annu (asivaku5@ncsu.edu) &amp;lt;br&amp;gt;&lt;br /&gt;
Ajay Krishna Raveendar (araveen@ncsu.edu) &amp;lt;br&amp;gt;&lt;br /&gt;
Kiron Jayesh (kjayesh@ncsu.edu) &amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2341._UI_for_Participants.rb&amp;diff=148961</id>
		<title>CSC/ECE 517 Spring 2023 - E2341. UI for Participants.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2341._UI_for_Participants.rb&amp;diff=148961"/>
		<updated>2023-04-07T04:08:55Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: /* Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About ==&lt;br /&gt;
The aim of Program 4 is to create a UI for participants.rb using React. There are totally 4 main views to be implemented. They are:&lt;br /&gt;
&lt;br /&gt;
1. participants.js &amp;lt;br&amp;gt;&lt;br /&gt;
2. createParticipants.js &amp;lt;br&amp;gt;&lt;br /&gt;
3. updateParticipants.js &amp;lt;br&amp;gt;&lt;br /&gt;
4. deleteParticipants.js &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
=== participants.js (Manage participants) === &lt;br /&gt;
&lt;br /&gt;
This is the main page that allows the user to manage participants' information. All the other pages like create participants, update participants, and delete participants can be accessed from this page.&lt;br /&gt;
&lt;br /&gt;
We intend to create the Manage Participants page something like this:&lt;br /&gt;
&lt;br /&gt;
[[File:ManageParticipant.png | 1000px]]&lt;br /&gt;
&lt;br /&gt;
=== createParticipants.js ===&lt;br /&gt;
&lt;br /&gt;
In the create participants popup window, the user will be able to create a participant by entering his/her username, first name, last name, email, role, email preferences, institution, and the grade of the participant for a course or a particular assignment. &lt;br /&gt;
&lt;br /&gt;
We have planned to create the page in this manner.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateParticipant.png | 1000px]]&lt;br /&gt;
&lt;br /&gt;
=== updateParticipants.rb ===&lt;br /&gt;
&lt;br /&gt;
On this page, the user will be able to update the details of an existing participant. We intend to create the update participants page something like this:&lt;br /&gt;
&lt;br /&gt;
[[File:UpdateParticipant.png | 1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== deleteParticpants.rb ===&lt;br /&gt;
&lt;br /&gt;
By clicking the delete participant option, the user will be prompted with a popup window that asks for confirmation from the user. Doing this will completely delete the participant from the records if they are not associated elsewhere (as a reviewer or reviewee for another assignment).&lt;br /&gt;
&lt;br /&gt;
This is how we plan to design this popup window.&lt;br /&gt;
&lt;br /&gt;
[[File:deleteParticipant.png | 1000px]]&lt;br /&gt;
&lt;br /&gt;
== Team == &lt;br /&gt;
=== Mentor === &lt;br /&gt;
Rucha Kolekar&amp;lt;br&amp;gt;&lt;br /&gt;
=== Student Team ===&lt;br /&gt;
Amarthya Sivakumar Annu (asivaku5@ncsu.edu) &amp;lt;br&amp;gt;&lt;br /&gt;
Ajay Krishna Raveendar (araveen@ncsu.edu) &amp;lt;br&amp;gt;&lt;br /&gt;
Kiron Jayesh (kjayesh@ncsu.edu) &amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2341._UI_for_Participants.rb&amp;diff=148960</id>
		<title>CSC/ECE 517 Spring 2023 - E2341. UI for Participants.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2341._UI_for_Participants.rb&amp;diff=148960"/>
		<updated>2023-04-07T04:00:07Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: /* createParticipants.js */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About ==&lt;br /&gt;
The aim of Program 4 is to create a UI for participants.rb using React. There are totally 4 main views to be implemented. They are:&lt;br /&gt;
&lt;br /&gt;
1. participants.js &amp;lt;br&amp;gt;&lt;br /&gt;
2. createParticipants.js &amp;lt;br&amp;gt;&lt;br /&gt;
3. updateParticipants.js &amp;lt;br&amp;gt;&lt;br /&gt;
4. deleteParticipants.js &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
=== participants.js (Manage participants) === &lt;br /&gt;
&lt;br /&gt;
This is the main page that allows the user to manage participants' information. All the other pages like create participants, update participants, and delete participants can be accessed from this page.&lt;br /&gt;
&lt;br /&gt;
We intend to create the Manage Participants page something like this:&lt;br /&gt;
&lt;br /&gt;
[[File:ManageParticipant.png | 1000px]]&lt;br /&gt;
&lt;br /&gt;
=== createParticipants.js ===&lt;br /&gt;
&lt;br /&gt;
In the create participants popup window, the user will be able to create a participant by entering his/her username, first name, last name, email, role, email preferences, institution, and the grade of the participant for a course or a particular assignment. &lt;br /&gt;
&lt;br /&gt;
We have planned to create the page in this manner.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateParticipant.png | 1000px]]&lt;br /&gt;
&lt;br /&gt;
== Team == &lt;br /&gt;
=== Mentor === &lt;br /&gt;
Rucha Kolekar&amp;lt;br&amp;gt;&lt;br /&gt;
=== Student Team ===&lt;br /&gt;
Amarthya Sivakumar Annu (asivaku5@ncsu.edu) &amp;lt;br&amp;gt;&lt;br /&gt;
Ajay Krishna Raveendar (araveen@ncsu.edu) &amp;lt;br&amp;gt;&lt;br /&gt;
Kiron Jayesh (kjayesh@ncsu.edu) &amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2341._UI_for_Participants.rb&amp;diff=148959</id>
		<title>CSC/ECE 517 Spring 2023 - E2341. UI for Participants.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2341._UI_for_Participants.rb&amp;diff=148959"/>
		<updated>2023-04-07T03:58:35Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About ==&lt;br /&gt;
The aim of Program 4 is to create a UI for participants.rb using React. There are totally 4 main views to be implemented. They are:&lt;br /&gt;
&lt;br /&gt;
1. participants.js &amp;lt;br&amp;gt;&lt;br /&gt;
2. createParticipants.js &amp;lt;br&amp;gt;&lt;br /&gt;
3. updateParticipants.js &amp;lt;br&amp;gt;&lt;br /&gt;
4. deleteParticipants.js &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
=== participants.js (Manage participants) === &lt;br /&gt;
&lt;br /&gt;
This is the main page that allows the user to manage participants' information. All the other pages like create participants, update participants, and delete participants can be accessed from this page.&lt;br /&gt;
&lt;br /&gt;
We intend to create the Manage Participants page something like this:&lt;br /&gt;
&lt;br /&gt;
[[File:ManageParticipant.png | 1000px]]&lt;br /&gt;
&lt;br /&gt;
=== createParticipants.js ===&lt;br /&gt;
&lt;br /&gt;
In the create participants popup window, the user will be able to create a participant by entering his/her username, first name, last name, email, role, email preferences, institution, and the grade of the participant for a course or a particular assignment. &lt;br /&gt;
&lt;br /&gt;
We have planned to create the page in this manner.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Team == &lt;br /&gt;
=== Mentor === &lt;br /&gt;
Rucha Kolekar&amp;lt;br&amp;gt;&lt;br /&gt;
=== Student Team ===&lt;br /&gt;
Amarthya Sivakumar Annu (asivaku5@ncsu.edu) &amp;lt;br&amp;gt;&lt;br /&gt;
Ajay Krishna Raveendar (araveen@ncsu.edu) &amp;lt;br&amp;gt;&lt;br /&gt;
Kiron Jayesh (kjayesh@ncsu.edu) &amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:UpdateParticipant.png&amp;diff=148958</id>
		<title>File:UpdateParticipant.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:UpdateParticipant.png&amp;diff=148958"/>
		<updated>2023-04-07T03:49:44Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:DeleteParticipant.png&amp;diff=148957</id>
		<title>File:DeleteParticipant.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:DeleteParticipant.png&amp;diff=148957"/>
		<updated>2023-04-07T03:49:03Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:CreateParticipant.png&amp;diff=148956</id>
		<title>File:CreateParticipant.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:CreateParticipant.png&amp;diff=148956"/>
		<updated>2023-04-07T03:48:47Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:ManageParticipant.png&amp;diff=148955</id>
		<title>File:ManageParticipant.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:ManageParticipant.png&amp;diff=148955"/>
		<updated>2023-04-07T03:48:29Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2341._UI_for_Participants.rb&amp;diff=148954</id>
		<title>CSC/ECE 517 Spring 2023 - E2341. UI for Participants.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2341._UI_for_Participants.rb&amp;diff=148954"/>
		<updated>2023-04-07T03:30:38Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Design ==&lt;br /&gt;
&lt;br /&gt;
== Team == &lt;br /&gt;
=== Mentor === &lt;br /&gt;
Rucha Kolekar&amp;lt;br&amp;gt;&lt;br /&gt;
=== Student Team ===&lt;br /&gt;
Amarthya Sivakumar Annu (asivaku5@ncsu.edu) &amp;lt;br&amp;gt;&lt;br /&gt;
Ajay Krishna Raveendar (araveen@ncsu.edu) &amp;lt;br&amp;gt;&lt;br /&gt;
Kiron Jayesh (kjayesh@ncsu.edu) &amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023&amp;diff=148953</id>
		<title>CSC/ECE 517 Spring 2023</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023&amp;diff=148953"/>
		<updated>2023-04-07T03:26:52Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: /* OSS Projects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== OSS Projects ==&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 -E2306. Refactor user_controller.rb, user.rb and its child classes]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - E2320. Reimplement the Question hierarchy]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - E2312 + E2313. Reimplement response.rb and responses_controller.rb]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - NTNX-1. Support provisioning MongoDb via NDB Kubernetes Operator]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - E2316. Reimplement sign_up_sheet_controller.rb]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - E2315. Reimplement signed_up_team.rb, sign_up_topic.rb, sign_up_sheet.rb]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - E2340. Reimplement signed_up_team.rb, sign_up_topic.rb, sign_up_sheet.rb (Project 4)]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - E2323. Refactor DueDate functionality from assignment.rb]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - E2317: Reimplement participant.rb]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - E2314. Reimplement the response map hierarchy]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023- NTNX-4. Extend NDB operator provision postregresql aws]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - E2321. Reimplement QuestionnairesController and QuestionsController]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - E2305. Grading audit trail]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - E2309. Refactor Node model and its subclasses]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - NTNX-2. Support provisioning mySQL databases via NDB Kubernetes Operator]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - E2300. Refactor E1858. Github metrics integration]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Sping 2023 - E2322: Refactor Questionnaire View to display Bookmark Rating]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - NTNX-3. Refactor models to keep profiles (software, compute, network, etc) as optional and use default if not specified]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE_517_Spring_2023_-_E2301._Refactor_review_maping_helper]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE_517_Spring_2023_-_E2337._Reimplement_node_hierarchy]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE_517_Spring_2023_-E2339._Reimplement signed_up_teams_controller and sign_up_topics_controller.rb]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE_517_Spring_2023_-_E2320._Reimplement the Question Hierarchy]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE_517_Spring_2023 - E2341. UI for Participants.rb]]&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2341._UI_for_Participants.rb&amp;diff=148950</id>
		<title>CSC/ECE 517 Spring 2023 - E2341. UI for Participants.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2341._UI_for_Participants.rb&amp;diff=148950"/>
		<updated>2023-04-07T03:24:54Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: Created page with &amp;quot;== Team ==  === Mentor ===  Rucha Kolekar&amp;lt;br&amp;gt; === Student Team === Amarthya Sivakumar Annu (asivaku5@ncsu.edu) &amp;lt;br&amp;gt; Ajay Krishna Raveendar (araveen@ncsu.edu) &amp;lt;br&amp;gt; Kiron Jayesh...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Team == &lt;br /&gt;
=== Mentor === &lt;br /&gt;
Rucha Kolekar&amp;lt;br&amp;gt;&lt;br /&gt;
=== Student Team ===&lt;br /&gt;
Amarthya Sivakumar Annu (asivaku5@ncsu.edu) &amp;lt;br&amp;gt;&lt;br /&gt;
Ajay Krishna Raveendar (araveen@ncsu.edu) &amp;lt;br&amp;gt;&lt;br /&gt;
Kiron Jayesh (kjayesh@ncsu.edu) &amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023&amp;diff=148949</id>
		<title>CSC/ECE 517 Spring 2023</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023&amp;diff=148949"/>
		<updated>2023-04-07T03:22:10Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: /* OSS Projects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== OSS Projects ==&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 -E2306. Refactor user_controller.rb, user.rb and its child classes]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - E2320. Reimplement the Question hierarchy]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - E2312 + E2313. Reimplement response.rb and responses_controller.rb]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - NTNX-1. Support provisioning MongoDb via NDB Kubernetes Operator]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - E2316. Reimplement sign_up_sheet_controller.rb]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - E2315. Reimplement signed_up_team.rb, sign_up_topic.rb, sign_up_sheet.rb]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - E2340. Reimplement signed_up_team.rb, sign_up_topic.rb, sign_up_sheet.rb (Project 4)]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - E2323. Refactor DueDate functionality from assignment.rb]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - E2317: Reimplement participant.rb]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - E2314. Reimplement the response map hierarchy]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023- NTNX-4. Extend NDB operator provision postregresql aws]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - E2321. Reimplement QuestionnairesController and QuestionsController]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - E2305. Grading audit trail]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - E2309. Refactor Node model and its subclasses]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - NTNX-2. Support provisioning mySQL databases via NDB Kubernetes Operator]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - E2300. Refactor E1858. Github metrics integration]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Sping 2023 - E2322: Refactor Questionnaire View to display Bookmark Rating]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - NTNX-3. Refactor models to keep profiles (software, compute, network, etc) as optional and use default if not specified]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE_517_Spring_2023_-_E2301._Refactor_review_maping_helper]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE_517_Spring_2023_-_E2337._Reimplement_node_hierarchy]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE_517_Spring_2023_-E2339._Reimplement signed_up_teams_controller and sign_up_topics_controller.rb]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE_517_Spring_2023_-_E2320._Reimplement the Question Hierarchy]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE_517_Spring_2023_-_E2341. UI for Participants.rb]]&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023&amp;diff=148948</id>
		<title>CSC/ECE 517 Spring 2023</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023&amp;diff=148948"/>
		<updated>2023-04-07T03:21:37Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: /* OSS Projects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== OSS Projects ==&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 -E2306. Refactor user_controller.rb, user.rb and its child classes]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - E2320. Reimplement the Question hierarchy]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - E2312 + E2313. Reimplement response.rb and responses_controller.rb]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - NTNX-1. Support provisioning MongoDb via NDB Kubernetes Operator]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - E2316. Reimplement sign_up_sheet_controller.rb]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - E2315. Reimplement signed_up_team.rb, sign_up_topic.rb, sign_up_sheet.rb]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - E2340. Reimplement signed_up_team.rb, sign_up_topic.rb, sign_up_sheet.rb (Project 4)]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - E2323. Refactor DueDate functionality from assignment.rb]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - E2317: Reimplement participant.rb]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - E2314. Reimplement the response map hierarchy]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023- NTNX-4. Extend NDB operator provision postregresql aws]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - E2321. Reimplement QuestionnairesController and QuestionsController]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - E2305. Grading audit trail]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - E2309. Refactor Node model and its subclasses]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - NTNX-2. Support provisioning mySQL databases via NDB Kubernetes Operator]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - E2300. Refactor E1858. Github metrics integration]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Sping 2023 - E2322: Refactor Questionnaire View to display Bookmark Rating]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - NTNX-3. Refactor models to keep profiles (software, compute, network, etc) as optional and use default if not specified]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE_517_Spring_2023_-_E2301._Refactor_review_maping_helper]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE_517_Spring_2023_-_E2337._Reimplement_node_hierarchy]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE_517_Spring_2023_-E2339._Reimplement signed_up_teams_controller and sign_up_topics_controller.rb]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE_517_Spring_2023_-_E2320._Reimplement the Question Hierarchy]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE_517_Spring_2023_-_E2341._UI for Participants.rb]]&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148628</id>
		<title>CSC/ECE 517 Spring 2023 - E2317: Reimplement participant.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148628"/>
		<updated>2023-03-28T03:14:19Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: /* Future Work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E2317 OSS assignment for Spring 2023, CSC/ECE 517&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It is a web application which is maintained collectively by NC State faculty and students which allows instructors to create new assignments and customize new or existing assignments. It also allows the instructors to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Overview of the Classes==&lt;br /&gt;
===participant.rb===&lt;br /&gt;
The participant.rb is a model class that has many associations with other models. There are many methods present in it such as fullname, name, team and handle. There is a method called delete which checks for any associations before performing the delete operation. The other methods include topic_name, mail_assigned_reviewers, able_to_review, email, authorization and self.sort_by_name. There is one more method self.export that returns the information of the participant as a CSV file.&lt;br /&gt;
&lt;br /&gt;
==Backgroud of the Project==&lt;br /&gt;
The participant.rb model has many new changes to be implemented. The reimplementation has to make sense and while checking the original model, we realised that some of the methods were irrelevant to participants model and that it has to be implemented in some other model. The changes mainly dealt with removing, merging and replacing methods to segregate methods with a single functionality relevant to participants model. Tests were written for all of the methods that were introduced and modified. Existing tests for the methods that were unchanged were run to ensure proper functioning of the model. Comments are added to each method to enhance readability. Further information about the reimplementations are discussed below.&lt;br /&gt;
&lt;br /&gt;
==Design Decisions==&lt;br /&gt;
The following changes were reimplemented in the participant.rb&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left:40px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tasks !! Status !! Testing &lt;br /&gt;
|-&lt;br /&gt;
| Replaced force_delete method with leave_team method&lt;br /&gt;
 || Implemented || Completed&lt;br /&gt;
|-&lt;br /&gt;
| mail_assigned_reviewers method was removed || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| able_to_review method was eliminated || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| email method was removed || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| Merged export and export_fields methods || Implemented || To be completed  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Replaced force_delete Method with leave_team Method ===&lt;br /&gt;
The original 'force_delete' method would delete the participant from the team and if there is only one participant in the team then it would delete the team.  &lt;br /&gt;
[[File:E2317_force_delete.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
A new method 'leave_team' was introduced in place of 'force_delete' as 'force_delete' method is supposed to be present in the teams.rb and not participant.rb. The difference between force_delete method and this is that even if there is only one participant it wouldn't delete the team.&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_leave_team.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
=== mail_assigned_reviewers Method was Removed ===&lt;br /&gt;
The method 'Mail_assigned_reviewers' is responsible for sending an email to the assigned reviewer whenever a new submission is made. It would be more appropriate for this method to be included in teams.rb rather than participant.rb. Hence, this method was removed.&lt;br /&gt;
&lt;br /&gt;
=== able_to_review Method was Removed ===&lt;br /&gt;
'able_to_review' method is just using can_review value. This method can be eliminated.&lt;br /&gt;
&lt;br /&gt;
=== email Method was Removed ===&lt;br /&gt;
'email' method was removed as it was not required.&lt;br /&gt;
&lt;br /&gt;
=== Merged export and export_fields Methods ===&lt;br /&gt;
We didn't implement this task as merging two functions became a hassle for debugging and testing and fixing errors present in the code. Instead, it is generally considered good programming practice to break down large functions into smaller, more manageable ones. This principle is commonly known as the &amp;quot;Single Responsibility Principle,&amp;quot; which states that a function or module should have only one reason to change. By breaking down a large function into smaller functions, made our code more modular and easier to read, understand, and maintain.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;br /&gt;
&lt;br /&gt;
The reimplementation codebase originally used Minitest to test the included models: assignment.rb, role.rb, and user.rb. But since Expertiza was originally tested with RSpec, we used RSpec to test out model. The participants.rb contains many methods and associations with other models. Hence, to test the methods in participants, the other dependent methods have to be stubbed. To deal with the models, dummy models/dummy app can be created which will act as the associated classes. We have created all the required dummy classes by scaffolding them.&lt;br /&gt;
&lt;br /&gt;
To create test fixtures and to build the required models, Factory Bot has been used. Two separate files, factories.rb and factory_bot.rb was created to build the factories.&lt;br /&gt;
&lt;br /&gt;
4 participants and other required fields were created as fixtures after which the tests were written.&lt;br /&gt;
&lt;br /&gt;
====Note====&lt;br /&gt;
&lt;br /&gt;
The dummy classes that were created and other dependencies that were specifically installed for testing have been pushed to a different branch to not let the main codebase clutter with empty models. &lt;br /&gt;
&lt;br /&gt;
To run the tests, kindly pull from the [https://github.com/amarthyasa/reimplementation-back-end/tree/testing_files testing_files] branch of the repository and run bundle install to install dependencies like RSpec and Factory Bot.&lt;br /&gt;
&lt;br /&gt;
====Tests====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left:40px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Test No. !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 1 || Tests if the team method returns the team of the participant&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Tests if the leave_team method deletes a participant if no associations exist and force is nil&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Tests if the leave_team method deletes a participant if no associations exist and force is true&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Tests if the leave_team method deletes a participant with associations and force is true and there are multiple team users&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Tests if the name method returns the name of the participant&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Tests if the fullname method returns the full name of the participant&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Tests if the handle method returns the handle of the participant&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Tests if the sort_by_name method returns a sorted list of participants in alphabetical order&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Tests if the topic_name method returns the participant topic name when nil&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Tests if the topic_name method returns the participant topic name when not nil.&lt;br /&gt;
|-&lt;br /&gt;
| 11 || Tests if the authorization method returns participant when no arguments are passed.&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Tests if the authorization method returns reader when no arguments are passed.&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Tests if the authorization method returns submitter when no arguments are passed.&lt;br /&gt;
|-&lt;br /&gt;
| 14 || Tests if the authorization method returns reviewer when no arguments are passed.&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Tests if the authorization method returns submitter when no arguments are passed.&lt;br /&gt;
|-&lt;br /&gt;
| 14 || Tests if the authorization method returns reviewer when no arguments are passed.&lt;br /&gt;
|-&lt;br /&gt;
| 15 ||&lt;br /&gt;
|-&lt;br /&gt;
| 16 || &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The test which checks if participant and team is deleted if only one participant is on a team is deleted since that implementation has been removed from the model.&lt;br /&gt;
&lt;br /&gt;
=====Test 1=====&lt;br /&gt;
This code is testing a method team and is expected to return the team associated with the participant. It is done by mocking the behavior of other objects that the team method relies on, specifically a user object and a team_user object. By mocking these dependencies, the test can focus on testing the behavior of the team method in isolation.&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_Test1.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
=====Tests 2 to 4=====&lt;br /&gt;
This is a set of tests for the delete method of a participant object. The first two tests check that a participant can be deleted if there are no associations, with and without the force parameter. The third test checks that a participant can be deleted even if there are associations with multiple team_users, but only if the force parameter is true. The allow method is used to set up mock behavior for the team and participant objects in the third test.&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_Test234.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
=====Test 5=====&lt;br /&gt;
This is a test block for the name method of the participant object. The test checks if calling name on a participant object returns the expected name of 'Jane'. If the method is working correctly, the test should pass.&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_Test5.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
=====Test 6=====&lt;br /&gt;
This is a test block for the fullname method of the participant object. The test checks if calling the full name on a participant object returns the expected name of 'Jane Doe'. If the method is working correctly, the test should pass.&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_Test6.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Test 7=====&lt;br /&gt;
&lt;br /&gt;
=====Test 8=====&lt;br /&gt;
&lt;br /&gt;
=====Tests 9 to 10=====&lt;br /&gt;
&lt;br /&gt;
=====Tests 11 to 14=====&lt;br /&gt;
&lt;br /&gt;
=====Tests 15 to 16=====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
&lt;br /&gt;
Github repository: https://github.com/amarthyasa/reimplementation-back-end/tree/main&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Github repository branch for testing: https://github.com/amarthyasa/reimplementation-back-end/tree/testing_files&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Pull request: https://github.com/expertiza/reimplementation-back-end/pull/5&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Testing video: https://drive.google.com/file/d/1VXMF8dbJgjcj68Y9pRTgXg2cJrfL9-_6/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
===Mentor===&lt;br /&gt;
Rucha Kolekar&lt;br /&gt;
&lt;br /&gt;
===Student Team===&lt;br /&gt;
Amarthya Sivakumar Annu (asivaku5@ncsu.edu)&amp;lt;br&amp;gt;&lt;br /&gt;
Ajay Krishna Raveendar (araveen@ncsu.edu) &amp;lt;br&amp;gt;&lt;br /&gt;
Kiron Jayesh (kjayesh@ncsu.edu)&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148158</id>
		<title>CSC/ECE 517 Spring 2023 - E2317: Reimplement participant.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148158"/>
		<updated>2023-03-23T02:04:01Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: /* Student Team */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E2317 OSS assignment for Spring 2023, CSC/ECE 517&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It is a web application which is maintained collectively by NC State faculty and students which allows instructors to create new assignments and customize new or existing assignments. It also allows the instructors to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Overview of the Classes==&lt;br /&gt;
===participant.rb===&lt;br /&gt;
The participant.rb is a model class that has many associations with other models. There are many methods present in it such as fullname, name, team and handle. There is a method called delete which checks for any associations before performing the delete operation. The other methods include topic_name, mail_assigned_reviewers, able_to_review, email, authorization and self.sort_by_name. There is one more method self.export that returns the information of the participant as a CSV file.&lt;br /&gt;
&lt;br /&gt;
==Backgroud of the Project==&lt;br /&gt;
The participant.rb model has many new changes to be implemented. The reimplementation has to make sense and while checking the original model, we realised that some of the methods were irrelevant to participants model and that it has to be implemented in some other model. The changes mainly dealt with removing, merging and replacing methods to segregate methods with a single functionality relevant to participants model. Tests were written for all of the methods that were introduced and modified. Existing tests for the methods that were unchanged were run to ensure proper functioning of the model. Comments are added to each method to enhance readability. Further information about the reimplementations are discussed below.&lt;br /&gt;
&lt;br /&gt;
==Design Decisions==&lt;br /&gt;
The following changes were reimplemented in the participant.rb&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left:40px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tasks !! Status !! Testing &lt;br /&gt;
|-&lt;br /&gt;
| Replaced force_delete method with leave_team method&lt;br /&gt;
 || Implemented || Completed&lt;br /&gt;
|-&lt;br /&gt;
| mail_assigned_reviewers method was removed || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| able_to_review method was eliminated || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| email method was removed || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| Merged export and export_fields methods || Implemented || To be completed  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Replaced force_delete Method with leave_team Method ===&lt;br /&gt;
The original 'force_delete' method would delete the participant from the team and if there is only one participant in the team then it would delete the team.  &lt;br /&gt;
[[File:E2317_force_delete.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
A new method 'leave_team' was introduced in place of 'force_delete' as 'force_delete' method is supposed to be present in the teams.rb and not participant.rb. The difference between force_delete method and this is that even if there is only one participant it wouldn't delete the team.&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_leave_team.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
=== mail_assigned_reviewers Method was Removed ===&lt;br /&gt;
The method 'Mail_assigned_reviewers' is responsible for sending an email to the assigned reviewer whenever a new submission is made. It would be more appropriate for this method to be included in teams.rb rather than participant.rb. Hence, this method was removed.&lt;br /&gt;
&lt;br /&gt;
=== able_to_review Method was Removed ===&lt;br /&gt;
'able_to_review' method is just using can_review value. This method can be eliminated.&lt;br /&gt;
&lt;br /&gt;
=== email Method was Removed ===&lt;br /&gt;
'email' method was removed as it was not required.&lt;br /&gt;
&lt;br /&gt;
=== Merged export and export_fields Methods ===&lt;br /&gt;
'export' and 'export_fields' methods can be merged to form a single method under 'export'.&lt;br /&gt;
&lt;br /&gt;
Before merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_export_exportfields.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
After merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_merge.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;br /&gt;
&lt;br /&gt;
The reimplementation codebase originally used Minitest to test the included models: assignment.rb, role.rb, and user.rb. But since Expertiza was originally tested with RSpec, we used RSpec to test out model. The participants.rb contains many methods and associations with other models. Hence, to test the methods in participants, the other dependent methods have to be stubbed. To deal with the models, dummy models/dummy app can be created which will act as the associated classes. We have created all the required dummy classes by scaffolding them.&lt;br /&gt;
&lt;br /&gt;
To create test fixtures and to build the required models, Factory Bot has been used. Two separate files, factories.rb and factory_bot.rb was created to build the factories.&lt;br /&gt;
&lt;br /&gt;
4 participants and other required fields were created as fixtures after which the tests were written.&lt;br /&gt;
&lt;br /&gt;
====Note====&lt;br /&gt;
&lt;br /&gt;
The dummy classes that were created and other dependencies that were specifically installed for testing have been pushed to a different branch to not let the main codebase clutter with empty models. &lt;br /&gt;
&lt;br /&gt;
To run the tests, kindly pull from the [https://github.com/amarthyasa/reimplementation-back-end/tree/testing_files testing_files] branch of the repository and run bundle install to install dependencies like RSpec and Factory Bot.&lt;br /&gt;
&lt;br /&gt;
====Tests====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left:40px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Test No. !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 1 || Tests if the team method returns the team of the participant&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Tests if the leave_team method deletes a participant if no associations exist and force is nil&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Tests if the leave_team method deletes a participant if no associations exist and force is true&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Tests if the leave_team method deletes a participant with associations and force is true and there are multiple team users&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Tests if the name method returns the name of the participant&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Tests if the fullname method returns the full name of the participant&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Tests if the handle method returns the handle of the participant&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Tests if the sort_by_name method returns a sorted list of participants in alphabetical order&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Tests if the topic_name method returns the participant topic name when nil&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Tests if the topic_name method returns the participant topic name when not nil.&lt;br /&gt;
|-&lt;br /&gt;
| 11 || Tests if the authorization method returns participant when no arguments are passed.&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Tests if the authorization method returns reader when no arguments are passed.&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Tests if the authorization method returns submitter when no arguments are passed.&lt;br /&gt;
|-&lt;br /&gt;
| 14 || Tests if the authorization method returns reviewer when no arguments are passed.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The test which checks if participant and team is deleted if only one participant is on a team is deleted since that implementation has been removed from the model.&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;br /&gt;
&lt;br /&gt;
1. Testing for the merged method, export, has to be done.&lt;br /&gt;
&lt;br /&gt;
2. Response method has to be tested.&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
&lt;br /&gt;
Github repository: https://github.com/amarthyasa/reimplementation-back-end/tree/main&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Github repository branch for testing: https://github.com/amarthyasa/reimplementation-back-end/tree/testing_files&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Pull request: https://github.com/expertiza/reimplementation-back-end/pull/5&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Testing video:&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
===Mentor===&lt;br /&gt;
Rucha Kolekar&lt;br /&gt;
&lt;br /&gt;
===Student Team===&lt;br /&gt;
Amarthya Sivakumar Annu (asivaku5@ncsu.edu)&amp;lt;br&amp;gt;&lt;br /&gt;
Ajay Krishna Raveendar (araveen@ncsu.edu) &amp;lt;br&amp;gt;&lt;br /&gt;
Kiron Jayesh (kjayesh@ncsu.edu)&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148156</id>
		<title>CSC/ECE 517 Spring 2023 - E2317: Reimplement participant.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148156"/>
		<updated>2023-03-23T02:02:03Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: /* Student Team */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E2317 OSS assignment for Spring 2023, CSC/ECE 517&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It is a web application which is maintained collectively by NC State faculty and students which allows instructors to create new assignments and customize new or existing assignments. It also allows the instructors to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Overview of the Classes==&lt;br /&gt;
===participant.rb===&lt;br /&gt;
The participant.rb is a model class that has many associations with other models. There are many methods present in it such as fullname, name, team and handle. There is a method called delete which checks for any associations before performing the delete operation. The other methods include topic_name, mail_assigned_reviewers, able_to_review, email, authorization and self.sort_by_name. There is one more method self.export that returns the information of the participant as a CSV file.&lt;br /&gt;
&lt;br /&gt;
==Backgroud of the Project==&lt;br /&gt;
The participant.rb model has many new changes to be implemented. The reimplementation has to make sense and while checking the original model, we realised that some of the methods were irrelevant to participants model and that it has to be implemented in some other model. The changes mainly dealt with removing, merging and replacing methods to segregate methods with a single functionality relevant to participants model. Tests were written for all of the methods that were introduced and modified. Existing tests for the methods that were unchanged were run to ensure proper functioning of the model. Comments are added to each method to enhance readability. Further information about the reimplementations are discussed below.&lt;br /&gt;
&lt;br /&gt;
==Design Decisions==&lt;br /&gt;
The following changes were reimplemented in the participant.rb&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left:40px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tasks !! Status !! Testing &lt;br /&gt;
|-&lt;br /&gt;
| Replaced force_delete method with leave_team method&lt;br /&gt;
 || Implemented || Completed&lt;br /&gt;
|-&lt;br /&gt;
| mail_assigned_reviewers method was removed || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| able_to_review method was eliminated || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| email method was removed || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| Merged export and export_fields methods || Implemented || To be completed  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Replaced force_delete Method with leave_team Method ===&lt;br /&gt;
The original 'force_delete' method would delete the participant from the team and if there is only one participant in the team then it would delete the team.  &lt;br /&gt;
[[File:E2317_force_delete.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
A new method 'leave_team' was introduced in place of 'force_delete' as 'force_delete' method is supposed to be present in the teams.rb and not participant.rb. The difference between force_delete method and this is that even if there is only one participant it wouldn't delete the team.&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_leave_team.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
=== mail_assigned_reviewers Method was Removed ===&lt;br /&gt;
The method 'Mail_assigned_reviewers' is responsible for sending an email to the assigned reviewer whenever a new submission is made. It would be more appropriate for this method to be included in teams.rb rather than participant.rb. Hence, this method was removed.&lt;br /&gt;
&lt;br /&gt;
=== able_to_review Method was Removed ===&lt;br /&gt;
'able_to_review' method is just using can_review value. This method can be eliminated.&lt;br /&gt;
&lt;br /&gt;
=== email Method was Removed ===&lt;br /&gt;
'email' method was removed as it was not required.&lt;br /&gt;
&lt;br /&gt;
=== Merged export and export_fields Methods ===&lt;br /&gt;
'export' and 'export_fields' methods can be merged to form a single method under 'export'.&lt;br /&gt;
&lt;br /&gt;
Before merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_export_exportfields.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
After merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_merge.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;br /&gt;
&lt;br /&gt;
The reimplementation codebase originally used Minitest to test the included models: assignment.rb, role.rb, and user.rb. But since Expertiza was originally tested with RSpec, we used RSpec to test out model. The participants.rb contains many methods and associations with other models. Hence, to test the methods in participants, the other dependent methods have to be stubbed. To deal with the models, dummy models/dummy app can be created which will act as the associated classes. We have created all the required dummy classes by scaffolding them.&lt;br /&gt;
&lt;br /&gt;
To create test fixtures and to build the required models, Factory Bot has been used. Two separate files, factories.rb and factory_bot.rb was created to build the factories.&lt;br /&gt;
&lt;br /&gt;
4 participants and other required fields were created as fixtures after which the tests were written.&lt;br /&gt;
&lt;br /&gt;
====Note====&lt;br /&gt;
&lt;br /&gt;
The dummy classes that were created and other dependencies that were specifically installed for testing have been pushed to a different branch to not let the main codebase clutter with empty models. &lt;br /&gt;
&lt;br /&gt;
To run the tests, kindly pull from the [https://github.com/amarthyasa/reimplementation-back-end/tree/testing_files testing_files] branch of the repository and run bundle install to install dependencies like RSpec and Factory Bot.&lt;br /&gt;
&lt;br /&gt;
====Tests====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left:40px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Test No. !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 1 || Tests if the team method returns the team of the participant&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Tests if the leave_team method deletes a participant if no associations exist and force is nil&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Tests if the leave_team method deletes a participant if no associations exist and force is true&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Tests if the leave_team method deletes a participant with associations and force is true and there are multiple team users&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Tests if the name method returns the name of the participant&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Tests if the fullname method returns the full name of the participant&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Tests if the handle method returns the handle of the participant&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Tests if the sort_by_name method returns a sorted list of participants in alphabetical order&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Tests if the topic_name method returns the participant topic name when nil&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Tests if the topic_name method returns the participant topic name when not nil.&lt;br /&gt;
|-&lt;br /&gt;
| 11 || Tests if the authorization method returns participant when no arguments are passed.&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Tests if the authorization method returns reader when no arguments are passed.&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Tests if the authorization method returns submitter when no arguments are passed.&lt;br /&gt;
|-&lt;br /&gt;
| 14 || Tests if the authorization method returns reviewer when no arguments are passed.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The test which checks if participant and team is deleted if only one participant is on a team is deleted since that implementation has been removed from the model.&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;br /&gt;
&lt;br /&gt;
1. Testing for the merged method, export, has to be done.&lt;br /&gt;
&lt;br /&gt;
2. Response method has to be tested.&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
&lt;br /&gt;
Github repository: https://github.com/amarthyasa/reimplementation-back-end/tree/main&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Github repository branch for testing: https://github.com/amarthyasa/reimplementation-back-end/tree/testing_files&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Pull request: https://github.com/expertiza/reimplementation-back-end/pull/5&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Testing video:&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
===Mentor===&lt;br /&gt;
Rucha Kolekar&lt;br /&gt;
&lt;br /&gt;
===Student Team===&lt;br /&gt;
Amarthya Sivakumar Annu &amp;lt;br&amp;gt;&lt;br /&gt;
Ajay Krishna Raveendar &amp;lt;br&amp;gt;&lt;br /&gt;
Kiron Jayesh&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148155</id>
		<title>CSC/ECE 517 Spring 2023 - E2317: Reimplement participant.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148155"/>
		<updated>2023-03-23T02:01:34Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E2317 OSS assignment for Spring 2023, CSC/ECE 517&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It is a web application which is maintained collectively by NC State faculty and students which allows instructors to create new assignments and customize new or existing assignments. It also allows the instructors to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Overview of the Classes==&lt;br /&gt;
===participant.rb===&lt;br /&gt;
The participant.rb is a model class that has many associations with other models. There are many methods present in it such as fullname, name, team and handle. There is a method called delete which checks for any associations before performing the delete operation. The other methods include topic_name, mail_assigned_reviewers, able_to_review, email, authorization and self.sort_by_name. There is one more method self.export that returns the information of the participant as a CSV file.&lt;br /&gt;
&lt;br /&gt;
==Backgroud of the Project==&lt;br /&gt;
The participant.rb model has many new changes to be implemented. The reimplementation has to make sense and while checking the original model, we realised that some of the methods were irrelevant to participants model and that it has to be implemented in some other model. The changes mainly dealt with removing, merging and replacing methods to segregate methods with a single functionality relevant to participants model. Tests were written for all of the methods that were introduced and modified. Existing tests for the methods that were unchanged were run to ensure proper functioning of the model. Comments are added to each method to enhance readability. Further information about the reimplementations are discussed below.&lt;br /&gt;
&lt;br /&gt;
==Design Decisions==&lt;br /&gt;
The following changes were reimplemented in the participant.rb&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left:40px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tasks !! Status !! Testing &lt;br /&gt;
|-&lt;br /&gt;
| Replaced force_delete method with leave_team method&lt;br /&gt;
 || Implemented || Completed&lt;br /&gt;
|-&lt;br /&gt;
| mail_assigned_reviewers method was removed || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| able_to_review method was eliminated || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| email method was removed || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| Merged export and export_fields methods || Implemented || To be completed  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Replaced force_delete Method with leave_team Method ===&lt;br /&gt;
The original 'force_delete' method would delete the participant from the team and if there is only one participant in the team then it would delete the team.  &lt;br /&gt;
[[File:E2317_force_delete.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
A new method 'leave_team' was introduced in place of 'force_delete' as 'force_delete' method is supposed to be present in the teams.rb and not participant.rb. The difference between force_delete method and this is that even if there is only one participant it wouldn't delete the team.&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_leave_team.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
=== mail_assigned_reviewers Method was Removed ===&lt;br /&gt;
The method 'Mail_assigned_reviewers' is responsible for sending an email to the assigned reviewer whenever a new submission is made. It would be more appropriate for this method to be included in teams.rb rather than participant.rb. Hence, this method was removed.&lt;br /&gt;
&lt;br /&gt;
=== able_to_review Method was Removed ===&lt;br /&gt;
'able_to_review' method is just using can_review value. This method can be eliminated.&lt;br /&gt;
&lt;br /&gt;
=== email Method was Removed ===&lt;br /&gt;
'email' method was removed as it was not required.&lt;br /&gt;
&lt;br /&gt;
=== Merged export and export_fields Methods ===&lt;br /&gt;
'export' and 'export_fields' methods can be merged to form a single method under 'export'.&lt;br /&gt;
&lt;br /&gt;
Before merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_export_exportfields.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
After merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_merge.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;br /&gt;
&lt;br /&gt;
The reimplementation codebase originally used Minitest to test the included models: assignment.rb, role.rb, and user.rb. But since Expertiza was originally tested with RSpec, we used RSpec to test out model. The participants.rb contains many methods and associations with other models. Hence, to test the methods in participants, the other dependent methods have to be stubbed. To deal with the models, dummy models/dummy app can be created which will act as the associated classes. We have created all the required dummy classes by scaffolding them.&lt;br /&gt;
&lt;br /&gt;
To create test fixtures and to build the required models, Factory Bot has been used. Two separate files, factories.rb and factory_bot.rb was created to build the factories.&lt;br /&gt;
&lt;br /&gt;
4 participants and other required fields were created as fixtures after which the tests were written.&lt;br /&gt;
&lt;br /&gt;
====Note====&lt;br /&gt;
&lt;br /&gt;
The dummy classes that were created and other dependencies that were specifically installed for testing have been pushed to a different branch to not let the main codebase clutter with empty models. &lt;br /&gt;
&lt;br /&gt;
To run the tests, kindly pull from the [https://github.com/amarthyasa/reimplementation-back-end/tree/testing_files testing_files] branch of the repository and run bundle install to install dependencies like RSpec and Factory Bot.&lt;br /&gt;
&lt;br /&gt;
====Tests====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left:40px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Test No. !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 1 || Tests if the team method returns the team of the participant&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Tests if the leave_team method deletes a participant if no associations exist and force is nil&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Tests if the leave_team method deletes a participant if no associations exist and force is true&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Tests if the leave_team method deletes a participant with associations and force is true and there are multiple team users&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Tests if the name method returns the name of the participant&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Tests if the fullname method returns the full name of the participant&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Tests if the handle method returns the handle of the participant&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Tests if the sort_by_name method returns a sorted list of participants in alphabetical order&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Tests if the topic_name method returns the participant topic name when nil&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Tests if the topic_name method returns the participant topic name when not nil.&lt;br /&gt;
|-&lt;br /&gt;
| 11 || Tests if the authorization method returns participant when no arguments are passed.&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Tests if the authorization method returns reader when no arguments are passed.&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Tests if the authorization method returns submitter when no arguments are passed.&lt;br /&gt;
|-&lt;br /&gt;
| 14 || Tests if the authorization method returns reviewer when no arguments are passed.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The test which checks if participant and team is deleted if only one participant is on a team is deleted since that implementation has been removed from the model.&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;br /&gt;
&lt;br /&gt;
1. Testing for the merged method, export, has to be done.&lt;br /&gt;
&lt;br /&gt;
2. Response method has to be tested.&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
&lt;br /&gt;
Github repository: https://github.com/amarthyasa/reimplementation-back-end/tree/main&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Github repository branch for testing: https://github.com/amarthyasa/reimplementation-back-end/tree/testing_files&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Pull request: https://github.com/expertiza/reimplementation-back-end/pull/5&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Testing video:&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
===Mentor===&lt;br /&gt;
Rucha Kolekar&lt;br /&gt;
&lt;br /&gt;
===Student Team===&lt;br /&gt;
Amarthya Sivakumar Annu&lt;br /&gt;
Ajay Krishna Raveendar&lt;br /&gt;
Kiron Jayesh&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148152</id>
		<title>CSC/ECE 517 Spring 2023 - E2317: Reimplement participant.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148152"/>
		<updated>2023-03-23T01:58:25Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: /* Relevant Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E2317 OSS assignment for Spring 2023, CSC/ECE 517&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It is a web application which is maintained collectively by NC State faculty and students which allows instructors to create new assignments and customize new or existing assignments. It also allows the instructors to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Overview of the Classes==&lt;br /&gt;
===participant.rb===&lt;br /&gt;
The participant.rb is a model class that has many associations with other models. There are many methods present in it such as fullname, name, team and handle. There is a method called delete which checks for any associations before performing the delete operation. The other methods include topic_name, mail_assigned_reviewers, able_to_review, email, authorization and self.sort_by_name. There is one more method self.export that returns the information of the participant as a CSV file.&lt;br /&gt;
&lt;br /&gt;
==Backgroud of the Project==&lt;br /&gt;
The participant.rb model has many new changes to be implemented. The reimplementation has to make sense and while checking the original model, we realised that some of the methods were irrelevant to participants model and that it has to be implemented in some other model. The changes mainly dealt with removing, merging and replacing methods to segregate methods with a single functionality relevant to participants model. Tests were written for all of the methods that were introduced and modified. Existing tests for the methods that were unchanged were run to ensure proper functioning of the model. Comments are added to each method to enhance readability. Further information about the reimplementations are discussed below.&lt;br /&gt;
&lt;br /&gt;
==Design Decisions==&lt;br /&gt;
The following changes were reimplemented in the participant.rb&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left:40px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tasks !! Status !! Testing &lt;br /&gt;
|-&lt;br /&gt;
| Replaced force_delete method with leave_team method&lt;br /&gt;
 || Implemented || Completed&lt;br /&gt;
|-&lt;br /&gt;
| mail_assigned_reviewers method was removed || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| able_to_review method was eliminated || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| email method was removed || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| Merged export and export_fields methods || Implemented || To be completed  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Replaced force_delete Method with leave_team Method ===&lt;br /&gt;
The original 'force_delete' method would delete the participant from the team and if there is only one participant in the team then it would delete the team.  &lt;br /&gt;
[[File:E2317_force_delete.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
A new method 'leave_team' was introduced in place of 'force_delete' as 'force_delete' method is supposed to be present in the teams.rb and not participant.rb. The difference between force_delete method and this is that even if there is only one participant it wouldn't delete the team.&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_leave_team.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
=== mail_assigned_reviewers Method was Removed ===&lt;br /&gt;
The method 'Mail_assigned_reviewers' is responsible for sending an email to the assigned reviewer whenever a new submission is made. It would be more appropriate for this method to be included in teams.rb rather than participant.rb. Hence, this method was removed.&lt;br /&gt;
&lt;br /&gt;
=== able_to_review Method was Removed ===&lt;br /&gt;
'able_to_review' method is just using can_review value. This method can be eliminated.&lt;br /&gt;
&lt;br /&gt;
=== email Method was Removed ===&lt;br /&gt;
'email' method was removed as it was not required.&lt;br /&gt;
&lt;br /&gt;
=== Merged export and export_fields Methods ===&lt;br /&gt;
'export' and 'export_fields' methods can be merged to form a single method under 'export'.&lt;br /&gt;
&lt;br /&gt;
Before merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_export_exportfields.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
After merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_merge.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;br /&gt;
&lt;br /&gt;
The reimplementation codebase originally used Minitest to test the included models: assignment.rb, role.rb, and user.rb. But since Expertiza was originally tested with RSpec, we used RSpec to test out model. The participants.rb contains many methods and associations with other models. Hence, to test the methods in participants, the other dependent methods have to be stubbed. To deal with the models, dummy models/dummy app can be created which will act as the associated classes. We have created all the required dummy classes by scaffolding them.&lt;br /&gt;
&lt;br /&gt;
To create test fixtures and to build the required models, Factory Bot has been used. Two separate files, factories.rb and factory_bot.rb was created to build the factories.&lt;br /&gt;
&lt;br /&gt;
4 participants and other required fields were created as fixtures after which the tests were written.&lt;br /&gt;
&lt;br /&gt;
====Note====&lt;br /&gt;
&lt;br /&gt;
The dummy classes that were created and other dependencies that were specifically installed for testing have been pushed to a different branch to not let the main codebase clutter with empty models. &lt;br /&gt;
&lt;br /&gt;
To run the tests, kindly pull from the [https://github.com/amarthyasa/reimplementation-back-end/tree/testing_files testing_files] branch of the repository and run bundle install to install dependencies like RSpec and Factory Bot.&lt;br /&gt;
&lt;br /&gt;
====Tests====&lt;br /&gt;
&lt;br /&gt;
Test 1: Tests if the team method returns the team of the participant. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 2: Tests if the leave_team method deletes a participant if no associations exist and force is nil.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 3: Tests if the leave_team method deletes a participant if no associations exist and force is true.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 4: Tests if the leave_team method deletes a participant with associations and force is true and there are multiple team users.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
The test which checks if participant and team is deleted if only one participant is on a team is deleted since that implementation has been removed from the model.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 5: Tests if the name method returns the name of the participant.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 6: Tests if the fullname method returns the full name of the participant.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 7: Tests if the handle method returns the handle of the participant.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 8: Tests if the sor_by_name method returns a sorted list of participants in alphabetical order.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 9: Tests if the topic_name method returns the participant topic name when nil.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 10: Tests if the topic_name method returns the participant topic name when not nil.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 11: Tests if the authorization method returns participant when no arguments are passed.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 12: Tests if the authorization method returns reader when no arguments are passed.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 13: Tests if the authorization method returns submitter when no arguments are passed.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 14: Tests if the authorization method returns reviewer when no arguments are passed.&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;br /&gt;
&lt;br /&gt;
1. Testing for the merged method, export, has to be done.&lt;br /&gt;
&lt;br /&gt;
2. Response method has to be tested.&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
&lt;br /&gt;
Github repository: https://github.com/amarthyasa/reimplementation-back-end/tree/main&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Github repository branch for testing: https://github.com/amarthyasa/reimplementation-back-end/tree/testing_files&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Pull request: https://github.com/expertiza/reimplementation-back-end/pull/5&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Testing video:&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148149</id>
		<title>CSC/ECE 517 Spring 2023 - E2317: Reimplement participant.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148149"/>
		<updated>2023-03-23T01:56:27Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E2317 OSS assignment for Spring 2023, CSC/ECE 517&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It is a web application which is maintained collectively by NC State faculty and students which allows instructors to create new assignments and customize new or existing assignments. It also allows the instructors to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Overview of the Classes==&lt;br /&gt;
===participant.rb===&lt;br /&gt;
The participant.rb is a model class that has many associations with other models. There are many methods present in it such as fullname, name, team and handle. There is a method called delete which checks for any associations before performing the delete operation. The other methods include topic_name, mail_assigned_reviewers, able_to_review, email, authorization and self.sort_by_name. There is one more method self.export that returns the information of the participant as a CSV file.&lt;br /&gt;
&lt;br /&gt;
==Backgroud of the Project==&lt;br /&gt;
The participant.rb model has many new changes to be implemented. The reimplementation has to make sense and while checking the original model, we realised that some of the methods were irrelevant to participants model and that it has to be implemented in some other model. The changes mainly dealt with removing, merging and replacing methods to segregate methods with a single functionality relevant to participants model. Tests were written for all of the methods that were introduced and modified. Existing tests for the methods that were unchanged were run to ensure proper functioning of the model. Comments are added to each method to enhance readability. Further information about the reimplementations are discussed below.&lt;br /&gt;
&lt;br /&gt;
==Design Decisions==&lt;br /&gt;
The following changes were reimplemented in the participant.rb&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left:40px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tasks !! Status !! Testing &lt;br /&gt;
|-&lt;br /&gt;
| Replaced force_delete method with leave_team method&lt;br /&gt;
 || Implemented || Completed&lt;br /&gt;
|-&lt;br /&gt;
| mail_assigned_reviewers method was removed || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| able_to_review method was eliminated || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| email method was removed || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| Merged export and export_fields methods || Implemented || To be completed  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Replaced force_delete Method with leave_team Method ===&lt;br /&gt;
The original 'force_delete' method would delete the participant from the team and if there is only one participant in the team then it would delete the team.  &lt;br /&gt;
[[File:E2317_force_delete.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
A new method 'leave_team' was introduced in place of 'force_delete' as 'force_delete' method is supposed to be present in the teams.rb and not participant.rb. The difference between force_delete method and this is that even if there is only one participant it wouldn't delete the team.&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_leave_team.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
=== mail_assigned_reviewers Method was Removed ===&lt;br /&gt;
The method 'Mail_assigned_reviewers' is responsible for sending an email to the assigned reviewer whenever a new submission is made. It would be more appropriate for this method to be included in teams.rb rather than participant.rb. Hence, this method was removed.&lt;br /&gt;
&lt;br /&gt;
=== able_to_review Method was Removed ===&lt;br /&gt;
'able_to_review' method is just using can_review value. This method can be eliminated.&lt;br /&gt;
&lt;br /&gt;
=== email Method was Removed ===&lt;br /&gt;
'email' method was removed as it was not required.&lt;br /&gt;
&lt;br /&gt;
=== Merged export and export_fields Methods ===&lt;br /&gt;
'export' and 'export_fields' methods can be merged to form a single method under 'export'.&lt;br /&gt;
&lt;br /&gt;
Before merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_export_exportfields.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
After merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_merge.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;br /&gt;
&lt;br /&gt;
The reimplementation codebase originally used Minitest to test the included models: assignment.rb, role.rb, and user.rb. But since Expertiza was originally tested with RSpec, we used RSpec to test out model. The participants.rb contains many methods and associations with other models. Hence, to test the methods in participants, the other dependent methods have to be stubbed. To deal with the models, dummy models/dummy app can be created which will act as the associated classes. We have created all the required dummy classes by scaffolding them.&lt;br /&gt;
&lt;br /&gt;
To create test fixtures and to build the required models, Factory Bot has been used. Two separate files, factories.rb and factory_bot.rb was created to build the factories.&lt;br /&gt;
&lt;br /&gt;
4 participants and other required fields were created as fixtures after which the tests were written.&lt;br /&gt;
&lt;br /&gt;
====Note====&lt;br /&gt;
&lt;br /&gt;
The dummy classes that were created and other dependencies that were specifically installed for testing have been pushed to a different branch to not let the main codebase clutter with empty models. &lt;br /&gt;
&lt;br /&gt;
To run the tests, kindly pull from the [https://github.com/amarthyasa/reimplementation-back-end/tree/testing_files testing_files] branch of the repository and run bundle install to install dependencies like RSpec and Factory Bot.&lt;br /&gt;
&lt;br /&gt;
====Tests====&lt;br /&gt;
&lt;br /&gt;
Test 1: Tests if the team method returns the team of the participant. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 2: Tests if the leave_team method deletes a participant if no associations exist and force is nil.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 3: Tests if the leave_team method deletes a participant if no associations exist and force is true.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 4: Tests if the leave_team method deletes a participant with associations and force is true and there are multiple team users.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
The test which checks if participant and team is deleted if only one participant is on a team is deleted since that implementation has been removed from the model.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 5: Tests if the name method returns the name of the participant.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 6: Tests if the fullname method returns the full name of the participant.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 7: Tests if the handle method returns the handle of the participant.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 8: Tests if the sor_by_name method returns a sorted list of participants in alphabetical order.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 9: Tests if the topic_name method returns the participant topic name when nil.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 10: Tests if the topic_name method returns the participant topic name when not nil.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 11: Tests if the authorization method returns participant when no arguments are passed.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 12: Tests if the authorization method returns reader when no arguments are passed.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 13: Tests if the authorization method returns submitter when no arguments are passed.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 14: Tests if the authorization method returns reviewer when no arguments are passed.&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;br /&gt;
&lt;br /&gt;
1. Testing for the merged method, export, has to be done.&lt;br /&gt;
&lt;br /&gt;
2. Response method has to be tested.&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
&lt;br /&gt;
Github Repository: https://github.com/amarthyasa/reimplementation-back-end/tree/main&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148148</id>
		<title>CSC/ECE 517 Spring 2023 - E2317: Reimplement participant.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148148"/>
		<updated>2023-03-23T01:54:50Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: /* Tests */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E2317 OSS assignment for Spring 2023, CSC/ECE 517&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It is a web application which is maintained collectively by NC State faculty and students which allows instructors to create new assignments and customize new or existing assignments. It also allows the instructors to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Overview of the Classes==&lt;br /&gt;
===participant.rb===&lt;br /&gt;
The participant.rb is a model class that has many associations with other models. There are many methods present in it such as fullname, name, team and handle. There is a method called delete which checks for any associations before performing the delete operation. The other methods include topic_name, mail_assigned_reviewers, able_to_review, email, authorization and self.sort_by_name. There is one more method self.export that returns the information of the participant as a CSV file.&lt;br /&gt;
&lt;br /&gt;
==Backgroud of the Project==&lt;br /&gt;
The participant.rb model has many new changes to be implemented. The reimplementation has to make sense and while checking the original model, we realised that some of the methods were irrelevant to participants model and that it has to be implemented in some other model. The changes mainly dealt with removing, merging and replacing methods to segregate methods with a single functionality relevant to participants model. Tests were written for all of the methods that were introduced and modified. Existing tests for the methods that were unchanged were run to ensure proper functioning of the model. Comments are added to each method to enhance readability. Further information about the reimplementations are discussed below.&lt;br /&gt;
&lt;br /&gt;
==Design Decisions==&lt;br /&gt;
The following changes were reimplemented in the participant.rb&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left:40px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tasks !! Status !! Testing &lt;br /&gt;
|-&lt;br /&gt;
| Replaced force_delete method with leave_team method&lt;br /&gt;
 || Implemented || Completed&lt;br /&gt;
|-&lt;br /&gt;
| mail_assigned_reviewers method was removed || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| able_to_review method was eliminated || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| email method was removed || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| Merged export and export_fields methods || Implemented || To be completed  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Replaced force_delete Method with leave_team Method ===&lt;br /&gt;
The original 'force_delete' method would delete the participant from the team and if there is only one participant in the team then it would delete the team.  &lt;br /&gt;
[[File:E2317_force_delete.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
A new method 'leave_team' was introduced in place of 'force_delete' as 'force_delete' method is supposed to be present in the teams.rb and not participant.rb. The difference between force_delete method and this is that even if there is only one participant it wouldn't delete the team.&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_leave_team.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
=== mail_assigned_reviewers Method was Removed ===&lt;br /&gt;
The method 'Mail_assigned_reviewers' is responsible for sending an email to the assigned reviewer whenever a new submission is made. It would be more appropriate for this method to be included in teams.rb rather than participant.rb. Hence, this method was removed.&lt;br /&gt;
&lt;br /&gt;
=== able_to_review Method was Removed ===&lt;br /&gt;
'able_to_review' method is just using can_review value. This method can be eliminated.&lt;br /&gt;
&lt;br /&gt;
=== email Method was Removed ===&lt;br /&gt;
'email' method was removed as it was not required.&lt;br /&gt;
&lt;br /&gt;
=== Merged export and export_fields Methods ===&lt;br /&gt;
'export' and 'export_fields' methods can be merged to form a single method under 'export'.&lt;br /&gt;
&lt;br /&gt;
Before merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_export_exportfields.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
After merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_merge.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;br /&gt;
&lt;br /&gt;
The reimplementation codebase originally used Minitest to test the included models: assignment.rb, role.rb, and user.rb. But since Expertiza was originally tested with RSpec, we used RSpec to test out model. The participants.rb contains many methods and associations with other models. Hence, to test the methods in participants, the other dependent methods have to be stubbed. To deal with the models, dummy models/dummy app can be created which will act as the associated classes. We have created all the required dummy classes by scaffolding them.&lt;br /&gt;
&lt;br /&gt;
To create test fixtures and to build the required models, Factory Bot has been used. Two separate files, factories.rb and factory_bot.rb was created to build the factories.&lt;br /&gt;
&lt;br /&gt;
4 participants and other required fields were created as fixtures after which the tests were written.&lt;br /&gt;
&lt;br /&gt;
====Note====&lt;br /&gt;
&lt;br /&gt;
The dummy classes that were created and other dependencies that were specifically installed for testing have been pushed to a different branch to not let the main codebase clutter with empty models. &lt;br /&gt;
&lt;br /&gt;
To run the tests, kindly pull from the [https://github.com/amarthyasa/reimplementation-back-end/tree/testing_files testing_files] branch of the repository and run bundle install to install dependencies like RSpec and Factory Bot.&lt;br /&gt;
&lt;br /&gt;
====Tests====&lt;br /&gt;
&lt;br /&gt;
Test 1: Tests if the team method returns the team of the participant. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 2: Tests if the leave_team method deletes a participant if no associations exist and force is nil.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 3: Tests if the leave_team method deletes a participant if no associations exist and force is true.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 4: Tests if the leave_team method deletes a participant with associations and force is true and there are multiple team users.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
The test which checks if participant and team is deleted if only one participant is on a team is deleted since that implementation has been removed from the model.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 5: Tests if the name method returns the name of the participant.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 6: Tests if the fullname method returns the full name of the participant.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 7: Tests if the handle method returns the handle of the participant.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 8: Tests if the sor_by_name method returns a sorted list of participants in alphabetical order.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 9: Tests if the topic_name method returns the participant topic name when nil.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 10: Tests if the topic_name method returns the participant topic name when not nil.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 11: Tests if the authorization method returns participant when no arguments are passed.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 12: Tests if the authorization method returns reader when no arguments are passed.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 13: Tests if the authorization method returns submitter when no arguments are passed.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Test 14: Tests if the authorization method returns reviewer when no arguments are passed.&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;br /&gt;
&lt;br /&gt;
1. Testing for the merged method, export, has to be done.&lt;br /&gt;
&lt;br /&gt;
2. Response method has to be tested.&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148145</id>
		<title>CSC/ECE 517 Spring 2023 - E2317: Reimplement participant.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148145"/>
		<updated>2023-03-23T01:51:36Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E2317 OSS assignment for Spring 2023, CSC/ECE 517&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It is a web application which is maintained collectively by NC State faculty and students which allows instructors to create new assignments and customize new or existing assignments. It also allows the instructors to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Overview of the Classes==&lt;br /&gt;
===participant.rb===&lt;br /&gt;
The participant.rb is a model class that has many associations with other models. There are many methods present in it such as fullname, name, team and handle. There is a method called delete which checks for any associations before performing the delete operation. The other methods include topic_name, mail_assigned_reviewers, able_to_review, email, authorization and self.sort_by_name. There is one more method self.export that returns the information of the participant as a CSV file.&lt;br /&gt;
&lt;br /&gt;
==Backgroud of the Project==&lt;br /&gt;
The participant.rb model has many new changes to be implemented. The reimplementation has to make sense and while checking the original model, we realised that some of the methods were irrelevant to participants model and that it has to be implemented in some other model. The changes mainly dealt with removing, merging and replacing methods to segregate methods with a single functionality relevant to participants model. Tests were written for all of the methods that were introduced and modified. Existing tests for the methods that were unchanged were run to ensure proper functioning of the model. Comments are added to each method to enhance readability. Further information about the reimplementations are discussed below.&lt;br /&gt;
&lt;br /&gt;
==Design Decisions==&lt;br /&gt;
The following changes were reimplemented in the participant.rb&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left:40px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tasks !! Status !! Testing &lt;br /&gt;
|-&lt;br /&gt;
| Replaced force_delete method with leave_team method&lt;br /&gt;
 || Implemented || Completed&lt;br /&gt;
|-&lt;br /&gt;
| mail_assigned_reviewers method was removed || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| able_to_review method was eliminated || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| email method was removed || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| Merged export and export_fields methods || Implemented || To be completed  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Replaced force_delete Method with leave_team Method ===&lt;br /&gt;
The original 'force_delete' method would delete the participant from the team and if there is only one participant in the team then it would delete the team.  &lt;br /&gt;
[[File:E2317_force_delete.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
A new method 'leave_team' was introduced in place of 'force_delete' as 'force_delete' method is supposed to be present in the teams.rb and not participant.rb. The difference between force_delete method and this is that even if there is only one participant it wouldn't delete the team.&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_leave_team.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
=== mail_assigned_reviewers Method was Removed ===&lt;br /&gt;
The method 'Mail_assigned_reviewers' is responsible for sending an email to the assigned reviewer whenever a new submission is made. It would be more appropriate for this method to be included in teams.rb rather than participant.rb. Hence, this method was removed.&lt;br /&gt;
&lt;br /&gt;
=== able_to_review Method was Removed ===&lt;br /&gt;
'able_to_review' method is just using can_review value. This method can be eliminated.&lt;br /&gt;
&lt;br /&gt;
=== email Method was Removed ===&lt;br /&gt;
'email' method was removed as it was not required.&lt;br /&gt;
&lt;br /&gt;
=== Merged export and export_fields Methods ===&lt;br /&gt;
'export' and 'export_fields' methods can be merged to form a single method under 'export'.&lt;br /&gt;
&lt;br /&gt;
Before merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_export_exportfields.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
After merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_merge.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;br /&gt;
&lt;br /&gt;
The reimplementation codebase originally used Minitest to test the included models: assignment.rb, role.rb, and user.rb. But since Expertiza was originally tested with RSpec, we used RSpec to test out model. The participants.rb contains many methods and associations with other models. Hence, to test the methods in participants, the other dependent methods have to be stubbed. To deal with the models, dummy models/dummy app can be created which will act as the associated classes. We have created all the required dummy classes by scaffolding them.&lt;br /&gt;
&lt;br /&gt;
To create test fixtures and to build the required models, Factory Bot has been used. Two separate files, factories.rb and factory_bot.rb was created to build the factories.&lt;br /&gt;
&lt;br /&gt;
4 participants and other required fields were created as fixtures after which the tests were written.&lt;br /&gt;
&lt;br /&gt;
====Note====&lt;br /&gt;
&lt;br /&gt;
The dummy classes that were created and other dependencies that were specifically installed for testing have been pushed to a different branch to not let the main codebase clutter with empty models. &lt;br /&gt;
&lt;br /&gt;
To run the tests, kindly pull from the [https://github.com/amarthyasa/reimplementation-back-end/tree/testing_files testing_files] branch of the repository and run bundle install to install dependencies like RSpec and Factory Bot.&lt;br /&gt;
&lt;br /&gt;
====Tests====&lt;br /&gt;
&lt;br /&gt;
Test 1: Tests if the team method returns the team of the participant. &lt;br /&gt;
&lt;br /&gt;
Test 2: Tests if the leave_team method deletes a participant if no associations exist and force is nil.&lt;br /&gt;
&lt;br /&gt;
Test 3: Tests if the leave_team method deletes a participant if no associations exist and force is true.&lt;br /&gt;
&lt;br /&gt;
Test 4: Tests if the leave_team method deletes a participant with associations and force is true and there are multiple team users.&lt;br /&gt;
&lt;br /&gt;
The test which checks if participant and team is deleted if only one participant is on a team is deleted since that implementation has been removed from the model.&lt;br /&gt;
&lt;br /&gt;
Test 5: Tests if the name method returns the name of the participant.&lt;br /&gt;
&lt;br /&gt;
Test 6: Tests if the fullname method returns the full name of the participant.&lt;br /&gt;
&lt;br /&gt;
Test 7: Tests if the handle method returns the handle of the participant.&lt;br /&gt;
&lt;br /&gt;
Test 8: Tests if the sor_by_name method returns a sorted list of participants in alphabetical order.&lt;br /&gt;
&lt;br /&gt;
Test 9: Tests if the topic_name method returns the participant topic name when nil.&lt;br /&gt;
&lt;br /&gt;
Test 10: Tests if the topic_name method returns the participant topic name when not nil.&lt;br /&gt;
&lt;br /&gt;
Test 11: Tests if the authorization method returns participant when no arguments are passed.&lt;br /&gt;
&lt;br /&gt;
Test 12: Tests if the authorization method returns reader when no arguments are passed.&lt;br /&gt;
&lt;br /&gt;
Test 13: Tests if the authorization method returns submitter when no arguments are passed.&lt;br /&gt;
&lt;br /&gt;
Test 14: Tests if the authorization method returns reviewer when no arguments are passed.&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;br /&gt;
&lt;br /&gt;
1. Testing for the merged method, export, has to be done.&lt;br /&gt;
&lt;br /&gt;
2. Response method has to be tested.&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148135</id>
		<title>CSC/ECE 517 Spring 2023 - E2317: Reimplement participant.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148135"/>
		<updated>2023-03-23T01:45:18Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: /* Tests */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E2317 OSS assignment for Spring 2023, CSC/ECE 517&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It is a web application which is maintained collectively by NC State faculty and students which allows instructors to create new assignments and customize new or existing assignments. It also allows the instructors to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Overview of the Classes==&lt;br /&gt;
===participant.rb===&lt;br /&gt;
The participant.rb is a model class that has many associations with other models. There are many methods present in it such as fullname, name, team and handle. There is a method called delete which checks for any associations before performing the delete operation. The other methods include topic_name, mail_assigned_reviewers, able_to_review, email, authorization and self.sort_by_name. There is one more method self.export that returns the information of the participant as a CSV file.&lt;br /&gt;
&lt;br /&gt;
==Backgroud of the Project==&lt;br /&gt;
The participant.rb model has many new changes to be implemented. The reimplementation has to make sense and while checking the original model, we realised that some of the methods were irrelevant to participants model and that it has to be implemented in some other model. The changes mainly dealt with removing, merging and replacing methods to segregate methods with a single functionality relevant to participants model. Tests were written for all of the methods that were introduced and modified. Existing tests for the methods that were unchanged were run to ensure proper functioning of the model. Comments are added to each method to enhance readability. Further information about the reimplementations are discussed below.&lt;br /&gt;
&lt;br /&gt;
==Design Decisions==&lt;br /&gt;
The following changes were reimplemented in the participant.rb&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left:40px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tasks !! Status !! Testing &lt;br /&gt;
|-&lt;br /&gt;
| Replaced force_delete method with leave_team method&lt;br /&gt;
 || Implemented || Completed&lt;br /&gt;
|-&lt;br /&gt;
| mail_assigned_reviewers method was removed || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| able_to_review method was eliminated || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| email method was removed || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| Merged export and export_fields methods || Implemented || To be completed  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Replaced force_delete Method with leave_team Method ===&lt;br /&gt;
The original 'force_delete' method would delete the participant from the team and if there is only one participant in the team then it would delete the team.  &lt;br /&gt;
[[File:E2317_force_delete.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
A new method 'leave_team' was introduced in place of 'force_delete' as 'force_delete' method is supposed to be present in the teams.rb and not participant.rb. The difference between force_delete method and this is that even if there is only one participant it wouldn't delete the team.&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_leave_team.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
=== mail_assigned_reviewers Method was Removed ===&lt;br /&gt;
The method 'Mail_assigned_reviewers' is responsible for sending an email to the assigned reviewer whenever a new submission is made. It would be more appropriate for this method to be included in teams.rb rather than participant.rb. Hence, this method was removed.&lt;br /&gt;
&lt;br /&gt;
=== able_to_review Method was Removed ===&lt;br /&gt;
'able_to_review' method is just using can_review value. This method can be eliminated.&lt;br /&gt;
&lt;br /&gt;
=== email Method was Removed ===&lt;br /&gt;
'email' method was removed as it was not required.&lt;br /&gt;
&lt;br /&gt;
=== Merged export and export_fields Methods ===&lt;br /&gt;
'export' and 'export_fields' methods can be merged to form a single method under 'export'.&lt;br /&gt;
&lt;br /&gt;
Before merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_export_exportfields.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
After merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_merge.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;br /&gt;
&lt;br /&gt;
The reimplementation codebase originally used Minitest to test the included models: assignment.rb, role.rb, and user.rb. But since Expertiza was originally tested with RSpec, we used RSpec to test out model. The participants.rb contains many methods and associations with other models. Hence, to test the methods in participants, the other dependent methods have to be stubbed. To deal with the models, dummy models/dummy app can be created which will act as the associated classes. We have created all the required dummy classes by scaffolding them.&lt;br /&gt;
&lt;br /&gt;
To create test fixtures and to build the required models, Factory Bot has been used. Two separate files, factories.rb and factory_bot.rb was created to build the factories.&lt;br /&gt;
&lt;br /&gt;
4 participants and other required fields were created as fixtures after which the tests were written.&lt;br /&gt;
&lt;br /&gt;
====Note====&lt;br /&gt;
&lt;br /&gt;
The dummy classes that were created and other dependencies that were specifically installed for testing have been pushed to a different branch to not let the main codebase clutter with empty models. &lt;br /&gt;
&lt;br /&gt;
To run the tests, kindly pull from the [https://github.com/amarthyasa/reimplementation-back-end/tree/testing_files testing_files] branch of the repository and run bundle install to install dependencies like RSpec and Factory Bot.&lt;br /&gt;
&lt;br /&gt;
====Tests====&lt;br /&gt;
&lt;br /&gt;
Test 1: Tests if the team method returns the team of the participant. &lt;br /&gt;
&lt;br /&gt;
Test 2: Tests if the leave_team method deletes a participant if no associations exist and force is nil.&lt;br /&gt;
&lt;br /&gt;
Test 3: Tests if the leave_team method deletes a participant if no associations exist and force is true.&lt;br /&gt;
&lt;br /&gt;
Test 4: Tests if the leave_team method deletes a participant with associations and force is true and there are multiple team users.&lt;br /&gt;
&lt;br /&gt;
The test which checks if participant and team is deleted if only one participant is on a team is deleted since that implementation has been removed from the model.&lt;br /&gt;
&lt;br /&gt;
Test 5: Tests if the name method returns the name of the participant.&lt;br /&gt;
&lt;br /&gt;
Test 6: Tests if the fullname method returns the full name of the participant.&lt;br /&gt;
&lt;br /&gt;
Test 7: Tests if the handle method returns the handle of the participant.&lt;br /&gt;
&lt;br /&gt;
Test 8: Tests if the sor_by_name method returns a sorted list of participants in alphabetical order.&lt;br /&gt;
&lt;br /&gt;
Test 9: Tests if the topic_name method returns the participant topic name when nil.&lt;br /&gt;
&lt;br /&gt;
Test 10: Tests if the topic_name method returns the participant topic name when not nil.&lt;br /&gt;
&lt;br /&gt;
Test 11: Tests if the authorization method returns participant when no arguments are passed.&lt;br /&gt;
&lt;br /&gt;
Test 12: Tests if the authorization method returns reader when no arguments are passed.&lt;br /&gt;
&lt;br /&gt;
Test 13: Tests if the authorization method returns submitter when no arguments are passed.&lt;br /&gt;
&lt;br /&gt;
Test 14: Tests if the authorization method returns reviewer when no arguments are passed.&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148130</id>
		<title>CSC/ECE 517 Spring 2023 - E2317: Reimplement participant.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148130"/>
		<updated>2023-03-23T01:42:58Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: /* Testing Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E2317 OSS assignment for Spring 2023, CSC/ECE 517&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It is a web application which is maintained collectively by NC State faculty and students which allows instructors to create new assignments and customize new or existing assignments. It also allows the instructors to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Overview of the Classes==&lt;br /&gt;
===participant.rb===&lt;br /&gt;
The participant.rb is a model class that has many associations with other models. There are many methods present in it such as fullname, name, team and handle. There is a method called delete which checks for any associations before performing the delete operation. The other methods include topic_name, mail_assigned_reviewers, able_to_review, email, authorization and self.sort_by_name. There is one more method self.export that returns the information of the participant as a CSV file.&lt;br /&gt;
&lt;br /&gt;
==Backgroud of the Project==&lt;br /&gt;
The participant.rb model has many new changes to be implemented. The reimplementation has to make sense and while checking the original model, we realised that some of the methods were irrelevant to participants model and that it has to be implemented in some other model. The changes mainly dealt with removing, merging and replacing methods to segregate methods with a single functionality relevant to participants model. Tests were written for all of the methods that were introduced and modified. Existing tests for the methods that were unchanged were run to ensure proper functioning of the model. Comments are added to each method to enhance readability. Further information about the reimplementations are discussed below.&lt;br /&gt;
&lt;br /&gt;
==Design Decisions==&lt;br /&gt;
The following changes were reimplemented in the participant.rb&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left:40px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tasks !! Status !! Testing &lt;br /&gt;
|-&lt;br /&gt;
| Replaced force_delete method with leave_team method&lt;br /&gt;
 || Implemented || Completed&lt;br /&gt;
|-&lt;br /&gt;
| mail_assigned_reviewers method was removed || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| able_to_review method was eliminated || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| email method was removed || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| Merged export and export_fields methods || Implemented || To be completed  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Replaced force_delete Method with leave_team Method ===&lt;br /&gt;
The original 'force_delete' method would delete the participant from the team and if there is only one participant in the team then it would delete the team.  &lt;br /&gt;
[[File:E2317_force_delete.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
A new method 'leave_team' was introduced in place of 'force_delete' as 'force_delete' method is supposed to be present in the teams.rb and not participant.rb. The difference between force_delete method and this is that even if there is only one participant it wouldn't delete the team.&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_leave_team.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
=== mail_assigned_reviewers Method was Removed ===&lt;br /&gt;
The method 'Mail_assigned_reviewers' is responsible for sending an email to the assigned reviewer whenever a new submission is made. It would be more appropriate for this method to be included in teams.rb rather than participant.rb. Hence, this method was removed.&lt;br /&gt;
&lt;br /&gt;
=== able_to_review Method was Removed ===&lt;br /&gt;
'able_to_review' method is just using can_review value. This method can be eliminated.&lt;br /&gt;
&lt;br /&gt;
=== email Method was Removed ===&lt;br /&gt;
'email' method was removed as it was not required.&lt;br /&gt;
&lt;br /&gt;
=== Merged export and export_fields Methods ===&lt;br /&gt;
'export' and 'export_fields' methods can be merged to form a single method under 'export'.&lt;br /&gt;
&lt;br /&gt;
Before merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_export_exportfields.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
After merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_merge.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;br /&gt;
&lt;br /&gt;
The reimplementation codebase originally used Minitest to test the included models: assignment.rb, role.rb, and user.rb. But since Expertiza was originally tested with RSpec, we used RSpec to test out model. The participants.rb contains many methods and associations with other models. Hence, to test the methods in participants, the other dependent methods have to be stubbed. To deal with the models, dummy models/dummy app can be created which will act as the associated classes. We have created all the required dummy classes by scaffolding them.&lt;br /&gt;
&lt;br /&gt;
To create test fixtures and to build the required models, Factory Bot has been used. Two separate files, factories.rb and factory_bot.rb was created to build the factories.&lt;br /&gt;
&lt;br /&gt;
4 participants and other required fields were created as fixtures after which the tests were written.&lt;br /&gt;
&lt;br /&gt;
====Note====&lt;br /&gt;
&lt;br /&gt;
The dummy classes that were created and other dependencies that were specifically installed for testing have been pushed to a different branch to not let the main codebase clutter with empty models. &lt;br /&gt;
&lt;br /&gt;
To run the tests, kindly pull from the [https://github.com/amarthyasa/reimplementation-back-end/tree/testing_files testing_files] branch of the repository and run bundle install to install dependencies like RSpec and Factory Bot.&lt;br /&gt;
&lt;br /&gt;
====Tests====&lt;br /&gt;
&lt;br /&gt;
Test 1: Tests if the team method returns the team of the participant. &lt;br /&gt;
&lt;br /&gt;
Test 2: Tests if the leave_team method deletes a participant if no associations exist and force is nil.&lt;br /&gt;
&lt;br /&gt;
Test 3: Tests if the leave_team method deletes a participant if no associations exist and force is true.&lt;br /&gt;
&lt;br /&gt;
Test 4: Tests if the leave_team method deletes a participant with associations and force is true and there are multiple team users.&lt;br /&gt;
&lt;br /&gt;
The test which checks if participant and team is deleted if only one participant is on a team is deleted since that implementation has been removed from the model.&lt;br /&gt;
&lt;br /&gt;
Test 5: Tests if the name method returns the name of the participant.&lt;br /&gt;
&lt;br /&gt;
Test 6: Tests if the fullname method returns the full name of the participant.&lt;br /&gt;
&lt;br /&gt;
Test 7: Tests if the handle method returns the handle of the participant.&lt;br /&gt;
&lt;br /&gt;
Test 8: Tests if the sor_by_name method returns a sorted list of participants in alphabetical order.&lt;br /&gt;
&lt;br /&gt;
Test 9: Tests if the topic_name method returns the participant topic name when nil.&lt;br /&gt;
&lt;br /&gt;
Test 10: Tests if the topic_name method returns the participant topic name when not nil.&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148129</id>
		<title>CSC/ECE 517 Spring 2023 - E2317: Reimplement participant.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148129"/>
		<updated>2023-03-23T01:42:31Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: /* Tests */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E2317 OSS assignment for Spring 2023, CSC/ECE 517&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It is a web application which is maintained collectively by NC State faculty and students which allows instructors to create new assignments and customize new or existing assignments. It also allows the instructors to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Overview of the Classes==&lt;br /&gt;
===participant.rb===&lt;br /&gt;
The participant.rb is a model class that has many associations with other models. There are many methods present in it such as fullname, name, team and handle. There is a method called delete which checks for any associations before performing the delete operation. The other methods include topic_name, mail_assigned_reviewers, able_to_review, email, authorization and self.sort_by_name. There is one more method self.export that returns the information of the participant as a CSV file.&lt;br /&gt;
&lt;br /&gt;
==Backgroud of the Project==&lt;br /&gt;
The participant.rb model has many new changes to be implemented. The reimplementation has to make sense and while checking the original model, we realised that some of the methods were irrelevant to participants model and that it has to be implemented in some other model. The changes mainly dealt with removing, merging and replacing methods to segregate methods with a single functionality relevant to participants model. Tests were written for all of the methods that were introduced and modified. Existing tests for the methods that were unchanged were run to ensure proper functioning of the model. Comments are added to each method to enhance readability. Further information about the reimplementations are discussed below.&lt;br /&gt;
&lt;br /&gt;
==Design Decisions==&lt;br /&gt;
The following changes were reimplemented in the participant.rb&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left:40px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tasks !! Status !! Testing &lt;br /&gt;
|-&lt;br /&gt;
| Replaced force_delete method with leave_team method&lt;br /&gt;
 || Implemented || Completed&lt;br /&gt;
|-&lt;br /&gt;
| mail_assigned_reviewers method was removed || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| able_to_review method was eliminated || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| email method was removed || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| Merged export and export_fields methods || Implemented || To be completed  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Replaced force_delete Method with leave_team Method ===&lt;br /&gt;
The original 'force_delete' method would delete the participant from the team and if there is only one participant in the team then it would delete the team.  &lt;br /&gt;
[[File:E2317_force_delete.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
A new method 'leave_team' was introduced in place of 'force_delete' as 'force_delete' method is supposed to be present in the teams.rb and not participant.rb. The difference between force_delete method and this is that even if there is only one participant it wouldn't delete the team.&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_leave_team.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
=== mail_assigned_reviewers Method was Removed ===&lt;br /&gt;
The method 'Mail_assigned_reviewers' is responsible for sending an email to the assigned reviewer whenever a new submission is made. It would be more appropriate for this method to be included in teams.rb rather than participant.rb. Hence, this method was removed.&lt;br /&gt;
&lt;br /&gt;
=== able_to_review Method was Removed ===&lt;br /&gt;
'able_to_review' method is just using can_review value. This method can be eliminated.&lt;br /&gt;
&lt;br /&gt;
=== email Method was Removed ===&lt;br /&gt;
'email' method was removed as it was not required.&lt;br /&gt;
&lt;br /&gt;
=== Merged export and export_fields Methods ===&lt;br /&gt;
'export' and 'export_fields' methods can be merged to form a single method under 'export'.&lt;br /&gt;
&lt;br /&gt;
Before merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_export_exportfields.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
After merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_merge.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;br /&gt;
&lt;br /&gt;
The reimplementation codebase originally used Minitest to test the included models: assignment.rb, role.rb, and user.rb. But since Expertiza was originally tested with RSpec, we used RSpec to test out model. The participants.rb contains many methods and associations with other models. Hence, to test the methods in participants, the other dependent methods have to be stubbed. To deal with the models, dummy models/dummy app can be created which will act as the associated classes. We have created all the required dummy classes by scaffolding them.&lt;br /&gt;
&lt;br /&gt;
To create test fixtures and to build the required models, Factory Bot has been used. Two separate files, factories.rb and factory_bot.rb was created to build the factories.&lt;br /&gt;
&lt;br /&gt;
4 participants and other required fields were created as fixtures after which the tests were written.&lt;br /&gt;
&lt;br /&gt;
====Note====&lt;br /&gt;
&lt;br /&gt;
The dummy classes that were created and other dependencies that were specifically installed for testing have been pushed to a different branch to not let the main codebase clutter with empty models. &lt;br /&gt;
&lt;br /&gt;
To run the tests, kindly pull from the [https://github.com/amarthyasa/reimplementation-back-end/tree/testing_files testing_files] branch of the repository and run bundle install to install dependencies like RSpec and Factory Bot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Tests====&lt;br /&gt;
&lt;br /&gt;
Test 1: Tests if the team method returns the team of the participant. &lt;br /&gt;
&lt;br /&gt;
Test 2: Tests if the leave_team method deletes a participant if no associations exist and force is nil.&lt;br /&gt;
&lt;br /&gt;
Test 3: Tests if the leave_team method deletes a participant if no associations exist and force is true.&lt;br /&gt;
&lt;br /&gt;
Test 4: Tests if the leave_team method deletes a participant with associations and force is true and there are multiple team users.&lt;br /&gt;
&lt;br /&gt;
The test which checks if participant and team is deleted if only one participant is on a team is deleted since that implementation has been removed from the model.&lt;br /&gt;
&lt;br /&gt;
Test 5: Tests if the name method returns the name of the participant.&lt;br /&gt;
&lt;br /&gt;
Test 6: Tests if the fullname method returns the full name of the participant.&lt;br /&gt;
&lt;br /&gt;
Test 7: Tests if the handle method returns the handle of the participant.&lt;br /&gt;
&lt;br /&gt;
Test 8: Tests if the sor_by_name method returns a sorted list of participants in alphabetical order.&lt;br /&gt;
&lt;br /&gt;
Test 9: Tests if the topic_name method returns the participant topic name when nil.&lt;br /&gt;
&lt;br /&gt;
Test 10: Tests if the topic_name method returns the participant topic name when not nil.&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148122</id>
		<title>CSC/ECE 517 Spring 2023 - E2317: Reimplement participant.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148122"/>
		<updated>2023-03-23T01:37:37Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: /* Testing Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E2317 OSS assignment for Spring 2023, CSC/ECE 517&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It is a web application which is maintained collectively by NC State faculty and students which allows instructors to create new assignments and customize new or existing assignments. It also allows the instructors to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Overview of the Classes==&lt;br /&gt;
===participant.rb===&lt;br /&gt;
The participant.rb is a model class that has many associations with other models. There are many methods present in it such as fullname, name, team and handle. There is a method called delete which checks for any associations before performing the delete operation. The other methods include topic_name, mail_assigned_reviewers, able_to_review, email, authorization and self.sort_by_name. There is one more method self.export that returns the information of the participant as a CSV file.&lt;br /&gt;
&lt;br /&gt;
==Backgroud of the Project==&lt;br /&gt;
The participant.rb model has many new changes to be implemented. The reimplementation has to make sense and while checking the original model, we realised that some of the methods were irrelevant to participants model and that it has to be implemented in some other model. The changes mainly dealt with removing, merging and replacing methods to segregate methods with a single functionality relevant to participants model. Tests were written for all of the methods that were introduced and modified. Existing tests for the methods that were unchanged were run to ensure proper functioning of the model. Comments are added to each method to enhance readability. Further information about the reimplementations are discussed below.&lt;br /&gt;
&lt;br /&gt;
==Design Decisions==&lt;br /&gt;
The following changes were reimplemented in the participant.rb&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left:40px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tasks !! Status !! Testing &lt;br /&gt;
|-&lt;br /&gt;
| Replaced force_delete method with leave_team method&lt;br /&gt;
 || Implemented || Completed&lt;br /&gt;
|-&lt;br /&gt;
| mail_assigned_reviewers method was removed || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| able_to_review method was eliminated || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| email method was removed || Implemented || N/A&lt;br /&gt;
|-&lt;br /&gt;
| Merged export and export_fields methods || Implemented || To be completed  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Replaced force_delete Method with leave_team Method ===&lt;br /&gt;
The original 'force_delete' method would delete the participant from the team and if there is only one participant in the team then it would delete the team.  &lt;br /&gt;
[[File:E2317_force_delete.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
A new method 'leave_team' was introduced in place of 'force_delete' as 'force_delete' method is supposed to be present in the teams.rb and not participant.rb. The difference between force_delete method and this is that even if there is only one participant it wouldn't delete the team.&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_leave_team.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
=== mail_assigned_reviewers Method was Removed ===&lt;br /&gt;
The method 'Mail_assigned_reviewers' is responsible for sending an email to the assigned reviewer whenever a new submission is made. It would be more appropriate for this method to be included in teams.rb rather than participant.rb. Hence, this method was removed.&lt;br /&gt;
&lt;br /&gt;
=== able_to_review Method was Removed ===&lt;br /&gt;
'able_to_review' method is just using can_review value. This method can be eliminated.&lt;br /&gt;
&lt;br /&gt;
=== email Method was Removed ===&lt;br /&gt;
'email' method was removed as it was not required.&lt;br /&gt;
&lt;br /&gt;
=== Merged export and export_fields Methods ===&lt;br /&gt;
'export' and 'export_fields' methods can be merged to form a single method under 'export'.&lt;br /&gt;
&lt;br /&gt;
Before merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_export_exportfields.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
After merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_merge.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;br /&gt;
&lt;br /&gt;
The reimplementation codebase originally used Minitest to test the included models: assignment.rb, role.rb, and user.rb. But since Expertiza was originally tested with RSpec, we used RSpec to test out model. The participants.rb contains many methods and associations with other models. Hence, to test the methods in participants, the other dependent methods have to be stubbed. To deal with the models, dummy models/dummy app can be created which will act as the associated classes. We have created all the required dummy classes by scaffolding them.&lt;br /&gt;
&lt;br /&gt;
To create test fixtures and to build the required models, Factory Bot has been used. Two separate files, factories.rb and factory_bot.rb was created to build the factories.&lt;br /&gt;
&lt;br /&gt;
4 participants and other required fields were created as fixtures after which the tests were written.&lt;br /&gt;
&lt;br /&gt;
====Note====&lt;br /&gt;
&lt;br /&gt;
The dummy classes that were created and other dependencies that were specifically installed for testing have been pushed to a different branch to not let the main codebase clutter with empty models. &lt;br /&gt;
&lt;br /&gt;
To run the tests, kindly pull from the [https://github.com/amarthyasa/reimplementation-back-end/tree/testing_files testing_files] branch of the repository and run bundle install to install dependencies like RSpec and Factory Bot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Tests====&lt;br /&gt;
&lt;br /&gt;
Test 1: Tests if the team method returns the team of the participant. &lt;br /&gt;
Test 2: Tests if the leave_team method deletes a participant if no associations exist and force is nil.&lt;br /&gt;
Test 3: Tests if the leave_team method deletes a participant if no associations exist and force is true.&lt;br /&gt;
Test 4: Tests if the leave_team method deletes a participant with associations and force is true and there are multiple team users.&lt;br /&gt;
&lt;br /&gt;
The test which checks if participant and team is deleted if only one participant is on a team is deleted since that implementation has been removed from the model.&lt;br /&gt;
&lt;br /&gt;
Test 5: Tests if the name method returns the name of the user.&lt;br /&gt;
Test 6: Tests if the a participant if no associations exist and force is nil.&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148104</id>
		<title>CSC/ECE 517 Spring 2023 - E2317: Reimplement participant.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148104"/>
		<updated>2023-03-23T01:26:12Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: /* Testing Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E2317 OSS assignment for Spring 2023, CSC/ECE 517&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It is a web application which is maintained collectively by NC State faculty and students which allows instructors to create new assignments and customize new or existing assignments. It also allows the instructors to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Overview of the Classes==&lt;br /&gt;
===participant.rb===&lt;br /&gt;
The participant.rb is a model class that has many associations with other models. There are many methods present in it such as fullname, name, team and handle. There is a method called delete which checks for any associations before performing the delete operation. The other methods include topic_name, mail_assigned_reviewers, able_to_review, email, authorization and self.sort_by_name. There is one more method self.export that returns the information of the participant as a CSV file.&lt;br /&gt;
&lt;br /&gt;
==Backgroud of the Project==&lt;br /&gt;
The participant.rb model has many new changes to be implemented. The reimplementation has to make sense and while checking the original model, we realised that some of the methods were irrelevant to participants model and that it has to be implemented in some other model. The changes mainly dealt with removing, merging and replacing methods to segregate methods with a single functionality relevant to participants model. Tests were written for all of the methods that were introduced and modified. Existing tests for the methods that were unchanged were run to ensure proper functioning of the model. Comments are added to each method to enhance readability. Further information about the reimplementations are discussed below.&lt;br /&gt;
&lt;br /&gt;
==Design Decisions==&lt;br /&gt;
The following changes were reimplemented in the participant.rb&lt;br /&gt;
&lt;br /&gt;
1. Replaced force_delete method with leave_team method.&lt;br /&gt;
&lt;br /&gt;
2. mail_assigned_reviewers method was removed.&lt;br /&gt;
&lt;br /&gt;
3. able_to_review method was eliminated.&lt;br /&gt;
&lt;br /&gt;
4. email method was removed. &lt;br /&gt;
&lt;br /&gt;
5. Merged export and export_fields methods.&lt;br /&gt;
&lt;br /&gt;
=== Replaced force_delete Method with leave_team Method ===&lt;br /&gt;
The original 'force_delete' method would delete the participant from the team and if there is only one participant in the team then it would delete the team.  &lt;br /&gt;
[[File:E2317_force_delete.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
A new method 'leave_team' was introduced in place of 'force_delete' as 'force_delete' method is supposed to be present in the teams.rb and not participant.rb. The difference between force_delete method and this is that even if there is only one participant it wouldn't delete the team.&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_leave_team.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
=== mail_assigned_reviewers Method was Removed ===&lt;br /&gt;
The method 'Mail_assigned_reviewers' is responsible for sending an email to the assigned reviewer whenever a new submission is made. It would be more appropriate for this method to be included in teams.rb rather than participant.rb. Hence, this method was removed.&lt;br /&gt;
&lt;br /&gt;
=== able_to_review Method was Removed ===&lt;br /&gt;
'able_to_review' method is just using can_review value. This method can be eliminated.&lt;br /&gt;
&lt;br /&gt;
=== email Method was Removed ===&lt;br /&gt;
'email' method was removed as it was not required.&lt;br /&gt;
&lt;br /&gt;
=== Merged export and export_fields Methods ===&lt;br /&gt;
'export' and 'export_fields' methods can be merged to form a single method under 'export'.&lt;br /&gt;
&lt;br /&gt;
Before merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_export_exportfields.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
After merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_merge.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;br /&gt;
&lt;br /&gt;
The reimplementation codebase originally used Minitest to test the included models: assignment.rb, role.rb, and user.rb. But since Expertiza was originally tested with RSpec, we used RSpec to test out model. The participants.rb contains many methods and associations with other models. Hence, to test the methods in participants, the other dependent methods have to be stubbed. To deal with the models, dummy models/dummy app can be created which will act as the associated classes. We have created all the required dummy classes by scaffolding them.&lt;br /&gt;
&lt;br /&gt;
To create test fixtures and to build the required models, Factory Bot has been used. Two separate files, factories.rb and factory_bot.rb was created to build the factories.&lt;br /&gt;
&lt;br /&gt;
4 participants and other required fields were created as fixtures after which the tests were written.&lt;br /&gt;
&lt;br /&gt;
====Note====&lt;br /&gt;
&lt;br /&gt;
The dummy classes that were created and other dependencies that were specifically installed for testing have been pushed to a different branch to not let the main codebase clutter with empty models. &lt;br /&gt;
&lt;br /&gt;
====Tests====&lt;br /&gt;
&lt;br /&gt;
To run the tests, kindly pull from the [https://github.com/amarthyasa/reimplementation-back-end/tree/testing_files testing_files] branch of the repository and run bundle install to install dependencies like RSpec and Factory Bot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test 1: Tests if team returns the team of the participant.&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148103</id>
		<title>CSC/ECE 517 Spring 2023 - E2317: Reimplement participant.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148103"/>
		<updated>2023-03-23T01:25:52Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: /* Testing Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E2317 OSS assignment for Spring 2023, CSC/ECE 517&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It is a web application which is maintained collectively by NC State faculty and students which allows instructors to create new assignments and customize new or existing assignments. It also allows the instructors to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Overview of the Classes==&lt;br /&gt;
===participant.rb===&lt;br /&gt;
The participant.rb is a model class that has many associations with other models. There are many methods present in it such as fullname, name, team and handle. There is a method called delete which checks for any associations before performing the delete operation. The other methods include topic_name, mail_assigned_reviewers, able_to_review, email, authorization and self.sort_by_name. There is one more method self.export that returns the information of the participant as a CSV file.&lt;br /&gt;
&lt;br /&gt;
==Backgroud of the Project==&lt;br /&gt;
The participant.rb model has many new changes to be implemented. The reimplementation has to make sense and while checking the original model, we realised that some of the methods were irrelevant to participants model and that it has to be implemented in some other model. The changes mainly dealt with removing, merging and replacing methods to segregate methods with a single functionality relevant to participants model. Tests were written for all of the methods that were introduced and modified. Existing tests for the methods that were unchanged were run to ensure proper functioning of the model. Comments are added to each method to enhance readability. Further information about the reimplementations are discussed below.&lt;br /&gt;
&lt;br /&gt;
==Design Decisions==&lt;br /&gt;
The following changes were reimplemented in the participant.rb&lt;br /&gt;
&lt;br /&gt;
1. Replaced force_delete method with leave_team method.&lt;br /&gt;
&lt;br /&gt;
2. mail_assigned_reviewers method was removed.&lt;br /&gt;
&lt;br /&gt;
3. able_to_review method was eliminated.&lt;br /&gt;
&lt;br /&gt;
4. email method was removed. &lt;br /&gt;
&lt;br /&gt;
5. Merged export and export_fields methods.&lt;br /&gt;
&lt;br /&gt;
=== Replaced force_delete Method with leave_team Method ===&lt;br /&gt;
The original 'force_delete' method would delete the participant from the team and if there is only one participant in the team then it would delete the team.  &lt;br /&gt;
[[File:E2317_force_delete.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
A new method 'leave_team' was introduced in place of 'force_delete' as 'force_delete' method is supposed to be present in the teams.rb and not participant.rb. The difference between force_delete method and this is that even if there is only one participant it wouldn't delete the team.&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_leave_team.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
=== mail_assigned_reviewers Method was Removed ===&lt;br /&gt;
The method 'Mail_assigned_reviewers' is responsible for sending an email to the assigned reviewer whenever a new submission is made. It would be more appropriate for this method to be included in teams.rb rather than participant.rb. Hence, this method was removed.&lt;br /&gt;
&lt;br /&gt;
=== able_to_review Method was Removed ===&lt;br /&gt;
'able_to_review' method is just using can_review value. This method can be eliminated.&lt;br /&gt;
&lt;br /&gt;
=== email Method was Removed ===&lt;br /&gt;
'email' method was removed as it was not required.&lt;br /&gt;
&lt;br /&gt;
=== Merged export and export_fields Methods ===&lt;br /&gt;
'export' and 'export_fields' methods can be merged to form a single method under 'export'.&lt;br /&gt;
&lt;br /&gt;
Before merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_export_exportfields.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
After merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_merge.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;br /&gt;
&lt;br /&gt;
The reimplementation codebase originally used Minitest to test the included models: assignment.rb, role.rb, and user.rb. But since Expertiza was originally tested with RSpec, we used RSpec to test out model. The participants.rb contains many methods and associations with other models. Hence, to test the methods in participants, the other dependent methods have to be stubbed. To deal with the models, dummy models/dummy app can be created which will act as the associated classes. We have created all the required dummy classes by scaffolding them.&lt;br /&gt;
&lt;br /&gt;
To create test fixtures and to build the required models, Factory Bot has been used. Two separate files, factories.rb and factory_bot.rb was created to build the factories.&lt;br /&gt;
&lt;br /&gt;
4 participants and other required fields were created as fixtures after which the tests were written.&lt;br /&gt;
&lt;br /&gt;
====Note====&lt;br /&gt;
&lt;br /&gt;
The dummy classes that were created and other dependencies that were specifically installed for testing have been pushed to a different branch to not let the main codebase clutter with empty models. &lt;br /&gt;
&lt;br /&gt;
To run the tests, kindly pull from the [https://github.com/amarthyasa/reimplementation-back-end/tree/testing_files testing_files] branch of the repository and run bundle install to install dependencies like RSpec and Factory Bot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test 1: Tests if team returns the team of the participant.&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148101</id>
		<title>CSC/ECE 517 Spring 2023 - E2317: Reimplement participant.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148101"/>
		<updated>2023-03-23T01:20:06Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: /* Testing Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E2317 OSS assignment for Spring 2023, CSC/ECE 517&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It is a web application which is maintained collectively by NC State faculty and students which allows instructors to create new assignments and customize new or existing assignments. It also allows the instructors to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Overview of the Classes==&lt;br /&gt;
===participant.rb===&lt;br /&gt;
The participant.rb is a model class that has many associations with other models. There are many methods present in it such as fullname, name, team and handle. There is a method called delete which checks for any associations before performing the delete operation. The other methods include topic_name, mail_assigned_reviewers, able_to_review, email, authorization and self.sort_by_name. There is one more method self.export that returns the information of the participant as a CSV file.&lt;br /&gt;
&lt;br /&gt;
==Backgroud of the Project==&lt;br /&gt;
The participant.rb model has many new changes to be implemented. The reimplementation has to make sense and while checking the original model, we realised that some of the methods were irrelevant to participants model and that it has to be implemented in some other model. The changes mainly dealt with removing, merging and replacing methods to segregate methods with a single functionality relevant to participants model. Tests were written for all of the methods that were introduced and modified. Existing tests for the methods that were unchanged were run to ensure proper functioning of the model. Comments are added to each method to enhance readability. Further information about the reimplementations are discussed below.&lt;br /&gt;
&lt;br /&gt;
==Design Decisions==&lt;br /&gt;
The following changes were reimplemented in the participant.rb&lt;br /&gt;
&lt;br /&gt;
1. Replaced force_delete method with leave_team method.&lt;br /&gt;
&lt;br /&gt;
2. mail_assigned_reviewers method was removed.&lt;br /&gt;
&lt;br /&gt;
3. able_to_review method was eliminated.&lt;br /&gt;
&lt;br /&gt;
4. email method was removed. &lt;br /&gt;
&lt;br /&gt;
5. Merged export and export_fields methods.&lt;br /&gt;
&lt;br /&gt;
=== Replaced force_delete Method with leave_team Method ===&lt;br /&gt;
The original 'force_delete' method would delete the participant from the team and if there is only one participant in the team then it would delete the team.  &lt;br /&gt;
[[File:E2317_force_delete.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
A new method 'leave_team' was introduced in place of 'force_delete' as 'force_delete' method is supposed to be present in the teams.rb and not participant.rb. The difference between force_delete method and this is that even if there is only one participant it wouldn't delete the team.&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_leave_team.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
=== mail_assigned_reviewers Method was Removed ===&lt;br /&gt;
The method 'Mail_assigned_reviewers' is responsible for sending an email to the assigned reviewer whenever a new submission is made. It would be more appropriate for this method to be included in teams.rb rather than participant.rb. Hence, this method was removed.&lt;br /&gt;
&lt;br /&gt;
=== able_to_review Method was Removed ===&lt;br /&gt;
'able_to_review' method is just using can_review value. This method can be eliminated.&lt;br /&gt;
&lt;br /&gt;
=== email Method was Removed ===&lt;br /&gt;
'email' method was removed as it was not required.&lt;br /&gt;
&lt;br /&gt;
=== Merged export and export_fields Methods ===&lt;br /&gt;
'export' and 'export_fields' methods can be merged to form a single method under 'export'.&lt;br /&gt;
&lt;br /&gt;
Before merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_export_exportfields.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
After merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_merge.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;br /&gt;
&lt;br /&gt;
The reimplementation codebase originally used Minitest to test the included models: assignment.rb, role.rb, and user.rb. But since Expertiza was originally tested with RSpec, we used RSpec to test out model. The participants.rb contains many methods and associations with other models. Hence, to test the methods in participants, the other dependent methods have to be stubbed. To deal with the models, dummy models/dummy app can be created which will act as the associated classes. We have created all the required dummy classes by scaffolding them.&lt;br /&gt;
&lt;br /&gt;
To create test fixtures and to build the required models, Factory Bot has been used. Two separate files, factories.rb and factory_bot.rb was created to build the factories.&lt;br /&gt;
&lt;br /&gt;
====Note====&lt;br /&gt;
&lt;br /&gt;
The dummy classes that were created and other dependencies that were specifically installed for testing have been pushed to a different branch to not let the main codebase clutter with empty models. &lt;br /&gt;
&lt;br /&gt;
To run the tests, kindly pull from the [http://expertiza.ncsu.edu/ testing_files] branch of the repository&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4 participants and other required fields were created as fixtures after which the tests were written.&lt;br /&gt;
&lt;br /&gt;
Test 1: Tests if team returns the team of the participant.&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148100</id>
		<title>CSC/ECE 517 Spring 2023 - E2317: Reimplement participant.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148100"/>
		<updated>2023-03-23T01:18:14Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: /* Testing Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E2317 OSS assignment for Spring 2023, CSC/ECE 517&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It is a web application which is maintained collectively by NC State faculty and students which allows instructors to create new assignments and customize new or existing assignments. It also allows the instructors to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Overview of the Classes==&lt;br /&gt;
===participant.rb===&lt;br /&gt;
The participant.rb is a model class that has many associations with other models. There are many methods present in it such as fullname, name, team and handle. There is a method called delete which checks for any associations before performing the delete operation. The other methods include topic_name, mail_assigned_reviewers, able_to_review, email, authorization and self.sort_by_name. There is one more method self.export that returns the information of the participant as a CSV file.&lt;br /&gt;
&lt;br /&gt;
==Backgroud of the Project==&lt;br /&gt;
The participant.rb model has many new changes to be implemented. The reimplementation has to make sense and while checking the original model, we realised that some of the methods were irrelevant to participants model and that it has to be implemented in some other model. The changes mainly dealt with removing, merging and replacing methods to segregate methods with a single functionality relevant to participants model. Tests were written for all of the methods that were introduced and modified. Existing tests for the methods that were unchanged were run to ensure proper functioning of the model. Comments are added to each method to enhance readability. Further information about the reimplementations are discussed below.&lt;br /&gt;
&lt;br /&gt;
==Design Decisions==&lt;br /&gt;
The following changes were reimplemented in the participant.rb&lt;br /&gt;
&lt;br /&gt;
1. Replaced force_delete method with leave_team method.&lt;br /&gt;
&lt;br /&gt;
2. mail_assigned_reviewers method was removed.&lt;br /&gt;
&lt;br /&gt;
3. able_to_review method was eliminated.&lt;br /&gt;
&lt;br /&gt;
4. email method was removed. &lt;br /&gt;
&lt;br /&gt;
5. Merged export and export_fields methods.&lt;br /&gt;
&lt;br /&gt;
=== Replaced force_delete Method with leave_team Method ===&lt;br /&gt;
The original 'force_delete' method would delete the participant from the team and if there is only one participant in the team then it would delete the team.  &lt;br /&gt;
[[File:E2317_force_delete.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
A new method 'leave_team' was introduced in place of 'force_delete' as 'force_delete' method is supposed to be present in the teams.rb and not participant.rb. The difference between force_delete method and this is that even if there is only one participant it wouldn't delete the team.&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_leave_team.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
=== mail_assigned_reviewers Method was Removed ===&lt;br /&gt;
The method 'Mail_assigned_reviewers' is responsible for sending an email to the assigned reviewer whenever a new submission is made. It would be more appropriate for this method to be included in teams.rb rather than participant.rb. Hence, this method was removed.&lt;br /&gt;
&lt;br /&gt;
=== able_to_review Method was Removed ===&lt;br /&gt;
'able_to_review' method is just using can_review value. This method can be eliminated.&lt;br /&gt;
&lt;br /&gt;
=== email Method was Removed ===&lt;br /&gt;
'email' method was removed as it was not required.&lt;br /&gt;
&lt;br /&gt;
=== Merged export and export_fields Methods ===&lt;br /&gt;
'export' and 'export_fields' methods can be merged to form a single method under 'export'.&lt;br /&gt;
&lt;br /&gt;
Before merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_export_exportfields.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
After merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_merge.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;br /&gt;
&lt;br /&gt;
The reimplementation codebase originally used Minitest to test the included models: assignment.rb, role.rb, and user.rb. But since Expertiza was originally tested with RSpec, we used RSpec to test out model. The participants.rb contains many methods and associations with other models. Hence, to test the methods in participants, the other dependent methods have to be stubbed. To deal with the models, dummy models/dummy app can be created which will act as the associated classes. We have created all the required dummy classes by scaffolding them.&lt;br /&gt;
&lt;br /&gt;
To create test fixtures and to build the required models, Factory Bot has been used. Two separate files, factories.rb and factory_bot.rb was created to build the factories.&lt;br /&gt;
&lt;br /&gt;
====Note====&lt;br /&gt;
&lt;br /&gt;
The dummy classes that were created and other dependencies that were specifically installed for testing have been pushed to a different branch to not let the main codebase clutter with empty models. &lt;br /&gt;
&lt;br /&gt;
To run the tests, kindly pull from the testing_files branch of the repository&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4 participants and other required fields were created as fixtures after which the tests were written.&lt;br /&gt;
&lt;br /&gt;
Test 1: Tests if team returns the team of the participant.&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148099</id>
		<title>CSC/ECE 517 Spring 2023 - E2317: Reimplement participant.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148099"/>
		<updated>2023-03-23T01:15:41Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: /* Testing Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E2317 OSS assignment for Spring 2023, CSC/ECE 517&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It is a web application which is maintained collectively by NC State faculty and students which allows instructors to create new assignments and customize new or existing assignments. It also allows the instructors to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Overview of the Classes==&lt;br /&gt;
===participant.rb===&lt;br /&gt;
The participant.rb is a model class that has many associations with other models. There are many methods present in it such as fullname, name, team and handle. There is a method called delete which checks for any associations before performing the delete operation. The other methods include topic_name, mail_assigned_reviewers, able_to_review, email, authorization and self.sort_by_name. There is one more method self.export that returns the information of the participant as a CSV file.&lt;br /&gt;
&lt;br /&gt;
==Backgroud of the Project==&lt;br /&gt;
The participant.rb model has many new changes to be implemented. The reimplementation has to make sense and while checking the original model, we realised that some of the methods were irrelevant to participants model and that it has to be implemented in some other model. The changes mainly dealt with removing, merging and replacing methods to segregate methods with a single functionality relevant to participants model. Tests were written for all of the methods that were introduced and modified. Existing tests for the methods that were unchanged were run to ensure proper functioning of the model. Comments are added to each method to enhance readability. Further information about the reimplementations are discussed below.&lt;br /&gt;
&lt;br /&gt;
==Design Decisions==&lt;br /&gt;
The following changes were reimplemented in the participant.rb&lt;br /&gt;
&lt;br /&gt;
1. Replaced force_delete method with leave_team method.&lt;br /&gt;
&lt;br /&gt;
2. mail_assigned_reviewers method was removed.&lt;br /&gt;
&lt;br /&gt;
3. able_to_review method was eliminated.&lt;br /&gt;
&lt;br /&gt;
4. email method was removed. &lt;br /&gt;
&lt;br /&gt;
5. Merged export and export_fields methods.&lt;br /&gt;
&lt;br /&gt;
=== Replaced force_delete Method with leave_team Method ===&lt;br /&gt;
The original 'force_delete' method would delete the participant from the team and if there is only one participant in the team then it would delete the team.  &lt;br /&gt;
[[File:E2317_force_delete.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
A new method 'leave_team' was introduced in place of 'force_delete' as 'force_delete' method is supposed to be present in the teams.rb and not participant.rb. The difference between force_delete method and this is that even if there is only one participant it wouldn't delete the team.&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_leave_team.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
=== mail_assigned_reviewers Method was Removed ===&lt;br /&gt;
The method 'Mail_assigned_reviewers' is responsible for sending an email to the assigned reviewer whenever a new submission is made. It would be more appropriate for this method to be included in teams.rb rather than participant.rb. Hence, this method was removed.&lt;br /&gt;
&lt;br /&gt;
=== able_to_review Method was Removed ===&lt;br /&gt;
'able_to_review' method is just using can_review value. This method can be eliminated.&lt;br /&gt;
&lt;br /&gt;
=== email Method was Removed ===&lt;br /&gt;
'email' method was removed as it was not required.&lt;br /&gt;
&lt;br /&gt;
=== Merged export and export_fields Methods ===&lt;br /&gt;
'export' and 'export_fields' methods can be merged to form a single method under 'export'.&lt;br /&gt;
&lt;br /&gt;
Before merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_export_exportfields.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
After merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_merge.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;br /&gt;
&lt;br /&gt;
The reimplementation codebase originally used Minitest to test the included models: assignment.rb, role.rb, and user.rb. But since Expertiza was originally tested with RSpec, we used RSpec to test out model. The participants.rb contains many methods and associations with other models. Hence, to test the methods in participants, the other dependent methods have to be stubbed. To deal with the models, dummy models/dummy app can be created which will act as the associated classes. We have created all the required dummy classes by scaffolding them.&lt;br /&gt;
&lt;br /&gt;
To create test fixtures and to build the required models, Factory Bot has been used. Two separate files, factories.rb and factory_bot.rb was created to build the factories.&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
&lt;br /&gt;
4 participants and other required fields were created as fixtures after which the tests were written.&lt;br /&gt;
&lt;br /&gt;
Test 1: Tests if team returns the team of the participant.&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148093</id>
		<title>CSC/ECE 517 Spring 2023 - E2317: Reimplement participant.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148093"/>
		<updated>2023-03-23T01:09:30Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: /* Testing Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E2317 OSS assignment for Spring 2023, CSC/ECE 517&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It is a web application which is maintained collectively by NC State faculty and students which allows instructors to create new assignments and customize new or existing assignments. It also allows the instructors to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Overview of the Classes==&lt;br /&gt;
===participant.rb===&lt;br /&gt;
The participant.rb is a model class that has many associations with other models. There are many methods present in it such as fullname, name, team and handle. There is a method called delete which checks for any associations before performing the delete operation. The other methods include topic_name, mail_assigned_reviewers, able_to_review, email, authorization and self.sort_by_name. There is one more method self.export that returns the information of the participant as a CSV file.&lt;br /&gt;
&lt;br /&gt;
==Backgroud of the Project==&lt;br /&gt;
The participant.rb model has many new changes to be implemented. The reimplementation has to make sense and while checking the original model, we realised that some of the methods were irrelevant to participants model and that it has to be implemented in some other model. The changes mainly dealt with removing, merging and replacing methods to segregate methods with a single functionality relevant to participants model. Tests were written for all of the methods that were introduced and modified. Existing tests for the methods that were unchanged were run to ensure proper functioning of the model. Comments are added to each method to enhance readability. Further information about the reimplementations are discussed below.&lt;br /&gt;
&lt;br /&gt;
==Design Decisions==&lt;br /&gt;
The following changes were reimplemented in the participant.rb&lt;br /&gt;
&lt;br /&gt;
1. Replaced force_delete method with leave_team method.&lt;br /&gt;
&lt;br /&gt;
2. mail_assigned_reviewers method was removed.&lt;br /&gt;
&lt;br /&gt;
3. able_to_review method was eliminated.&lt;br /&gt;
&lt;br /&gt;
4. email method was removed. &lt;br /&gt;
&lt;br /&gt;
5. Merged export and export_fields methods.&lt;br /&gt;
&lt;br /&gt;
=== Replaced force_delete Method with leave_team Method ===&lt;br /&gt;
The original 'force_delete' method would delete the participant from the team and if there is only one participant in the team then it would delete the team.  &lt;br /&gt;
[[File:E2317_force_delete.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
A new method 'leave_team' was introduced in place of 'force_delete' as 'force_delete' method is supposed to be present in the teams.rb and not participant.rb. The difference between force_delete method and this is that even if there is only one participant it wouldn't delete the team.&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_leave_team.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
=== mail_assigned_reviewers Method was Removed ===&lt;br /&gt;
The method 'Mail_assigned_reviewers' is responsible for sending an email to the assigned reviewer whenever a new submission is made. It would be more appropriate for this method to be included in teams.rb rather than participant.rb. Hence, this method was removed.&lt;br /&gt;
&lt;br /&gt;
=== able_to_review Method was Removed ===&lt;br /&gt;
'able_to_review' method is just using can_review value. This method can be eliminated.&lt;br /&gt;
&lt;br /&gt;
=== email Method was Removed ===&lt;br /&gt;
'email' method was removed as it was not required.&lt;br /&gt;
&lt;br /&gt;
=== Merged export and export_fields Methods ===&lt;br /&gt;
'export' and 'export_fields' methods can be merged to form a single method under 'export'.&lt;br /&gt;
&lt;br /&gt;
Before merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_export_exportfields.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
After merging:&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_merge.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;br /&gt;
&lt;br /&gt;
The reimplementation codebase originally used Minitest to test the included models: assignment.rb, role.rb, and user.rb. But since Expertiza was originally tested with RSpec, we used RSpec to test out model. The participants.rb contains many methods and associations with other models. Hence, to test the methods in participants, the other dependent methods have to be stubbed. To deal with the models, dummy models/dummy app can be created which will act as the associated classes. We have created all the required dummy classes by scaffolding them.&lt;br /&gt;
&lt;br /&gt;
To create test fixtures and to build the required models, Factory Bot has been used. Two separate files, factories.rb and factory_bot.rb was created to build the factories.&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148079</id>
		<title>CSC/ECE 517 Spring 2023 - E2317: Reimplement participant.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148079"/>
		<updated>2023-03-23T00:49:03Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: /* Testing Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E2317 OSS assignment for Spring 2023, CSC/ECE 517&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It is a web application which is maintained collectively by NC State faculty and students which allows instructors to create new assignments and customize new or existing assignments. It also allows the instructors to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Overview of the Classes==&lt;br /&gt;
===participant.rb===&lt;br /&gt;
The participant.rb is a model class that has many associations with other models. There are many methods present in it such as fullname, name, team and handle. There is a method called delete which checks for any associations before performing the delete operation. The other methods include topic_name, mail_assigned_reviewers, able_to_review, email, authorization and self.sort_by_name. There is one more method self.export that returns the information of the participant as a CSV file.&lt;br /&gt;
&lt;br /&gt;
===Backgroud of the Project===&lt;br /&gt;
The participant.rb model has many new changes to be implemented. The reimplementation has to make sense and while checking the original model, we realised that some of the methods were irrelevant to participants model and that it has to be implemented in some other model. The changes mainly dealt with removing, merging and replacing methods to segregate methods with a single functionality relevant to participants model. Tests were written for all of the methods that were introduced and modified. Existing tests for the methods that were unchanged were run to ensure proper functioning of the model. Comments are added to each method to enhance readability. Further information about the reimplementations are discussed below.&lt;br /&gt;
&lt;br /&gt;
==Design Decisions==&lt;br /&gt;
The following changes were reimplemented in the participant.rb&lt;br /&gt;
&lt;br /&gt;
1. Replaced force_delete method with leave_team method.&lt;br /&gt;
&lt;br /&gt;
2. mail_assigned_reviewers method was removed.&lt;br /&gt;
&lt;br /&gt;
3. able_to_review method was eliminated.&lt;br /&gt;
&lt;br /&gt;
4. email method was removed as it was not required. &lt;br /&gt;
&lt;br /&gt;
5. Merged export and export_fields methods.&lt;br /&gt;
&lt;br /&gt;
=== Replaced force_delete Method with leave_team Method ===&lt;br /&gt;
The original 'force_delete' method would delete the participant from the team and if there is only one participant in the team then it would delete the team.  &lt;br /&gt;
[[File:E2317_force_delete.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
A new method 'leave_team' was introduced in place of 'force_delete' as 'force_delete' method is supposed to be present in the teams.rb and not participant.rb. The difference between force_delete method and this is that even if there is only one participant it wouldn't delete the team.&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_leave_team.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;br /&gt;
&lt;br /&gt;
The reimplementation codebase originally used Minitest to test the included models: assignment.rb, role.rb, and user.rb. But since Expertiza was originally tested with RSpec, we used RSpec to test out model. The participants.rb contains many methods and associations with other models. Hence, to test the methods in participants, the other dedpendent methods have to be stubbed and dummy models of the associated models have to be created as well.&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148043</id>
		<title>CSC/ECE 517 Spring 2023 - E2317: Reimplement participant.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148043"/>
		<updated>2023-03-22T23:44:59Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: /* Tasks Identified */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E2317 OSS assignment for Spring 2023, CSC/ECE 517&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It is a web application which is maintained collectively by NC State faculty and students which allows instructors to create new assignments and customize new or existing assignments. It also allows the instructors to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Overview of the Classes==&lt;br /&gt;
===participant.rb===&lt;br /&gt;
The participant.rb is a model class that has many associations with other models. There are many methods present in it such as fullname, name, team and handle. There is a method called delete which checks for any associations before performing the delete operation. The other methods include topic_name, mail_assigned_reviewers, able_to_review, email, authorization and self.sort_by_name. There is one more method self.export that returns the information of the participant as a CSV file.&lt;br /&gt;
&lt;br /&gt;
===Backgroud of the Project===&lt;br /&gt;
The participant.rb model has many new changes to be implemented. The reimplementation has to make sense and while checking the original model, we realised that some of the methods were irrelevant to participants model and that it has to be implemented in some other model. The changes mainly dealt with removing, merging and replacing methods to segregate methods with a single functionality relevant to participants model. Tests were written for all of the methods that were introduced and modified. Existing tests for the methods that were unchanged were run to ensure proper functioning of the model. Comments are added to each method to enhance readability. Further information about the reimplementations are discussed below.&lt;br /&gt;
&lt;br /&gt;
==Design Decisions==&lt;br /&gt;
The following changes were reimplemented in the participant.rb&lt;br /&gt;
&lt;br /&gt;
1. Replaced force_delete method with leave_team method.&lt;br /&gt;
&lt;br /&gt;
2. mail_assigned_reviewers method was removed.&lt;br /&gt;
&lt;br /&gt;
3. able_to_review method was eliminated.&lt;br /&gt;
&lt;br /&gt;
4. email method was removed as it was not required. &lt;br /&gt;
&lt;br /&gt;
5. Merged export and export_fields methods.&lt;br /&gt;
&lt;br /&gt;
=== Replaced force_delete Method with leave_team Method ===&lt;br /&gt;
The original 'force_delete' method would delete the participant from the team and if there is only one participant in the team then it would delete the team.  &lt;br /&gt;
[[File:E2317_force_delete.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
A new method 'leave_team' was introduced in place of 'force_delete' as 'force_delete' method is supposed to be present in the teams.rb and not participant.rb. The difference between force_delete method and this is that even if there is only one participant it wouldn't delete the team.&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_leave_team.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148041</id>
		<title>CSC/ECE 517 Spring 2023 - E2317: Reimplement participant.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148041"/>
		<updated>2023-03-22T23:42:20Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: /* Backgroud of the Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E2317 OSS assignment for Spring 2023, CSC/ECE 517&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It is a web application which is maintained collectively by NC State faculty and students which allows instructors to create new assignments and customize new or existing assignments. It also allows the instructors to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Overview of the Classes==&lt;br /&gt;
===participant.rb===&lt;br /&gt;
The participant.rb is a model class that has many associations with other models. There are many methods present in it such as fullname, name, team and handle. There is a method called delete which checks for any associations before performing the delete operation. The other methods include topic_name, mail_assigned_reviewers, able_to_review, email, authorization and self.sort_by_name. There is one more method self.export that returns the information of the participant as a CSV file.&lt;br /&gt;
&lt;br /&gt;
===Backgroud of the Project===&lt;br /&gt;
The participant.rb model has many new changes to be implemented. The reimplementation has to make sense and while checking the original model, we realised that some of the methods were irrelevant to participants model and that it has to be implemented in some other model. The changes mainly dealt with removing, merging and replacing methods to segregate methods with a single functionality relevant to participants model. Tests were written for all of the methods that were introduced and modified. Existing tests for the methods that were unchanged were run to ensure proper functioning of the model. Comments are added to each method to enhance readability. Further information about the reimplementations are discussed below.&lt;br /&gt;
&lt;br /&gt;
==Tasks Identified==&lt;br /&gt;
The following changes were reimplemented in the participant.rb&lt;br /&gt;
&lt;br /&gt;
1. Replaced force_delete method with leave_team method.&lt;br /&gt;
&lt;br /&gt;
2. mail_assigned_reviewers method was removed.&lt;br /&gt;
&lt;br /&gt;
3. able_to_review method was eliminated.&lt;br /&gt;
&lt;br /&gt;
4. email method was removed as it was not required. &lt;br /&gt;
&lt;br /&gt;
5. Merged export and export_fields methods.&lt;br /&gt;
&lt;br /&gt;
=== Replaced force_delete Method with leave_team Method ===&lt;br /&gt;
The original 'force_delete' method would delete the participant from the team and if there is only one participant in the team then it would delete the team.  &lt;br /&gt;
[[File:E2317_force_delete.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
A new method 'leave_team' was introduced in place of 'force_delete' as 'force_delete' method is supposed to be present in the teams.rb and not participant.rb. The difference between force_delete method and this is that even if there is only one participant it wouldn't delete the team.&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_leave_team.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148033</id>
		<title>CSC/ECE 517 Spring 2023 - E2317: Reimplement participant.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148033"/>
		<updated>2023-03-22T23:30:49Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: /* Replaced force_delete Method with leave_team Method */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E2317 OSS assignment for Spring 2023, CSC/ECE 517&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It is a web application which is maintained collectively by NC State faculty and students which allows instructors to create new assignments and customize new or existing assignments. It also allows the instructors to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Overview of the Classes==&lt;br /&gt;
===participant.rb===&lt;br /&gt;
The participant.rb is a model class that has many associations with other models. There are many methods present in it such as fullname, name, team and handle. There is a method called delete which checks for any associations before performing the delete operation. The other methods include topic_name, mail_assigned_reviewers, able_to_review, email, authorization and self.sort_by_name. There is one more method self.export that returns the information of the participant as a CSV file.&lt;br /&gt;
&lt;br /&gt;
===Backgroud of the Project===&lt;br /&gt;
The participant.rb has many new changes to be implemented. We have made modifications to the model in accordance with the changes that were suggested. The changes mainly dealt with removing, merging and replacing methods. Tests were written for functions that were introduced and modified. Existing tests were run to ensure proper functioning of the model. Comments were added to each function to enhance readability.&lt;br /&gt;
&lt;br /&gt;
==Tasks Identified==&lt;br /&gt;
The following changes were reimplemented in the participant.rb&lt;br /&gt;
&lt;br /&gt;
1. Replaced force_delete method with leave_team method.&lt;br /&gt;
&lt;br /&gt;
2. mail_assigned_reviewers method was removed.&lt;br /&gt;
&lt;br /&gt;
3. able_to_review method was eliminated.&lt;br /&gt;
&lt;br /&gt;
4. email method was removed as it was not required. &lt;br /&gt;
&lt;br /&gt;
5. Merged export and export_fields methods.&lt;br /&gt;
&lt;br /&gt;
=== Replaced force_delete Method with leave_team Method ===&lt;br /&gt;
The original 'force_delete' method would delete the participant from the team and if there is only one participant in the team then it would delete the team.  &lt;br /&gt;
[[File:E2317_force_delete.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
A new method 'leave_team' was introduced in place of 'force_delete' as 'force_delete' method is supposed to be present in the teams.rb and not participant.rb. The difference between force_delete method and this is that even if there is only one participant it wouldn't delete the team.&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_leave_team.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148031</id>
		<title>CSC/ECE 517 Spring 2023 - E2317: Reimplement participant.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148031"/>
		<updated>2023-03-22T23:27:32Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: /* Overview of the Classes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E2317 OSS assignment for Spring 2023, CSC/ECE 517&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It is a web application which is maintained collectively by NC State faculty and students which allows instructors to create new assignments and customize new or existing assignments. It also allows the instructors to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Overview of the Classes==&lt;br /&gt;
===participant.rb===&lt;br /&gt;
The participant.rb is a model class that has many associations with other models. There are many methods present in it such as fullname, name, team and handle. There is a method called delete which checks for any associations before performing the delete operation. The other methods include topic_name, mail_assigned_reviewers, able_to_review, email, authorization and self.sort_by_name. There is one more method self.export that returns the information of the participant as a CSV file.&lt;br /&gt;
&lt;br /&gt;
===Backgroud of the Project===&lt;br /&gt;
The participant.rb has many new changes to be implemented. We have made modifications to the model in accordance with the changes that were suggested. The changes mainly dealt with removing, merging and replacing methods. Tests were written for functions that were introduced and modified. Existing tests were run to ensure proper functioning of the model. Comments were added to each function to enhance readability.&lt;br /&gt;
&lt;br /&gt;
==Tasks Identified==&lt;br /&gt;
The following changes were reimplemented in the participant.rb&lt;br /&gt;
&lt;br /&gt;
1. Replaced force_delete method with leave_team method.&lt;br /&gt;
&lt;br /&gt;
2. mail_assigned_reviewers method was removed.&lt;br /&gt;
&lt;br /&gt;
3. able_to_review method was eliminated.&lt;br /&gt;
&lt;br /&gt;
4. email method was removed as it was not required. &lt;br /&gt;
&lt;br /&gt;
5. Merged export and export_fields methods.&lt;br /&gt;
&lt;br /&gt;
=== Replaced force_delete Method with leave_team Method ===&lt;br /&gt;
The original 'force_delete' method would delete the participant from the team and if there is only one participant in the team then it would delete the team.  &lt;br /&gt;
[[File:E2317_force_delete.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
A new method 'leave_team'was introduced in place of 'force_delete' as 'force_delete' method is supposed to be present in the teams.rb and not participant.rb. The difference between force_delete method and this is that even if there is only one participant it wouldn't delete the team.&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_leave_team.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148030</id>
		<title>CSC/ECE 517 Spring 2023 - E2317: Reimplement participant.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148030"/>
		<updated>2023-03-22T23:27:16Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: /* About Expertiza */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E2317 OSS assignment for Spring 2023, CSC/ECE 517&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It is a web application which is maintained collectively by NC State faculty and students which allows instructors to create new assignments and customize new or existing assignments. It also allows the instructors to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
===Overview of the Classes===&lt;br /&gt;
====participant.rb====&lt;br /&gt;
The participant.rb is a model class that has many associations with other models. There are many methods present in it such as fullname, name, team and handle. There is a method called delete which checks for any associations before performing the delete operation. The other methods include topic_name, mail_assigned_reviewers, able_to_review, email, authorization and self.sort_by_name. There is one more method self.export that returns the information of the participant as a CSV file.&lt;br /&gt;
&lt;br /&gt;
===Backgroud of the Project===&lt;br /&gt;
The participant.rb has many new changes to be implemented. We have made modifications to the model in accordance with the changes that were suggested. The changes mainly dealt with removing, merging and replacing methods. Tests were written for functions that were introduced and modified. Existing tests were run to ensure proper functioning of the model. Comments were added to each function to enhance readability.&lt;br /&gt;
&lt;br /&gt;
==Tasks Identified==&lt;br /&gt;
The following changes were reimplemented in the participant.rb&lt;br /&gt;
&lt;br /&gt;
1. Replaced force_delete method with leave_team method.&lt;br /&gt;
&lt;br /&gt;
2. mail_assigned_reviewers method was removed.&lt;br /&gt;
&lt;br /&gt;
3. able_to_review method was eliminated.&lt;br /&gt;
&lt;br /&gt;
4. email method was removed as it was not required. &lt;br /&gt;
&lt;br /&gt;
5. Merged export and export_fields methods.&lt;br /&gt;
&lt;br /&gt;
=== Replaced force_delete Method with leave_team Method ===&lt;br /&gt;
The original 'force_delete' method would delete the participant from the team and if there is only one participant in the team then it would delete the team.  &lt;br /&gt;
[[File:E2317_force_delete.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
A new method 'leave_team'was introduced in place of 'force_delete' as 'force_delete' method is supposed to be present in the teams.rb and not participant.rb. The difference between force_delete method and this is that even if there is only one participant it wouldn't delete the team.&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_leave_team.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148029</id>
		<title>CSC/ECE 517 Spring 2023 - E2317: Reimplement participant.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2317:_Reimplement_participant.rb&amp;diff=148029"/>
		<updated>2023-03-22T23:26:33Z</updated>

		<summary type="html">&lt;p&gt;Kjayesh: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E2317 OSS assignment for Spring 2023, CSC/ECE 517&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It is a web application which is maintained collectively by NC State faculty and students which allows instructors to create new assignments and customize new or existing assignments. It also allows the instructors to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
===Overview of the Classes===&lt;br /&gt;
====participant.rb====&lt;br /&gt;
The participant.rb is a model class that has many associations with other models. There are many methods present in it such as fullname, name, team and handle. There is a method called delete which checks for any associations before performing the delete operation. The other methods include topic_name, mail_assigned_reviewers, able_to_review, email, authorization and self.sort_by_name. There is one more method self.export that returns the information of the participant as a CSV file.&lt;br /&gt;
&lt;br /&gt;
===Backgroud of the Project===&lt;br /&gt;
The participant.rb has many new changes to be implemented. We have made modifications to the model in accordance with the changes that were suggested. The changes mainly dealt with removing, merging and replacing methods. Tests were written for functions that were introduced and modified. Existing tests were run to ensure proper functioning of the model. Comments were added to each function to enhance readability.&lt;br /&gt;
&lt;br /&gt;
==Tasks Identified==&lt;br /&gt;
The following changes were reimplemented in the participant.rb&lt;br /&gt;
&lt;br /&gt;
1. Replaced force_delete method with leave_team method.&lt;br /&gt;
&lt;br /&gt;
2. mail_assigned_reviewers method was removed.&lt;br /&gt;
&lt;br /&gt;
3. able_to_review method was eliminated.&lt;br /&gt;
&lt;br /&gt;
4. email method was removed as it was not required. &lt;br /&gt;
&lt;br /&gt;
5. Merged export and export_fields methods.&lt;br /&gt;
&lt;br /&gt;
=== Replaced force_delete Method with leave_team Method ===&lt;br /&gt;
The original 'force_delete' method would delete the participant from the team and if there is only one participant in the team then it would delete the team.  &lt;br /&gt;
[[File:E2317_force_delete.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
A new method 'leave_team'was introduced in place of 'force_delete' as 'force_delete' method is supposed to be present in the teams.rb and not participant.rb. The difference between force_delete method and this is that even if there is only one participant it wouldn't delete the team.&lt;br /&gt;
&lt;br /&gt;
[[File:E2317_leave_team.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;/div&gt;</summary>
		<author><name>Kjayesh</name></author>
	</entry>
</feed>