<?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=Asharm33</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=Asharm33"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Asharm33"/>
	<updated>2026-08-16T17:54:59Z</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_2017/E17A4_Allow_calibration_to_be_part_of_an_assignment&amp;diff=114154</id>
		<title>CSC/ECE 517 Fall 2017/E17A4 Allow calibration to be part of an assignment</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A4_Allow_calibration_to_be_part_of_an_assignment&amp;diff=114154"/>
		<updated>2017-12-02T03:48:05Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: /* Automated test */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made according to the specification of E17A4 - final project  for CSC/ECE (517)Fall 2017.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Calibration is the term used for rectifying, or checking or determining something. In the context of this project, a 'Calibrated review' is the one which is performed by student and instructor as well, so that student can check on his work by comparing with instructors' response for the same assignment. Since calibrated reviews are just for checking on our progress, they are not graded. They are just meant for practice, so that peer review (which are performed later) can be performed well which is graded.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
In order to gain practice for giving a reviews , the Student should be able to give calibration reviews before providing peer reviews. Thus, the Instructor should be able to enable calibration for every new assignment. By this way, the student can improve peer reviewing by comparing his/her results with expert reviews for the same assignment.&lt;br /&gt;
&lt;br /&gt;
=== Limitation ===&lt;br /&gt;
At present, the instructor is able to calibrate the students’ peer review abilities on Expertiza by creating only a separate assignment for this purpose. In this separate assignment that the instructor creates, the student and the instructor will simultaneously do peer review for the project. After submission of the reviews, the student's and instructor's reviews are compared and a calibration report is generated for the student to view and improve their peer reviewing skills. &lt;br /&gt;
&lt;br /&gt;
Unfortunately, for students to practice peer reviewing, a separate assignment has to be created every time. In order to facilitate sufficient practice for peer review, this is not a convenient method.&lt;br /&gt;
&lt;br /&gt;
=== Proposed System ===&lt;br /&gt;
&lt;br /&gt;
The objective of this project is to enable calibration to be one part of the normal assignment. The instructor should be able to turn on this feature if necessary and provide the corresponding calibration deadline. The student should be pre-assigned with sample assignments. Once the student submits the calibration reviews, the calibration results comparing the student and expert review are provided to the student.&lt;br /&gt;
When the actual review period starts, the student will review other assignments, and submit peer reviews. So the total number of reviews calculated should not count calibration reviews.&lt;br /&gt;
&lt;br /&gt;
Tasks are listed as below:&lt;br /&gt;
&lt;br /&gt;
1. To integrate calibration feature into a normal assignment, a new due date, that is calibration due date needs to be added in deadline_types table. So a migration needs to be written for implementing this.&lt;br /&gt;
&lt;br /&gt;
2. When instructor checks “Calibration for training?” and saves the assignment, in “Due dates” tab, a row should appear to deal with calibration due date. The other content of this row is just the same as other due dates.&lt;br /&gt;
&lt;br /&gt;
3. In student_task/list page, current stage column should display calibration when the assignment is in calibration period.&lt;br /&gt;
&lt;br /&gt;
4. In student_review/list page, in Other's work, calibration reviews need to be excluded from the peer reviews. &lt;br /&gt;
&lt;br /&gt;
To achieve this goal, filter the reviews with timestamp earlier than submission due date, which means reviews are done in the calibration period.&lt;br /&gt;
The wording and numbering on this view should be changed to: Calibrated review 1,2,3 to represent review done in calibration period; Review 1, 2, 3 to represent reviews done in the normal review period.&lt;br /&gt;
&lt;br /&gt;
==  System Overview ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The current system has the following actors:&lt;br /&gt;
&lt;br /&gt;
'''a) Instructors:'''Users who have administrative privileges to create/edit assignments and impersonate students&lt;br /&gt;
&lt;br /&gt;
'''b) Students:''' Users who submit assignments and peer reviews&lt;br /&gt;
&lt;br /&gt;
In the current system, the calibration functionality works correctly. In the assignments' edit page, once the instructor enables “Calibration for training?” and saves the assignment, an extra tab &amp;quot;Calibration&amp;quot; appears. After this, the instructor needs to add several sample assignments (right now instructor needs to impersonate several students to submit sample assignments) and do expert review beforehand. This is the existing functionality.&lt;br /&gt;
&lt;br /&gt;
In the proposed system, the entire flow of the assignment submission done by the student, changes. First is the calibration review of sample assignment, then normal assignment submission followed by rounds of peer reviews for the submitted assignments.&lt;br /&gt;
 &lt;br /&gt;
Flow:&lt;br /&gt;
&lt;br /&gt;
1. As an instructor, a new Assignment &amp;quot;Project 4&amp;quot; was created.&lt;br /&gt;
&lt;br /&gt;
2. In assignment edit mode, when calibration is not enabled, the &amp;quot;Due date&amp;quot; tab appears as shown below:&lt;br /&gt;
&lt;br /&gt;
[[File:Past due dates.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Once the “Calibration for training?” (see the below figure) is enabled, in addition to the “Calibration” tab, a new row for calibration deadline entry appears under the “Due dates” tab (see the figure below) before submission row. The due date for the calibration review is entered and the assignment is saved.&lt;br /&gt;
&lt;br /&gt;
[[File:Cal check.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:New due dates.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. 2 students are assigned as participants (student1, student2) and 1 student (student3) as reviewer for the assignment &amp;quot;Program 4&amp;quot;. Then, the Instructor impersonated one of the participant students, say student1, and submitted a sample assignment that is to be used for calibration review. &lt;br /&gt;
&lt;br /&gt;
5. The review strategy was set to &amp;quot;Instructor-selected&amp;quot; for calibration review. Then, the instructor assigned student3 as a reviewer for this sample assignment submitted by the expert and also, submitted an expert review for this sample submission.&lt;br /&gt;
&lt;br /&gt;
6. Now student3 is impersonated. The &amp;quot;current stage&amp;quot; of the assignment &amp;quot;Program 4&amp;quot; shows as &amp;quot;calibration&amp;quot; on the student_task page as shown below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Current stage calib.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7. As student3, on getting into &amp;quot;Program 4&amp;quot;, the &amp;quot;Other's work&amp;quot; link is enabled (as shown below). This is enabled even before submission period as we should allow students to enter calibration review beforehand. If calibration is not enabled for the assignment, the others' work link will be enabled only after submission period.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Other's work enabled.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
8. In &amp;quot;Other's work&amp;quot;, one calibration review for the sample assignment is displayed for which the reviewer can submit the calibration review. &lt;br /&gt;
&lt;br /&gt;
[[File:Calibrated review.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9. Once the calibration review is submitted, the &amp;quot;show calibration results&amp;quot; link is displayed which shows the scores against the expert review. Show calibration results gets enabled when the expert and the student submits the review.&lt;br /&gt;
&lt;br /&gt;
[[File:Show calib results.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
10. Once the calibration due date elapses, the assignment enters the &amp;quot;submission&amp;quot; period. During this period, student submissions are made. The review strategy is set as &amp;quot;auto-selected&amp;quot; and number of reviews allowed are set to 2.&lt;br /&gt;
&lt;br /&gt;
11. When impersonated as student3, in other's work, both the calibration and assigned peer reviews are displayed as shown below&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Total reviews.PNG]]&lt;br /&gt;
&lt;br /&gt;
The reviewer can now request new submission for peer review.&lt;br /&gt;
&lt;br /&gt;
Also, the number of reviews required and allowed considers only the peer reviews and not the calibration reviews. Since only one peer review is present, the &amp;quot;request new submission for review&amp;quot; button is enabled. Once a new review is requested since there are 2 peer reviews, the &amp;quot;request new submission for review&amp;quot; button is not displayed. This shows that only the peer reviews are considered for the total number of reviews allowed and required.&lt;br /&gt;
&lt;br /&gt;
After completion of the calibration reviews (before the due date), the student should submit the assignment on/before the submission deadline, which is the existing functionality. Since the students have had enough experience during the calibration period on peer reviewing, the next task will be carried over effectively. &lt;br /&gt;
&lt;br /&gt;
Peer reviewing is the concept of review your peer’s work. This concept enables the students to understand the solution to a problem from multiple perspectives. This will also embed new ideas and the skill of constructive criticism in the student. Hence, the student will provide peer reviews after the submission of their work.&lt;br /&gt;
&lt;br /&gt;
== System Use Cases ==&lt;br /&gt;
&lt;br /&gt;
Use Case Diagram :&lt;br /&gt;
&lt;br /&gt;
[[File:New Use Case Film Production (1)-1.png]]&lt;br /&gt;
&lt;br /&gt;
'''1. Add/Edit Assignment: Enable Calibration''' &lt;br /&gt;
&lt;br /&gt;
Use Case Id: 1&lt;br /&gt;
&lt;br /&gt;
Use Case Description: Instructor can select the option - &amp;quot;Calibration for training?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Actors: Instructor&lt;br /&gt;
&lt;br /&gt;
Pre Conditions: The assignment is present in the assignments list&lt;br /&gt;
&lt;br /&gt;
Post Conditions: Instructor can navigate to the edit assignment page where the enable calibration option is present&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Edit Assignment: Set Due Dates for Calibration and Peer Reviews'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id: 2&lt;br /&gt;
&lt;br /&gt;
Use Case Description: Instructor can set due date for calibration under due dates tab&lt;br /&gt;
&lt;br /&gt;
Actors: Instructor&lt;br /&gt;
&lt;br /&gt;
Pre Conditions: Once calibration option is enabled, a separate row for calibration should be created&lt;br /&gt;
&lt;br /&gt;
Post Conditions: The instructor should be able to see the new date set for calibration.&lt;br /&gt;
&lt;br /&gt;
Special cases: Calibration deadline should come before the submission deadline.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3. View the current stage in assignments as &amp;quot;Calibration&amp;quot; during the calibration period'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id: 3&lt;br /&gt;
&lt;br /&gt;
Use Case Description: In assignments home page, the assignment should now be in the calibration period.&lt;br /&gt;
&lt;br /&gt;
Actors: Student&lt;br /&gt;
&lt;br /&gt;
'''4. View the pre-assigned sample assignments in &amp;quot;other's work&amp;quot; tab which can be opened even before submitting the assignment'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id: 4 &lt;br /&gt;
&lt;br /&gt;
Use Case Description: Student should be able to see the list of assignments in others' work tab for reviewing&lt;br /&gt;
&lt;br /&gt;
Actors: Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions: Sample assignments are provided by the instructor for the student to review and the tab &amp;quot;other's work&amp;quot; is enabled.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''5. Submit 'n' pre-assigned Calibration Reviews'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id: 5&lt;br /&gt;
&lt;br /&gt;
Use Case Description: Student can now review those assignments and submit them&lt;br /&gt;
&lt;br /&gt;
Actors: Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions: Sample assignments are provided by the instructor for the student to review&lt;br /&gt;
&lt;br /&gt;
Post Conditions: Student can now see and edit the newly submitted review and also see the instructor's review for the assignment &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''6. View the 'Calibration Result' after submitting'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id: 6&lt;br /&gt;
&lt;br /&gt;
Use Case Description: Student can see the comparison between student's and instructor's reviews for the pre-assignment&lt;br /&gt;
&lt;br /&gt;
Actors: Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions: Student had already submitted a calibration review&lt;br /&gt;
&lt;br /&gt;
Post Conditions: Student can now view the comparison results&lt;br /&gt;
&lt;br /&gt;
'''7. Submit the assignment before the due date'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id: 7&lt;br /&gt;
&lt;br /&gt;
Use Case Description: Student should submit the assignment before the submission deadline&lt;br /&gt;
&lt;br /&gt;
Actors: Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions: An assignment exists and the calibration review is submitted&lt;br /&gt;
&lt;br /&gt;
Post Conditions: Student can successfully submit the assignment before the deadline&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''8. Request for a Peer Review'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id: 8&lt;br /&gt;
&lt;br /&gt;
Use Case Description: After the student submits the assignment, the student can request to do peer review of other student's submission&lt;br /&gt;
&lt;br /&gt;
Actors: Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions: peer review period has started and other students' submissions are available for reviewing&lt;br /&gt;
&lt;br /&gt;
Post Conditions: Student should be assigned with a project for reviewing. &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''9. Submit the Peer Review and request for next one after minimum number of peer reviews are completed'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id: 9&lt;br /&gt;
&lt;br /&gt;
Use Case Description: After the student requests for a peer review, he can review the assignment and submit it, After minimum number of reviews are commpleted, he/she can request for more assignments to be reviewed&lt;br /&gt;
&lt;br /&gt;
Actors: Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions: Student received an assignment for peer reviewing&lt;br /&gt;
&lt;br /&gt;
Post Conditions: View and edit options are available for the submitted review until the peer review period deadline&lt;br /&gt;
&lt;br /&gt;
''All the actions performed by the student can be done by the instructor by impersonating a student''&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
1. MVC&lt;br /&gt;
&lt;br /&gt;
The project is implemented in Ruby on Rails that uses MVC architecture. It separates an application’s data model, user interface, and control logic into three distinct components (model, view and controller, respectively).&lt;br /&gt;
&lt;br /&gt;
2. Dry Principle&lt;br /&gt;
&lt;br /&gt;
The existing functionalities in Expertiza are reused, thus avoiding code duplication. Whenever possible, code modification based on the existing classes, controllers, or tables will be done instead of creating a new one.&lt;br /&gt;
Example: Currently, calibrated reviews are handled separately and peer reviews are handled separately.&lt;br /&gt;
In our enhancement, we need to merge both the reviews. So instead of duplicating the code in calibrated reviews, the same code is used to handle both the reviews.&lt;br /&gt;
&lt;br /&gt;
No design patterns are used because existing methods are modified and no new methods are created. So the framework remains the same.&lt;br /&gt;
&lt;br /&gt;
=== Files Modified ===&lt;br /&gt;
&lt;br /&gt;
The following files were modified to implement the feature:&lt;br /&gt;
&lt;br /&gt;
#DeadlineType model (Needs to support deadline type for Calibration)&lt;br /&gt;
#Assignments model (Calibration needs to be integrated into normal Assignment)&lt;br /&gt;
#_responses.html.erb (The user will be able begin calibration, view calibration results)&lt;br /&gt;
#StudentTask model (Have attribute current stage which should have the value ‘Calibration’).&lt;br /&gt;
#student_task/list.html.erb view (The current stage should be able to display ‘Calibration’ when the assignment is in calibration period).&lt;br /&gt;
#DueDate model (needs to store the calibration due date for the assignments).&lt;br /&gt;
#calibration_spec.rb (feature tests to verify our implementation)&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
===In GUI ===&lt;br /&gt;
&lt;br /&gt;
To test this feature in GUI, perform the following steps:&lt;br /&gt;
&lt;br /&gt;
1. Login as instructor in Expertiza.&lt;br /&gt;
&lt;br /&gt;
2. Create a new Assignment.&lt;br /&gt;
&lt;br /&gt;
3. Click edit assignment and in the general tab, select the option - 'Calibration for training?' and click 'save'&lt;br /&gt;
&lt;br /&gt;
4. Once that option is enabled, a new tab opens in the name 'Calibration'. Now, under Due dates tab, a new row would have been created for 'calibration'.&lt;br /&gt;
&lt;br /&gt;
5. Enter the Due Date for the calibration round (Enter a date which is before the submission due date) and save the assignment.&lt;br /&gt;
&lt;br /&gt;
7. Go to the calibration tab and submit one expert review for the sample assignment.&lt;br /&gt;
&lt;br /&gt;
8. Impersonate as student and under assignments home page, the assignment for which calibration was enabled will now have the''' current stage''' as 'calibration'&lt;br /&gt;
&lt;br /&gt;
9. Now select that assignment and go to '''other's work''' link, which should be enabled.&lt;br /&gt;
&lt;br /&gt;
10. One review will now appear as calibrated review. Begin the review and submit.&lt;br /&gt;
&lt;br /&gt;
11. Now on the same page i.e '''other's work''' , you will see a new link: &amp;quot;Show calibration results&amp;quot; for the respective calibration review.&lt;br /&gt;
&lt;br /&gt;
12. Once the calibration period is over and submission period starts, the students can now submit the actual assignment. Post submission due date, the peer review period will start.&lt;br /&gt;
&lt;br /&gt;
13. When the peer review period begins, in others' work, the student will now see two sections: Calibrated review and Review. &lt;br /&gt;
&lt;br /&gt;
14. Here, the total number of reviews count only the peer reviews.&lt;br /&gt;
&lt;br /&gt;
=== Automated test ===&lt;br /&gt;
&lt;br /&gt;
Automated tests are written in calibration_spec.rb and staggered_deadline_spec.rb file under specs/features folder.&lt;br /&gt;
&lt;br /&gt;
The RSpec tests cover the following scenarios:&lt;br /&gt;
&lt;br /&gt;
1. If calibration is enabled, check if a new row is created in the deadlines table with the deadline type as Calibration.&lt;br /&gt;
&lt;br /&gt;
2. After the submission period, check if both the calibrated reviews and the peer reviews are present in the reviews list.&lt;br /&gt;
&lt;br /&gt;
3. Check if the total number of reviews count only the peer reviews.&lt;br /&gt;
&lt;br /&gt;
[[File:Calibration1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Calibration2.PNG]]&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Harika Malapaka: [mailto:hsmalapa@ncsu.edu hsmalapa@ncsu.edu] &lt;br /&gt;
&lt;br /&gt;
:Vidhyalakshimi Sreenivasan: [mailto:vsreeni@ncsu.edu vsreeni@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Valli Annamalai: [mailto:vannama@ncsu.edu vannama@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Zhewei Hu: [mailto:zhu6@ncsu.edu zhu6@ncsu.edu]&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A4_Allow_calibration_to_be_part_of_an_assignment&amp;diff=114153</id>
		<title>CSC/ECE 517 Fall 2017/E17A4 Allow calibration to be part of an assignment</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A4_Allow_calibration_to_be_part_of_an_assignment&amp;diff=114153"/>
		<updated>2017-12-02T03:47:31Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: /* Automated test */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made according to the specification of E17A4 - final project  for CSC/ECE (517)Fall 2017.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Calibration is the term used for rectifying, or checking or determining something. In the context of this project, a 'Calibrated review' is the one which is performed by student and instructor as well, so that student can check on his work by comparing with instructors' response for the same assignment. Since calibrated reviews are just for checking on our progress, they are not graded. They are just meant for practice, so that peer review (which are performed later) can be performed well which is graded.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
In order to gain practice for giving a reviews , the Student should be able to give calibration reviews before providing peer reviews. Thus, the Instructor should be able to enable calibration for every new assignment. By this way, the student can improve peer reviewing by comparing his/her results with expert reviews for the same assignment.&lt;br /&gt;
&lt;br /&gt;
=== Limitation ===&lt;br /&gt;
At present, the instructor is able to calibrate the students’ peer review abilities on Expertiza by creating only a separate assignment for this purpose. In this separate assignment that the instructor creates, the student and the instructor will simultaneously do peer review for the project. After submission of the reviews, the student's and instructor's reviews are compared and a calibration report is generated for the student to view and improve their peer reviewing skills. &lt;br /&gt;
&lt;br /&gt;
Unfortunately, for students to practice peer reviewing, a separate assignment has to be created every time. In order to facilitate sufficient practice for peer review, this is not a convenient method.&lt;br /&gt;
&lt;br /&gt;
=== Proposed System ===&lt;br /&gt;
&lt;br /&gt;
The objective of this project is to enable calibration to be one part of the normal assignment. The instructor should be able to turn on this feature if necessary and provide the corresponding calibration deadline. The student should be pre-assigned with sample assignments. Once the student submits the calibration reviews, the calibration results comparing the student and expert review are provided to the student.&lt;br /&gt;
When the actual review period starts, the student will review other assignments, and submit peer reviews. So the total number of reviews calculated should not count calibration reviews.&lt;br /&gt;
&lt;br /&gt;
Tasks are listed as below:&lt;br /&gt;
&lt;br /&gt;
1. To integrate calibration feature into a normal assignment, a new due date, that is calibration due date needs to be added in deadline_types table. So a migration needs to be written for implementing this.&lt;br /&gt;
&lt;br /&gt;
2. When instructor checks “Calibration for training?” and saves the assignment, in “Due dates” tab, a row should appear to deal with calibration due date. The other content of this row is just the same as other due dates.&lt;br /&gt;
&lt;br /&gt;
3. In student_task/list page, current stage column should display calibration when the assignment is in calibration period.&lt;br /&gt;
&lt;br /&gt;
4. In student_review/list page, in Other's work, calibration reviews need to be excluded from the peer reviews. &lt;br /&gt;
&lt;br /&gt;
To achieve this goal, filter the reviews with timestamp earlier than submission due date, which means reviews are done in the calibration period.&lt;br /&gt;
The wording and numbering on this view should be changed to: Calibrated review 1,2,3 to represent review done in calibration period; Review 1, 2, 3 to represent reviews done in the normal review period.&lt;br /&gt;
&lt;br /&gt;
==  System Overview ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The current system has the following actors:&lt;br /&gt;
&lt;br /&gt;
'''a) Instructors:'''Users who have administrative privileges to create/edit assignments and impersonate students&lt;br /&gt;
&lt;br /&gt;
'''b) Students:''' Users who submit assignments and peer reviews&lt;br /&gt;
&lt;br /&gt;
In the current system, the calibration functionality works correctly. In the assignments' edit page, once the instructor enables “Calibration for training?” and saves the assignment, an extra tab &amp;quot;Calibration&amp;quot; appears. After this, the instructor needs to add several sample assignments (right now instructor needs to impersonate several students to submit sample assignments) and do expert review beforehand. This is the existing functionality.&lt;br /&gt;
&lt;br /&gt;
In the proposed system, the entire flow of the assignment submission done by the student, changes. First is the calibration review of sample assignment, then normal assignment submission followed by rounds of peer reviews for the submitted assignments.&lt;br /&gt;
 &lt;br /&gt;
Flow:&lt;br /&gt;
&lt;br /&gt;
1. As an instructor, a new Assignment &amp;quot;Project 4&amp;quot; was created.&lt;br /&gt;
&lt;br /&gt;
2. In assignment edit mode, when calibration is not enabled, the &amp;quot;Due date&amp;quot; tab appears as shown below:&lt;br /&gt;
&lt;br /&gt;
[[File:Past due dates.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Once the “Calibration for training?” (see the below figure) is enabled, in addition to the “Calibration” tab, a new row for calibration deadline entry appears under the “Due dates” tab (see the figure below) before submission row. The due date for the calibration review is entered and the assignment is saved.&lt;br /&gt;
&lt;br /&gt;
[[File:Cal check.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:New due dates.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. 2 students are assigned as participants (student1, student2) and 1 student (student3) as reviewer for the assignment &amp;quot;Program 4&amp;quot;. Then, the Instructor impersonated one of the participant students, say student1, and submitted a sample assignment that is to be used for calibration review. &lt;br /&gt;
&lt;br /&gt;
5. The review strategy was set to &amp;quot;Instructor-selected&amp;quot; for calibration review. Then, the instructor assigned student3 as a reviewer for this sample assignment submitted by the expert and also, submitted an expert review for this sample submission.&lt;br /&gt;
&lt;br /&gt;
6. Now student3 is impersonated. The &amp;quot;current stage&amp;quot; of the assignment &amp;quot;Program 4&amp;quot; shows as &amp;quot;calibration&amp;quot; on the student_task page as shown below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Current stage calib.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7. As student3, on getting into &amp;quot;Program 4&amp;quot;, the &amp;quot;Other's work&amp;quot; link is enabled (as shown below). This is enabled even before submission period as we should allow students to enter calibration review beforehand. If calibration is not enabled for the assignment, the others' work link will be enabled only after submission period.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Other's work enabled.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
8. In &amp;quot;Other's work&amp;quot;, one calibration review for the sample assignment is displayed for which the reviewer can submit the calibration review. &lt;br /&gt;
&lt;br /&gt;
[[File:Calibrated review.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9. Once the calibration review is submitted, the &amp;quot;show calibration results&amp;quot; link is displayed which shows the scores against the expert review. Show calibration results gets enabled when the expert and the student submits the review.&lt;br /&gt;
&lt;br /&gt;
[[File:Show calib results.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
10. Once the calibration due date elapses, the assignment enters the &amp;quot;submission&amp;quot; period. During this period, student submissions are made. The review strategy is set as &amp;quot;auto-selected&amp;quot; and number of reviews allowed are set to 2.&lt;br /&gt;
&lt;br /&gt;
11. When impersonated as student3, in other's work, both the calibration and assigned peer reviews are displayed as shown below&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Total reviews.PNG]]&lt;br /&gt;
&lt;br /&gt;
The reviewer can now request new submission for peer review.&lt;br /&gt;
&lt;br /&gt;
Also, the number of reviews required and allowed considers only the peer reviews and not the calibration reviews. Since only one peer review is present, the &amp;quot;request new submission for review&amp;quot; button is enabled. Once a new review is requested since there are 2 peer reviews, the &amp;quot;request new submission for review&amp;quot; button is not displayed. This shows that only the peer reviews are considered for the total number of reviews allowed and required.&lt;br /&gt;
&lt;br /&gt;
After completion of the calibration reviews (before the due date), the student should submit the assignment on/before the submission deadline, which is the existing functionality. Since the students have had enough experience during the calibration period on peer reviewing, the next task will be carried over effectively. &lt;br /&gt;
&lt;br /&gt;
Peer reviewing is the concept of review your peer’s work. This concept enables the students to understand the solution to a problem from multiple perspectives. This will also embed new ideas and the skill of constructive criticism in the student. Hence, the student will provide peer reviews after the submission of their work.&lt;br /&gt;
&lt;br /&gt;
== System Use Cases ==&lt;br /&gt;
&lt;br /&gt;
Use Case Diagram :&lt;br /&gt;
&lt;br /&gt;
[[File:New Use Case Film Production (1)-1.png]]&lt;br /&gt;
&lt;br /&gt;
'''1. Add/Edit Assignment: Enable Calibration''' &lt;br /&gt;
&lt;br /&gt;
Use Case Id: 1&lt;br /&gt;
&lt;br /&gt;
Use Case Description: Instructor can select the option - &amp;quot;Calibration for training?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Actors: Instructor&lt;br /&gt;
&lt;br /&gt;
Pre Conditions: The assignment is present in the assignments list&lt;br /&gt;
&lt;br /&gt;
Post Conditions: Instructor can navigate to the edit assignment page where the enable calibration option is present&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Edit Assignment: Set Due Dates for Calibration and Peer Reviews'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id: 2&lt;br /&gt;
&lt;br /&gt;
Use Case Description: Instructor can set due date for calibration under due dates tab&lt;br /&gt;
&lt;br /&gt;
Actors: Instructor&lt;br /&gt;
&lt;br /&gt;
Pre Conditions: Once calibration option is enabled, a separate row for calibration should be created&lt;br /&gt;
&lt;br /&gt;
Post Conditions: The instructor should be able to see the new date set for calibration.&lt;br /&gt;
&lt;br /&gt;
Special cases: Calibration deadline should come before the submission deadline.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3. View the current stage in assignments as &amp;quot;Calibration&amp;quot; during the calibration period'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id: 3&lt;br /&gt;
&lt;br /&gt;
Use Case Description: In assignments home page, the assignment should now be in the calibration period.&lt;br /&gt;
&lt;br /&gt;
Actors: Student&lt;br /&gt;
&lt;br /&gt;
'''4. View the pre-assigned sample assignments in &amp;quot;other's work&amp;quot; tab which can be opened even before submitting the assignment'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id: 4 &lt;br /&gt;
&lt;br /&gt;
Use Case Description: Student should be able to see the list of assignments in others' work tab for reviewing&lt;br /&gt;
&lt;br /&gt;
Actors: Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions: Sample assignments are provided by the instructor for the student to review and the tab &amp;quot;other's work&amp;quot; is enabled.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''5. Submit 'n' pre-assigned Calibration Reviews'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id: 5&lt;br /&gt;
&lt;br /&gt;
Use Case Description: Student can now review those assignments and submit them&lt;br /&gt;
&lt;br /&gt;
Actors: Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions: Sample assignments are provided by the instructor for the student to review&lt;br /&gt;
&lt;br /&gt;
Post Conditions: Student can now see and edit the newly submitted review and also see the instructor's review for the assignment &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''6. View the 'Calibration Result' after submitting'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id: 6&lt;br /&gt;
&lt;br /&gt;
Use Case Description: Student can see the comparison between student's and instructor's reviews for the pre-assignment&lt;br /&gt;
&lt;br /&gt;
Actors: Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions: Student had already submitted a calibration review&lt;br /&gt;
&lt;br /&gt;
Post Conditions: Student can now view the comparison results&lt;br /&gt;
&lt;br /&gt;
'''7. Submit the assignment before the due date'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id: 7&lt;br /&gt;
&lt;br /&gt;
Use Case Description: Student should submit the assignment before the submission deadline&lt;br /&gt;
&lt;br /&gt;
Actors: Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions: An assignment exists and the calibration review is submitted&lt;br /&gt;
&lt;br /&gt;
Post Conditions: Student can successfully submit the assignment before the deadline&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''8. Request for a Peer Review'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id: 8&lt;br /&gt;
&lt;br /&gt;
Use Case Description: After the student submits the assignment, the student can request to do peer review of other student's submission&lt;br /&gt;
&lt;br /&gt;
Actors: Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions: peer review period has started and other students' submissions are available for reviewing&lt;br /&gt;
&lt;br /&gt;
Post Conditions: Student should be assigned with a project for reviewing. &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''9. Submit the Peer Review and request for next one after minimum number of peer reviews are completed'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id: 9&lt;br /&gt;
&lt;br /&gt;
Use Case Description: After the student requests for a peer review, he can review the assignment and submit it, After minimum number of reviews are commpleted, he/she can request for more assignments to be reviewed&lt;br /&gt;
&lt;br /&gt;
Actors: Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions: Student received an assignment for peer reviewing&lt;br /&gt;
&lt;br /&gt;
Post Conditions: View and edit options are available for the submitted review until the peer review period deadline&lt;br /&gt;
&lt;br /&gt;
''All the actions performed by the student can be done by the instructor by impersonating a student''&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
1. MVC&lt;br /&gt;
&lt;br /&gt;
The project is implemented in Ruby on Rails that uses MVC architecture. It separates an application’s data model, user interface, and control logic into three distinct components (model, view and controller, respectively).&lt;br /&gt;
&lt;br /&gt;
2. Dry Principle&lt;br /&gt;
&lt;br /&gt;
The existing functionalities in Expertiza are reused, thus avoiding code duplication. Whenever possible, code modification based on the existing classes, controllers, or tables will be done instead of creating a new one.&lt;br /&gt;
Example: Currently, calibrated reviews are handled separately and peer reviews are handled separately.&lt;br /&gt;
In our enhancement, we need to merge both the reviews. So instead of duplicating the code in calibrated reviews, the same code is used to handle both the reviews.&lt;br /&gt;
&lt;br /&gt;
No design patterns are used because existing methods are modified and no new methods are created. So the framework remains the same.&lt;br /&gt;
&lt;br /&gt;
=== Files Modified ===&lt;br /&gt;
&lt;br /&gt;
The following files were modified to implement the feature:&lt;br /&gt;
&lt;br /&gt;
#DeadlineType model (Needs to support deadline type for Calibration)&lt;br /&gt;
#Assignments model (Calibration needs to be integrated into normal Assignment)&lt;br /&gt;
#_responses.html.erb (The user will be able begin calibration, view calibration results)&lt;br /&gt;
#StudentTask model (Have attribute current stage which should have the value ‘Calibration’).&lt;br /&gt;
#student_task/list.html.erb view (The current stage should be able to display ‘Calibration’ when the assignment is in calibration period).&lt;br /&gt;
#DueDate model (needs to store the calibration due date for the assignments).&lt;br /&gt;
#calibration_spec.rb (feature tests to verify our implementation)&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
===In GUI ===&lt;br /&gt;
&lt;br /&gt;
To test this feature in GUI, perform the following steps:&lt;br /&gt;
&lt;br /&gt;
1. Login as instructor in Expertiza.&lt;br /&gt;
&lt;br /&gt;
2. Create a new Assignment.&lt;br /&gt;
&lt;br /&gt;
3. Click edit assignment and in the general tab, select the option - 'Calibration for training?' and click 'save'&lt;br /&gt;
&lt;br /&gt;
4. Once that option is enabled, a new tab opens in the name 'Calibration'. Now, under Due dates tab, a new row would have been created for 'calibration'.&lt;br /&gt;
&lt;br /&gt;
5. Enter the Due Date for the calibration round (Enter a date which is before the submission due date) and save the assignment.&lt;br /&gt;
&lt;br /&gt;
7. Go to the calibration tab and submit one expert review for the sample assignment.&lt;br /&gt;
&lt;br /&gt;
8. Impersonate as student and under assignments home page, the assignment for which calibration was enabled will now have the''' current stage''' as 'calibration'&lt;br /&gt;
&lt;br /&gt;
9. Now select that assignment and go to '''other's work''' link, which should be enabled.&lt;br /&gt;
&lt;br /&gt;
10. One review will now appear as calibrated review. Begin the review and submit.&lt;br /&gt;
&lt;br /&gt;
11. Now on the same page i.e '''other's work''' , you will see a new link: &amp;quot;Show calibration results&amp;quot; for the respective calibration review.&lt;br /&gt;
&lt;br /&gt;
12. Once the calibration period is over and submission period starts, the students can now submit the actual assignment. Post submission due date, the peer review period will start.&lt;br /&gt;
&lt;br /&gt;
13. When the peer review period begins, in others' work, the student will now see two sections: Calibrated review and Review. &lt;br /&gt;
&lt;br /&gt;
14. Here, the total number of reviews count only the peer reviews.&lt;br /&gt;
&lt;br /&gt;
=== Automated test ===&lt;br /&gt;
&lt;br /&gt;
Automated tests are written in calibration_spec.rb file under specs/features folder.&lt;br /&gt;
&lt;br /&gt;
The RSpec tests cover the following scenarios:&lt;br /&gt;
&lt;br /&gt;
1. If calibration is enabled, check if a new row is created in the deadlines table with the deadline type as Calibration.&lt;br /&gt;
&lt;br /&gt;
2. After the submission period, check if both the calibrated reviews and the peer reviews are present in the reviews list.&lt;br /&gt;
&lt;br /&gt;
3. Check if the total number of reviews count only the peer reviews.&lt;br /&gt;
&lt;br /&gt;
[[File:Calibration1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Calibration2.PNG]]&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Harika Malapaka: [mailto:hsmalapa@ncsu.edu hsmalapa@ncsu.edu] &lt;br /&gt;
&lt;br /&gt;
:Vidhyalakshimi Sreenivasan: [mailto:vsreeni@ncsu.edu vsreeni@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Valli Annamalai: [mailto:vannama@ncsu.edu vannama@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Zhewei Hu: [mailto:zhu6@ncsu.edu zhu6@ncsu.edu]&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A4_Allow_calibration_to_be_part_of_an_assignment&amp;diff=114152</id>
		<title>CSC/ECE 517 Fall 2017/E17A4 Allow calibration to be part of an assignment</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A4_Allow_calibration_to_be_part_of_an_assignment&amp;diff=114152"/>
		<updated>2017-12-02T03:46:45Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: /* Automated test */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made according to the specification of E17A4 - final project  for CSC/ECE (517)Fall 2017.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Calibration is the term used for rectifying, or checking or determining something. In the context of this project, a 'Calibrated review' is the one which is performed by student and instructor as well, so that student can check on his work by comparing with instructors' response for the same assignment. Since calibrated reviews are just for checking on our progress, they are not graded. They are just meant for practice, so that peer review (which are performed later) can be performed well which is graded.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
In order to gain practice for giving a reviews , the Student should be able to give calibration reviews before providing peer reviews. Thus, the Instructor should be able to enable calibration for every new assignment. By this way, the student can improve peer reviewing by comparing his/her results with expert reviews for the same assignment.&lt;br /&gt;
&lt;br /&gt;
=== Limitation ===&lt;br /&gt;
At present, the instructor is able to calibrate the students’ peer review abilities on Expertiza by creating only a separate assignment for this purpose. In this separate assignment that the instructor creates, the student and the instructor will simultaneously do peer review for the project. After submission of the reviews, the student's and instructor's reviews are compared and a calibration report is generated for the student to view and improve their peer reviewing skills. &lt;br /&gt;
&lt;br /&gt;
Unfortunately, for students to practice peer reviewing, a separate assignment has to be created every time. In order to facilitate sufficient practice for peer review, this is not a convenient method.&lt;br /&gt;
&lt;br /&gt;
=== Proposed System ===&lt;br /&gt;
&lt;br /&gt;
The objective of this project is to enable calibration to be one part of the normal assignment. The instructor should be able to turn on this feature if necessary and provide the corresponding calibration deadline. The student should be pre-assigned with sample assignments. Once the student submits the calibration reviews, the calibration results comparing the student and expert review are provided to the student.&lt;br /&gt;
When the actual review period starts, the student will review other assignments, and submit peer reviews. So the total number of reviews calculated should not count calibration reviews.&lt;br /&gt;
&lt;br /&gt;
Tasks are listed as below:&lt;br /&gt;
&lt;br /&gt;
1. To integrate calibration feature into a normal assignment, a new due date, that is calibration due date needs to be added in deadline_types table. So a migration needs to be written for implementing this.&lt;br /&gt;
&lt;br /&gt;
2. When instructor checks “Calibration for training?” and saves the assignment, in “Due dates” tab, a row should appear to deal with calibration due date. The other content of this row is just the same as other due dates.&lt;br /&gt;
&lt;br /&gt;
3. In student_task/list page, current stage column should display calibration when the assignment is in calibration period.&lt;br /&gt;
&lt;br /&gt;
4. In student_review/list page, in Other's work, calibration reviews need to be excluded from the peer reviews. &lt;br /&gt;
&lt;br /&gt;
To achieve this goal, filter the reviews with timestamp earlier than submission due date, which means reviews are done in the calibration period.&lt;br /&gt;
The wording and numbering on this view should be changed to: Calibrated review 1,2,3 to represent review done in calibration period; Review 1, 2, 3 to represent reviews done in the normal review period.&lt;br /&gt;
&lt;br /&gt;
==  System Overview ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The current system has the following actors:&lt;br /&gt;
&lt;br /&gt;
'''a) Instructors:'''Users who have administrative privileges to create/edit assignments and impersonate students&lt;br /&gt;
&lt;br /&gt;
'''b) Students:''' Users who submit assignments and peer reviews&lt;br /&gt;
&lt;br /&gt;
In the current system, the calibration functionality works correctly. In the assignments' edit page, once the instructor enables “Calibration for training?” and saves the assignment, an extra tab &amp;quot;Calibration&amp;quot; appears. After this, the instructor needs to add several sample assignments (right now instructor needs to impersonate several students to submit sample assignments) and do expert review beforehand. This is the existing functionality.&lt;br /&gt;
&lt;br /&gt;
In the proposed system, the entire flow of the assignment submission done by the student, changes. First is the calibration review of sample assignment, then normal assignment submission followed by rounds of peer reviews for the submitted assignments.&lt;br /&gt;
 &lt;br /&gt;
Flow:&lt;br /&gt;
&lt;br /&gt;
1. As an instructor, a new Assignment &amp;quot;Project 4&amp;quot; was created.&lt;br /&gt;
&lt;br /&gt;
2. In assignment edit mode, when calibration is not enabled, the &amp;quot;Due date&amp;quot; tab appears as shown below:&lt;br /&gt;
&lt;br /&gt;
[[File:Past due dates.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Once the “Calibration for training?” (see the below figure) is enabled, in addition to the “Calibration” tab, a new row for calibration deadline entry appears under the “Due dates” tab (see the figure below) before submission row. The due date for the calibration review is entered and the assignment is saved.&lt;br /&gt;
&lt;br /&gt;
[[File:Cal check.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:New due dates.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. 2 students are assigned as participants (student1, student2) and 1 student (student3) as reviewer for the assignment &amp;quot;Program 4&amp;quot;. Then, the Instructor impersonated one of the participant students, say student1, and submitted a sample assignment that is to be used for calibration review. &lt;br /&gt;
&lt;br /&gt;
5. The review strategy was set to &amp;quot;Instructor-selected&amp;quot; for calibration review. Then, the instructor assigned student3 as a reviewer for this sample assignment submitted by the expert and also, submitted an expert review for this sample submission.&lt;br /&gt;
&lt;br /&gt;
6. Now student3 is impersonated. The &amp;quot;current stage&amp;quot; of the assignment &amp;quot;Program 4&amp;quot; shows as &amp;quot;calibration&amp;quot; on the student_task page as shown below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Current stage calib.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7. As student3, on getting into &amp;quot;Program 4&amp;quot;, the &amp;quot;Other's work&amp;quot; link is enabled (as shown below). This is enabled even before submission period as we should allow students to enter calibration review beforehand. If calibration is not enabled for the assignment, the others' work link will be enabled only after submission period.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Other's work enabled.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
8. In &amp;quot;Other's work&amp;quot;, one calibration review for the sample assignment is displayed for which the reviewer can submit the calibration review. &lt;br /&gt;
&lt;br /&gt;
[[File:Calibrated review.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9. Once the calibration review is submitted, the &amp;quot;show calibration results&amp;quot; link is displayed which shows the scores against the expert review. Show calibration results gets enabled when the expert and the student submits the review.&lt;br /&gt;
&lt;br /&gt;
[[File:Show calib results.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
10. Once the calibration due date elapses, the assignment enters the &amp;quot;submission&amp;quot; period. During this period, student submissions are made. The review strategy is set as &amp;quot;auto-selected&amp;quot; and number of reviews allowed are set to 2.&lt;br /&gt;
&lt;br /&gt;
11. When impersonated as student3, in other's work, both the calibration and assigned peer reviews are displayed as shown below&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Total reviews.PNG]]&lt;br /&gt;
&lt;br /&gt;
The reviewer can now request new submission for peer review.&lt;br /&gt;
&lt;br /&gt;
Also, the number of reviews required and allowed considers only the peer reviews and not the calibration reviews. Since only one peer review is present, the &amp;quot;request new submission for review&amp;quot; button is enabled. Once a new review is requested since there are 2 peer reviews, the &amp;quot;request new submission for review&amp;quot; button is not displayed. This shows that only the peer reviews are considered for the total number of reviews allowed and required.&lt;br /&gt;
&lt;br /&gt;
After completion of the calibration reviews (before the due date), the student should submit the assignment on/before the submission deadline, which is the existing functionality. Since the students have had enough experience during the calibration period on peer reviewing, the next task will be carried over effectively. &lt;br /&gt;
&lt;br /&gt;
Peer reviewing is the concept of review your peer’s work. This concept enables the students to understand the solution to a problem from multiple perspectives. This will also embed new ideas and the skill of constructive criticism in the student. Hence, the student will provide peer reviews after the submission of their work.&lt;br /&gt;
&lt;br /&gt;
== System Use Cases ==&lt;br /&gt;
&lt;br /&gt;
Use Case Diagram :&lt;br /&gt;
&lt;br /&gt;
[[File:New Use Case Film Production (1)-1.png]]&lt;br /&gt;
&lt;br /&gt;
'''1. Add/Edit Assignment: Enable Calibration''' &lt;br /&gt;
&lt;br /&gt;
Use Case Id: 1&lt;br /&gt;
&lt;br /&gt;
Use Case Description: Instructor can select the option - &amp;quot;Calibration for training?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Actors: Instructor&lt;br /&gt;
&lt;br /&gt;
Pre Conditions: The assignment is present in the assignments list&lt;br /&gt;
&lt;br /&gt;
Post Conditions: Instructor can navigate to the edit assignment page where the enable calibration option is present&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Edit Assignment: Set Due Dates for Calibration and Peer Reviews'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id: 2&lt;br /&gt;
&lt;br /&gt;
Use Case Description: Instructor can set due date for calibration under due dates tab&lt;br /&gt;
&lt;br /&gt;
Actors: Instructor&lt;br /&gt;
&lt;br /&gt;
Pre Conditions: Once calibration option is enabled, a separate row for calibration should be created&lt;br /&gt;
&lt;br /&gt;
Post Conditions: The instructor should be able to see the new date set for calibration.&lt;br /&gt;
&lt;br /&gt;
Special cases: Calibration deadline should come before the submission deadline.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3. View the current stage in assignments as &amp;quot;Calibration&amp;quot; during the calibration period'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id: 3&lt;br /&gt;
&lt;br /&gt;
Use Case Description: In assignments home page, the assignment should now be in the calibration period.&lt;br /&gt;
&lt;br /&gt;
Actors: Student&lt;br /&gt;
&lt;br /&gt;
'''4. View the pre-assigned sample assignments in &amp;quot;other's work&amp;quot; tab which can be opened even before submitting the assignment'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id: 4 &lt;br /&gt;
&lt;br /&gt;
Use Case Description: Student should be able to see the list of assignments in others' work tab for reviewing&lt;br /&gt;
&lt;br /&gt;
Actors: Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions: Sample assignments are provided by the instructor for the student to review and the tab &amp;quot;other's work&amp;quot; is enabled.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''5. Submit 'n' pre-assigned Calibration Reviews'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id: 5&lt;br /&gt;
&lt;br /&gt;
Use Case Description: Student can now review those assignments and submit them&lt;br /&gt;
&lt;br /&gt;
Actors: Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions: Sample assignments are provided by the instructor for the student to review&lt;br /&gt;
&lt;br /&gt;
Post Conditions: Student can now see and edit the newly submitted review and also see the instructor's review for the assignment &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''6. View the 'Calibration Result' after submitting'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id: 6&lt;br /&gt;
&lt;br /&gt;
Use Case Description: Student can see the comparison between student's and instructor's reviews for the pre-assignment&lt;br /&gt;
&lt;br /&gt;
Actors: Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions: Student had already submitted a calibration review&lt;br /&gt;
&lt;br /&gt;
Post Conditions: Student can now view the comparison results&lt;br /&gt;
&lt;br /&gt;
'''7. Submit the assignment before the due date'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id: 7&lt;br /&gt;
&lt;br /&gt;
Use Case Description: Student should submit the assignment before the submission deadline&lt;br /&gt;
&lt;br /&gt;
Actors: Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions: An assignment exists and the calibration review is submitted&lt;br /&gt;
&lt;br /&gt;
Post Conditions: Student can successfully submit the assignment before the deadline&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''8. Request for a Peer Review'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id: 8&lt;br /&gt;
&lt;br /&gt;
Use Case Description: After the student submits the assignment, the student can request to do peer review of other student's submission&lt;br /&gt;
&lt;br /&gt;
Actors: Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions: peer review period has started and other students' submissions are available for reviewing&lt;br /&gt;
&lt;br /&gt;
Post Conditions: Student should be assigned with a project for reviewing. &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''9. Submit the Peer Review and request for next one after minimum number of peer reviews are completed'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id: 9&lt;br /&gt;
&lt;br /&gt;
Use Case Description: After the student requests for a peer review, he can review the assignment and submit it, After minimum number of reviews are commpleted, he/she can request for more assignments to be reviewed&lt;br /&gt;
&lt;br /&gt;
Actors: Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions: Student received an assignment for peer reviewing&lt;br /&gt;
&lt;br /&gt;
Post Conditions: View and edit options are available for the submitted review until the peer review period deadline&lt;br /&gt;
&lt;br /&gt;
''All the actions performed by the student can be done by the instructor by impersonating a student''&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
1. MVC&lt;br /&gt;
&lt;br /&gt;
The project is implemented in Ruby on Rails that uses MVC architecture. It separates an application’s data model, user interface, and control logic into three distinct components (model, view and controller, respectively).&lt;br /&gt;
&lt;br /&gt;
2. Dry Principle&lt;br /&gt;
&lt;br /&gt;
The existing functionalities in Expertiza are reused, thus avoiding code duplication. Whenever possible, code modification based on the existing classes, controllers, or tables will be done instead of creating a new one.&lt;br /&gt;
Example: Currently, calibrated reviews are handled separately and peer reviews are handled separately.&lt;br /&gt;
In our enhancement, we need to merge both the reviews. So instead of duplicating the code in calibrated reviews, the same code is used to handle both the reviews.&lt;br /&gt;
&lt;br /&gt;
No design patterns are used because existing methods are modified and no new methods are created. So the framework remains the same.&lt;br /&gt;
&lt;br /&gt;
=== Files Modified ===&lt;br /&gt;
&lt;br /&gt;
The following files were modified to implement the feature:&lt;br /&gt;
&lt;br /&gt;
#DeadlineType model (Needs to support deadline type for Calibration)&lt;br /&gt;
#Assignments model (Calibration needs to be integrated into normal Assignment)&lt;br /&gt;
#_responses.html.erb (The user will be able begin calibration, view calibration results)&lt;br /&gt;
#StudentTask model (Have attribute current stage which should have the value ‘Calibration’).&lt;br /&gt;
#student_task/list.html.erb view (The current stage should be able to display ‘Calibration’ when the assignment is in calibration period).&lt;br /&gt;
#DueDate model (needs to store the calibration due date for the assignments).&lt;br /&gt;
#calibration_spec.rb (feature tests to verify our implementation)&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
===In GUI ===&lt;br /&gt;
&lt;br /&gt;
To test this feature in GUI, perform the following steps:&lt;br /&gt;
&lt;br /&gt;
1. Login as instructor in Expertiza.&lt;br /&gt;
&lt;br /&gt;
2. Create a new Assignment.&lt;br /&gt;
&lt;br /&gt;
3. Click edit assignment and in the general tab, select the option - 'Calibration for training?' and click 'save'&lt;br /&gt;
&lt;br /&gt;
4. Once that option is enabled, a new tab opens in the name 'Calibration'. Now, under Due dates tab, a new row would have been created for 'calibration'.&lt;br /&gt;
&lt;br /&gt;
5. Enter the Due Date for the calibration round (Enter a date which is before the submission due date) and save the assignment.&lt;br /&gt;
&lt;br /&gt;
7. Go to the calibration tab and submit one expert review for the sample assignment.&lt;br /&gt;
&lt;br /&gt;
8. Impersonate as student and under assignments home page, the assignment for which calibration was enabled will now have the''' current stage''' as 'calibration'&lt;br /&gt;
&lt;br /&gt;
9. Now select that assignment and go to '''other's work''' link, which should be enabled.&lt;br /&gt;
&lt;br /&gt;
10. One review will now appear as calibrated review. Begin the review and submit.&lt;br /&gt;
&lt;br /&gt;
11. Now on the same page i.e '''other's work''' , you will see a new link: &amp;quot;Show calibration results&amp;quot; for the respective calibration review.&lt;br /&gt;
&lt;br /&gt;
12. Once the calibration period is over and submission period starts, the students can now submit the actual assignment. Post submission due date, the peer review period will start.&lt;br /&gt;
&lt;br /&gt;
13. When the peer review period begins, in others' work, the student will now see two sections: Calibrated review and Review. &lt;br /&gt;
&lt;br /&gt;
14. Here, the total number of reviews count only the peer reviews.&lt;br /&gt;
&lt;br /&gt;
=== Automated test ===&lt;br /&gt;
&lt;br /&gt;
Automated tests are written in calibration_spec.rb file under specs/features folder.&lt;br /&gt;
&lt;br /&gt;
The RSpec tests cover the following scenarios:&lt;br /&gt;
&lt;br /&gt;
1. If calibration is enabled, check if a new row is created in the deadlines table with the deadline type as Calibration.&lt;br /&gt;
&lt;br /&gt;
2. After the submission period, check if both the calibrated reviews and the peer reviews are present in the reviews list.&lt;br /&gt;
&lt;br /&gt;
3. Check if the total number of reviews count only the peer reviews.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Calibration1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Calibration2.PNG]]&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Harika Malapaka: [mailto:hsmalapa@ncsu.edu hsmalapa@ncsu.edu] &lt;br /&gt;
&lt;br /&gt;
:Vidhyalakshimi Sreenivasan: [mailto:vsreeni@ncsu.edu vsreeni@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Valli Annamalai: [mailto:vannama@ncsu.edu vannama@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Zhewei Hu: [mailto:zhu6@ncsu.edu zhu6@ncsu.edu]&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Calibration2.PNG&amp;diff=114151</id>
		<title>File:Calibration2.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Calibration2.PNG&amp;diff=114151"/>
		<updated>2017-12-02T03:46:03Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Calibration1.PNG&amp;diff=114150</id>
		<title>File:Calibration1.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Calibration1.PNG&amp;diff=114150"/>
		<updated>2017-12-02T03:45:50Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A4_Allow_calibration_to_be_part_of_an_assignment&amp;diff=112498</id>
		<title>CSC/ECE 517 Fall 2017/E17A4 Allow calibration to be part of an assignment</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A4_Allow_calibration_to_be_part_of_an_assignment&amp;diff=112498"/>
		<updated>2017-11-08T01:03:06Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made according to the specification of E17A4 final project assignment for Fall 2017.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
In order to gain practice, the Student should be able to give calibration reviews before providing peer reviews. Thus, the Instructor should be able to enable calibration for every new and existing assignment. By this way, the student can improve peer reviewing by comparing his/her results with expert reviews for the same assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Limitation ===&lt;br /&gt;
At present, the instructor is able to calibrate the students’ peer review abilities on Expertiza by creating only a separate assignment for this purpose. In this separate assignment that the instructor creates, the student and the instructor will simultaneously do peer review for the project. After submission of the reviews, the student's and instructor's reviews are compared and a calibration report is generated for the student to view and improve their peer reviewing skills. &lt;br /&gt;
&lt;br /&gt;
Unfortunately, for students to practice peer reviewing, a separate assignment has to be created every time. In order to facilitate sufficient practice for peer review, this is not a convenient method.&lt;br /&gt;
&lt;br /&gt;
=== Proposed System ===&lt;br /&gt;
&lt;br /&gt;
The objective of this project is to enable calibration to be one part of the normal assignment. The instructor should be able to turn on this feature if necessary and provide the corresponding calibration deadline. The student should be pre-assigned sample assignments. Once the student submits the calibration reviews, the calibration results comparing the student and expert review are provided to the student. This feature should be available for normal assignments.&lt;br /&gt;
&lt;br /&gt;
==  System Overview ==&lt;br /&gt;
&lt;br /&gt;
Calibration review is the sample practice peer review used for comparing students' review with expert's review. The calibration results show the results and the experts' reviews, based on which the students can improve their peer reviewing skills.&lt;br /&gt;
&lt;br /&gt;
In the current system has the following actors:&lt;br /&gt;
&lt;br /&gt;
'''a) Instructors:'''Users who have administrative privileges to create/edit assignments and impersonate students&lt;br /&gt;
&lt;br /&gt;
'''b) Students:''' Users who submit assignments and peer reviews&lt;br /&gt;
&lt;br /&gt;
The current system allows the instructors to create assignments separately for calibration purposes. This is clearly inconvenient and ineffective as the students will not receive enough practice for peer reviewing on their normal assignments beforehand. &lt;br /&gt;
&lt;br /&gt;
Hence, if students were able to compare their reviews with the experts' review for normal assignments before providing actual peer reviews, they will be able to learn and improve their peer reviewing skills from the experts. Therefore, we have to integrate this feature of calibration reviewing in normal assignments as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the current system, the calibration functionality works correctly. In the assignments' edit page, once the instructor enables “Calibration for training?” and saves the assignment, an extra tab &amp;quot;Calibration&amp;quot; appears. After this, the instructor needs to add several sample assignments (right now instructor needs to impersonate several students to submit sample assignments) and do expert review beforehand. This is the existing functionality.&lt;br /&gt;
&lt;br /&gt;
In the proposed system, the flow of the assignment submission done by the student, changes. First is the calibration review of sample assignment, then normal assignment submission followed by rounds of peer reviews. &lt;br /&gt;
In the proposed system, once the “Calibration for training?” is enabled, in addition to the “Calibration” tab, a row for calibration deadline entry appears under the “Due dates” tab before any submissions row. The instructor has to enter the deadline for the calibration review and save the assignment.&lt;br /&gt;
&lt;br /&gt;
Consequently, the student assignments page, the stage of this assignment will be set to “Calibration” during the calibration period.  Furthermore, once the student submits one of the calibration reviews in the student_review page, the student can view the calibration results in the “Show calibration results” link. The calibration result shows the comparison of the student’s reviews and the respective instructor reviews.  Based on the result, the student will learn to give better peer reviews for the particular assignment. &lt;br /&gt;
&lt;br /&gt;
After completion of the calibration reviews (before the due date), the student should submit the assignment on/before the submission deadline, which is the existing functionality. Since the students have had enough experience during the calibration period on peer reviewing, the next task will be carried over effectively. &lt;br /&gt;
&lt;br /&gt;
Peer reviewing is the concept of review your peer’s work. This concept enables the students to understand the solution to a problem from multiple perspectives. This will also embed new ideas and the skill of constructive criticism in the student. And, hence, the student will provide peer reviews after the submission of their work. These rounds of reviews will be controlled by the instructor. Once all the submissions are made, the assignment’s stage gets assigned the finish status.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== System Use Cases ==&lt;br /&gt;
&lt;br /&gt;
Use Case Diagram :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image-oodd.png]]&lt;br /&gt;
&lt;br /&gt;
'''1. Add/Edit Assignment: Enable Calibration.''' &lt;br /&gt;
&lt;br /&gt;
Use Case Id : 1&lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Instructor&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Edit Assignment : Set Due Dates for Calibration and Peer Reviews'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 2&lt;br /&gt;
&lt;br /&gt;
Use Case Description : &lt;br /&gt;
&lt;br /&gt;
Actors : Instructor&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3. View the current stage in assignments as &amp;quot;Calibration&amp;quot; during the calibration period'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 3&lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4. View the pre-assigned sample assignments'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 4 &lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
'''5. Submit 'n' pre-assigned Calibration Reviews'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 5&lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''6. View the 'Calibration Result' after submitting'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 6&lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
'''7. Submit the assignment before the due date'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 7&lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''8. Request for a Peer Review'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 8&lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''9. Submit the Peer Review and request for next one until'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 9&lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''10. Submit the allowable number of Peer Reviews'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 10&lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Files to be Modified ==&lt;br /&gt;
&lt;br /&gt;
For implementing the functionality to allow calibration to be part of an assignment, there will be changes made to the view code and the models to include calibration into normal assignment. The following files are required to implement this feature.&lt;br /&gt;
&lt;br /&gt;
#DeadlineType model (Needs to support deadline type for Calibration)&lt;br /&gt;
#Assignments model (Calibration needs to be integrated into normal Assignment)&lt;br /&gt;
#_responses.html.erb (The user will be able begin calibration, view calibration results)&lt;br /&gt;
#StudentTask model (Have attribute current stage which should have the value ‘Calibration’).&lt;br /&gt;
#student_task/list.html.erb view (The current stage should be able to display ‘Calibration’ when the assignment is in calibration period).&lt;br /&gt;
#DueDate model (needs to store the calibration due dates for the assignments).&lt;br /&gt;
#caliberation_spec.rb (feature tests to verify our implementation)&lt;br /&gt;
#submitted_content/_self_review.html.erb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Harika Malapaka: [mailto:hsmalapa@ncsu.edu hsmalapa@ncsu.edu] &lt;br /&gt;
&lt;br /&gt;
:Vidhyalakshimi Sreenivasan: [mailto:vsreeni@ncsu.edu vsreeni@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Valli Annamalai: [mailto:vannama@ncsu.edu vannama@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Zhewei Hu: [mailto:zhu6@ncsu.edu zhu6@ncsu.edu]&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A4_Allow_calibration_to_be_part_of_an_assignment&amp;diff=112486</id>
		<title>CSC/ECE 517 Fall 2017/E17A4 Allow calibration to be part of an assignment</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A4_Allow_calibration_to_be_part_of_an_assignment&amp;diff=112486"/>
		<updated>2017-11-08T00:56:41Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: /* Files to be Modified */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made according to the specification of E17A4 final project assignment for Fall 2017.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
In order to gain practice, the Student should be able to give calibration reviews before providing peer reviews. Thus, the Instructor should be able to enable calibration for every new and existing assignment. By this way, the student can improve peer reviewing by comparing his/her results with expert reviews for the same assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Limitation ===&lt;br /&gt;
At present, the instructor is able to calibrate the students’ peer review abilities on Expertiza by creating only a separate assignment for this purpose. In this separate assignment that the instructor creates, the student and the instructor will simultaneously do peer review for the project. After submission of the reviews, the student's and instructor's reviews are compared and a calibration report is generated for the student to view and improve their peer reviewing skills. &lt;br /&gt;
&lt;br /&gt;
Unfortunately, for students to practice peer reviewing, a separate assignment has to be created every time. In order to facilitate sufficient practice for peer review, this is not a convenient method.&lt;br /&gt;
&lt;br /&gt;
=== Proposed System ===&lt;br /&gt;
&lt;br /&gt;
The objective of this project is to enable calibration to be one part of the normal assignment. The instructor should be able to turn on this feature if necessary and provide the corresponding calibration deadline. The student should be pre-assigned sample assignments. Once the student submits the calibration reviews, the calibration results comparing the student and expert review are provided to the student. This feature should be available for normal assignments.&lt;br /&gt;
&lt;br /&gt;
==  System Overview ==&lt;br /&gt;
&lt;br /&gt;
Calibration review is the sample practice peer review used for comparing students' review with expert's review. The calibration results show the results and the experts' reviews, based on which the students can improve their peer reviewing skills.&lt;br /&gt;
&lt;br /&gt;
In the current system has the following actors:&lt;br /&gt;
&lt;br /&gt;
'''a) Instructors:'''Users who have administrative privileges to create/edit assignments and impersonate students&lt;br /&gt;
&lt;br /&gt;
'''b) Students:''' Users who submit assignments and peer reviews&lt;br /&gt;
&lt;br /&gt;
The current system allows the instructors to create assignments separately for calibration purposes. This is clearly inconvenient and ineffective as the students will not receive enough practice for peer reviewing on their normal assignments beforehand. &lt;br /&gt;
&lt;br /&gt;
Hence, if students were able to compare their reviews with the experts' review for normal assignments before providing actual peer reviews, they will be able to learn and improve their peer reviewing skills from the experts. Therefore, we have to integrate this feature of calibration reviewing in normal assignments as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the current system, the calibration functionality works correctly. In the assignments' edit page, once the instructor enables “Calibration for training?” and saves the assignment, an extra tab &amp;quot;Calibration&amp;quot; appears. After this, the instructor needs to add several sample assignments (right now instructor needs to impersonate several students to submit sample assignments) and do expert review beforehand. This is the existing functionality.&lt;br /&gt;
&lt;br /&gt;
In the proposed system, the flow of the assignment submission done by the student, changes. First is the calibration review of sample assignment, then normal assignment submission followed by rounds of peer reviews. &lt;br /&gt;
In the proposed system, once the “Calibration for training?” is enabled, in addition to the “Calibration” tab, a row for calibration deadline entry appears under the “Due dates” tab before any submissions row. The instructor has to enter the deadline for the calibration review and save the assignment.&lt;br /&gt;
&lt;br /&gt;
Consequently, the student assignments page, the stage of this assignment will be set to “Calibration” during the calibration period.  Furthermore, once the student submits one of the calibration reviews in the student_review page, the student can view the calibration results in the “Show calibration results” link. The calibration result shows the comparison of the student’s reviews and the respective instructor reviews.  Based on the result, the student will learn to give better peer reviews for the particular assignment. &lt;br /&gt;
&lt;br /&gt;
After completion of the calibration reviews (before the due date), the student should submit the assignment on/before the submission deadline, which is the existing functionality. Since the students have had enough experience during the calibration period on peer reviewing, the next task will be carried over effectively. &lt;br /&gt;
&lt;br /&gt;
Peer reviewing is the concept of review your peer’s work. This concept enables the students to understand the solution to a problem from multiple perspectives. This will also embed new ideas and the skill of constructive criticism in the student. And, hence, the student will provide peer reviews after the submission of their work. These rounds of reviews will be controlled by the instructor. Once all the submissions are made, the assignment’s stage gets assigned the finish status.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== System Use Cases ==&lt;br /&gt;
&lt;br /&gt;
Use Case Diagram :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image-oodd.png]]&lt;br /&gt;
&lt;br /&gt;
'''1. Add/Edit Assignment: Enable Calibration.''' &lt;br /&gt;
&lt;br /&gt;
Use Case Id : 1&lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Instructor&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Edit Assignment : Set Due Dates for Calibration and Peer Reviews'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 2&lt;br /&gt;
&lt;br /&gt;
Use Case Description : &lt;br /&gt;
&lt;br /&gt;
Actors : Instructor&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3. View the current stage in assignments as &amp;quot;Calibration&amp;quot; during the calibration period'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 3&lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4. View the pre-assigned sample assignments'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 4 &lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
'''5. Submit 'n' pre-assigned Calibration Reviews'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 5&lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''6. View the 'Calibration Result' after submitting'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 6&lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
'''7. Submit the assignment before the due date'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 7&lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''8. Request for a Peer Review'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 8&lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''9. Submit the Peer Review and request for next one until'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 9&lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''10. Submit the allowable number of Peer Reviews'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 10&lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Files to be Modified ==&lt;br /&gt;
&lt;br /&gt;
For implementing the functionality to allow calibration to be part of an assignment, there will be changes made to the view code and the models to include calibration into normal assignment. The following files are required to implement this feature.&lt;br /&gt;
&lt;br /&gt;
#DeadlineType model (Needs to support deadline type for Calibration)&lt;br /&gt;
#Assignments model (Calibration needs to be integrated into normal Assignment)&lt;br /&gt;
#_responses.html.erb (The user will be able begin calibration, view calibration results)&lt;br /&gt;
#StudentTask model (Have attribute current stage which should have the value ‘Calibration’).&lt;br /&gt;
#student_task/list.html.erb view (The current stage should be able to display ‘Calibration’ when the assignment is in calibration period).&lt;br /&gt;
#DueDate model (needs to store the calibration due dates for the assignments).&lt;br /&gt;
#caliberation_spec.rb (feature tests to verify our implementation)&lt;br /&gt;
#submitted_content/_self_review.html.erb&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A4_Allow_calibration_to_be_part_of_an_assignment&amp;diff=112484</id>
		<title>CSC/ECE 517 Fall 2017/E17A4 Allow calibration to be part of an assignment</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A4_Allow_calibration_to_be_part_of_an_assignment&amp;diff=112484"/>
		<updated>2017-11-08T00:55:58Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: /* Files to be Modified */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made according to the specification of E17A4 final project assignment for Fall 2017.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
In order to gain practice, the Student should be able to give calibration reviews before providing peer reviews. Thus, the Instructor should be able to enable calibration for every new and existing assignment. By this way, the student can improve peer reviewing by comparing his/her results with expert reviews for the same assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Limitation ===&lt;br /&gt;
At present, the instructor is able to calibrate the students’ peer review abilities on Expertiza by creating only a separate assignment for this purpose. In this separate assignment that the instructor creates, the student and the instructor will simultaneously do peer review for the project. After submission of the reviews, the student's and instructor's reviews are compared and a calibration report is generated for the student to view and improve their peer reviewing skills. &lt;br /&gt;
&lt;br /&gt;
Unfortunately, for students to practice peer reviewing, a separate assignment has to be created every time. In order to facilitate sufficient practice for peer review, this is not a convenient method.&lt;br /&gt;
&lt;br /&gt;
=== Proposed System ===&lt;br /&gt;
&lt;br /&gt;
The objective of this project is to enable calibration to be one part of the normal assignment. The instructor should be able to turn on this feature if necessary and provide the corresponding calibration deadline. The student should be pre-assigned sample assignments. Once the student submits the calibration reviews, the calibration results comparing the student and expert review are provided to the student. This feature should be available for normal assignments.&lt;br /&gt;
&lt;br /&gt;
==  System Overview ==&lt;br /&gt;
&lt;br /&gt;
Calibration review is the sample practice peer review used for comparing students' review with expert's review. The calibration results show the results and the experts' reviews, based on which the students can improve their peer reviewing skills.&lt;br /&gt;
&lt;br /&gt;
In the current system has the following actors:&lt;br /&gt;
&lt;br /&gt;
'''a) Instructors:'''Users who have administrative privileges to create/edit assignments and impersonate students&lt;br /&gt;
&lt;br /&gt;
'''b) Students:''' Users who submit assignments and peer reviews&lt;br /&gt;
&lt;br /&gt;
The current system allows the instructors to create assignments separately for calibration purposes. This is clearly inconvenient and ineffective as the students will not receive enough practice for peer reviewing on their normal assignments beforehand. &lt;br /&gt;
&lt;br /&gt;
Hence, if students were able to compare their reviews with the experts' review for normal assignments before providing actual peer reviews, they will be able to learn and improve their peer reviewing skills from the experts. Therefore, we have to integrate this feature of calibration reviewing in normal assignments as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the current system, the calibration functionality works correctly. In the assignments' edit page, once the instructor enables “Calibration for training?” and saves the assignment, an extra tab &amp;quot;Calibration&amp;quot; appears. After this, the instructor needs to add several sample assignments (right now instructor needs to impersonate several students to submit sample assignments) and do expert review beforehand. This is the existing functionality.&lt;br /&gt;
&lt;br /&gt;
In the proposed system, the flow of the assignment submission done by the student, changes. First is the calibration review of sample assignment, then normal assignment submission followed by rounds of peer reviews. &lt;br /&gt;
In the proposed system, once the “Calibration for training?” is enabled, in addition to the “Calibration” tab, a row for calibration deadline entry appears under the “Due dates” tab before any submissions row. The instructor has to enter the deadline for the calibration review and save the assignment.&lt;br /&gt;
&lt;br /&gt;
Consequently, the student assignments page, the stage of this assignment will be set to “Calibration” during the calibration period.  Furthermore, once the student submits one of the calibration reviews in the student_review page, the student can view the calibration results in the “Show calibration results” link. The calibration result shows the comparison of the student’s reviews and the respective instructor reviews.  Based on the result, the student will learn to give better peer reviews for the particular assignment. &lt;br /&gt;
&lt;br /&gt;
After completion of the calibration reviews (before the due date), the student should submit the assignment on/before the submission deadline, which is the existing functionality. Since the students have had enough experience during the calibration period on peer reviewing, the next task will be carried over effectively. &lt;br /&gt;
&lt;br /&gt;
Peer reviewing is the concept of review your peer’s work. This concept enables the students to understand the solution to a problem from multiple perspectives. This will also embed new ideas and the skill of constructive criticism in the student. And, hence, the student will provide peer reviews after the submission of their work. These rounds of reviews will be controlled by the instructor. Once all the submissions are made, the assignment’s stage gets assigned the finish status.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== System Use Cases ==&lt;br /&gt;
&lt;br /&gt;
Use Case Diagram :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image-oodd.png]]&lt;br /&gt;
&lt;br /&gt;
'''1. Add/Edit Assignment: Enable Calibration.''' &lt;br /&gt;
&lt;br /&gt;
Use Case Id : 1&lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Instructor&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Edit Assignment : Set Due Dates for Calibration and Peer Reviews'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 2&lt;br /&gt;
&lt;br /&gt;
Use Case Description : &lt;br /&gt;
&lt;br /&gt;
Actors : Instructor&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3. View the current stage in assignments as &amp;quot;Calibration&amp;quot; during the calibration period'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 3&lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4. View the pre-assigned sample assignments'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 4 &lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
'''5. Submit 'n' pre-assigned Calibration Reviews'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 5&lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''6. View the 'Calibration Result' after submitting'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 6&lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
'''7. Submit the assignment before the due date'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 7&lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''8. Request for a Peer Review'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 8&lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''9. Submit the Peer Review and request for next one until'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 9&lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''10. Submit the allowable number of Peer Reviews'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 10&lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Files to be Modified ==&lt;br /&gt;
&lt;br /&gt;
For implementing the functionality to allow calibration to be part of an assignment, there will be changes made to the view code and the models to include calibration into normal assignment. The following files are required to implement this feature.&lt;br /&gt;
&lt;br /&gt;
#DeadlineType model (Needs to support deadline type for Calibration)&lt;br /&gt;
#Assignments model (Calibration needs to be integrated into normal Assignment)&lt;br /&gt;
#_responses.html.erb (The user is able Begin calibration, view calibration results)&lt;br /&gt;
#StudentTask model (Have attribute Current Stage which should have the value ‘Calibration’).&lt;br /&gt;
#student_task/list.html.erb view (The Current Stage should be able to display ‘Calibration’ when the assignment is in calibration period).&lt;br /&gt;
#DueDate model (needs to store the calibration due dates for the assignments).&lt;br /&gt;
#caliberation_spec.rb (feature tests to verify our implementation)&lt;br /&gt;
#submitted_content/_self_review.html.erb&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A4_Allow_calibration_to_be_part_of_an_assignment&amp;diff=112482</id>
		<title>CSC/ECE 517 Fall 2017/E17A4 Allow calibration to be part of an assignment</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A4_Allow_calibration_to_be_part_of_an_assignment&amp;diff=112482"/>
		<updated>2017-11-08T00:54:45Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made according to the specification of E17A4 final project assignment for Fall 2017.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
In order to gain practice, the Student should be able to give calibration reviews before providing peer reviews. Thus, the Instructor should be able to enable calibration for every new and existing assignment. By this way, the student can improve peer reviewing by comparing his/her results with expert reviews for the same assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Limitation ===&lt;br /&gt;
At present, the instructor is able to calibrate the students’ peer review abilities on Expertiza by creating only a separate assignment for this purpose. In this separate assignment that the instructor creates, the student and the instructor will simultaneously do peer review for the project. After submission of the reviews, the student's and instructor's reviews are compared and a calibration report is generated for the student to view and improve their peer reviewing skills. &lt;br /&gt;
&lt;br /&gt;
Unfortunately, for students to practice peer reviewing, a separate assignment has to be created every time. In order to facilitate sufficient practice for peer review, this is not a convenient method.&lt;br /&gt;
&lt;br /&gt;
=== Proposed System ===&lt;br /&gt;
&lt;br /&gt;
The objective of this project is to enable calibration to be one part of the normal assignment. The instructor should be able to turn on this feature if necessary and provide the corresponding calibration deadline. The student should be pre-assigned sample assignments. Once the student submits the calibration reviews, the calibration results comparing the student and expert review are provided to the student. This feature should be available for normal assignments.&lt;br /&gt;
&lt;br /&gt;
==  System Overview ==&lt;br /&gt;
&lt;br /&gt;
Calibration review is the sample practice peer review used for comparing students' review with expert's review. The calibration results show the results and the experts' reviews, based on which the students can improve their peer reviewing skills.&lt;br /&gt;
&lt;br /&gt;
In the current system has the following actors:&lt;br /&gt;
&lt;br /&gt;
'''a) Instructors:'''Users who have administrative privileges to create/edit assignments and impersonate students&lt;br /&gt;
&lt;br /&gt;
'''b) Students:''' Users who submit assignments and peer reviews&lt;br /&gt;
&lt;br /&gt;
The current system allows the instructors to create assignments separately for calibration purposes. This is clearly inconvenient and ineffective as the students will not receive enough practice for peer reviewing on their normal assignments beforehand. &lt;br /&gt;
&lt;br /&gt;
Hence, if students were able to compare their reviews with the experts' review for normal assignments before providing actual peer reviews, they will be able to learn and improve their peer reviewing skills from the experts. Therefore, we have to integrate this feature of calibration reviewing in normal assignments as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the current system, the calibration functionality works correctly. In the assignments' edit page, once the instructor enables “Calibration for training?” and saves the assignment, an extra tab &amp;quot;Calibration&amp;quot; appears. After this, the instructor needs to add several sample assignments (right now instructor needs to impersonate several students to submit sample assignments) and do expert review beforehand. This is the existing functionality.&lt;br /&gt;
&lt;br /&gt;
In the proposed system, the flow of the assignment submission done by the student, changes. First is the calibration review of sample assignment, then normal assignment submission followed by rounds of peer reviews. &lt;br /&gt;
In the proposed system, once the “Calibration for training?” is enabled, in addition to the “Calibration” tab, a row for calibration deadline entry appears under the “Due dates” tab before any submissions row. The instructor has to enter the deadline for the calibration review and save the assignment.&lt;br /&gt;
&lt;br /&gt;
Consequently, the student assignments page, the stage of this assignment will be set to “Calibration” during the calibration period.  Furthermore, once the student submits one of the calibration reviews in the student_review page, the student can view the calibration results in the “Show calibration results” link. The calibration result shows the comparison of the student’s reviews and the respective instructor reviews.  Based on the result, the student will learn to give better peer reviews for the particular assignment. &lt;br /&gt;
&lt;br /&gt;
After completion of the calibration reviews (before the due date), the student should submit the assignment on/before the submission deadline, which is the existing functionality. Since the students have had enough experience during the calibration period on peer reviewing, the next task will be carried over effectively. &lt;br /&gt;
&lt;br /&gt;
Peer reviewing is the concept of review your peer’s work. This concept enables the students to understand the solution to a problem from multiple perspectives. This will also embed new ideas and the skill of constructive criticism in the student. And, hence, the student will provide peer reviews after the submission of their work. These rounds of reviews will be controlled by the instructor. Once all the submissions are made, the assignment’s stage gets assigned the finish status.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== System Use Cases ==&lt;br /&gt;
&lt;br /&gt;
Use Case Diagram :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image-oodd.png]]&lt;br /&gt;
&lt;br /&gt;
'''1. Add/Edit Assignment: Enable Calibration.''' &lt;br /&gt;
&lt;br /&gt;
Use Case Id : 1&lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Instructor&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Edit Assignment : Set Due Dates for Calibration and Peer Reviews'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 2&lt;br /&gt;
&lt;br /&gt;
Use Case Description : &lt;br /&gt;
&lt;br /&gt;
Actors : Instructor&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3. View the current stage in assignments as &amp;quot;Calibration&amp;quot; during the calibration period'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 3&lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4. View the pre-assigned sample assignments'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 4 &lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
'''5. Submit 'n' pre-assigned Calibration Reviews'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 5&lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''6. View the 'Calibration Result' after submitting'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 6&lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
'''7. Submit the assignment before the due date'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 7&lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''8. Request for a Peer Review'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 8&lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''9. Submit the Peer Review and request for next one until'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 9&lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''10. Submit the allowable number of Peer Reviews'''&lt;br /&gt;
&lt;br /&gt;
Use Case Id : 10&lt;br /&gt;
&lt;br /&gt;
Use Case Description :&lt;br /&gt;
&lt;br /&gt;
Actors : Student&lt;br /&gt;
&lt;br /&gt;
Pre Conditions:&lt;br /&gt;
&lt;br /&gt;
Post Conditions :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Files to be Modified ==&lt;br /&gt;
&lt;br /&gt;
For implementing the functionality to allow calibration to be part of an assignment, there will be changes made to the view code and the models to include calibration into normal assignment. The following files are required to implement this feature.&lt;br /&gt;
&lt;br /&gt;
1.	DeadlineType model (Needs to support deadline type for Calibration)&lt;br /&gt;
2.	Assignments model (Calibration needs to be integrated into normal Assignment)&lt;br /&gt;
3.	_responses.html.erb (The user is able Begin calibration, view calibration results)&lt;br /&gt;
4.	StudentTask model (Have attribute Current Stage which should have the value ‘Calibration’).&lt;br /&gt;
5.	student_task/list.html.erb view (The Current Stage should be able to display ‘Calibration’ when the assignment is in calibration period).&lt;br /&gt;
6.	DueDate model (needs to store the calibration due dates for the assignments).&lt;br /&gt;
7.	caliberation_spec.rb (feature tests to verify our implementation)&lt;br /&gt;
8.	submitted_content/_self_review.html.erb&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111065</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111065"/>
		<updated>2017-10-31T07:08:21Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later. The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==  Setting Up The Working Environment ==&lt;br /&gt;
''One of several ways to set up the environment and the one we adopted is:-'' &amp;lt;br&amp;gt;&lt;br /&gt;
'''Ubuntu-Expertiza image (.OVA) [Recommended]''' &amp;lt;br&amp;gt;&lt;br /&gt;
:This is the link for the image. (https://drive.google.com/a/ncsu.edu/file/d/0B2vDvVjH76uEUmNKVncxRUhUVVE/view?usp=sharing) &amp;lt;br&amp;gt;&lt;br /&gt;
:And you can install VirtualBox (free) and import this image into VirtualBox. &amp;lt;br&amp;gt;&lt;br /&gt;
'''Some machine may require you to enable virtualization and then run the following commands.'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cd expertiza &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;bash ./setup.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;bundle install &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;rake db:migrate &amp;lt;/pre&amp;gt;&lt;br /&gt;
*For logging in as an instructor:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: instructor6 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153)&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The User Interface for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* User Interface for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
The following tasks were listed as a requirement, but after careful examination it was determined that these tasks were already implemented&lt;br /&gt;
*The simplest fix: If I try to import topics, the import page gives me this message: “The import process expects the following columns:” but it doesn’t say what the columns are (topic number, topic name, category, number of slots, category)!  It used to be in the system; please revert the change to fix this bug.  See Issue https://github.com/expertiza/expertiza/issues/719.&lt;br /&gt;
*When teams are imported in order to insert new members, the members are not inserted.  See Issue https://github.com/expertiza/expertiza/issues/328.&lt;br /&gt;
*It should be possible to leave off the final fields in a line of a CSV file.  These fields are often not specified anyway.  For example, if a password isn’t specified when a new user is created, the system generates a password (see Issue 183).  When importing topics, topic categories are rarely specified.  But if the final field is blank, the import requires the CSV line to end with “, “ (comma and space).  This should be fixed for all imports.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export Review Mapping Functionality ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
app/views/export_file/_reviewer_mapping.html.erb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
We have the feature to import review mappings, but we do not have the feature to export the review mappings. Review Mapping used the common User Interface designed for export functionality. Due to this, the export feature wasn't working fine.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Created a partial render for Review Response Map. Add the feature of exporting review mapping and making sure it exports in the same format as importations.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1081&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export.PNG]]&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation 1) Expertiza Documentation]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza 2) Experitza on Github]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza/pull/1063 3) Pull Request 1]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza/pull/1077 4) Pull Request 2]&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111064</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111064"/>
		<updated>2017-10-31T07:07:54Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later. The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==  Setting Up The Working Environment ==&lt;br /&gt;
''One of several ways to set up the environment and the one we adopted is:-'' &amp;lt;br&amp;gt;&lt;br /&gt;
'''Ubuntu-Expertiza image (.OVA) [Recommended]''' &amp;lt;br&amp;gt;&lt;br /&gt;
:This is the link for the image. (https://drive.google.com/a/ncsu.edu/file/d/0B2vDvVjH76uEUmNKVncxRUhUVVE/view?usp=sharing) &amp;lt;br&amp;gt;&lt;br /&gt;
:And you can install VirtualBox (free) and import this image into VirtualBox. &amp;lt;br&amp;gt;&lt;br /&gt;
'''Some machine may require you to enable virtualization and then run the following commands.'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cd expertiza &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;bash ./setup.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;bundle install &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;rake db:migrate &amp;lt;/pre&amp;gt;&lt;br /&gt;
*For logging in as an instructor:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: instructor6 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153)&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The User Interface for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* User Interface for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
The following tasks were listed as a requirement, but after careful examination it was determined that these tasks were already implemented&lt;br /&gt;
*The simplest fix: If I try to import topics, the import page gives me this message: “The import process expects the following columns:” but it doesn’t say what the columns are (topic number, topic name, category, number of slots, category)!  It used to be in the system; please revert the change to fix this bug.  See Issue https://github.com/expertiza/expertiza/issues/719.&lt;br /&gt;
*When teams are imported in order to insert new members, the members are not inserted.  See Issue https://github.com/expertiza/expertiza/issues/328.&lt;br /&gt;
*It should be possible to leave off the final fields in a line of a CSV file.  These fields are often not specified anyway.  For example, if a password isn’t specified when a new user is created, the system generates a password (see Issue 183).  When importing topics, topic categories are rarely specified.  But if the final field is blank, the import requires the CSV line to end with “, “ (comma and space).  This should be fixed for all imports.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export Review Mapping Functionality ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
app/views/export_file/_reviewer_mapping.html.erb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
We have the feature to import review mappings, but we do not have the feature to export the review mappings. Review Mapping used the common User Interface designed for export functionality. Due to this, the export feature wasn't working fine.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Created a partial render for Review Response Map. Add the feature of exporting review mapping and making sure it exports in the same format as importations.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1081&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export.PNG]]&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation 1) Expertiza Documentation]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza 2) Experitza on Github]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza/pull/1063 3) Pull Request 1]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza/pull/1077 4) Pull Request 2]&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111063</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111063"/>
		<updated>2017-10-31T00:10:34Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later. The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==  Setting Up The Working Environment ==&lt;br /&gt;
''One of several ways to set up the environment and the one we adopted is:-'' &amp;lt;br&amp;gt;&lt;br /&gt;
'''Ubuntu-Expertiza image (.OVA) [Recommended]''' &amp;lt;br&amp;gt;&lt;br /&gt;
:This is the link for the image. (https://drive.google.com/a/ncsu.edu/file/d/0B2vDvVjH76uEUmNKVncxRUhUVVE/view?usp=sharing) &amp;lt;br&amp;gt;&lt;br /&gt;
:And you can install VirtualBox (free) and import this image into VirtualBox. &amp;lt;br&amp;gt;&lt;br /&gt;
'''Some machine may require you to enable virtualization and then run the following commands.'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cd expertiza &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;bash ./setup.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;bundle install &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;rake db:migrate &amp;lt;/pre&amp;gt;&lt;br /&gt;
*For logging in as an instructor:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: instructor6 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153)&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The User Interface for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* User Interface for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
The following tasks were listed as a requirement, but after careful examination it was determined that these tasks were already implemented&lt;br /&gt;
*The simplest fix: If I try to import topics, the import page gives me this message: “The import process expects the following columns:” but it doesn’t say what the columns are (topic number, topic name, category, number of slots, category)!  It used to be in the system; please revert the change to fix this bug.  See Issue https://github.com/expertiza/expertiza/issues/719.&lt;br /&gt;
*When teams are imported in order to insert new members, the members are not inserted.  See Issue https://github.com/expertiza/expertiza/issues/328.&lt;br /&gt;
*It should be possible to leave off the final fields in a line of a CSV file.  These fields are often not specified anyway.  For example, if a password isn’t specified when a new user is created, the system generates a password (see Issue 183).  When importing topics, topic categories are rarely specified.  But if the final field is blank, the import requires the CSV line to end with “, “ (comma and space).  This should be fixed for all imports.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export Review Mapping Functionality ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
app/views/export_file/_reviewer_mapping.html.erb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
We have the feature to import review mappings, but we do not have the feature to export the review mappings. Review Mapping used the common User Interface designed for export functionality. Due to this, the export feature wasn't working fine.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Created a partial render for Review Response Map. Add the feature of exporting review mapping and making sure it exports in the same format as importations.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1081&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export.PNG]]&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation 1) Expertiza Documentation]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza 2) Experitza on Github]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza/pull/1063 3) Pull Request 1]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza/pull/1077 4) Pull Request 2]&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111062</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111062"/>
		<updated>2017-10-30T21:35:53Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later. The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153)&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The User Interface for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* User Interface for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
The following tasks were listed as a requirement, but after careful examination it was determined that these tasks were already implemented&lt;br /&gt;
*The simplest fix: If I try to import topics, the import page gives me this message: “The import process expects the following columns:” but it doesn’t say what the columns are (topic number, topic name, category, number of slots, category)!  It used to be in the system; please revert the change to fix this bug.  See Issue https://github.com/expertiza/expertiza/issues/719.&lt;br /&gt;
*When teams are imported in order to insert new members, the members are not inserted.  See Issue https://github.com/expertiza/expertiza/issues/328.&lt;br /&gt;
*It should be possible to leave off the final fields in a line of a CSV file.  These fields are often not specified anyway.  For example, if a password isn’t specified when a new user is created, the system generates a password (see Issue 183).  When importing topics, topic categories are rarely specified.  But if the final field is blank, the import requires the CSV line to end with “, “ (comma and space).  This should be fixed for all imports.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export Review Mapping Functionality ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
app/views/export_file/_reviewer_mapping.html.erb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
We have the feature to import review mappings, but we do not have the feature to export the review mappings. Review Mapping used the common User Interface designed for export functionality. Due to this, the export feature wasn't working fine.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Created a partial render for Review Response Map. Add the feature of exporting review mapping and making sure it exports in the same format as importations.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1081&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export.PNG]]&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation 1) Expertiza Documentation]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza 2) Experitza on Github]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza/pull/1063 3) Pull Request 1]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza/pull/1077 4) Pull Request 2]&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111061</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111061"/>
		<updated>2017-10-30T21:35:25Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later. The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153)&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The User Interface for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* User Interface for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
The following tasks were listed as a requirement, but after careful examination it was determined that these tasks were already implemented&lt;br /&gt;
*The simplest fix: If I try to import topics, the import page gives me this message: “The import process expects the following columns:” but it doesn’t say what the columns are (topic number, topic name, category, number of slots, category)!  It used to be in the system; please revert the change to fix this bug.  See Issue https://github.com/expertiza/expertiza/issues/719.&lt;br /&gt;
*When teams are imported in order to insert new members, the members are not inserted.  See Issue https://github.com/expertiza/expertiza/issues/328.&lt;br /&gt;
*It should be possible to leave off the final fields in a line of a CSV file.  These fields are often not specified anyway.  For example, if a password isn’t specified when a new user is created, the system generates a password (see Issue 183).  When importing topics, topic categories are rarely specified.  But if the final field is blank, the import requires the CSV line to end with “, “ (comma and space).  This should be fixed for all imports.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export Review Mapping Functionality ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
app/views/export_file/_reviewer_mapping.html.erb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
We have the feature to import review mappings, but we do not have the feature to export the review mappings. Review Mapping used the common User Interface designed for export functionality. Due to this, the export feature wasn't working fine.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Created a partial render for Review Response Map. Add the feature of exporting review mapping and making sure it exports in the same format as importations.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1081&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export.PNG]]&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation Expertiza Documentation]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza Experitza on Github]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza/pull/1063 Pull Request 1]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza/pull/1077 Pull Request 2]&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111060</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111060"/>
		<updated>2017-10-30T21:35:09Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later. The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153)&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The User Interface for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* User Interface for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
The following tasks were listed as a requirement, but after careful examination it was determined that these tasks were already implemented&lt;br /&gt;
*The simplest fix: If I try to import topics, the import page gives me this message: “The import process expects the following columns:” but it doesn’t say what the columns are (topic number, topic name, category, number of slots, category)!  It used to be in the system; please revert the change to fix this bug.  See Issue https://github.com/expertiza/expertiza/issues/719.&lt;br /&gt;
*When teams are imported in order to insert new members, the members are not inserted.  See Issue https://github.com/expertiza/expertiza/issues/328.&lt;br /&gt;
*It should be possible to leave off the final fields in a line of a CSV file.  These fields are often not specified anyway.  For example, if a password isn’t specified when a new user is created, the system generates a password (see Issue 183).  When importing topics, topic categories are rarely specified.  But if the final field is blank, the import requires the CSV line to end with “, “ (comma and space).  This should be fixed for all imports.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export Review Mapping Functionality ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
app/views/export_file/_reviewer_mapping.html.erb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
We have the feature to import review mappings, but we do not have the feature to export the review mappings. Review Mapping used the common User Interface designed for export functionality. Due to this, the export feature wasn't working fine.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Created a partial render for Review Response Map. Add the feature of exporting review mapping and making sure it exports in the same format as importations.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1081&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export.PNG]]&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;poem&amp;gt;&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation Expertiza Documentation]&lt;br /&gt;
[https://github.com/expertiza/expertiza Experitza on Github]&lt;br /&gt;
[https://github.com/expertiza/expertiza/pull/1063 Pull Request 1]&lt;br /&gt;
[https://github.com/expertiza/expertiza/pull/1077 Pull Request 2]&lt;br /&gt;
&amp;lt;poem /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111059</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111059"/>
		<updated>2017-10-30T21:34:58Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later. The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153)&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The User Interface for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* User Interface for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
The following tasks were listed as a requirement, but after careful examination it was determined that these tasks were already implemented&lt;br /&gt;
*The simplest fix: If I try to import topics, the import page gives me this message: “The import process expects the following columns:” but it doesn’t say what the columns are (topic number, topic name, category, number of slots, category)!  It used to be in the system; please revert the change to fix this bug.  See Issue https://github.com/expertiza/expertiza/issues/719.&lt;br /&gt;
*When teams are imported in order to insert new members, the members are not inserted.  See Issue https://github.com/expertiza/expertiza/issues/328.&lt;br /&gt;
*It should be possible to leave off the final fields in a line of a CSV file.  These fields are often not specified anyway.  For example, if a password isn’t specified when a new user is created, the system generates a password (see Issue 183).  When importing topics, topic categories are rarely specified.  But if the final field is blank, the import requires the CSV line to end with “, “ (comma and space).  This should be fixed for all imports.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export Review Mapping Functionality ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
app/views/export_file/_reviewer_mapping.html.erb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
We have the feature to import review mappings, but we do not have the feature to export the review mappings. Review Mapping used the common User Interface designed for export functionality. Due to this, the export feature wasn't working fine.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Created a partial render for Review Response Map. Add the feature of exporting review mapping and making sure it exports in the same format as importations.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1081&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export.PNG]]&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;poem&amp;gt;&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation Expertiza Documentation]&lt;br /&gt;
[https://github.com/expertiza/expertiza Experitza on Github]&lt;br /&gt;
[https://github.com/expertiza/expertiza/pull/1063 Pull Request 1]&lt;br /&gt;
[https://github.com/expertiza/expertiza/pull/1077 Pull Request 2]&lt;br /&gt;
&amp;lt;poem/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111058</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111058"/>
		<updated>2017-10-30T21:33:38Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later. The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153)&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The User Interface for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* User Interface for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
The following tasks were listed as a requirement, but after careful examination it was determined that these tasks were already implemented&lt;br /&gt;
*The simplest fix: If I try to import topics, the import page gives me this message: “The import process expects the following columns:” but it doesn’t say what the columns are (topic number, topic name, category, number of slots, category)!  It used to be in the system; please revert the change to fix this bug.  See Issue https://github.com/expertiza/expertiza/issues/719.&lt;br /&gt;
*When teams are imported in order to insert new members, the members are not inserted.  See Issue https://github.com/expertiza/expertiza/issues/328.&lt;br /&gt;
*It should be possible to leave off the final fields in a line of a CSV file.  These fields are often not specified anyway.  For example, if a password isn’t specified when a new user is created, the system generates a password (see Issue 183).  When importing topics, topic categories are rarely specified.  But if the final field is blank, the import requires the CSV line to end with “, “ (comma and space).  This should be fixed for all imports.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export Review Mapping Functionality ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
app/views/export_file/_reviewer_mapping.html.erb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
We have the feature to import review mappings, but we do not have the feature to export the review mappings. Review Mapping used the common User Interface designed for export functionality. Due to this, the export feature wasn't working fine.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Created a partial render for Review Response Map. Add the feature of exporting review mapping and making sure it exports in the same format as importations.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1081&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export.PNG]]&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation Expertiza Documentation];&lt;br /&gt;
[https://github.com/expertiza/expertiza Experitza on Github];&lt;br /&gt;
[https://github.com/expertiza/expertiza/pull/1063 Pull Request 1];&lt;br /&gt;
[https://github.com/expertiza/expertiza/pull/1077 Pull Request 2];&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111057</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111057"/>
		<updated>2017-10-30T21:32:04Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later. The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153)&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The User Interface for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* User Interface for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
The following tasks were listed as a requirement, but after careful examination it was determined that these tasks were already implemented&lt;br /&gt;
*The simplest fix: If I try to import topics, the import page gives me this message: “The import process expects the following columns:” but it doesn’t say what the columns are (topic number, topic name, category, number of slots, category)!  It used to be in the system; please revert the change to fix this bug.  See Issue https://github.com/expertiza/expertiza/issues/719.&lt;br /&gt;
*When teams are imported in order to insert new members, the members are not inserted.  See Issue https://github.com/expertiza/expertiza/issues/328.&lt;br /&gt;
*It should be possible to leave off the final fields in a line of a CSV file.  These fields are often not specified anyway.  For example, if a password isn’t specified when a new user is created, the system generates a password (see Issue 183).  When importing topics, topic categories are rarely specified.  But if the final field is blank, the import requires the CSV line to end with “, “ (comma and space).  This should be fixed for all imports.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export Review Mapping Functionality ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
app/views/export_file/_reviewer_mapping.html.erb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
We have the feature to import review mappings, but we do not have the feature to export the review mappings. Review Mapping used the common User Interface designed for export functionality. Due to this, the export feature wasn't working fine.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Created a partial render for Review Response Map. Add the feature of exporting review mapping and making sure it exports in the same format as importations.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1081&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export.PNG]]&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
{{plainlist|&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation Expertiza Documentation]&lt;br /&gt;
[https://github.com/expertiza/expertiza Experitza on Github]&lt;br /&gt;
[https://github.com/expertiza/expertiza/pull/1063 Pull Request 1]&lt;br /&gt;
[https://github.com/expertiza/expertiza/pull/1077 Pull Request 2]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111056</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111056"/>
		<updated>2017-10-30T21:31:55Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later. The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153)&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The User Interface for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* User Interface for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
The following tasks were listed as a requirement, but after careful examination it was determined that these tasks were already implemented&lt;br /&gt;
*The simplest fix: If I try to import topics, the import page gives me this message: “The import process expects the following columns:” but it doesn’t say what the columns are (topic number, topic name, category, number of slots, category)!  It used to be in the system; please revert the change to fix this bug.  See Issue https://github.com/expertiza/expertiza/issues/719.&lt;br /&gt;
*When teams are imported in order to insert new members, the members are not inserted.  See Issue https://github.com/expertiza/expertiza/issues/328.&lt;br /&gt;
*It should be possible to leave off the final fields in a line of a CSV file.  These fields are often not specified anyway.  For example, if a password isn’t specified when a new user is created, the system generates a password (see Issue 183).  When importing topics, topic categories are rarely specified.  But if the final field is blank, the import requires the CSV line to end with “, “ (comma and space).  This should be fixed for all imports.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export Review Mapping Functionality ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
app/views/export_file/_reviewer_mapping.html.erb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
We have the feature to import review mappings, but we do not have the feature to export the review mappings. Review Mapping used the common User Interface designed for export functionality. Due to this, the export feature wasn't working fine.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Created a partial render for Review Response Map. Add the feature of exporting review mapping and making sure it exports in the same format as importations.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1081&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export.PNG]]&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
{{list|&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation Expertiza Documentation]&lt;br /&gt;
[https://github.com/expertiza/expertiza Experitza on Github]&lt;br /&gt;
[https://github.com/expertiza/expertiza/pull/1063 Pull Request 1]&lt;br /&gt;
[https://github.com/expertiza/expertiza/pull/1077 Pull Request 2]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111055</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111055"/>
		<updated>2017-10-30T21:30:36Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later. The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153)&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The User Interface for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* User Interface for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
The following tasks were listed as a requirement, but after careful examination it was determined that these tasks were already implemented&lt;br /&gt;
*The simplest fix: If I try to import topics, the import page gives me this message: “The import process expects the following columns:” but it doesn’t say what the columns are (topic number, topic name, category, number of slots, category)!  It used to be in the system; please revert the change to fix this bug.  See Issue https://github.com/expertiza/expertiza/issues/719.&lt;br /&gt;
*When teams are imported in order to insert new members, the members are not inserted.  See Issue https://github.com/expertiza/expertiza/issues/328.&lt;br /&gt;
*It should be possible to leave off the final fields in a line of a CSV file.  These fields are often not specified anyway.  For example, if a password isn’t specified when a new user is created, the system generates a password (see Issue 183).  When importing topics, topic categories are rarely specified.  But if the final field is blank, the import requires the CSV line to end with “, “ (comma and space).  This should be fixed for all imports.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export Review Mapping Functionality ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
app/views/export_file/_reviewer_mapping.html.erb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
We have the feature to import review mappings, but we do not have the feature to export the review mappings. Review Mapping used the common User Interface designed for export functionality. Due to this, the export feature wasn't working fine.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Created a partial render for Review Response Map. Add the feature of exporting review mapping and making sure it exports in the same format as importations.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1081&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export.PNG]]&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation Expertiza Documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;[https://github.com/expertiza/expertiza Experitza on Github]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;[https://github.com/expertiza/expertiza/pull/1063 Pull Request 1]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;[https://github.com/expertiza/expertiza/pull/1077 Pull Request 2]&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111054</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111054"/>
		<updated>2017-10-30T21:29:34Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later. The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153)&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The User Interface for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* User Interface for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
The following tasks were listed as a requirement, but after careful examination it was determined that these tasks were already implemented&lt;br /&gt;
*The simplest fix: If I try to import topics, the import page gives me this message: “The import process expects the following columns:” but it doesn’t say what the columns are (topic number, topic name, category, number of slots, category)!  It used to be in the system; please revert the change to fix this bug.  See Issue https://github.com/expertiza/expertiza/issues/719.&lt;br /&gt;
*When teams are imported in order to insert new members, the members are not inserted.  See Issue https://github.com/expertiza/expertiza/issues/328.&lt;br /&gt;
*It should be possible to leave off the final fields in a line of a CSV file.  These fields are often not specified anyway.  For example, if a password isn’t specified when a new user is created, the system generates a password (see Issue 183).  When importing topics, topic categories are rarely specified.  But if the final field is blank, the import requires the CSV line to end with “, “ (comma and space).  This should be fixed for all imports.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export Review Mapping Functionality ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
app/views/export_file/_reviewer_mapping.html.erb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
We have the feature to import review mappings, but we do not have the feature to export the review mappings. Review Mapping used the common User Interface designed for export functionality. Due to this, the export feature wasn't working fine.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Created a partial render for Review Response Map. Add the feature of exporting review mapping and making sure it exports in the same format as importations.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1081&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export.PNG]]&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation Expertiza Documentation]&lt;br /&gt;
[https://github.com/expertiza/expertiza Experitza on Github]&lt;br /&gt;
[https://github.com/expertiza/expertiza/pull/1063 Pull Request 1]&lt;br /&gt;
[https://github.com/expertiza/expertiza/pull/1077 Pull Request 2]&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111053</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111053"/>
		<updated>2017-10-30T21:27:50Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later. The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153)&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The User Interface for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* User Interface for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
The following tasks were listed as a requirement, but after careful examination it was determined that these tasks were already implemented&lt;br /&gt;
*The simplest fix: If I try to import topics, the import page gives me this message: “The import process expects the following columns:” but it doesn’t say what the columns are (topic number, topic name, category, number of slots, category)!  It used to be in the system; please revert the change to fix this bug.  See Issue https://github.com/expertiza/expertiza/issues/719.&lt;br /&gt;
*When teams are imported in order to insert new members, the members are not inserted.  See Issue https://github.com/expertiza/expertiza/issues/328.&lt;br /&gt;
*It should be possible to leave off the final fields in a line of a CSV file.  These fields are often not specified anyway.  For example, if a password isn’t specified when a new user is created, the system generates a password (see Issue 183).  When importing topics, topic categories are rarely specified.  But if the final field is blank, the import requires the CSV line to end with “, “ (comma and space).  This should be fixed for all imports.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export Review Mapping Functionality ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
app/views/export_file/_reviewer_mapping.html.erb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
We have the feature to import review mappings, but we do not have the feature to export the review mappings. Review Mapping used the common User Interface designed for export functionality. Due to this, the export feature wasn't working fine.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Created a partial render for Review Response Map. Add the feature of exporting review mapping and making sure it exports in the same format as importations.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1081&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export.PNG]]&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
{{cite web | url = | title = Expertiza Documentation| accessdate = 27 Oct 2017 | }}&lt;br /&gt;
{{cite web | url = https://github.com/expertiza/expertiza| title = Experitza on Github | accessdate = 27 Oct 2017 | }}&lt;br /&gt;
{{cite web | url = https://github.com/expertiza/expertiza/pull/1063| title =  Issue 153 | accessdate = 27 Oct 2017 | }}&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation Expertiza Documentation]&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111052</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111052"/>
		<updated>2017-10-30T21:27:41Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later. The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153)&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The User Interface for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* User Interface for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
The following tasks were listed as a requirement, but after careful examination it was determined that these tasks were already implemented&lt;br /&gt;
*The simplest fix: If I try to import topics, the import page gives me this message: “The import process expects the following columns:” but it doesn’t say what the columns are (topic number, topic name, category, number of slots, category)!  It used to be in the system; please revert the change to fix this bug.  See Issue https://github.com/expertiza/expertiza/issues/719.&lt;br /&gt;
*When teams are imported in order to insert new members, the members are not inserted.  See Issue https://github.com/expertiza/expertiza/issues/328.&lt;br /&gt;
*It should be possible to leave off the final fields in a line of a CSV file.  These fields are often not specified anyway.  For example, if a password isn’t specified when a new user is created, the system generates a password (see Issue 183).  When importing topics, topic categories are rarely specified.  But if the final field is blank, the import requires the CSV line to end with “, “ (comma and space).  This should be fixed for all imports.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export Review Mapping Functionality ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
app/views/export_file/_reviewer_mapping.html.erb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
We have the feature to import review mappings, but we do not have the feature to export the review mappings. Review Mapping used the common User Interface designed for export functionality. Due to this, the export feature wasn't working fine.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Created a partial render for Review Response Map. Add the feature of exporting review mapping and making sure it exports in the same format as importations.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1081&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export.PNG]]&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
{{cite web | url = | title = Expertiza Documentation| accessdate = 27 Oct 2017 | }}&lt;br /&gt;
{{cite web | url = https://github.com/expertiza/expertiza| title = Experitza on Github | accessdate = 27 Oct 2017 | }}&lt;br /&gt;
{{cite web | url = https://github.com/expertiza/expertiza/pull/1063| title =  Issue 153 | accessdate = 27 Oct 2017 | }}&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation | title Expertiza Documentation]&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111051</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111051"/>
		<updated>2017-10-30T21:27:13Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later. The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153)&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The User Interface for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* User Interface for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
The following tasks were listed as a requirement, but after careful examination it was determined that these tasks were already implemented&lt;br /&gt;
*The simplest fix: If I try to import topics, the import page gives me this message: “The import process expects the following columns:” but it doesn’t say what the columns are (topic number, topic name, category, number of slots, category)!  It used to be in the system; please revert the change to fix this bug.  See Issue https://github.com/expertiza/expertiza/issues/719.&lt;br /&gt;
*When teams are imported in order to insert new members, the members are not inserted.  See Issue https://github.com/expertiza/expertiza/issues/328.&lt;br /&gt;
*It should be possible to leave off the final fields in a line of a CSV file.  These fields are often not specified anyway.  For example, if a password isn’t specified when a new user is created, the system generates a password (see Issue 183).  When importing topics, topic categories are rarely specified.  But if the final field is blank, the import requires the CSV line to end with “, “ (comma and space).  This should be fixed for all imports.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export Review Mapping Functionality ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
app/views/export_file/_reviewer_mapping.html.erb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
We have the feature to import review mappings, but we do not have the feature to export the review mappings. Review Mapping used the common User Interface designed for export functionality. Due to this, the export feature wasn't working fine.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Created a partial render for Review Response Map. Add the feature of exporting review mapping and making sure it exports in the same format as importations.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1081&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export.PNG]]&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
{{cite web | url = | title = Expertiza Documentation| accessdate = 27 Oct 2017 | }}&lt;br /&gt;
{{cite web | url = https://github.com/expertiza/expertiza| title = Experitza on Github | accessdate = 27 Oct 2017 | }}&lt;br /&gt;
{{cite web | url = https://github.com/expertiza/expertiza/pull/1063| title =  Issue 153 | accessdate = 27 Oct 2017 | }}&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation link title Expertiza Documentation]&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111050</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111050"/>
		<updated>2017-10-30T21:25:05Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later.&amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza| title = Experitza on Github | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153) &amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza/pull/1063| title =  Issue 153 | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The User Interface for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* User Interface for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
The following tasks were listed as a requirement, but after careful examination it was determined that these tasks were already implemented&lt;br /&gt;
*The simplest fix: If I try to import topics, the import page gives me this message: “The import process expects the following columns:” but it doesn’t say what the columns are (topic number, topic name, category, number of slots, category)!  It used to be in the system; please revert the change to fix this bug.  See Issue https://github.com/expertiza/expertiza/issues/719.&lt;br /&gt;
*When teams are imported in order to insert new members, the members are not inserted.  See Issue https://github.com/expertiza/expertiza/issues/328.&lt;br /&gt;
*It should be possible to leave off the final fields in a line of a CSV file.  These fields are often not specified anyway.  For example, if a password isn’t specified when a new user is created, the system generates a password (see Issue 183).  When importing topics, topic categories are rarely specified.  But if the final field is blank, the import requires the CSV line to end with “, “ (comma and space).  This should be fixed for all imports.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export Review Mapping Functionality ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
app/views/export_file/_reviewer_mapping.html.erb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
We have the feature to import review mappings, but we do not have the feature to export the review mappings. Review Mapping used the common User Interface designed for export functionality. Due to this, the export feature wasn't working fine.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Created a partial render for Review Response Map. Add the feature of exporting review mapping and making sure it exports in the same format as importations.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1081&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export.PNG]]&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
{{cite web | url = http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation| title = Expertiza Documentation| accessdate = 27 Oct 2017 | }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111049</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111049"/>
		<updated>2017-10-30T21:24:05Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. &amp;lt;ref&amp;gt; {{cite web | url = http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation| title = Expertiza Documentation| accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later.&amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza| title = Experitza on Github | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153) &amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza/pull/1063| title =  Issue 153 | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The User Interface for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* User Interface for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
The following tasks were listed as a requirement, but after careful examination it was determined that these tasks were already implemented&lt;br /&gt;
*The simplest fix: If I try to import topics, the import page gives me this message: “The import process expects the following columns:” but it doesn’t say what the columns are (topic number, topic name, category, number of slots, category)!  It used to be in the system; please revert the change to fix this bug.  See Issue https://github.com/expertiza/expertiza/issues/719.&lt;br /&gt;
*When teams are imported in order to insert new members, the members are not inserted.  See Issue https://github.com/expertiza/expertiza/issues/328.&lt;br /&gt;
*It should be possible to leave off the final fields in a line of a CSV file.  These fields are often not specified anyway.  For example, if a password isn’t specified when a new user is created, the system generates a password (see Issue 183).  When importing topics, topic categories are rarely specified.  But if the final field is blank, the import requires the CSV line to end with “, “ (comma and space).  This should be fixed for all imports.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export Review Mapping Functionality ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
app/views/export_file/_reviewer_mapping.html.erb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
We have the feature to import review mappings, but we do not have the feature to export the review mappings. Review Mapping used the common User Interface designed for export functionality. Due to this, the export feature wasn't working fine.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Created a partial render for Review Response Map. Add the feature of exporting review mapping and making sure it exports in the same format as importations.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1081&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export.PNG]]&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111048</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111048"/>
		<updated>2017-10-30T21:23:47Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. &amp;lt;ref&amp;gt; {{cite web | url = http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation| title = Expertiza Documentation| accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later.&amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza| title = Experitza on Github | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153) &amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza/pull/1063| title =  Issue 153 | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The User Interface for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* User Interface for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
The following tasks were listed as a requirement, but after careful examination it was determined that these tasks were already implemented&lt;br /&gt;
*The simplest fix: If I try to import topics, the import page gives me this message: “The import process expects the following columns:” but it doesn’t say what the columns are (topic number, topic name, category, number of slots, category)!  It used to be in the system; please revert the change to fix this bug.  See Issue https://github.com/expertiza/expertiza/issues/719.&lt;br /&gt;
*When teams are imported in order to insert new members, the members are not inserted.  See Issue https://github.com/expertiza/expertiza/issues/328.&lt;br /&gt;
*It should be possible to leave off the final fields in a line of a CSV file.  These fields are often not specified anyway.  For example, if a password isn’t specified when a new user is created, the system generates a password (see Issue 183).  When importing topics, topic categories are rarely specified.  But if the final field is blank, the import requires the CSV line to end with “, “ (comma and space).  This should be fixed for all imports.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export Review Mapping Functionality ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
app/views/export_file/_reviewer_mapping.html.erb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
We have the feature to import review mappings, but we do not have the feature to export the review mappings. Review Mapping used the common User Interface designed for export functionality. Due to this, the export feature wasn't working fine.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Created a partial render for Review Response Map. Add the feature of exporting review mapping and making sure it exports in the same format as importations.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1081&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export.PNG]]&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* reference 1&lt;br /&gt;
* reference 2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111047</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111047"/>
		<updated>2017-10-30T21:23:11Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. &amp;lt;ref&amp;gt; {{cite web | url = http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation| title = Expertiza Documentation| accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later.&amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza| title = Experitza on Github | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153) &amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza/pull/1063| title =  Issue 153 | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The User Interface for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* User Interface for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
The following tasks were listed as a requirement, but after careful examination it was determined that these tasks were already implemented&lt;br /&gt;
*The simplest fix: If I try to import topics, the import page gives me this message: “The import process expects the following columns:” but it doesn’t say what the columns are (topic number, topic name, category, number of slots, category)!  It used to be in the system; please revert the change to fix this bug.  See Issue https://github.com/expertiza/expertiza/issues/719.&lt;br /&gt;
*When teams are imported in order to insert new members, the members are not inserted.  See Issue https://github.com/expertiza/expertiza/issues/328.&lt;br /&gt;
*It should be possible to leave off the final fields in a line of a CSV file.  These fields are often not specified anyway.  For example, if a password isn’t specified when a new user is created, the system generates a password (see Issue 183).  When importing topics, topic categories are rarely specified.  But if the final field is blank, the import requires the CSV line to end with “, “ (comma and space).  This should be fixed for all imports.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export Review Mapping Functionality ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
app/views/export_file/_reviewer_mapping.html.erb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
We have the feature to import review mappings, but we do not have the feature to export the review mappings. Review Mapping used the common User Interface designed for export functionality. Due to this, the export feature wasn't working fine.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Created a partial render for Review Response Map. Add the feature of exporting review mapping and making sure it exports in the same format as importations.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1081&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export.PNG]]&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{Refbegin}}&lt;br /&gt;
* reference 1&lt;br /&gt;
* reference 2&lt;br /&gt;
{{Refend}}&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111046</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111046"/>
		<updated>2017-10-30T21:22:09Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. &amp;lt;ref&amp;gt; {{cite web | url = http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation| title = Expertiza Documentation| accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later.&amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza| title = Experitza on Github | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153) &amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza/pull/1063| title =  Issue 153 | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The User Interface for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* User Interface for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
The following tasks were listed as a requirement, but after careful examination it was determined that these tasks were already implemented&lt;br /&gt;
*The simplest fix: If I try to import topics, the import page gives me this message: “The import process expects the following columns:” but it doesn’t say what the columns are (topic number, topic name, category, number of slots, category)!  It used to be in the system; please revert the change to fix this bug.  See Issue https://github.com/expertiza/expertiza/issues/719.&lt;br /&gt;
*When teams are imported in order to insert new members, the members are not inserted.  See Issue https://github.com/expertiza/expertiza/issues/328.&lt;br /&gt;
*It should be possible to leave off the final fields in a line of a CSV file.  These fields are often not specified anyway.  For example, if a password isn’t specified when a new user is created, the system generates a password (see Issue 183).  When importing topics, topic categories are rarely specified.  But if the final field is blank, the import requires the CSV line to end with “, “ (comma and space).  This should be fixed for all imports.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export Review Mapping Functionality ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
app/views/export_file/_reviewer_mapping.html.erb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
We have the feature to import review mappings, but we do not have the feature to export the review mappings. Review Mapping used the common User Interface designed for export functionality. Due to this, the export feature wasn't working fine.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Created a partial render for Review Response Map. Add the feature of exporting review mapping and making sure it exports in the same format as importations.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1081&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export.PNG]]&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111045</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111045"/>
		<updated>2017-10-30T21:21:58Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. &amp;lt;ref&amp;gt; {{cite web | url = http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation| title = Expertiza Documentation| accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later.&amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza| title = Experitza on Github | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153) &amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza/pull/1063| title =  Issue 153 | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The User Interface for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* User Interface for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
The following tasks were listed as a requirement, but after careful examination it was determined that these tasks were already implemented&lt;br /&gt;
*The simplest fix: If I try to import topics, the import page gives me this message: “The import process expects the following columns:” but it doesn’t say what the columns are (topic number, topic name, category, number of slots, category)!  It used to be in the system; please revert the change to fix this bug.  See Issue https://github.com/expertiza/expertiza/issues/719.&lt;br /&gt;
*When teams are imported in order to insert new members, the members are not inserted.  See Issue https://github.com/expertiza/expertiza/issues/328.&lt;br /&gt;
*It should be possible to leave off the final fields in a line of a CSV file.  These fields are often not specified anyway.  For example, if a password isn’t specified when a new user is created, the system generates a password (see Issue 183).  When importing topics, topic categories are rarely specified.  But if the final field is blank, the import requires the CSV line to end with “, “ (comma and space).  This should be fixed for all imports.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export Review Mapping Functionality ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
app/views/export_file/_reviewer_mapping.html.erb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
We have the feature to import review mappings, but we do not have the feature to export the review mappings. Review Mapping used the common User Interface designed for export functionality. Due to this, the export feature wasn't working fine.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Created a partial render for Review Response Map. Add the feature of exporting review mapping and making sure it exports in the same format as importations.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1081&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export.PNG]]&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/SaiSameer/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111044</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111044"/>
		<updated>2017-10-30T21:21:21Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. &amp;lt;ref&amp;gt; {{cite web | url = http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation| title = Expertiza Documentation| accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later.&amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza| title = Experitza on Github | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153) &amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza/pull/1063| title =  Issue 153 | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The User Interface for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* User Interface for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
The following tasks were listed as a requirement, but after careful examination it was determined that these tasks were already implemented&lt;br /&gt;
*The simplest fix: If I try to import topics, the import page gives me this message: “The import process expects the following columns:” but it doesn’t say what the columns are (topic number, topic name, category, number of slots, category)!  It used to be in the system; please revert the change to fix this bug.  See Issue https://github.com/expertiza/expertiza/issues/719.&lt;br /&gt;
*When teams are imported in order to insert new members, the members are not inserted.  See Issue https://github.com/expertiza/expertiza/issues/328.&lt;br /&gt;
*It should be possible to leave off the final fields in a line of a CSV file.  These fields are often not specified anyway.  For example, if a password isn’t specified when a new user is created, the system generates a password (see Issue 183).  When importing topics, topic categories are rarely specified.  But if the final field is blank, the import requires the CSV line to end with “, “ (comma and space).  This should be fixed for all imports.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export Review Mapping Functionality ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
app/views/export_file/_reviewer_mapping.html.erb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
We have the feature to import review mappings, but we do not have the feature to export the review mappings. Review Mapping used the common User Interface designed for export functionality. Due to this, the export feature wasn't working fine.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Created a partial render for Review Response Map. Add the feature of exporting review mapping and making sure it exports in the same format as importations.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1081&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export.PNG]]&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/SaiSameer/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111043</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111043"/>
		<updated>2017-10-30T21:21:06Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. &amp;lt;ref&amp;gt; {{cite web | url = http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation| title = Expertiza Documentation| accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later.&amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza| title = Experitza on Github | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153) &amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza/pull/1063| title =  Issue 153 | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The User Interface for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* User Interface for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
The following tasks were listed as a requirement, but after careful examination it was determined that these tasks were already implemented&lt;br /&gt;
*The simplest fix: If I try to import topics, the import page gives me this message: “The import process expects the following columns:” but it doesn’t say what the columns are (topic number, topic name, category, number of slots, category)!  It used to be in the system; please revert the change to fix this bug.  See Issue https://github.com/expertiza/expertiza/issues/719.&lt;br /&gt;
*When teams are imported in order to insert new members, the members are not inserted.  See Issue https://github.com/expertiza/expertiza/issues/328.&lt;br /&gt;
*It should be possible to leave off the final fields in a line of a CSV file.  These fields are often not specified anyway.  For example, if a password isn’t specified when a new user is created, the system generates a password (see Issue 183).  When importing topics, topic categories are rarely specified.  But if the final field is blank, the import requires the CSV line to end with “, “ (comma and space).  This should be fixed for all imports.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export Review Mapping Functionality ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
app/views/export_file/_reviewer_mapping.html.erb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
We have the feature to import review mappings, but we do not have the feature to export the review mappings. Review Mapping used the common User Interface designed for export functionality. Due to this, the export feature wasn't working fine.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Created a partial render for Review Response Map. Add the feature of exporting review mapping and making sure it exports in the same format as importations.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1081&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export.PNG]]&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/SaiSameer/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111042</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111042"/>
		<updated>2017-10-30T21:18:10Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. &amp;lt;ref&amp;gt; {{cite web | url = http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation| title = Expertiza Documentation| accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later.&amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza| title = Experitza on Github | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153) &amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza/pull/1063| title =  Issue 153 | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The User Interface for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* User Interface for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
The following tasks were listed as a requirement, but after careful examination it was determined that these tasks were already implemented&lt;br /&gt;
*The simplest fix: If I try to import topics, the import page gives me this message: “The import process expects the following columns:” but it doesn’t say what the columns are (topic number, topic name, category, number of slots, category)!  It used to be in the system; please revert the change to fix this bug.  See Issue https://github.com/expertiza/expertiza/issues/719.&lt;br /&gt;
*When teams are imported in order to insert new members, the members are not inserted.  See Issue https://github.com/expertiza/expertiza/issues/328.&lt;br /&gt;
*It should be possible to leave off the final fields in a line of a CSV file.  These fields are often not specified anyway.  For example, if a password isn’t specified when a new user is created, the system generates a password (see Issue 183).  When importing topics, topic categories are rarely specified.  But if the final field is blank, the import requires the CSV line to end with “, “ (comma and space).  This should be fixed for all imports.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export Review Mapping Functionality ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
app/views/export_file/_reviewer_mapping.html.erb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
We have the feature to import review mappings, but we do not have the feature to export the review mappings. Review Mapping used the common User Interface designed for export functionality. Due to this, the export feature wasn't working fine.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Created a partial render for Review Response Map. Add the feature of exporting review mapping and making sure it exports in the same format as importations.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1081&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export.PNG]]&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111041</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111041"/>
		<updated>2017-10-30T21:16:01Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. &amp;lt;ref&amp;gt; {{cite web | url = http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation| title = Expertiza Documentation| accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later.&amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza| title = Experitza on Github | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153) &amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza/pull/1063| title =  Issue 153 | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The User Interface for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* User Interface for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
The following tasks were listed as a requirement, but after careful examination it was determined that these tasks were already implemented&lt;br /&gt;
*The simplest fix: If I try to import topics, the import page gives me this message: “The import process expects the following columns:” but it doesn’t say what the columns are (topic number, topic name, category, number of slots, category)!  It used to be in the system; please revert the change to fix this bug.  See Issue https://github.com/expertiza/expertiza/issues/719.&lt;br /&gt;
*When teams are imported in order to insert new members, the members are not inserted.  See Issue https://github.com/expertiza/expertiza/issues/328.&lt;br /&gt;
*It should be possible to leave off the final fields in a line of a CSV file.  These fields are often not specified anyway.  For example, if a password isn’t specified when a new user is created, the system generates a password (see Issue 183).  When importing topics, topic categories are rarely specified.  But if the final field is blank, the import requires the CSV line to end with “, “ (comma and space).  This should be fixed for all imports.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export Review Mapping Functionality ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
app/views/export_file/_reviewer_mapping.html.erb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
We have the feature to import review mappings, but we do not have the feature to export the review mappings. Review Mapping used the common User Interface designed for export functionality. Due to this, the export feature wasn't working fine.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Created a partial render for Review Response Map. Add the feature of exporting review mapping and making sure it exports in the same format as importations.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1081&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export.PNG]]&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{reflist}}&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111013</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111013"/>
		<updated>2017-10-30T20:10:34Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. &amp;lt;ref&amp;gt; {{cite web | url = http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation| title = Expertiza Documentation| accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later.&amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza| title = Experitza on Github | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153) &amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza/pull/1063| title =  Issue 153 | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The User Interface for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* User Interface for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
The following tasks were listed as a requirement, but after careful examination it was determined that these tasks were already implemented&lt;br /&gt;
*The simplest fix: If I try to import topics, the import page gives me this message: “The import process expects the following columns:” but it doesn’t say what the columns are (topic number, topic name, category, number of slots, category)!  It used to be in the system; please revert the change to fix this bug.  See Issue https://github.com/expertiza/expertiza/issues/719.&lt;br /&gt;
*When teams are imported in order to insert new members, the members are not inserted.  See Issue https://github.com/expertiza/expertiza/issues/328.&lt;br /&gt;
*It should be possible to leave off the final fields in a line of a CSV file.  These fields are often not specified anyway.  For example, if a password isn’t specified when a new user is created, the system generates a password (see Issue 183).  When importing topics, topic categories are rarely specified.  But if the final field is blank, the import requires the CSV line to end with “, “ (comma and space).  This should be fixed for all imports.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export Review Mapping Functionality ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
app/views/export_file/_reviewer_mapping.html.erb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
We have the feature to import review mappings, but we do not have the feature to export the review mappings. Review Mapping used the common User Interface designed for export functionality. Due to this, the export feature wasn't working fine.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Created a partial render for Review Response Map. Add the feature of exporting review mapping and making sure it exports in the same format as importations.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1081&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export.PNG]]&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111012</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111012"/>
		<updated>2017-10-30T20:09:42Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. &amp;lt;ref&amp;gt; {{cite web | url = http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation| title = Expertiza Documentation| accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later.&amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza| title = Experitza on Github | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153) &amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza/pull/1063| title =  Issue 153 | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The User Interface for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* User Interface for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
The following tasks were listed as a requirement, but after careful examination it was determined that these tasks were already implemented&lt;br /&gt;
*The simplest fix: If I try to import topics, the import page gives me this message: “The import process expects the following columns:” but it doesn’t say what the columns are (topic number, topic name, category, number of slots, category)!  It used to be in the system; please revert the change to fix this bug.  See Issue https://github.com/expertiza/expertiza/issues/719.&lt;br /&gt;
*When teams are imported in order to insert new members, the members are not inserted.  See Issue https://github.com/expertiza/expertiza/issues/328.&lt;br /&gt;
*It should be possible to leave off the final fields in a line of a CSV file.  These fields are often not specified anyway.  For example, if a password isn’t specified when a new user is created, the system generates a password (see Issue 183).  When importing topics, topic categories are rarely specified.  But if the final field is blank, the import requires the CSV line to end with “, “ (comma and space).  This should be fixed for all imports.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export Review Mapping Functionality ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
app/views/export_file/_reviewer_mapping.html.erb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
We have the feature to import review mappings, but we do not have the feature to export the review mappings. Review Mapping used the common User Interface designed for export functionality. Due to this, the export feature wasn't working fine.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Created a partial render for Review Response Map. Add the feature of exporting review mapping and making sure it exports in the same format as importations.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1081&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export.PNG]]&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111011</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111011"/>
		<updated>2017-10-30T20:03:29Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: /* Export Review Mapping Functionality */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. &amp;lt;ref&amp;gt; {{cite web | url = http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation| title = Expertiza Documentation| accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later.&amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza| title = Experitza on Github | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153) &amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza/pull/1063| title =  Issue 153 | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The User Interface for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* User Interface for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
The following tasks were listed as a requirement, but after careful examination it was determined that these tasks were already implemented&lt;br /&gt;
*The simplest fix: If I try to import topics, the import page gives me this message: “The import process expects the following columns:” but it doesn’t say what the columns are (topic number, topic name, category, number of slots, category)!  It used to be in the system; please revert the change to fix this bug.  See Issue https://github.com/expertiza/expertiza/issues/719.&lt;br /&gt;
*When teams are imported in order to insert new members, the members are not inserted.  See Issue https://github.com/expertiza/expertiza/issues/328.&lt;br /&gt;
*It should be possible to leave off the final fields in a line of a CSV file.  These fields are often not specified anyway.  For example, if a password isn’t specified when a new user is created, the system generates a password (see Issue 183).  When importing topics, topic categories are rarely specified.  But if the final field is blank, the import requires the CSV line to end with “, “ (comma and space).  This should be fixed for all imports.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export Review Mapping Functionality ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
app/views/export_file/_reviewer_mapping.html.erb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1081&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export.PNG]]&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111010</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111010"/>
		<updated>2017-10-30T19:56:53Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. &amp;lt;ref&amp;gt; {{cite web | url = http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation| title = Expertiza Documentation| accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later.&amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza| title = Experitza on Github | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153) &amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza/pull/1063| title =  Issue 153 | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The User Interface for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* User Interface for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
The following tasks were listed as a requirement, but after careful examination it was determined that these tasks were already implemented&lt;br /&gt;
*The simplest fix: If I try to import topics, the import page gives me this message: “The import process expects the following columns:” but it doesn’t say what the columns are (topic number, topic name, category, number of slots, category)!  It used to be in the system; please revert the change to fix this bug.  See Issue https://github.com/expertiza/expertiza/issues/719.&lt;br /&gt;
*When teams are imported in order to insert new members, the members are not inserted.  See Issue https://github.com/expertiza/expertiza/issues/328.&lt;br /&gt;
*It should be possible to leave off the final fields in a line of a CSV file.  These fields are often not specified anyway.  For example, if a password isn’t specified when a new user is created, the system generates a password (see Issue 183).  When importing topics, topic categories are rarely specified.  But if the final field is blank, the import requires the CSV line to end with “, “ (comma and space).  This should be fixed for all imports.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export Review Mapping Functionality ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Review_mapping_export.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Review_mapping_export.PNG&amp;diff=111009</id>
		<title>File:Review mapping export.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Review_mapping_export.PNG&amp;diff=111009"/>
		<updated>2017-10-30T19:56:06Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Review_mapping_export1.PNG&amp;diff=111008</id>
		<title>File:Review mapping export1.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Review_mapping_export1.PNG&amp;diff=111008"/>
		<updated>2017-10-30T19:55:52Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111006</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111006"/>
		<updated>2017-10-30T19:14:36Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: /* Current Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. &amp;lt;ref&amp;gt; {{cite web | url = http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation| title = Expertiza Documentation| accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later.&amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza| title = Experitza on Github | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153) &amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza/pull/1063| title =  Issue 153 | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The User Interface for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* User Interface for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
The following tasks were listed as a requirement, but after careful examination it was determined that these tasks were already implemented&lt;br /&gt;
*The simplest fix: If I try to import topics, the import page gives me this message: “The import process expects the following columns:” but it doesn’t say what the columns are (topic number, topic name, category, number of slots, category)!  It used to be in the system; please revert the change to fix this bug.  See Issue https://github.com/expertiza/expertiza/issues/719.&lt;br /&gt;
*When teams are imported in order to insert new members, the members are not inserted.  See Issue https://github.com/expertiza/expertiza/issues/328.&lt;br /&gt;
*It should be possible to leave off the final fields in a line of a CSV file.  These fields are often not specified anyway.  For example, if a password isn’t specified when a new user is created, the system generates a password (see Issue 183).  When importing topics, topic categories are rarely specified.  But if the final field is blank, the import requires the CSV line to end with “, “ (comma and space).  This should be fixed for all imports.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111005</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111005"/>
		<updated>2017-10-30T19:14:12Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: /* Current Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. &amp;lt;ref&amp;gt; {{cite web | url = http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation| title = Expertiza Documentation| accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later.&amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza| title = Experitza on Github | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153) &amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza/pull/1063| title =  Issue 153 | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The User Interface for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* User Interface for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
The following tasks were listed as a requirement, but after careful examination it was determined that these tasks were already implemented&lt;br /&gt;
*The simplest fix: If I try to import topics, the import page gives me this message: “The import process expects the following columns:” but it doesn’t say what the columns are (topic number, topic name, category, number of slots, category)!  It used to be in the system; please revert the change to fix this bug.  See Issue https://github.com/expertiza/expertiza/issues/719.&lt;br /&gt;
*When teams are imported in order to insert new members, the members are not inserted.  See Issue https://github.com/expertiza/expertiza/issues/318.&lt;br /&gt;
*It should be possible to leave off the final fields in a line of a CSV file.  These fields are often not specified anyway.  For example, if a password isn’t specified when a new user is created, the system generates a password (see Issue 183).  When importing topics, topic categories are rarely specified.  But if the final field is blank, the import requires the CSV line to end with “, “ (comma and space).  This should be fixed for all imports.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111004</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111004"/>
		<updated>2017-10-30T19:13:46Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: /* Current Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. &amp;lt;ref&amp;gt; {{cite web | url = http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation| title = Expertiza Documentation| accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later.&amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza| title = Experitza on Github | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153) &amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza/pull/1063| title =  Issue 153 | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The User Interface for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* User Interface for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
The following tasks were listed as a requirement, but after careful examination it was determined that these tasks were already implemented&lt;br /&gt;
*The simplest fix: If I try to import topics, the import page gives me this message: “The import process expects the following columns:” but it doesn’t say what the columns are (topic number, topic name, category, number of slots, category)!  It used to be in the system; please revert the change to fix this bug.  See Issue [https://github.com/expertiza/expertiza/issues/719].&lt;br /&gt;
*When teams are imported in order to insert new members, the members are not inserted.  See Issue https://github.com/expertiza/expertiza/issues/318.&lt;br /&gt;
*It should be possible to leave off the final fields in a line of a CSV file.  These fields are often not specified anyway.  For example, if a password isn’t specified when a new user is created, the system generates a password (see Issue 183).  When importing topics, topic categories are rarely specified.  But if the final field is blank, the import requires the CSV line to end with “, “ (comma and space).  This should be fixed for all imports.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111003</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111003"/>
		<updated>2017-10-30T19:10:12Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. &amp;lt;ref&amp;gt; {{cite web | url = http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation| title = Expertiza Documentation| accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later.&amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza| title = Experitza on Github | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153) &amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza/pull/1063| title =  Issue 153 | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The User Interface for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* User Interface for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
The following tasks were listed as a requirement, but after careful examination it was determined that these tasks were already implemented&lt;br /&gt;
*The simplest fix: If I try to import topics, the import page gives me this message: “The import process expects the following columns:” but it doesn’t say what the columns are (topic number, topic name, category, number of slots, category)!  It used to be in the system; please revert the change to fix this bug.  See Issue 719.&lt;br /&gt;
*When teams are imported in order to insert new members, the members are not inserted.  See Issue 328.&lt;br /&gt;
*It should be possible to leave off the final fields in a line of a CSV file.  These fields are often not specified anyway.  For example, if a password isn’t specified when a new user is created, the system generates a password (see Issue 183).  When importing topics, topic categories are rarely specified.  But if the final field is blank, the import requires the CSV line to end with “, “ (comma and space).  This should be fixed for all imports.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111002</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111002"/>
		<updated>2017-10-30T19:01:46Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: /* Team Contact */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. &amp;lt;ref&amp;gt; {{cite web | url = http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation| title = Expertiza Documentation| accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later.&amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza| title = Experitza on Github | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153) &amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza/pull/1063| title =  Issue 153 | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The UI for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* UI for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111001</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111001"/>
		<updated>2017-10-30T19:01:03Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. &amp;lt;ref&amp;gt; {{cite web | url = http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation| title = Expertiza Documentation| accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later.&amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza| title = Experitza on Github | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153) &amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza/pull/1063| title =  Issue 153 | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The UI for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* UI for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Contact =&lt;br /&gt;
&lt;br /&gt;
; MEMBERS:&lt;br /&gt;
&lt;br /&gt;
:Arjun Sharma: [mailto:asharm33@ncsu.edu asharm33@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
:Bikram Singh: [mailto:bsingh8@ncsu.edu bsingh8@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
; MENTOR:&lt;br /&gt;
&lt;br /&gt;
:Yifan Guo: [mailto:yguo14@ncsu.edu yguo14@ncsu.edu]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111000</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=111000"/>
		<updated>2017-10-30T18:54:19Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: /* Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. &amp;lt;ref&amp;gt; {{cite web | url = http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation| title = Expertiza Documentation| accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later.&amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza| title = Experitza on Github | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153) &amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza/pull/1063| title =  Issue 153 | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The UI for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* UI for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import2.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=110999</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=110999"/>
		<updated>2017-10-30T18:53:46Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: /* Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. &amp;lt;ref&amp;gt; {{cite web | url = http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation| title = Expertiza Documentation| accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later.&amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza| title = Experitza on Github | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153) &amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza/pull/1063| title =  Issue 153 | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The UI for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* UI for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     &lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=110998</id>
		<title>CSC/ECE 517 Fall 2017/E1767 Improve imports</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1767_Improve_imports&amp;diff=110998"/>
		<updated>2017-10-30T18:53:19Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with issues picked up the project E1767 and the solutions developed. It is based on Expertiza,  an open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is an open source project created using Ruby on Rails. This project is an software primarily to create reusable learning objects through peer review and also supports team projects. &amp;lt;ref&amp;gt; {{cite web | url = http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation| title = Expertiza Documentation| accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; Expertiza allows the creation of instructors and student accounts. This allows the instructors to post assignments (student learning objects) which can be viewed and worked upon by students. These can also be peer reviewed by students later.&amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza| title = Experitza on Github | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt; The Expertiza project is supported by the National Science Foundation. It supports many types of documents, including articles, code, web sites, URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Being an open source project, Expertiza is constantly improved. In particular, bugs are often found and resolved. Also new features are often added. The aim of this work is to rectify bugs around the import feature.&lt;br /&gt;
&lt;br /&gt;
== Background==&lt;br /&gt;
As there are many users in the interface, adding several things (for each user) individually and manually will be cumbersome and time consuming. Hence another method is to import things from a file. Several things, like all students from a class, or all teams for a particular project, or even all possible topics for students for a particular assignment/project can be imported from a file. The reason for doing this is that some lists, like the teams students have formed, may not be available online but rather on a sheet of paper the students have filled offline. In addition, a bug on passwords when importing users (like students) will also be looked into.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
* If no password  is present in the password column in the CSV file for an user (while importing a list of users), Expertiza returns an error “each record in the file you are importing does not have enough records”. (Issue 183)&lt;br /&gt;
* There should be an option of importing teams (for a particular project/assignment) from an CSV file. (Issue 153) &amp;lt;ref&amp;gt; {{cite web | url = https://github.com/expertiza/expertiza/pull/1063| title =  Issue 153 | accessdate = 27 Oct 2017 | }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* While importing teams, if one (existing) team has the same name as a team being imported, there should be an option of renaming the existing team (Issue 329)&lt;br /&gt;
* There should be the functionality of adding (new) users into an existing assignment team (which may have been formed by one student or an instructor) which does not have maximum strength (Issue 328)&lt;br /&gt;
* There seem to be bugs while importing several (different) files&lt;br /&gt;
** The UI for importing different (but related) things like course participant and assignment participant should be similar&lt;br /&gt;
** If one extra column is present in an imported CSV text file, an appropriate message should appear (Issue 52)&lt;br /&gt;
&lt;br /&gt;
== Expected functionality (with the issues identified) ==&lt;br /&gt;
* Users have the choice of the password for their account, including the choice of no password. Thus, while importing a list of users via a CSV text file into Expertiza, the online interface should be able to accept a blank password for any user.&lt;br /&gt;
* The option of importing teams by a text CSV file should be flexible, that is, while importing teams it is not necessary to have the topic assigned to the team (can be assigned later). However the option should be able to import the topic name (if it has already been assigned).&lt;br /&gt;
* No two teams should have the same name. This means if a new team (being imported into the database) and an existing have the same name, there should be an option of changing the name of either one of the two teams.&lt;br /&gt;
* Students (or instructors) should have the option of adding members (who do not have a team yet) to incomplete teams.&lt;br /&gt;
* UI for importing (all types) of files should be as similar as possible.&lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 153 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
Import_file_controller.rb , models/sign_up_sheet.rb , views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Currently, we cannot import teams from a file. Teams have to be created individually, (by the instructor or a student)&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
== Dealing with Issue 329 ==&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 models/team.rb , views/import_file/_start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
While importing teams from a file, if a new team name is an exact match with an existing team, then the options for managing the conflict is either ignore (and not add) the new team, or to add the new team with a new name or to delete the old team and to add the new team in it's place. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution dealt with adding the feature. This involved adding a method in the model which is showed in the following code fragment: &lt;br /&gt;
&lt;br /&gt;
[[File:329 code model.png]]&lt;br /&gt;
&lt;br /&gt;
Also, the new option must be reflected in the appropriate view:&lt;br /&gt;
&lt;br /&gt;
[[File:329 code view.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other changes are to add the method to an appropriate place in the views and the controller. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import User Interface Fix ==&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
When importing assignment participants and course participants, the User Interface indicates that there are multiple fields expected. However, in fact, user can only import file with 1 column which is user names. We can expect that the imported users are already in the system (otherwise, there should be an error message). Fixing the User Interface and also the code of importation accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:Import1.png]]     [[File:Import1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export Enhancement (Issue 1079) ==&lt;br /&gt;
&lt;br /&gt;
=== Files changed ===&lt;br /&gt;
 app/models/assignment_participant.rb, app/models/course_participant.rb, app/models/participant.rb, app/views/export_file/start.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Original Functionality ===&lt;br /&gt;
Exporting Course Participants and Assignment Participants neither share the same User Interface nor the same code. Assignment Participants used the common User Interface designed for export functionality. Due to this, the export feature of Assignment Participants return blank file.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Course Participants and Assignment Participants have same User Interface for Export feature as shown in the below image. Course Participants and Assignment Participants are derived from base class named Participants, the export feature can be generalized for both of them by moving it to Participants, which removed redundancy from the code base.&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/issues/1079&lt;br /&gt;
&lt;br /&gt;
[[File:Export User Interface for Assignment Participants and Course Participants.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Export methods added to participants.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Export1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Export2.PNG]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Import2.png&amp;diff=110997</id>
		<title>File:Import2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Import2.png&amp;diff=110997"/>
		<updated>2017-10-30T18:51:52Z</updated>

		<summary type="html">&lt;p&gt;Asharm33: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Asharm33</name></author>
	</entry>
</feed>