CSC/ECE 517 Fall 2017/E1776 Enhance Imports: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
Line 19: Line 19:
= Topic Description =
= Topic Description =


<big> '''Background''' </big>
=== Backgroud ===


Expertiza is web application devloped on Ruby on Rails platform. It helps students to create reusable learning objects through peer review. It also supports document submission and team projects. Expertiza allows the instructors to import following data:
Expertiza is web application devloped on Ruby on Rails platform. It helps students to create reusable learning objects through peer review. It also supports document submission and team projects. Expertiza allows the instructors to import following data:
Line 37: Line 37:
# Other - Any custom delimiter provided by the user as text
# Other - Any custom delimiter provided by the user as text


<big> '''Problem Statement''' </big>
=== Problem Statement ===


The following is an Expertiza based OSS project which deals primarily with the Import File controller. This project is associated with fixing [https://github.com/expertiza/expertiza/issues/110 issue #110] on the Expertiza Github. The problem with these imports is that they are not implemented consistently. There are restrictions to how the columns should be ordered in the import file. The aim of this project is to improve the import functionality as well as provide a flexible and user-friendly user-interface to the users so that they are able easily import users, participants, topics, etc.
The following is an Expertiza based OSS project which deals primarily with the Import File controller. This project is associated with fixing [https://github.com/expertiza/expertiza/issues/110 issue #110] on the Expertiza Github. The problem with these imports is that they are not implemented consistently. There are restrictions to how the columns should be ordered in the import file. The aim of this project is to improve the import functionality as well as provide a flexible and user-friendly user-interface to the users so that they are able easily import users, participants, topics, etc.


<big> '''Solution''' </big>
=== Solution ===


To resolve this issue we have changed the interface and the import process to an extent, keeping the core methods of import intact with just few required minor changes. In the new interface, upon importing, the system would then display what was imported, and let the user choose from a dropdown which field was which. The default ordering is the same as what is currently required by Expertiza unless a specific order is provided by the user as a header in the import file.
To resolve this issue we have changed the interface and the import process to an extent, keeping the core methods of import intact with just few required minor changes. In the new interface, upon importing, the system would then display what was imported, and let the user choose from a dropdown which field was which. The default ordering is the same as what is currently required by Expertiza unless a specific order is provided by the user as a header in the import file.

Revision as of 03:10, 28 October 2017

Team Contact

MEMBERS
Pushpendra Patel: ppatel16@ncsu.edu
Tanay Kothari: tkothar@ncsu.edu
Timothy Dement: tmdement@ncsu.edu
MENTOR
Ferry Pramudianto: fferry@ncsu.edu


Topic Description

Backgroud

Expertiza is web application devloped on Ruby on Rails platform. It helps students to create reusable learning objects through peer review. It also supports document submission and team projects. Expertiza allows the instructors to import following data:

  • A list of users.
  • A list of participants for an existing assignment.
  • A list of participants for an existing course.
  • A list of teams for an existing assignment
  • A list of teams for an existing course.
  • A list of reviewer assignments.
  • A list of meta-reviewer assignments.

These imports are done by uploading a file containing data. The data should be formatted as different rows represented as lines of text in the file. The rows should contain values separated using delimiters. There can be 4 types of delimiters:

  1. Comma
  2. Space
  3. Tab
  4. Other - Any custom delimiter provided by the user as text

Problem Statement

The following is an Expertiza based OSS project which deals primarily with the Import File controller. This project is associated with fixing issue #110 on the Expertiza Github. The problem with these imports is that they are not implemented consistently. There are restrictions to how the columns should be ordered in the import file. The aim of this project is to improve the import functionality as well as provide a flexible and user-friendly user-interface to the users so that they are able easily import users, participants, topics, etc.

Solution

To resolve this issue we have changed the interface and the import process to an extent, keeping the core methods of import intact with just few required minor changes. In the new interface, upon importing, the system would then display what was imported, and let the user choose from a dropdown which field was which. The default ordering is the same as what is currently required by Expertiza unless a specific order is provided by the user as a header in the import file.

Added Features

Files Changed

Assets

To implement the functionality of non-duplicate column names, we created two new methods checkIfUserColumnDuplicate() and checkIfParticipateColumnDuplicate() in the shared.js .

Config

We needed to change the routes.rb so that the new partial views can be implemented.

Controllers

For the enhancement of the import functionality, we modified the import_file_controller. In this controller, we modified one existing method import(), other than that we had to declare some additional methods import_from_hash(), hash_rows_with_headers(), parse_to_hash(), parse_to_grid() and show().

Helpers

As we changed the original implementation from array to hash we need to also modify the import_file_helper a little bit.

Models

There is a list of models we had to modify for enhancing the import functionality, which are listed below along with the original methods we needed to modify:

  1. assignment_participant : self.import()
  2. course_participant : self.import()
  3. course_team : add_member()
  4. metareview_response_map : self.import()
  5. review_response_map : self.import()
  6. team : import_team_members() and self.import()
  7. user : self.import()

Views

To use the import functionality in a new and enhanced way, we modified one of the existing view and added new views, listed below:

Views Modified:

  1. start.html.erb

Views Created:

  1. _metareviewer.html.erb
  2. _participant.html.erb
  3. show.html.erb
  4. _reviewer.html.erb
  5. _team.html.erb
  6. _user.html.erb

Demonstrations

User Import

User Import Demo

DESCRIPTION


Assignent Participant and Course Participant Import

Participant Import Demo

DESCRIPTION


Assignment Team and Course Team Import

DESCRIPTION

LINK TO YOUTUBE VIDEO


Reviewer and Metareviewer Import

LINK TO YOUTUBE VIDEO

DESCRIPTION


Navigating Expertiza

User Import

To begin the User import process, first select the "User" link from the "Manage" drop-down menu.

Manage Users


Next, scroll to the bottom of the page and click the "Import Users" link.

Import Users


You will then be redirected to the User import page.


Participant Import

There are two types of Participants, Assignment Participants and Course Participants.


Assignment Participant Import

To begin the Assignment Participant import process, first select the "Assignments" link from the "Manage" drop-down menu.

Manage Assignments


Make sure that "Assignments" is highlighted on the "Manage content" page, then locate the appropriate assignment and click the "Add Participants" button.

Add Assignment Participant


Finally, scroll to the bottom of the page and click the "Import assignment participants" link.

Import Assignment Participant
Import Assignment Participant


You will then be redirected to the Assignment Participant import page.


Course Participant Import

To begin the Course Participant import process, first select the "Courses" link from the "Manage" drop-down menu.

Manage Courses


Make sure that "Courses" is highlighted on the "Manage content" page, then locate the appropriate course and click the "Add Participants" button.

Add Course Participant


Finally, scroll to the bottom of the page and click the "Import course participants" link.

Import Course Participant


You will then be redirected to the Course Participant import page.


Team Import

There are two types of Teams, Assignment Teams and Course Teams.


Assignment Team Import

To begin the Assignment Team import process, first select the "Assignments" link from the "Manage" drop-down menu.

Manage Assignments


Make sure that "Assignments" is highlighted on the "Manage content" page, then locate the appropriate assignment and click the "Create Teams" button.

Create Assignment Team


Finally, scroll to the bottom of the page and click the "Import Teams" link.

Import Assignment Teams
Import Assignment Teams


You will then be redirected to the Assignment Team import page.

Course Team Import

To begin the Course Team import process, first select the "Courses" link from the "Manage" drop-down menu.

Manage Courses


Make sure that "Courses" is highlighted on the "Manage content" page, then locate the appropriate assignment and click the "Create Teams" button.

Create Course Team


Finally, scroll to the bottom of the page and click the "Import Teams" link.

Import Course Teams
Import Course Teams


You will then be redirected to the Course Team import page.


Reviewer and Metareviewer Import

To begin the Reviewer and Metareviewer import process, first select the "Assignments" link from the "Manage" drop-down menu.

Manage Assignments
Manage Assignments


Make sure that "Assignments" is highlighted on the "Manage content" page, then locate the appropriate assignment and click the "Assign reviewers" button.

Assign Reviewers
Assign Reviewers


Finally, scroll to the bottom of the page, and click either the "Import reviewer mappings" link or the "Import meta reviewer mappings" link.

Import Reviewer Mappings
Import Reviewer Mappings


Import Metareviewer Mappings
Import Metareviewer Mappings


You will then be redirected to either the Reviewer import page or the Metareviewer import page.