<?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=Hyu22</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=Hyu22"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Hyu22"/>
	<updated>2026-10-01T16:05:10Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1981._Student-generated_questions_added_to_rubric&amp;diff=128436</id>
		<title>CSC/ECE 517 Fall 2019 - E1981. Student-generated questions added to rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1981._Student-generated_questions_added_to_rubric&amp;diff=128436"/>
		<updated>2019-11-11T02:32:31Z</updated>

		<summary type="html">&lt;p&gt;Hyu22: /* Changes in the User Interface (Todo) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics. Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises. This project (E1879) aims to solve this problem by allowing students to add questions to the standard instructor generated rubric so that they can get specific feedback on from the reviewers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Proposed solution ==&lt;br /&gt;
We will add the Supplementary Review Questions to the current Review Questions, and show these student-generated questions under the rubric given by instructor. Even though these questions won't be graded, they will eventually provide diversity for feedback. It will increase the benefit that each team gets because they can get feedback that is specific to their project. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
=== Design Strategy ===&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal.&lt;br /&gt;
 &lt;br /&gt;
First, we want the professor to control if the students can create their own supplementary questions by using a checkbox to indicate. If the professor allow students to create their own questions, there will be a button in the students &amp;quot;Your work&amp;quot; page which can let the students jump to the same page that an instructor lands on when creating a new rubric. Then we will add the questionnaire id of this new SupplementaryReviewQuestionnaire to the Team table when students create their own questionnaire in order to show the corresponding supplementary questions to the reviewers. And when showing review questions to the reviewers we will look up the questionnaire id in Team table and modify the view to add the supplementary questions to review page. Finally, after the reviewers finish the review and submit their responds, we will change the view and let the team member can see the feedback of their supplementary questions.&lt;br /&gt;
&lt;br /&gt;
=== Modifications in the User Interface (Todo) === &lt;br /&gt;
&lt;br /&gt;
1. Assignment Creation Page in Instructor's Account&lt;br /&gt;
&lt;br /&gt;
We plan to implement a check box under the column of Rubrics in the assignment creation page indicating whether the instructor allows students to add specific questionnaires with respect to their projects.&lt;br /&gt;
&lt;br /&gt;
2. Your Work Page in A Student's Account&lt;br /&gt;
&lt;br /&gt;
We plan to implement a link or button on the Your Work page of an assignment of a student whose assignment is enabled to create supplementary review questionnaires by the instructor, in order to redirect to the Review Rubrics Creation page.&lt;br /&gt;
&lt;br /&gt;
3. Review Rubrics Creation Page&lt;br /&gt;
&lt;br /&gt;
In this page, students are able to create supplementary review questions regarding the specifics of their own assignments.&lt;br /&gt;
&lt;br /&gt;
4. Review Page&lt;br /&gt;
&lt;br /&gt;
In the Review Page of reviewers, the supplementary review questions created by the owner of the assignment will be shown to reviewers along with the standard review questions created by the instructor.&lt;br /&gt;
&lt;br /&gt;
5. Review Results Page&lt;br /&gt;
&lt;br /&gt;
The Review Results Page should display the results of standard questions created by the instructor as well as the results of supplementary review questions created by the instructor.&lt;br /&gt;
&lt;br /&gt;
== Use Cases == &lt;br /&gt;
&lt;br /&gt;
1. Use case of creating a Supplementary Review Questionnaire&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Use case of reviewing questions for reviewers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Use case of reviewing responses of questions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
Actually, we need to add tests for the following:&lt;br /&gt;
&lt;br /&gt;
1. To check the link for &amp;quot;Supplementary Review Questionnaire&amp;quot; appears in the &amp;quot;Your Work&amp;quot; section of a student.&lt;br /&gt;
&lt;br /&gt;
2. To check if the link for &amp;quot;Supplementary Review Questionnaire&amp;quot; redirects to page which allows to create questionnaire.&lt;br /&gt;
&lt;br /&gt;
3. To check if the questionnaire ID is stored in the Team table.&lt;br /&gt;
&lt;br /&gt;
4. To check if the reviewers can see the supplementary questions that were added by the team as part of the review questions.&lt;br /&gt;
&lt;br /&gt;
5. To check if the responses of the Supplementary Review Questions have been added to the responses of the existing review questions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== File which are added/modified ==&lt;br /&gt;
&lt;br /&gt;
Note: Because the pull request contains some code irrelevant to this project which make it confusing, we post our code here for you to read clearly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Team members ==&lt;br /&gt;
Hua Cao&lt;br /&gt;
&lt;br /&gt;
Heng Yu&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
Expertiza on Github:https://github.com/zyczyh/expertiza&lt;br /&gt;
&lt;br /&gt;
Pull Request:https://github.com/expertiza/expertiza/pull/1325&lt;br /&gt;
&lt;br /&gt;
Expertiza YouTube channel:https://youtu.be/3PUNknSbU-k&lt;/div&gt;</summary>
		<author><name>Hyu22</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1981._Student-generated_questions_added_to_rubric&amp;diff=128434</id>
		<title>CSC/ECE 517 Fall 2019 - E1981. Student-generated questions added to rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1981._Student-generated_questions_added_to_rubric&amp;diff=128434"/>
		<updated>2019-11-11T02:31:37Z</updated>

		<summary type="html">&lt;p&gt;Hyu22: /* Changes in the User Interface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics. Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises. This project (E1879) aims to solve this problem by allowing students to add questions to the standard instructor generated rubric so that they can get specific feedback on from the reviewers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Proposed solution ==&lt;br /&gt;
We will add the Supplementary Review Questions to the current Review Questions, and show these student-generated questions under the rubric given by instructor. Even though these questions won't be graded, they will eventually provide diversity for feedback. It will increase the benefit that each team gets because they can get feedback that is specific to their project. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
=== Design Strategy ===&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal.&lt;br /&gt;
 &lt;br /&gt;
First, we want the professor to control if the students can create their own supplementary questions by using a checkbox to indicate. If the professor allow students to create their own questions, there will be a button in the students &amp;quot;Your work&amp;quot; page which can let the students jump to the same page that an instructor lands on when creating a new rubric. Then we will add the questionnaire id of this new SupplementaryReviewQuestionnaire to the Team table when students create their own questionnaire in order to show the corresponding supplementary questions to the reviewers. And when showing review questions to the reviewers we will look up the questionnaire id in Team table and modify the view to add the supplementary questions to review page. Finally, after the reviewers finish the review and submit their responds, we will change the view and let the team member can see the feedback of their supplementary questions.&lt;br /&gt;
&lt;br /&gt;
=== Changes in the User Interface (Todo) === &lt;br /&gt;
&lt;br /&gt;
1. Assignment Creation Page in Instructor's Account&lt;br /&gt;
&lt;br /&gt;
We plan to implement a check box under the column of Rubrics in the assignment creation page indicating whether the instructor allows students to add specific questionnaires with respect to their projects.&lt;br /&gt;
&lt;br /&gt;
2. Your Work Page in A Student's Account&lt;br /&gt;
&lt;br /&gt;
We plan to implement a link or button on the Your Work page of an assignment of a student whose assignment is enabled to create supplementary review questionnaires by the instructor, in order to redirect to the Review Rubrics Creation page.&lt;br /&gt;
&lt;br /&gt;
3. Review Rubrics Creation Page&lt;br /&gt;
&lt;br /&gt;
In this page, students are able to create supplementary review questions regarding the specifics of their own assignments.&lt;br /&gt;
&lt;br /&gt;
4. Review Page&lt;br /&gt;
&lt;br /&gt;
In the Review Page of reviewers, the supplementary review questions created by the owner of the assignment will be shown to reviewers along with the standard review questions created by the instructor.&lt;br /&gt;
&lt;br /&gt;
5. Review Results Page&lt;br /&gt;
&lt;br /&gt;
The Review Results Page should display the results of standard questions created by the instructor as well as the results of supplementary review questions created by the instructor.&lt;br /&gt;
&lt;br /&gt;
== Use Cases == &lt;br /&gt;
&lt;br /&gt;
1. Use case of creating a Supplementary Review Questionnaire&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Use case of reviewing questions for reviewers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Use case of reviewing responses of questions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
Actually, we need to add tests for the following:&lt;br /&gt;
&lt;br /&gt;
1. To check the link for &amp;quot;Supplementary Review Questionnaire&amp;quot; appears in the &amp;quot;Your Work&amp;quot; section of a student.&lt;br /&gt;
&lt;br /&gt;
2. To check if the link for &amp;quot;Supplementary Review Questionnaire&amp;quot; redirects to page which allows to create questionnaire.&lt;br /&gt;
&lt;br /&gt;
3. To check if the questionnaire ID is stored in the Team table.&lt;br /&gt;
&lt;br /&gt;
4. To check if the reviewers can see the supplementary questions that were added by the team as part of the review questions.&lt;br /&gt;
&lt;br /&gt;
5. To check if the responses of the Supplementary Review Questions have been added to the responses of the existing review questions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== File which are added/modified ==&lt;br /&gt;
&lt;br /&gt;
Note: Because the pull request contains some code irrelevant to this project which make it confusing, we post our code here for you to read clearly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Team members ==&lt;br /&gt;
Hua Cao&lt;br /&gt;
&lt;br /&gt;
Heng Yu&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
Expertiza on Github:https://github.com/zyczyh/expertiza&lt;br /&gt;
&lt;br /&gt;
Pull Request:https://github.com/expertiza/expertiza/pull/1325&lt;br /&gt;
&lt;br /&gt;
Expertiza YouTube channel:https://youtu.be/3PUNknSbU-k&lt;/div&gt;</summary>
		<author><name>Hyu22</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1981._Student-generated_questions_added_to_rubric&amp;diff=128405</id>
		<title>CSC/ECE 517 Fall 2019 - E1981. Student-generated questions added to rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1981._Student-generated_questions_added_to_rubric&amp;diff=128405"/>
		<updated>2019-11-11T02:02:06Z</updated>

		<summary type="html">&lt;p&gt;Hyu22: /* Team members */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics. Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises. This project (E1879) aims to solve this problem by allowing students to add questions to the standard instructor generated rubric so that they can get specific feedback on from the reviewers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Proposed solution ==&lt;br /&gt;
We will add the Supplementary Review Questions to the current Review Questions, and show these student-generated questions under the rubric given by instructor. Even though these questions won't be graded, they will eventually provide diversity for feedback. It will increase the benefit that each team gets because they can get feedback that is specific to their project. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
=== Design Strategy ===&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal.&lt;br /&gt;
 &lt;br /&gt;
First, we want the professor to control if the students can create their own supplementary questions by using a checkbox to indicate. If the professor allow students to create their own questions, there will be a button in the students &amp;quot;Your work&amp;quot; page which can let the students jump to the same page that an instructor lands on when creating a new rubric. Then we will add the questionnaire id of this new SupplementaryReviewQuestionnaire to the Team table when students create their own questionnaire in order to show the corresponding supplementary questions to the reviewers. And when showing review questions to the reviewers we will look up the questionnaire id in Team table and modify the view to add the supplementary questions to review page. Finally, after the reviewers finish the review and submit their responds, we will change the view and let the team member can see the feedback of their supplementary questions.&lt;br /&gt;
&lt;br /&gt;
=== Changes in the User Interface === &lt;br /&gt;
&lt;br /&gt;
1. Assignment Page&lt;br /&gt;
&lt;br /&gt;
We add a checkbox for the professor to indicate if student can add their own questions.&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
2. A button called &amp;quot;Create Supplementary Rubric&amp;quot; will appear in the student's &amp;quot;Your Work&amp;quot; section when the Instructor has allowed students to create supplementary review questions. So when a student clicks the button he/she can add the desired questions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. The page where student will be directed to when he/she clicks the Create Supplementary Rubric button. Students can add Questions to the created Supplementary Review questionnaire here.&lt;br /&gt;
&lt;br /&gt;
4. Review Page&lt;br /&gt;
&lt;br /&gt;
The students own supplementary questions are leading by a heading &amp;quot;Supplementary Review Questions&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
5. Review Results Page&lt;br /&gt;
&lt;br /&gt;
The supplementary review results will be showed to the team like other results. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== Use Cases == &lt;br /&gt;
&lt;br /&gt;
1. Use case of creating a Supplementary Review Questionnaire&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Use case of reviewing questions for reviewers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Use case of reviewing responses of questions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
Actually, we need to add tests for the following:&lt;br /&gt;
&lt;br /&gt;
1. To check the link for &amp;quot;Supplementary Review Questionnaire&amp;quot; appears in the &amp;quot;Your Work&amp;quot; section of a student.&lt;br /&gt;
&lt;br /&gt;
2. To check if the link for &amp;quot;Supplementary Review Questionnaire&amp;quot; redirects to page which allows to create questionnaire.&lt;br /&gt;
&lt;br /&gt;
3. To check if the questionnaire ID is stored in the Team table.&lt;br /&gt;
&lt;br /&gt;
4. To check if the reviewers can see the supplementary questions that were added by the team as part of the review questions.&lt;br /&gt;
&lt;br /&gt;
5. To check if the responses of the Supplementary Review Questions have been added to the responses of the existing review questions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== File which are added/modified ==&lt;br /&gt;
&lt;br /&gt;
Note: Because the pull request contains some code irrelevant to this project which make it confusing, we post our code here for you to read clearly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Team members ==&lt;br /&gt;
Hua Cao&lt;br /&gt;
&lt;br /&gt;
Heng Yu&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
Expertiza on Github:https://github.com/zyczyh/expertiza&lt;br /&gt;
&lt;br /&gt;
Pull Request:https://github.com/expertiza/expertiza/pull/1325&lt;br /&gt;
&lt;br /&gt;
Expertiza YouTube channel:https://youtu.be/3PUNknSbU-k&lt;/div&gt;</summary>
		<author><name>Hyu22</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1968._Fixes_for_adding_members_to_teams&amp;diff=128382</id>
		<title>CSC/ECE 517 Fall 2019 - E1968. Fixes for adding members to teams</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1968._Fixes_for_adding_members_to_teams&amp;diff=128382"/>
		<updated>2019-11-11T01:46:00Z</updated>

		<summary type="html">&lt;p&gt;Hyu22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E1968 OSS assignment for Fall 2019, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
This project fixed several bugs related to Assignment teams. Expertiza has Assignment objects, which represent an assignment usually assigned by an in structor for a course. If the instructor allowe teams for the assignment, the participants in that course can create teams with each other. Also, the instructor can create teams or add team membert to a exsiting team. Our project is focused on fixing bugs related to these functionalities.&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
&lt;br /&gt;
In this project we fixed three problems, the problems and the way to reproduce them is shown below.&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Adding a member from the UI (typing the ID into the textbox) raises an error.&lt;br /&gt;
    Reproduciton:&lt;br /&gt;
    (1)Login as an instructor.&lt;br /&gt;
    (2)Go to Assignment tab under Manage.&lt;br /&gt;
    (3)Click any assignment for example : OSS project &amp;amp; documentation.&lt;br /&gt;
    (4)Select Create Teams.&lt;br /&gt;
    (5)Select Add Team Member option for any team. &lt;br /&gt;
    (6)Adding a member from the UI (typing the ID into the textbox) raises an error.&lt;br /&gt;
2. Impersonating a student who has an assignment without affiliating to any course will cause an error.&lt;br /&gt;
    (1)Login as an instructor.&lt;br /&gt;
    (2)Go to the Assignment tab under Manage.&lt;br /&gt;
    (3)Click the &amp;quot;+&amp;quot; button and then create a new assignment named &amp;quot;E1968&amp;quot; without choosing any course from the course dropdown menu.&lt;br /&gt;
    (4)Go back to the Assignment tab under Manage, and click the &amp;quot;Add participants&amp;quot; of the assignment of &amp;quot;E1968&amp;quot;.&lt;br /&gt;
    (5)Fill in the form &amp;quot;Enter a user login&amp;quot; with a student's name, for instance, &amp;quot;student7515&amp;quot;.&lt;br /&gt;
    (6)Go to the Impersonate User tab under Manage, fill in the form &amp;quot;Enter  user account&amp;quot; with the student &amp;quot;student7515&amp;quot;.&lt;br /&gt;
    (7)Clicking the button &amp;quot;Impersonate&amp;quot; raises an error.&lt;br /&gt;
3. Creating a team by uploading a file.&lt;br /&gt;
    (1)Login as an instructor.&lt;br /&gt;
    (2)Go to Assignment tab under Manage.&lt;br /&gt;
    (3)Click any assignment.&lt;br /&gt;
    (4)Click Create Teams.&lt;br /&gt;
    (5)Click Import Teams.&lt;br /&gt;
    (6)Create teams by clicking the button &amp;quot;Import&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Solutions ==&lt;br /&gt;
&lt;br /&gt;
1. The reason for the first problem was actually due to a key error. In teams_users_controller.rb line 35, 'assignment_id' was used to find AssignmentParticipant. But in the model of AssignmentParticipant, the foreign key name is acctually 'parent_id'. So, by changing it, problem solved.&lt;br /&gt;
&amp;lt;br/&amp;gt;[[File:Problem1change.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2. After our inspection into the file of &amp;quot;expertiza/app/controllers/student_task_controller.rb&amp;quot;, we found the reason for the second problem was that before we used t.assignment.course.instructor_id, we had to confirm that t.assignment.course was not equal to nil. If there existed an assignment without being subject to any course, when this assignment was assigned to a specific student, it would raise an error when it came to showing the tasks of the student. Thus, in order to show student tasks correctly, we changed the code to at first checking whether the t.assignment.course was nil. If t.assignment was not nil, we could use t.assignment.course.instructor_id to retrieve data needed from the database, otherwise, we used t.assignment.instructor_id directly to retrieve data needed. &lt;br /&gt;
&amp;lt;br/&amp;gt;[[File:problem2.jpg]]&amp;lt;br/&amp;gt;&lt;br /&gt;
3. The third one works fine.&lt;br /&gt;
&lt;br /&gt;
== Testing Details==&lt;br /&gt;
&lt;br /&gt;
=== RSpec ===&lt;br /&gt;
For each of the problems, we did feature tests with Rspec. They all follows the reproduction steps decribed above.&lt;br /&gt;
&lt;br /&gt;
=== Feature Testing ===&lt;br /&gt;
*Problem 1: assignment_team_member_spec.rb&lt;br /&gt;
Following steps needs to be performed to test this code:&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Login as instructor. &amp;lt;br/&amp;gt;&lt;br /&gt;
2. Create a course and an assignment under that course.&amp;lt;br/&amp;gt;&lt;br /&gt;
2. Add at least two students as participants to the assignment.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. Create a team for the assignment.&amp;lt;br/&amp;gt;&lt;br /&gt;
4. Add a participant to the team.&amp;lt;br/&amp;gt;&lt;br /&gt;
5. Check if the student is a team member of that team.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Problem 2: impersonate_student_spec.rb&lt;br /&gt;
Following steps needs to be performed to test this code:&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Create data for the test including an instructor, a student and an assignment without being subject to any course. &amp;lt;br/&amp;gt;&lt;br /&gt;
2. Log in as instructor.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. Add the student as the participant of the assignment created. &amp;lt;br/&amp;gt;&lt;br /&gt;
4. Impersonate the student from the instructor account. &amp;lt;br/&amp;gt;&lt;br /&gt;
5. Check if the page of displaying tasks of the student is correctly shown. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Problem 3: assignment_team_import_spec.rb&lt;br /&gt;
Following steps needs to be performed to test this code:&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Login as instructor.&amp;lt;br/&amp;gt;&lt;br /&gt;
2. Create a course and an assignment under that course.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. Create teams for the assignment by importing a file.&amp;lt;br/&amp;gt;&lt;br /&gt;
4. Check if these teams belongs to the assignment.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Run the test locally:&lt;br /&gt;
*Problem 1: The snapshot of results in the console when running rspec spec/features/assignment_team_member_spec.rb&lt;br /&gt;
[[File:Run_p1.png]] &amp;lt;br/&amp;gt;&lt;br /&gt;
*Problem 2: The snapshot of results in the console when running rspec spec/features/impersonate_student_spec.rb&lt;br /&gt;
[[File:snapshot_of_console_in_E1968_problem_2.jpg]] &amp;lt;br/&amp;gt;&lt;br /&gt;
According to above snapshot, after we applied changes in original code, the test was able to passed. Besides, we confirmed that our changes were successful by taking the same actions in our browser.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Problem 3:The snapshot of results in the console when running rspec spec/features/assignment_team_import_spec.rb&lt;br /&gt;
[[File:issue3.png]] &amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hyu22</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1968._Fixes_for_adding_members_to_teams&amp;diff=128379</id>
		<title>CSC/ECE 517 Fall 2019 - E1968. Fixes for adding members to teams</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1968._Fixes_for_adding_members_to_teams&amp;diff=128379"/>
		<updated>2019-11-11T01:44:53Z</updated>

		<summary type="html">&lt;p&gt;Hyu22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Background ==&lt;br /&gt;
&lt;br /&gt;
This project fixed several bugs related to Assignment teams. Expertiza has Assignment objects, which represent an assignment usually assigned by an in structor for a course. If the instructor allowe teams for the assignment, the participants in that course can create teams with each other. Also, the instructor can create teams or add team membert to a exsiting team. Our project is focused on fixing bugs related to these functionalities.&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
&lt;br /&gt;
In this project we fixed three problems, the problems and the way to reproduce them is shown below.&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Adding a member from the UI (typing the ID into the textbox) raises an error.&lt;br /&gt;
    Reproduciton:&lt;br /&gt;
    (1)Login as an instructor.&lt;br /&gt;
    (2)Go to Assignment tab under Manage.&lt;br /&gt;
    (3)Click any assignment for example : OSS project &amp;amp; documentation.&lt;br /&gt;
    (4)Select Create Teams.&lt;br /&gt;
    (5)Select Add Team Member option for any team. &lt;br /&gt;
    (6)Adding a member from the UI (typing the ID into the textbox) raises an error.&lt;br /&gt;
2. Impersonating a student who has an assignment without affiliating to any course will cause an error.&lt;br /&gt;
    (1)Login as an instructor.&lt;br /&gt;
    (2)Go to the Assignment tab under Manage.&lt;br /&gt;
    (3)Click the &amp;quot;+&amp;quot; button and then create a new assignment named &amp;quot;E1968&amp;quot; without choosing any course from the course dropdown menu.&lt;br /&gt;
    (4)Go back to the Assignment tab under Manage, and click the &amp;quot;Add participants&amp;quot; of the assignment of &amp;quot;E1968&amp;quot;.&lt;br /&gt;
    (5)Fill in the form &amp;quot;Enter a user login&amp;quot; with a student's name, for instance, &amp;quot;student7515&amp;quot;.&lt;br /&gt;
    (6)Go to the Impersonate User tab under Manage, fill in the form &amp;quot;Enter  user account&amp;quot; with the student &amp;quot;student7515&amp;quot;.&lt;br /&gt;
    (7)Clicking the button &amp;quot;Impersonate&amp;quot; raises an error.&lt;br /&gt;
3. Creating a team by uploading a file.&lt;br /&gt;
    (1)Login as an instructor.&lt;br /&gt;
    (2)Go to Assignment tab under Manage.&lt;br /&gt;
    (3)Click any assignment.&lt;br /&gt;
    (4)Click Create Teams.&lt;br /&gt;
    (5)Click Import Teams.&lt;br /&gt;
    (6)Create teams by clicking the button &amp;quot;Import&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Solutions ==&lt;br /&gt;
&lt;br /&gt;
1. The reason for the first problem was actually due to a key error. In teams_users_controller.rb line 35, 'assignment_id' was used to find AssignmentParticipant. But in the model of AssignmentParticipant, the foreign key name is acctually 'parent_id'. So, by changing it, problem solved.&lt;br /&gt;
&amp;lt;br/&amp;gt;[[File:Problem1change.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2. After our inspection into the file of &amp;quot;expertiza/app/controllers/student_task_controller.rb&amp;quot;, we found the reason for the second problem was that before we used t.assignment.course.instructor_id, we had to confirm that t.assignment.course was not equal to nil. If there existed an assignment without being subject to any course, when this assignment was assigned to a specific student, it would raise an error when it came to showing the tasks of the student. Thus, in order to show student tasks correctly, we changed the code to at first checking whether the t.assignment.course was nil. If t.assignment was not nil, we could use t.assignment.course.instructor_id to retrieve data needed from the database, otherwise, we used t.assignment.instructor_id directly to retrieve data needed. &lt;br /&gt;
&amp;lt;br/&amp;gt;[[File:problem2.jpg]]&amp;lt;br/&amp;gt;&lt;br /&gt;
3. The third one works fine.&lt;br /&gt;
&lt;br /&gt;
== Testing Details==&lt;br /&gt;
&lt;br /&gt;
=== RSpec ===&lt;br /&gt;
For each of the problems, we did feature tests with Rspec. They all follows the reproduction steps decribed above.&lt;br /&gt;
&lt;br /&gt;
=== Feature Testing ===&lt;br /&gt;
*Problem 1: assignment_team_member_spec.rb&lt;br /&gt;
Following steps needs to be performed to test this code:&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Login as instructor. &amp;lt;br/&amp;gt;&lt;br /&gt;
2. Create a course and an assignment under that course.&amp;lt;br/&amp;gt;&lt;br /&gt;
2. Add at least two students as participants to the assignment.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. Create a team for the assignment.&amp;lt;br/&amp;gt;&lt;br /&gt;
4. Add a participant to the team.&amp;lt;br/&amp;gt;&lt;br /&gt;
5. Check if the student is a team member of that team.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Problem 2: impersonate_student_spec.rb&lt;br /&gt;
Following steps needs to be performed to test this code:&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Create data for the test including an instructor, a student and an assignment without being subject to any course. &amp;lt;br/&amp;gt;&lt;br /&gt;
2. Log in as instructor.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. Add the student as the participant of the assignment created. &amp;lt;br/&amp;gt;&lt;br /&gt;
4. Impersonate the student from the instructor account. &amp;lt;br/&amp;gt;&lt;br /&gt;
5. Check if the page of displaying tasks of the student is correctly shown. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Problem 3: assignment_team_import_spec.rb&lt;br /&gt;
Following steps needs to be performed to test this code:&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Login as instructor.&amp;lt;br/&amp;gt;&lt;br /&gt;
2. Create a course and an assignment under that course.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. Create teams for the assignment by importing a file.&amp;lt;br/&amp;gt;&lt;br /&gt;
4. Check if these teams belongs to the assignment.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Run the test locally:&lt;br /&gt;
*Problem 1: The snapshot of results in the console when running rspec spec/features/assignment_team_member_spec.rb&lt;br /&gt;
[[File:Run_p1.png]] &amp;lt;br/&amp;gt;&lt;br /&gt;
*Problem 2: The snapshot of results in the console when running rspec spec/features/impersonate_student_spec.rb&lt;br /&gt;
[[File:snapshot_of_console_in_E1968_problem_2.jpg]] &amp;lt;br/&amp;gt;&lt;br /&gt;
According to above snapshot, after we applied changes in original code, the test was able to passed. Besides, we confirmed that our changes were successful by taking the same actions in our browser.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Problem 3:The snapshot of results in the console when running rspec spec/features/assignment_team_import_spec.rb&lt;br /&gt;
[[File:issue3.png]] &amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hyu22</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1968._Fixes_for_adding_members_to_teams&amp;diff=125798</id>
		<title>CSC/ECE 517 Fall 2019 - E1968. Fixes for adding members to teams</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1968._Fixes_for_adding_members_to_teams&amp;diff=125798"/>
		<updated>2019-10-28T02:51:55Z</updated>

		<summary type="html">&lt;p&gt;Hyu22: /* Solutions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E1968 OSS assignment for Fall 2019, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
This project fixed several bugs related to Assignment teams. Expertiza has Assignment objects, which represent an assignment usually assigned by an in structor for a course. If the instructor allowe teams for the assignment, the participants in that course can create teams with each other. Also, the instructor can create teams or add team membert to a exsiting team. Our project is focused on fixing bugs related to these functionalities.&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
&lt;br /&gt;
In this project we fixed three problems, the problems and the way to reproduce them is shown below.&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Adding a member from the UI (typing the ID into the textbox) raises an error.&lt;br /&gt;
    Reproduciton:&lt;br /&gt;
    (1)Login as an instructor.&lt;br /&gt;
    (2)Go to Assignment tab under Manage.&lt;br /&gt;
    (3)Click any assignment for example : OSS project &amp;amp; documentation.&lt;br /&gt;
    (4)Select Create Teams.&lt;br /&gt;
    (5)Select Add Team Member option for any team. &lt;br /&gt;
    (6)Adding a member from the UI (typing the ID into the textbox) raises an error.&lt;br /&gt;
2. Impersonating a student who has an assignment without affiliating to any course will cause an error.&lt;br /&gt;
    (1)Login as an instructor.&lt;br /&gt;
    (2)Go to the Assignment tab under Manage.&lt;br /&gt;
    (3)Click the &amp;quot;+&amp;quot; button and then create a new assignment named &amp;quot;E1968&amp;quot; without choosing any course from the course dropdown menu.&lt;br /&gt;
    (4)Go back to the Assignment tab under Manage, and click the &amp;quot;Add participants&amp;quot; of the assignment of &amp;quot;E1968&amp;quot;.&lt;br /&gt;
    (5)Fill in the form &amp;quot;Enter a user login&amp;quot; with a student's name, for instance, &amp;quot;student7515&amp;quot;.&lt;br /&gt;
    (6)Go to the Impersonate User tab under Manage, fill in the form &amp;quot;Enter  user account&amp;quot; with the student &amp;quot;student7515&amp;quot;.&lt;br /&gt;
    (7)Clicking the button &amp;quot;Impersonate&amp;quot; raises an error.&lt;br /&gt;
3. TODO&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Solutions ==&lt;br /&gt;
&lt;br /&gt;
1. The reason for the first problem was actually due to a key error. In teams_users_controller.rb line 35, 'assignment_id' was used to find AssignmentParticipant. But in the model of AssignmentParticipant, the foreign key name is acctually 'parent_id'. So, by changing it, problem solved.&lt;br /&gt;
&amp;lt;br/&amp;gt;[[File:Problem1change.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2. After our inspection into the file of &amp;quot;expertiza/app/controllers/student_task_controller.rb&amp;quot;, we found the reason for the second problem was that before we used t.assignment.course.instructor_id, we had to confirm that t.assignment.course was not equal to nil. If there existed an assignment without being subject to any course, when this assignment was assigned to a specific student, it would raise an error when it came to showing the tasks of the student. Thus, in order to show student tasks correctly, we changed the code to at first checking whether the t.assignment.course was nil. If t.assignment was not nil, we could use t.assignment.course.instructor_id to retrieve data needed from the database, otherwise, we used t.assignment.instructor_id directly to retrieve data needed. &lt;br /&gt;
&amp;lt;br/&amp;gt;[[File:problem2.jpg]]&amp;lt;br/&amp;gt;&lt;br /&gt;
3. TODO&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing Details==&lt;br /&gt;
&lt;br /&gt;
=== RSpec ===&lt;br /&gt;
For each of the problems, we did feature tests with Rspec. They all follows the reproduction steps decribed above.&lt;br /&gt;
&lt;br /&gt;
=== Feature Testing ===&lt;br /&gt;
*Problem 1: assignment_team_member_spec.rb&lt;br /&gt;
Following steps needs to be performed to test this code:&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Login as instructor. &amp;lt;br/&amp;gt;&lt;br /&gt;
2. Create a course and an assignment under that course.&amp;lt;br/&amp;gt;&lt;br /&gt;
2. Add at least two students as participants to the assignment.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. Create a team for the assignment.&amp;lt;br/&amp;gt;&lt;br /&gt;
4. Add a participant to the team.&amp;lt;br/&amp;gt;&lt;br /&gt;
5. Check if the student is a team member of that team.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Problem 2: impersonate_student_spec.rb&lt;br /&gt;
Following steps needs to be performed to test this code:&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Create data for the test including an instructor, a student and an assignment without being subject to any course. &amp;lt;br/&amp;gt;&lt;br /&gt;
2. Log in as instructor.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. Add the student as the participant of the assignment created. &amp;lt;br/&amp;gt;&lt;br /&gt;
4. Impersonate the student from the instructor account. &amp;lt;br/&amp;gt;&lt;br /&gt;
5. Check if the page of displaying tasks of the student is correctly shown. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Problem 3 TODO&lt;br /&gt;
&lt;br /&gt;
Run the test locally:&lt;br /&gt;
TODO: the snapshot of console result of all test.&lt;br /&gt;
*Problem 2: The snapshot of results in the console when running rspec spec/features/impersonate_student_spec.rb&lt;br /&gt;
[[File:snapshot_of_console_in_E1968_problem_2.jpg]] &amp;lt;br/&amp;gt;&lt;br /&gt;
According to above snapshot, after we applied changes in original code, the test was able to passed. Besides, we confirmed that our changes were successful by taking the same actions in our browser.&lt;/div&gt;</summary>
		<author><name>Hyu22</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1968._Fixes_for_adding_members_to_teams&amp;diff=125793</id>
		<title>CSC/ECE 517 Fall 2019 - E1968. Fixes for adding members to teams</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1968._Fixes_for_adding_members_to_teams&amp;diff=125793"/>
		<updated>2019-10-28T02:48:55Z</updated>

		<summary type="html">&lt;p&gt;Hyu22: /* Solutions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E1968 OSS assignment for Fall 2019, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
This project fixed several bugs related to Assignment teams. Expertiza has Assignment objects, which represent an assignment usually assigned by an in structor for a course. If the instructor allowe teams for the assignment, the participants in that course can create teams with each other. Also, the instructor can create teams or add team membert to a exsiting team. Our project is focused on fixing bugs related to these functionalities.&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
&lt;br /&gt;
In this project we fixed three problems, the problems and the way to reproduce them is shown below.&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Adding a member from the UI (typing the ID into the textbox) raises an error.&lt;br /&gt;
    Reproduciton:&lt;br /&gt;
    (1)Login as an instructor.&lt;br /&gt;
    (2)Go to Assignment tab under Manage.&lt;br /&gt;
    (3)Click any assignment for example : OSS project &amp;amp; documentation.&lt;br /&gt;
    (4)Select Create Teams.&lt;br /&gt;
    (5)Select Add Team Member option for any team. &lt;br /&gt;
    (6)Adding a member from the UI (typing the ID into the textbox) raises an error.&lt;br /&gt;
2. Impersonating a student who has an assignment without affiliating to any course will cause an error.&lt;br /&gt;
    (1)Login as an instructor.&lt;br /&gt;
    (2)Go to the Assignment tab under Manage.&lt;br /&gt;
    (3)Click the &amp;quot;+&amp;quot; button and then create a new assignment named &amp;quot;E1968&amp;quot; without choosing any course from the course dropdown menu.&lt;br /&gt;
    (4)Go back to the Assignment tab under Manage, and click the &amp;quot;Add participants&amp;quot; of the assignment of &amp;quot;E1968&amp;quot;.&lt;br /&gt;
    (5)Fill in the form &amp;quot;Enter a user login&amp;quot; with a student's name, for instance, &amp;quot;student7515&amp;quot;.&lt;br /&gt;
    (6)Go to the Impersonate User tab under Manage, fill in the form &amp;quot;Enter  user account&amp;quot; with the student &amp;quot;student7515&amp;quot;.&lt;br /&gt;
    (7)Clicking the button &amp;quot;Impersonate&amp;quot; raises an error.&lt;br /&gt;
3. TODO&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Solutions ==&lt;br /&gt;
&lt;br /&gt;
1. The reason for the first problem was actually due to a key error. In teams_users_controller.rb line 35, 'assignment_id' was used to find AssignmentParticipant. But in the model of AssignmentParticipant, the foreign key name is acctually 'parent_id'. So, by changing it, problem solved.&lt;br /&gt;
&amp;lt;br/&amp;gt;[[File:Problem1change.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2. The reason for the second problem was that before we used t.assignment.course.instructor_id, we had to confirm that t.assignment.course was not equal to nil. If there existed an assignment without being subject to any course, when this assignment was assigned to a specific student, it would raise an error when it came to showing the tasks of the student. Thus, in order to show student tasks correctly, we changed the code to at first checking whether the t.assignment.course was nil. If t.assignment was not nil, we could use t.assignment.course.instructor_id to retrieve data needed from the database, otherwise, we used t.assignment.instructor_id directly to retrieve data needed. &lt;br /&gt;
&amp;lt;br/&amp;gt;[[File:problem2.jpg]]&amp;lt;br/&amp;gt;&lt;br /&gt;
3. TODO&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing Details==&lt;br /&gt;
&lt;br /&gt;
=== RSpec ===&lt;br /&gt;
For each of the problems, we did feature tests with Rspec. They all follows the reproduction steps decribed above.&lt;br /&gt;
&lt;br /&gt;
=== Feature Testing ===&lt;br /&gt;
*Problem 1: assignment_team_member_spec.rb&lt;br /&gt;
Following steps needs to be performed to test this code:&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Login as instructor. &amp;lt;br/&amp;gt;&lt;br /&gt;
2. Create a course and an assignment under that course.&amp;lt;br/&amp;gt;&lt;br /&gt;
2. Add at least two students as participants to the assignment.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. Create a team for the assignment.&amp;lt;br/&amp;gt;&lt;br /&gt;
4. Add a participant to the team.&amp;lt;br/&amp;gt;&lt;br /&gt;
5. Check if the student is a team member of that team.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Problem 2: impersonate_student_spec.rb&lt;br /&gt;
Following steps needs to be performed to test this code:&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Create data for the test including an instructor, a student and an assignment without being subject to any course. &amp;lt;br/&amp;gt;&lt;br /&gt;
2. Log in as instructor.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. Add the student as the participant of the assignment created. &amp;lt;br/&amp;gt;&lt;br /&gt;
4. Impersonate the student from the instructor account. &amp;lt;br/&amp;gt;&lt;br /&gt;
5. Check if the page of displaying tasks of the student is correctly shown. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Problem 3 TODO&lt;br /&gt;
&lt;br /&gt;
Run the test locally:&lt;br /&gt;
TODO: the snapshot of console result of all test.&lt;br /&gt;
*Problem 2: The snapshot of results in the console when running rspec spec/features/impersonate_student_spec.rb&lt;br /&gt;
[[File:snapshot_of_console_in_E1968_problem_2.jpg]] &amp;lt;br/&amp;gt;&lt;br /&gt;
According to above snapshot, after we applied changes in original code, the test was able to passed. Besides, we confirmed that our changes were successful by taking the same actions in our browser.&lt;/div&gt;</summary>
		<author><name>Hyu22</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1968._Fixes_for_adding_members_to_teams&amp;diff=125789</id>
		<title>CSC/ECE 517 Fall 2019 - E1968. Fixes for adding members to teams</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1968._Fixes_for_adding_members_to_teams&amp;diff=125789"/>
		<updated>2019-10-28T02:48:14Z</updated>

		<summary type="html">&lt;p&gt;Hyu22: /* Feature Testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E1968 OSS assignment for Fall 2019, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
This project fixed several bugs related to Assignment teams. Expertiza has Assignment objects, which represent an assignment usually assigned by an in structor for a course. If the instructor allowe teams for the assignment, the participants in that course can create teams with each other. Also, the instructor can create teams or add team membert to a exsiting team. Our project is focused on fixing bugs related to these functionalities.&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
&lt;br /&gt;
In this project we fixed three problems, the problems and the way to reproduce them is shown below.&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Adding a member from the UI (typing the ID into the textbox) raises an error.&lt;br /&gt;
    Reproduciton:&lt;br /&gt;
    (1)Login as an instructor.&lt;br /&gt;
    (2)Go to Assignment tab under Manage.&lt;br /&gt;
    (3)Click any assignment for example : OSS project &amp;amp; documentation.&lt;br /&gt;
    (4)Select Create Teams.&lt;br /&gt;
    (5)Select Add Team Member option for any team. &lt;br /&gt;
    (6)Adding a member from the UI (typing the ID into the textbox) raises an error.&lt;br /&gt;
2. Impersonating a student who has an assignment without affiliating to any course will cause an error.&lt;br /&gt;
    (1)Login as an instructor.&lt;br /&gt;
    (2)Go to the Assignment tab under Manage.&lt;br /&gt;
    (3)Click the &amp;quot;+&amp;quot; button and then create a new assignment named &amp;quot;E1968&amp;quot; without choosing any course from the course dropdown menu.&lt;br /&gt;
    (4)Go back to the Assignment tab under Manage, and click the &amp;quot;Add participants&amp;quot; of the assignment of &amp;quot;E1968&amp;quot;.&lt;br /&gt;
    (5)Fill in the form &amp;quot;Enter a user login&amp;quot; with a student's name, for instance, &amp;quot;student7515&amp;quot;.&lt;br /&gt;
    (6)Go to the Impersonate User tab under Manage, fill in the form &amp;quot;Enter  user account&amp;quot; with the student &amp;quot;student7515&amp;quot;.&lt;br /&gt;
    (7)Clicking the button &amp;quot;Impersonate&amp;quot; raises an error.&lt;br /&gt;
3. TODO&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Solutions ==&lt;br /&gt;
&lt;br /&gt;
1. The reason for the first problem was actually due to a key error. In teams_users_controller.rb line 35, 'assignment_id' was used to find AssignmentParticipant. But in the model of AssignmentParticipant, the foreign key name is acctually 'parent_id'. So, by changing it, problem solved.&lt;br /&gt;
[[File:Problem1change.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2. The reason for the second problem was that before we used t.assignment.course.instructor_id, we had to confirm that t.assignment.course was not equal to nil. If there existed an assignment without being subject to any course, when this assignment was assigned to a specific student, it would raise an error when it came to showing the tasks of the student. Thus, in order to show student tasks correctly, we changed the code to at first checking whether the t.assignment.course was nil. If t.assignment was not nil, we could use t.assignment.course.instructor_id to retrieve data needed from the database, otherwise, we used t.assignment.instructor_id directly to retrieve data needed. &lt;br /&gt;
&amp;lt;br/&amp;gt;[[File:problem2.jpg]]&amp;lt;br/&amp;gt;&lt;br /&gt;
3. TODO&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing Details==&lt;br /&gt;
&lt;br /&gt;
=== RSpec ===&lt;br /&gt;
For each of the problems, we did feature tests with Rspec. They all follows the reproduction steps decribed above.&lt;br /&gt;
&lt;br /&gt;
=== Feature Testing ===&lt;br /&gt;
*Problem 1: assignment_team_member_spec.rb&lt;br /&gt;
Following steps needs to be performed to test this code:&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Login as instructor. &amp;lt;br/&amp;gt;&lt;br /&gt;
2. Create a course and an assignment under that course.&amp;lt;br/&amp;gt;&lt;br /&gt;
2. Add at least two students as participants to the assignment.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. Create a team for the assignment.&amp;lt;br/&amp;gt;&lt;br /&gt;
4. Add a participant to the team.&amp;lt;br/&amp;gt;&lt;br /&gt;
5. Check if the student is a team member of that team.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Problem 2: impersonate_student_spec.rb&lt;br /&gt;
Following steps needs to be performed to test this code:&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Create data for the test including an instructor, a student and an assignment without being subject to any course. &amp;lt;br/&amp;gt;&lt;br /&gt;
2. Log in as instructor.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. Add the student as the participant of the assignment created. &amp;lt;br/&amp;gt;&lt;br /&gt;
4. Impersonate the student from the instructor account. &amp;lt;br/&amp;gt;&lt;br /&gt;
5. Check if the page of displaying tasks of the student is correctly shown. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Problem 3 TODO&lt;br /&gt;
&lt;br /&gt;
Run the test locally:&lt;br /&gt;
TODO: the snapshot of console result of all test.&lt;br /&gt;
*Problem 2: The snapshot of results in the console when running rspec spec/features/impersonate_student_spec.rb&lt;br /&gt;
[[File:snapshot_of_console_in_E1968_problem_2.jpg]] &amp;lt;br/&amp;gt;&lt;br /&gt;
According to above snapshot, after we applied changes in original code, the test was able to passed. Besides, we confirmed that our changes were successful by taking the same actions in our browser.&lt;/div&gt;</summary>
		<author><name>Hyu22</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Snapshot_of_console_in_E1968_problem_2.jpg&amp;diff=125786</id>
		<title>File:Snapshot of console in E1968 problem 2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Snapshot_of_console_in_E1968_problem_2.jpg&amp;diff=125786"/>
		<updated>2019-10-28T02:45:01Z</updated>

		<summary type="html">&lt;p&gt;Hyu22: uploaded a new version of &amp;amp;quot;File:Snapshot of console in E1968 problem 2.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hyu22</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1968._Fixes_for_adding_members_to_teams&amp;diff=125782</id>
		<title>CSC/ECE 517 Fall 2019 - E1968. Fixes for adding members to teams</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1968._Fixes_for_adding_members_to_teams&amp;diff=125782"/>
		<updated>2019-10-28T02:43:06Z</updated>

		<summary type="html">&lt;p&gt;Hyu22: /* Feature Testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E1968 OSS assignment for Fall 2019, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
This project fixed several bugs related to Assignment teams. Expertiza has Assignment objects, which represent an assignment usually assigned by an in structor for a course. If the instructor allowe teams for the assignment, the participants in that course can create teams with each other. Also, the instructor can create teams or add team membert to a exsiting team. Our project is focused on fixing bugs related to these functionalities.&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
&lt;br /&gt;
In this project we fixed three problems, the problems and the way to reproduce them is shown below.&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Adding a member from the UI (typing the ID into the textbox) raises an error.&lt;br /&gt;
    Reproduciton:&lt;br /&gt;
    (1)Login as an instructor.&lt;br /&gt;
    (2)Go to Assignment tab under Manage.&lt;br /&gt;
    (3)Click any assignment for example : OSS project &amp;amp; documentation.&lt;br /&gt;
    (4)Select Create Teams.&lt;br /&gt;
    (5)Select Add Team Member option for any team. &lt;br /&gt;
    (6)Adding a member from the UI (typing the ID into the textbox) raises an error.&lt;br /&gt;
2. Impersonating a student who has an assignment without affiliating to any course will cause an error.&lt;br /&gt;
    (1)Login as an instructor.&lt;br /&gt;
    (2)Go to the Assignment tab under Manage.&lt;br /&gt;
    (3)Click the &amp;quot;+&amp;quot; button and then create a new assignment named &amp;quot;E1968&amp;quot; without choosing any course from the course dropdown menu.&lt;br /&gt;
    (4)Go back to the Assignment tab under Manage, and click the &amp;quot;Add participants&amp;quot; of the assignment of &amp;quot;E1968&amp;quot;.&lt;br /&gt;
    (5)Fill in the form &amp;quot;Enter a user login&amp;quot; with a student's name, for instance, &amp;quot;student7515&amp;quot;.&lt;br /&gt;
    (6)Go to the Impersonate User tab under Manage, fill in the form &amp;quot;Enter  user account&amp;quot; with the student &amp;quot;student7515&amp;quot;.&lt;br /&gt;
    (7)Clicking the button &amp;quot;Impersonate&amp;quot; raises an error.&lt;br /&gt;
3. TODO&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Solutions ==&lt;br /&gt;
&lt;br /&gt;
1. The reason for the first problem was actually due to a key error. In teams_users_controller.rb line 35, 'assignment_id' was used to find AssignmentParticipant. But in the model of AssignmentParticipant, the foreign key name is acctually 'parent_id'. So, by changing it, problem solved.&lt;br /&gt;
[[File:Problem1change.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2. The reason for the second problem was that before we used t.assignment.course.instructor_id, we had to confirm that t.assignment.course was not equal to nil. If there existed an assignment without being subject to any course, when this assignment was assigned to a specific student, it would raise an error when it came to showing the tasks of the student. Thus, in order to show student tasks correctly, we changed the code to at first checking whether the t.assignment.course was nil. If t.assignment was not nil, we could use t.assignment.course.instructor_id to retrieve data needed from the database, otherwise, we used t.assignment.instructor_id directly to retrieve data needed. &lt;br /&gt;
&amp;lt;br/&amp;gt;[[File:problem2.jpg]]&amp;lt;br/&amp;gt;&lt;br /&gt;
3. TODO&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing Details==&lt;br /&gt;
&lt;br /&gt;
=== RSpec ===&lt;br /&gt;
For each of the problems, we did feature tests with Rspec. They all follows the reproduction steps decribed above.&lt;br /&gt;
&lt;br /&gt;
=== Feature Testing ===&lt;br /&gt;
*Problem 1: assignment_team_member_spec.rb&lt;br /&gt;
Following steps needs to be performed to test this code:&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Login as instructor. &amp;lt;br/&amp;gt;&lt;br /&gt;
2. Create a course and an assignment under that course.&amp;lt;br/&amp;gt;&lt;br /&gt;
2. Add at least two students as participants to the assignment.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. Create a team for the assignment.&amp;lt;br/&amp;gt;&lt;br /&gt;
4. Add a participant to the team.&amp;lt;br/&amp;gt;&lt;br /&gt;
5. Check if the student is a team member of that team.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Problem 2: impersonate_student_spec.rb&lt;br /&gt;
Following steps needs to be performed to test this code:&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Create data for the test including an instructor, a student and an assignment without being subject to any course. &amp;lt;br/&amp;gt;&lt;br /&gt;
2. Log in as instructor.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. Add the student as the participant of the assignment created. &amp;lt;br/&amp;gt;&lt;br /&gt;
4. Impersonate the student from the instructor account. &amp;lt;br/&amp;gt;&lt;br /&gt;
5. Check if the page of displaying tasks of the student is correctly shown. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Problem 3 TODO&lt;br /&gt;
&lt;br /&gt;
Run the test locally:&lt;br /&gt;
TODO: the snapshot of console result of all test.&lt;br /&gt;
*Problem 2: The snapshot of results in the console when running rspec spec/features/impersonate_student_spec.rb&lt;br /&gt;
[[File:snapshot_of_console_in_E1968_problem_2.jpg]]&lt;/div&gt;</summary>
		<author><name>Hyu22</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Snapshot_of_console_in_E1968_problem_2.jpg&amp;diff=125778</id>
		<title>File:Snapshot of console in E1968 problem 2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Snapshot_of_console_in_E1968_problem_2.jpg&amp;diff=125778"/>
		<updated>2019-10-28T02:41:37Z</updated>

		<summary type="html">&lt;p&gt;Hyu22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hyu22</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1968._Fixes_for_adding_members_to_teams&amp;diff=125776</id>
		<title>CSC/ECE 517 Fall 2019 - E1968. Fixes for adding members to teams</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1968._Fixes_for_adding_members_to_teams&amp;diff=125776"/>
		<updated>2019-10-28T02:37:09Z</updated>

		<summary type="html">&lt;p&gt;Hyu22: /* Feature Testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E1968 OSS assignment for Fall 2019, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
This project fixed several bugs related to Assignment teams. Expertiza has Assignment objects, which represent an assignment usually assigned by an in structor for a course. If the instructor allowe teams for the assignment, the participants in that course can create teams with each other. Also, the instructor can create teams or add team membert to a exsiting team. Our project is focused on fixing bugs related to these functionalities.&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
&lt;br /&gt;
In this project we fixed three problems, the problems and the way to reproduce them is shown below.&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Adding a member from the UI (typing the ID into the textbox) raises an error.&lt;br /&gt;
    Reproduciton:&lt;br /&gt;
    (1)Login as an instructor.&lt;br /&gt;
    (2)Go to Assignment tab under Manage.&lt;br /&gt;
    (3)Click any assignment for example : OSS project &amp;amp; documentation.&lt;br /&gt;
    (4)Select Create Teams.&lt;br /&gt;
    (5)Select Add Team Member option for any team. &lt;br /&gt;
    (6)Adding a member from the UI (typing the ID into the textbox) raises an error.&lt;br /&gt;
2. Impersonating a student who has an assignment without affiliating to any course will cause an error.&lt;br /&gt;
    (1)Login as an instructor.&lt;br /&gt;
    (2)Go to the Assignment tab under Manage.&lt;br /&gt;
    (3)Click the &amp;quot;+&amp;quot; button and then create a new assignment named &amp;quot;E1968&amp;quot; without choosing any course from the course dropdown menu.&lt;br /&gt;
    (4)Go back to the Assignment tab under Manage, and click the &amp;quot;Add participants&amp;quot; of the assignment of &amp;quot;E1968&amp;quot;.&lt;br /&gt;
    (5)Fill in the form &amp;quot;Enter a user login&amp;quot; with a student's name, for instance, &amp;quot;student7515&amp;quot;.&lt;br /&gt;
    (6)Go to the Impersonate User tab under Manage, fill in the form &amp;quot;Enter  user account&amp;quot; with the student &amp;quot;student7515&amp;quot;.&lt;br /&gt;
    (7)Clicking the button &amp;quot;Impersonate&amp;quot; raises an error.&lt;br /&gt;
3. TODO&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Solutions ==&lt;br /&gt;
&lt;br /&gt;
1. The reason for the first problem was actually due to a key error. In teams_users_controller.rb line 35, 'assignment_id' was used to find AssignmentParticipant. But in the model of AssignmentParticipant, the foreign key name is acctually 'parent_id'. So, by changing it, problem solved.&lt;br /&gt;
[[File:Problem1change.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2. The reason for the second problem was that before we used t.assignment.course.instructor_id, we had to confirm that t.assignment.course was not equal to nil. If there existed an assignment without being subject to any course, when this assignment was assigned to a specific student, it would raise an error when it came to showing the tasks of the student. Thus, in order to show student tasks correctly, we changed the code to at first checking whether the t.assignment.course was nil. If t.assignment was not nil, we could use t.assignment.course.instructor_id to retrieve data needed from the database, otherwise, we used t.assignment.instructor_id directly to retrieve data needed. &lt;br /&gt;
&amp;lt;br/&amp;gt;[[File:problem2.jpg]]&amp;lt;br/&amp;gt;&lt;br /&gt;
3. TODO&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing Details==&lt;br /&gt;
&lt;br /&gt;
=== RSpec ===&lt;br /&gt;
For each of the problems, we did feature tests with Rspec. They all follows the reproduction steps decribed above.&lt;br /&gt;
&lt;br /&gt;
=== Feature Testing ===&lt;br /&gt;
*Problem 1: assignment_team_member_spec.rb&lt;br /&gt;
Following steps needs to be performed to test this code:&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Login as instructor. &amp;lt;br/&amp;gt;&lt;br /&gt;
2. Create a course and an assignment under that course.&amp;lt;br/&amp;gt;&lt;br /&gt;
2. Add at least two students as participants to the assignment.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. Create a team for the assignment.&amp;lt;br/&amp;gt;&lt;br /&gt;
4. Add a participant to the team.&amp;lt;br/&amp;gt;&lt;br /&gt;
5. Check if the student is a team member of that team.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Problem 2: impersonate_student_spec.rb&lt;br /&gt;
Following steps needs to be performed to test this code:&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Create data for the test including an instructor, a student and an assignment without being subject to any course. &amp;lt;br/&amp;gt;&lt;br /&gt;
2. Log in as instructor.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. Add the student as the participant of the assignment created. &amp;lt;br/&amp;gt;&lt;br /&gt;
4. Impersonate the student from the instructor account. &amp;lt;br/&amp;gt;&lt;br /&gt;
5. Check if the page of displaying tasks of the student is correctly shown. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Problem 3 TODO&lt;br /&gt;
&lt;br /&gt;
Run the test locally:&lt;br /&gt;
TODO: the snapshot of console result of all test.&lt;br /&gt;
*Problem 2: The snapshot of results in the console when running rspec spec/features/impersonate_student_spec.rb&lt;/div&gt;</summary>
		<author><name>Hyu22</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1968._Fixes_for_adding_members_to_teams&amp;diff=125722</id>
		<title>CSC/ECE 517 Fall 2019 - E1968. Fixes for adding members to teams</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1968._Fixes_for_adding_members_to_teams&amp;diff=125722"/>
		<updated>2019-10-27T23:00:47Z</updated>

		<summary type="html">&lt;p&gt;Hyu22: /* Solutions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E1968 OSS assignment for Fall 2019, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
This project fixed several bugs related to Assignment teams. Expertiza has Assignment objects, which represent an assignment usually assigned by an in structor for a course. If the instructor allowe teams for the assignment, the participants in that course can create teams with each other. Also, the instructor can create teams or add team membert to a exsiting team. Our project is focused on fixing bugs related to these functionalities.&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
&lt;br /&gt;
In this project we fixed three problems, the problems and the way to reproduce them is shown below.&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Adding a member from the UI (typing the ID into the textbox) raises an error.&lt;br /&gt;
    Reproduciton:&lt;br /&gt;
    (1)Login as an instructor.&lt;br /&gt;
    (2)Go to Assignment tab under Manage.&lt;br /&gt;
    (3)Click any assignment for example : OSS project &amp;amp; documentation.&lt;br /&gt;
    (4)Select Create Teams.&lt;br /&gt;
    (5)Select Add Team Member option for any team. &lt;br /&gt;
    (6)Adding a member from the UI (typing the ID into the textbox) raises an error.&lt;br /&gt;
2. Impersonating a student who has an assignment without affiliating to any course will cause an error.&lt;br /&gt;
    (1)Login as an instructor.&lt;br /&gt;
    (2)Go to the Assignment tab under Manage.&lt;br /&gt;
    (3)Click the &amp;quot;+&amp;quot; button and then create a new assignment named &amp;quot;E1968&amp;quot; without choosing any course from the course dropdown menu.&lt;br /&gt;
    (4)Go back to the Assignment tab under Manage, and click the &amp;quot;Add participants&amp;quot; of the assignment of &amp;quot;E1968&amp;quot;.&lt;br /&gt;
    (5)Fill in the form &amp;quot;Enter a user login&amp;quot; with a student's name, for instance, &amp;quot;student7515&amp;quot;.&lt;br /&gt;
    (6)Go to the Impersonate User tab under Manage, fill in the form &amp;quot;Enter  user account&amp;quot; with the student &amp;quot;student7515&amp;quot;.&lt;br /&gt;
    (7)Clicking the button &amp;quot;Impersonate&amp;quot; raises an error.&lt;br /&gt;
3. TODO&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Solutions ==&lt;br /&gt;
&lt;br /&gt;
1. The reason for the first problem was actually due to a key error. In teams_users_controller.rb line 35, 'assignment_id' was used to find AssignmentParticipant. But in the model of AssignmentParticipant, the foreign key name is acctually 'parent_id'. So, by changing it, problem solved.&lt;br /&gt;
[[File:Problem1change.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2. The reason for the second problem was that before we used t.assignment.course.instructor_id, we had to confirm that t.assignment.course was not equal to nil. If there existed an assignment without being subject to any course, when this assignment was assigned to a specific student, it would raise an error when it came to showing the tasks of the student. Thus, in order to show student tasks correctly, we changed the code to at first checking whether the t.assignment.course was nil. If t.assignment was not nil, we could use t.assignment.course.instructor_id to retrieve data needed from the database, otherwise, we used t.assignment.instructor_id directly to retrieve data needed. &lt;br /&gt;
&amp;lt;br/&amp;gt;[[File:problem2.jpg]]&amp;lt;br/&amp;gt;&lt;br /&gt;
3. TODO&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing Details==&lt;br /&gt;
&lt;br /&gt;
=== RSpec ===&lt;br /&gt;
For each of the problems, we did feature tests with Rspec. They all follows the reproduction steps decribed above.&lt;br /&gt;
&lt;br /&gt;
=== Feature Testing ===&lt;br /&gt;
*Problem 1: assignment_team_member_spec.rb&lt;br /&gt;
Following steps needs to be performed to test this code:&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Login as instructor. &amp;lt;br/&amp;gt;&lt;br /&gt;
2. Create a course and an assignment under that course.&amp;lt;br/&amp;gt;&lt;br /&gt;
2. Add at least two students as participants to the assignment.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. Create a team for the assignment.&amp;lt;br/&amp;gt;&lt;br /&gt;
4. Add a participant to the team.&amp;lt;br/&amp;gt;&lt;br /&gt;
5. Check if the student is a team member of that team.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Problem 2 TODO&lt;br /&gt;
*Problem 3 TODO&lt;br /&gt;
&lt;br /&gt;
Run the test locally:&lt;br /&gt;
TODO: the snapshot of console result of all test.&lt;/div&gt;</summary>
		<author><name>Hyu22</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1968._Fixes_for_adding_members_to_teams&amp;diff=125721</id>
		<title>CSC/ECE 517 Fall 2019 - E1968. Fixes for adding members to teams</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1968._Fixes_for_adding_members_to_teams&amp;diff=125721"/>
		<updated>2019-10-27T23:00:31Z</updated>

		<summary type="html">&lt;p&gt;Hyu22: /* Solutions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E1968 OSS assignment for Fall 2019, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
This project fixed several bugs related to Assignment teams. Expertiza has Assignment objects, which represent an assignment usually assigned by an in structor for a course. If the instructor allowe teams for the assignment, the participants in that course can create teams with each other. Also, the instructor can create teams or add team membert to a exsiting team. Our project is focused on fixing bugs related to these functionalities.&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
&lt;br /&gt;
In this project we fixed three problems, the problems and the way to reproduce them is shown below.&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Adding a member from the UI (typing the ID into the textbox) raises an error.&lt;br /&gt;
    Reproduciton:&lt;br /&gt;
    (1)Login as an instructor.&lt;br /&gt;
    (2)Go to Assignment tab under Manage.&lt;br /&gt;
    (3)Click any assignment for example : OSS project &amp;amp; documentation.&lt;br /&gt;
    (4)Select Create Teams.&lt;br /&gt;
    (5)Select Add Team Member option for any team. &lt;br /&gt;
    (6)Adding a member from the UI (typing the ID into the textbox) raises an error.&lt;br /&gt;
2. Impersonating a student who has an assignment without affiliating to any course will cause an error.&lt;br /&gt;
    (1)Login as an instructor.&lt;br /&gt;
    (2)Go to the Assignment tab under Manage.&lt;br /&gt;
    (3)Click the &amp;quot;+&amp;quot; button and then create a new assignment named &amp;quot;E1968&amp;quot; without choosing any course from the course dropdown menu.&lt;br /&gt;
    (4)Go back to the Assignment tab under Manage, and click the &amp;quot;Add participants&amp;quot; of the assignment of &amp;quot;E1968&amp;quot;.&lt;br /&gt;
    (5)Fill in the form &amp;quot;Enter a user login&amp;quot; with a student's name, for instance, &amp;quot;student7515&amp;quot;.&lt;br /&gt;
    (6)Go to the Impersonate User tab under Manage, fill in the form &amp;quot;Enter  user account&amp;quot; with the student &amp;quot;student7515&amp;quot;.&lt;br /&gt;
    (7)Clicking the button &amp;quot;Impersonate&amp;quot; raises an error.&lt;br /&gt;
3. TODO&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Solutions ==&lt;br /&gt;
&lt;br /&gt;
1. The reason for the first problem was actually due to a key error. In teams_users_controller.rb line 35, 'assignment_id' was used to find AssignmentParticipant. But in the model of AssignmentParticipant, the foreign key name is acctually 'parent_id'. So, by changing it, problem solved.&lt;br /&gt;
[[File:Problem1change.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2. The reason for the second problem was that before we used t.assignment.course.instructor_id, we had to confirm that t.assignment.course was not equal to nil. If there existed an assignment without being subject to any course, when this assignment was assigned to a specific student, it would raise an error when it came to showing the tasks of the student. Thus, in order to show student tasks correctly, we changed the code to at first checking whether the t.assignment.course was nil. If t.assignment was not nil, we could use t.assignment.course.instructor_id to retrieve data needed from the database, otherwise, we used t.assignment.instructor_id directly to retrieve data needed. &lt;br /&gt;
&amp;lt;br/&amp;gt;[[File:problem2.jpg]]&amp;lt;br/&amp;gt;&lt;br /&gt;
4. TODO&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing Details==&lt;br /&gt;
&lt;br /&gt;
=== RSpec ===&lt;br /&gt;
For each of the problems, we did feature tests with Rspec. They all follows the reproduction steps decribed above.&lt;br /&gt;
&lt;br /&gt;
=== Feature Testing ===&lt;br /&gt;
*Problem 1: assignment_team_member_spec.rb&lt;br /&gt;
Following steps needs to be performed to test this code:&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Login as instructor. &amp;lt;br/&amp;gt;&lt;br /&gt;
2. Create a course and an assignment under that course.&amp;lt;br/&amp;gt;&lt;br /&gt;
2. Add at least two students as participants to the assignment.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. Create a team for the assignment.&amp;lt;br/&amp;gt;&lt;br /&gt;
4. Add a participant to the team.&amp;lt;br/&amp;gt;&lt;br /&gt;
5. Check if the student is a team member of that team.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Problem 2 TODO&lt;br /&gt;
*Problem 3 TODO&lt;br /&gt;
&lt;br /&gt;
Run the test locally:&lt;br /&gt;
TODO: the snapshot of console result of all test.&lt;/div&gt;</summary>
		<author><name>Hyu22</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Problem2.jpg&amp;diff=125719</id>
		<title>File:Problem2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Problem2.jpg&amp;diff=125719"/>
		<updated>2019-10-27T22:59:53Z</updated>

		<summary type="html">&lt;p&gt;Hyu22: uploaded a new version of &amp;amp;quot;File:Problem2.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hyu22</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Problem2.jpg&amp;diff=125718</id>
		<title>File:Problem2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Problem2.jpg&amp;diff=125718"/>
		<updated>2019-10-27T22:57:48Z</updated>

		<summary type="html">&lt;p&gt;Hyu22: uploaded a new version of &amp;amp;quot;File:Problem2.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hyu22</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1968._Fixes_for_adding_members_to_teams&amp;diff=125716</id>
		<title>CSC/ECE 517 Fall 2019 - E1968. Fixes for adding members to teams</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1968._Fixes_for_adding_members_to_teams&amp;diff=125716"/>
		<updated>2019-10-27T22:49:57Z</updated>

		<summary type="html">&lt;p&gt;Hyu22: /* Solutions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E1968 OSS assignment for Fall 2019, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
This project fixed several bugs related to Assignment teams. Expertiza has Assignment objects, which represent an assignment usually assigned by an in structor for a course. If the instructor allowe teams for the assignment, the participants in that course can create teams with each other. Also, the instructor can create teams or add team membert to a exsiting team. Our project is focused on fixing bugs related to these functionalities.&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
&lt;br /&gt;
In this project we fixed three problems, the problems and the way to reproduce them is shown below.&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Adding a member from the UI (typing the ID into the textbox) raises an error.&lt;br /&gt;
    Reproduciton:&lt;br /&gt;
    (1)Login as an instructor.&lt;br /&gt;
    (2)Go to Assignment tab under Manage.&lt;br /&gt;
    (3)Click any assignment for example : OSS project &amp;amp; documentation.&lt;br /&gt;
    (4)Select Create Teams.&lt;br /&gt;
    (5)Select Add Team Member option for any team. &lt;br /&gt;
    (6)Adding a member from the UI (typing the ID into the textbox) raises an error.&lt;br /&gt;
2. Impersonating a student who has an assignment without affiliating to any course will cause an error.&lt;br /&gt;
    (1)Login as an instructor.&lt;br /&gt;
    (2)Go to the Assignment tab under Manage.&lt;br /&gt;
    (3)Click the &amp;quot;+&amp;quot; button and then create a new assignment named &amp;quot;E1968&amp;quot; without choosing any course from the course dropdown menu.&lt;br /&gt;
    (4)Go back to the Assignment tab under Manage, and click the &amp;quot;Add participants&amp;quot; of the assignment of &amp;quot;E1968&amp;quot;.&lt;br /&gt;
    (5)Fill in the form &amp;quot;Enter a user login&amp;quot; with a student's name, for instance, &amp;quot;student7515&amp;quot;.&lt;br /&gt;
    (6)Go to the Impersonate User tab under Manage, fill in the form &amp;quot;Enter  user account&amp;quot; with the student &amp;quot;student7515&amp;quot;.&lt;br /&gt;
    (7)Clicking the button &amp;quot;Impersonate&amp;quot; raises an error.&lt;br /&gt;
3. TODO&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Solutions ==&lt;br /&gt;
&lt;br /&gt;
1. The reason for the first problem was actually due to a key error. In teams_users_controller.rb line 35, 'assignment_id' was used to find AssignmentParticipant. But in the model of AssignmentParticipant, the foreign key name is acctually 'parent_id'. So, by changing it, problem solved.&lt;br /&gt;
[[File:Problem1change.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2. The reason for the second problem was that before we used t.assignment.course.instructor_id, we had to confirm that t.assignment.course was not equal to nil. If there existed an assignment without being subject to any course, when this assignment was assigned to a specific student, it would raise an error when it came to showing the tasks of the student. Thus, in order to show student tasks correctly, we changed the code to at first checking whether the t.assignment.course was nil. If t.assignment was not nil, we could use t.assignment.course.instructor_id to retrieve data needed from the database, otherwise, we used t.assignment.instructor_id directly to retrieve data needed. &lt;br /&gt;
[[File:problem2.jpg]]&amp;lt;br/&amp;gt;&lt;br /&gt;
4. TODO&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing Details==&lt;br /&gt;
&lt;br /&gt;
=== RSpec ===&lt;br /&gt;
For each of the problems, we did feature tests with Rspec. They all follows the reproduction steps decribed above.&lt;br /&gt;
&lt;br /&gt;
=== Feature Testing ===&lt;br /&gt;
*Problem 1: assignment_team_member_spec.rb&lt;br /&gt;
Following steps needs to be performed to test this code:&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Login as instructor. &amp;lt;br/&amp;gt;&lt;br /&gt;
2. Create a course and an assignment under that course.&amp;lt;br/&amp;gt;&lt;br /&gt;
2. Add at least two students as participants to the assignment.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. Create a team for the assignment.&amp;lt;br/&amp;gt;&lt;br /&gt;
4. Add a participant to the team.&amp;lt;br/&amp;gt;&lt;br /&gt;
5. Check if the student is a team member of that team.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Problem 2 TODO&lt;br /&gt;
*Problem 3 TODO&lt;br /&gt;
&lt;br /&gt;
Run the test locally:&lt;br /&gt;
TODO: the snapshot of console result of all test.&lt;/div&gt;</summary>
		<author><name>Hyu22</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Problem2.jpg&amp;diff=125714</id>
		<title>File:Problem2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Problem2.jpg&amp;diff=125714"/>
		<updated>2019-10-27T22:48:22Z</updated>

		<summary type="html">&lt;p&gt;Hyu22: uploaded a new version of &amp;amp;quot;File:Problem2.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hyu22</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Problem2.jpg&amp;diff=125713</id>
		<title>File:Problem2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Problem2.jpg&amp;diff=125713"/>
		<updated>2019-10-27T22:46:53Z</updated>

		<summary type="html">&lt;p&gt;Hyu22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hyu22</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1968._Fixes_for_adding_members_to_teams&amp;diff=125712</id>
		<title>CSC/ECE 517 Fall 2019 - E1968. Fixes for adding members to teams</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1968._Fixes_for_adding_members_to_teams&amp;diff=125712"/>
		<updated>2019-10-27T22:43:34Z</updated>

		<summary type="html">&lt;p&gt;Hyu22: /* Solutions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E1968 OSS assignment for Fall 2019, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
This project fixed several bugs related to Assignment teams. Expertiza has Assignment objects, which represent an assignment usually assigned by an in structor for a course. If the instructor allowe teams for the assignment, the participants in that course can create teams with each other. Also, the instructor can create teams or add team membert to a exsiting team. Our project is focused on fixing bugs related to these functionalities.&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
&lt;br /&gt;
In this project we fixed three problems, the problems and the way to reproduce them is shown below.&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Adding a member from the UI (typing the ID into the textbox) raises an error.&lt;br /&gt;
    Reproduciton:&lt;br /&gt;
    (1)Login as an instructor.&lt;br /&gt;
    (2)Go to Assignment tab under Manage.&lt;br /&gt;
    (3)Click any assignment for example : OSS project &amp;amp; documentation.&lt;br /&gt;
    (4)Select Create Teams.&lt;br /&gt;
    (5)Select Add Team Member option for any team. &lt;br /&gt;
    (6)Adding a member from the UI (typing the ID into the textbox) raises an error.&lt;br /&gt;
2. Impersonating a student who has an assignment without affiliating to any course will cause an error.&lt;br /&gt;
    (1)Login as an instructor.&lt;br /&gt;
    (2)Go to the Assignment tab under Manage.&lt;br /&gt;
    (3)Click the &amp;quot;+&amp;quot; button and then create a new assignment named &amp;quot;E1968&amp;quot; without choosing any course from the course dropdown menu.&lt;br /&gt;
    (4)Go back to the Assignment tab under Manage, and click the &amp;quot;Add participants&amp;quot; of the assignment of &amp;quot;E1968&amp;quot;.&lt;br /&gt;
    (5)Fill in the form &amp;quot;Enter a user login&amp;quot; with a student's name, for instance, &amp;quot;student7515&amp;quot;.&lt;br /&gt;
    (6)Go to the Impersonate User tab under Manage, fill in the form &amp;quot;Enter  user account&amp;quot; with the student &amp;quot;student7515&amp;quot;.&lt;br /&gt;
    (7)Clicking the button &amp;quot;Impersonate&amp;quot; raises an error.&lt;br /&gt;
3. TODO&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Solutions ==&lt;br /&gt;
&lt;br /&gt;
1. The reason for the first problem was actually due to a key error. In teams_users_controller.rb line 35, 'assignment_id' was used to find AssignmentParticipant. But in the model of AssignmentParticipant, the foreign key name is acctually 'parent_id'. So, by changing it, problem solved.&lt;br /&gt;
[[File:Problem1change.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2. The reason for the second problem was that before we used t.assignment.course.instructor_id, we had to confirm that t.assignment.course was not equal to nil. If there existed an assignment without being subject to any course, when this assignment was assigned to a specific student, it would raise an error when it came to showing the tasks of the student. Thus, in order to show student tasks correctly, we changed the code to at first checking whether the t.assignment.course was nil. If t.assignment was not nil, we could use t.assignment.course.instructor_id to retrieve data needed from the database, otherwise, we used t.assignment.instructor_id directly to retrieve data needed. &lt;br /&gt;
[[File:Example.jpg]]&lt;br /&gt;
4. TODO&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing Details==&lt;br /&gt;
&lt;br /&gt;
=== RSpec ===&lt;br /&gt;
For each of the problems, we did feature tests with Rspec. They all follows the reproduction steps decribed above.&lt;br /&gt;
&lt;br /&gt;
=== Feature Testing ===&lt;br /&gt;
*Problem 1: assignment_team_member_spec.rb&lt;br /&gt;
Following steps needs to be performed to test this code:&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Login as instructor. &amp;lt;br/&amp;gt;&lt;br /&gt;
2. Create a course and an assignment under that course.&amp;lt;br/&amp;gt;&lt;br /&gt;
2. Add at least two students as participants to the assignment.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. Create a team for the assignment.&amp;lt;br/&amp;gt;&lt;br /&gt;
4. Add a participant to the team.&amp;lt;br/&amp;gt;&lt;br /&gt;
5. Check if the student is a team member of that team.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Problem 2 TODO&lt;br /&gt;
*Problem 3 TODO&lt;br /&gt;
&lt;br /&gt;
Run the test locally:&lt;br /&gt;
TODO: the snapshot of console result of all test.&lt;/div&gt;</summary>
		<author><name>Hyu22</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1968._Fixes_for_adding_members_to_teams&amp;diff=125691</id>
		<title>CSC/ECE 517 Fall 2019 - E1968. Fixes for adding members to teams</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1968._Fixes_for_adding_members_to_teams&amp;diff=125691"/>
		<updated>2019-10-27T22:25:44Z</updated>

		<summary type="html">&lt;p&gt;Hyu22: /* Solutions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E1968 OSS assignment for Fall 2019, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
This project fixed several bugs related to Assignment teams. Expertiza has Assignment objects, which represent an assignment usually assigned by an in structor for a course. If the instructor allowe teams for the assignment, the participants in that course can create teams with each other. Also, the instructor can create teams or add team membert to a exsiting team. Our project is focused on fixing bugs related to these functionalities.&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
&lt;br /&gt;
In this project we fixed three problems, the problems and the way to reproduce them is shown below.&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Adding a member from the UI (typing the ID into the textbox) raises an error.&lt;br /&gt;
    Reproduciton:&lt;br /&gt;
    (1)Login as an instructor.&lt;br /&gt;
    (2)Go to Assignment tab under Manage.&lt;br /&gt;
    (3)Click any assignment for example : OSS project &amp;amp; documentation.&lt;br /&gt;
    (4)Select Create Teams.&lt;br /&gt;
    (5)Select Add Team Member option for any team. &lt;br /&gt;
    (6)Adding a member from the UI (typing the ID into the textbox) raises an error.&lt;br /&gt;
2. Impersonating a student who has an assignment without affiliating to any course will cause an error.&lt;br /&gt;
    (1)Login as an instructor.&lt;br /&gt;
    (2)Go to the Assignment tab under Manage.&lt;br /&gt;
    (3)Click the &amp;quot;+&amp;quot; button and then create a new assignment named &amp;quot;E1968&amp;quot; without choosing any course from the course dropdown menu.&lt;br /&gt;
    (4)Go back to the Assignment tab under Manage, and click the &amp;quot;Add participants&amp;quot; of the assignment of &amp;quot;E1968&amp;quot;.&lt;br /&gt;
    (5)Fill in the form &amp;quot;Enter a user login&amp;quot; with a student's name, for instance, &amp;quot;student7515&amp;quot;.&lt;br /&gt;
    (6)Go to the Impersonate User tab under Manage, fill in the form &amp;quot;Enter  user account&amp;quot; with the student &amp;quot;student7515&amp;quot;.&lt;br /&gt;
    (7)Clicking the button &amp;quot;Impersonate&amp;quot; raises an error.&lt;br /&gt;
3. TODO&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Solutions ==&lt;br /&gt;
&lt;br /&gt;
1. The reason for the first problem was actually due to a key error. In teams_users_controller.rb line 35, 'assignment_id' was used to find AssignmentParticipant. But in the model of AssignmentParticipant, the foreign key name is acctually 'parent_id'. So, by changing it, problem solved.&lt;br /&gt;
[[File:Problem1change.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2. The reason for the second problem was&lt;br /&gt;
4. TODO&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing Details==&lt;br /&gt;
&lt;br /&gt;
=== RSpec ===&lt;br /&gt;
For each of the problems, we did feature tests with Rspec. They all follows the reproduction steps decribed above.&lt;br /&gt;
&lt;br /&gt;
=== Feature Testing ===&lt;br /&gt;
*Problem 1: assignment_team_member_spec.rb&lt;br /&gt;
Following steps needs to be performed to test this code:&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Login as instructor. &amp;lt;br/&amp;gt;&lt;br /&gt;
2. Create a course and an assignment under that course.&amp;lt;br/&amp;gt;&lt;br /&gt;
2. Add at least two students as participants to the assignment.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. Create a team for the assignment.&amp;lt;br/&amp;gt;&lt;br /&gt;
4. Add a participant to the team.&amp;lt;br/&amp;gt;&lt;br /&gt;
5. Check if the student is a team member of that team.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Problem 2 TODO&lt;br /&gt;
*Problem 3 TODO&lt;br /&gt;
&lt;br /&gt;
Run the test locally:&lt;br /&gt;
TODO: the snapshot of console result of all test.&lt;/div&gt;</summary>
		<author><name>Hyu22</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1968._Fixes_for_adding_members_to_teams&amp;diff=125686</id>
		<title>CSC/ECE 517 Fall 2019 - E1968. Fixes for adding members to teams</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1968._Fixes_for_adding_members_to_teams&amp;diff=125686"/>
		<updated>2019-10-27T22:14:49Z</updated>

		<summary type="html">&lt;p&gt;Hyu22: /* Problem Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E1968 OSS assignment for Fall 2019, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
This project fixed several bugs related to Assignment teams. Expertiza has Assignment objects, which represent an assignment usually assigned by an in structor for a course. If the instructor allowe teams for the assignment, the participants in that course can create teams with each other. Also, the instructor can create teams or add team membert to a exsiting team. Our project is focused on fixing bugs related to these functionalities.&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
&lt;br /&gt;
In this project we fixed three problems, the problems and the way to reproduce them is shown below.&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Adding a member from the UI (typing the ID into the textbox) raises an error.&lt;br /&gt;
    Reproduciton:&lt;br /&gt;
    (1)Login as an instructor.&lt;br /&gt;
    (2)Go to Assignment tab under Manage.&lt;br /&gt;
    (3)Click any assignment for example : OSS project &amp;amp; documentation.&lt;br /&gt;
    (4)Select Create Teams.&lt;br /&gt;
    (5)Select Add Team Member option for any team. &lt;br /&gt;
    (6)Adding a member from the UI (typing the ID into the textbox) raises an error.&lt;br /&gt;
2. Impersonating a student who has an assignment without affiliating to any course will cause an error.&lt;br /&gt;
    (1)Login as an instructor.&lt;br /&gt;
    (2)Go to the Assignment tab under Manage.&lt;br /&gt;
    (3)Click the &amp;quot;+&amp;quot; button and then create a new assignment named &amp;quot;E1968&amp;quot; without choosing any course from the course dropdown menu.&lt;br /&gt;
    (4)Go back to the Assignment tab under Manage, and click the &amp;quot;Add participants&amp;quot; of the assignment of &amp;quot;E1968&amp;quot;.&lt;br /&gt;
    (5)Fill in the form &amp;quot;Enter a user login&amp;quot; with a student's name, for instance, &amp;quot;student7515&amp;quot;.&lt;br /&gt;
    (6)Go to the Impersonate User tab under Manage, fill in the form &amp;quot;Enter  user account&amp;quot; with the student &amp;quot;student7515&amp;quot;.&lt;br /&gt;
    (7)Clicking the button &amp;quot;Impersonate&amp;quot; raises an error.&lt;br /&gt;
3. TODO&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Solutions ==&lt;br /&gt;
&lt;br /&gt;
1. The reason for the first problem was actually due to a key error. In teams_users_controller.rb line 35, 'assignment_id' was used to find AssignmentParticipant. But in the model of AssignmentParticipant, the foreign key name is acctually 'parent_id'. So, by changing it, problem solved.&lt;br /&gt;
[[File:Problem1change.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2. TODO&amp;lt;br/&amp;gt;&lt;br /&gt;
4. TODO&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing Details==&lt;br /&gt;
&lt;br /&gt;
=== RSpec ===&lt;br /&gt;
For each of the problems, we did feature tests with Rspec. They all follows the reproduction steps decribed above.&lt;br /&gt;
&lt;br /&gt;
=== Feature Testing ===&lt;br /&gt;
*Problem 1: assignment_team_member_spec.rb&lt;br /&gt;
Following steps needs to be performed to test this code:&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Login as instructor. &amp;lt;br/&amp;gt;&lt;br /&gt;
2. Create a course and an assignment under that course.&amp;lt;br/&amp;gt;&lt;br /&gt;
2. Add at least two students as participants to the assignment.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. Create a team for the assignment.&amp;lt;br/&amp;gt;&lt;br /&gt;
4. Add a participant to the team.&amp;lt;br/&amp;gt;&lt;br /&gt;
5. Check if the student is a team member of that team.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Problem 2 TODO&lt;br /&gt;
*Problem 3 TODO&lt;br /&gt;
&lt;br /&gt;
Run the test locally:&lt;br /&gt;
TODO: the snapshot of console result of all test.&lt;/div&gt;</summary>
		<author><name>Hyu22</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1968._Fixes_for_adding_members_to_teams&amp;diff=125685</id>
		<title>CSC/ECE 517 Fall 2019 - E1968. Fixes for adding members to teams</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1968._Fixes_for_adding_members_to_teams&amp;diff=125685"/>
		<updated>2019-10-27T22:14:12Z</updated>

		<summary type="html">&lt;p&gt;Hyu22: /* Problem Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E1968 OSS assignment for Fall 2019, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
This project fixed several bugs related to Assignment teams. Expertiza has Assignment objects, which represent an assignment usually assigned by an in structor for a course. If the instructor allowe teams for the assignment, the participants in that course can create teams with each other. Also, the instructor can create teams or add team membert to a exsiting team. Our project is focused on fixing bugs related to these functionalities.&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
&lt;br /&gt;
In this project we fixed three problems, the problems and the way to reproduce them is shown below.&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Adding a member from the UI (typing the ID into the textbox) raises an error.&lt;br /&gt;
    Reproduciton:&lt;br /&gt;
    (1)Login as an instructor.&lt;br /&gt;
    (2)Go to Assignment tab under Manage.&lt;br /&gt;
    (3)Click any assignment for example : OSS project &amp;amp; documentation.&lt;br /&gt;
    (4)Select Create Teams.&lt;br /&gt;
    (5)Select Add Team Member option for any team. &lt;br /&gt;
    (6)Adding a member from the UI (typing the ID into the textbox) raises an error.&lt;br /&gt;
2. Impersonating a student who has an assignment without affiliating any course will cause an error.&lt;br /&gt;
    (1)Login as an instructor.&lt;br /&gt;
    (2)Go to the Assignment tab under Manage.&lt;br /&gt;
    (3)Click the &amp;quot;+&amp;quot; button and then create a new assignment named &amp;quot;E1968&amp;quot; without choosing any course from the course dropdown menu.&lt;br /&gt;
    (4)Go back to the Assignment tab under Manage, and click the &amp;quot;Add participants&amp;quot; of the assignment of &amp;quot;E1968&amp;quot;.&lt;br /&gt;
    (5)Fill in the form &amp;quot;Enter a user login&amp;quot; with a student's name, for instance, &amp;quot;student7515&amp;quot;.&lt;br /&gt;
    (6)Go to the Impersonate User tab under Manage, fill in the form &amp;quot;Enter  user account&amp;quot; with the student &amp;quot;student7515&amp;quot;.&lt;br /&gt;
    (7)Clicking the button &amp;quot;Impersonate&amp;quot; raises an error.&lt;br /&gt;
3. TODO&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Solutions ==&lt;br /&gt;
&lt;br /&gt;
1. The reason for the first problem was actually due to a key error. In teams_users_controller.rb line 35, 'assignment_id' was used to find AssignmentParticipant. But in the model of AssignmentParticipant, the foreign key name is acctually 'parent_id'. So, by changing it, problem solved.&lt;br /&gt;
[[File:Problem1change.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2. TODO&amp;lt;br/&amp;gt;&lt;br /&gt;
4. TODO&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing Details==&lt;br /&gt;
&lt;br /&gt;
=== RSpec ===&lt;br /&gt;
For each of the problems, we did feature tests with Rspec. They all follows the reproduction steps decribed above.&lt;br /&gt;
&lt;br /&gt;
=== Feature Testing ===&lt;br /&gt;
*Problem 1: assignment_team_member_spec.rb&lt;br /&gt;
Following steps needs to be performed to test this code:&amp;lt;br/&amp;gt;&lt;br /&gt;
1. Login as instructor. &amp;lt;br/&amp;gt;&lt;br /&gt;
2. Create a course and an assignment under that course.&amp;lt;br/&amp;gt;&lt;br /&gt;
2. Add at least two students as participants to the assignment.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. Create a team for the assignment.&amp;lt;br/&amp;gt;&lt;br /&gt;
4. Add a participant to the team.&amp;lt;br/&amp;gt;&lt;br /&gt;
5. Check if the student is a team member of that team.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Problem 2 TODO&lt;br /&gt;
*Problem 3 TODO&lt;br /&gt;
&lt;br /&gt;
Run the test locally:&lt;br /&gt;
TODO: the snapshot of console result of all test.&lt;/div&gt;</summary>
		<author><name>Hyu22</name></author>
	</entry>
</feed>