CSC/ECE 517 Fall 2021 - E2153. Improving search facility in Expertiza: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
Line 50: Line 50:
# Name of questionnaire
# Name of questionnaire
# Keyword or a string in a single question within a questionnaire
# Keyword or a string in a single question within a questionnaire
# Course Name (drop down list of the courses of current instructor)
# Course Name (drop down list of the courses of current instructor, select 1 only)
# Assignment Name
# Assignment Name



Revision as of 03:04, 2 November 2021

Introduction

The Expertiza project takes advantage of peer-review among students to allow them to learn from each other. It is an open-source application running on Ruby on Rails. It is used for the management of courses and the assignments for respective courses, by the faculties and the students. The manage content section of the application has different views that display information about the users, courses, assignments, questionnaires, and reviews.

The application should have a fully functional search functionality throughout the views, so that a user can search any type of data with ease, on the basis of any number of parameters depending on his requirements. Users should be searched on the basis of one more parameter which includes name, full name, email, etc. Similarly, assignments should be searched on the basis of name, created date, updated date, etc.

However, the search functionality in the existing application is constrained to just a single parameter for users and assignments. Questionnaires management does not have a search functionality implemented as yet. This project works on improving the search functionality of Expertiza, by adding search bars if not present, introducing an advanced search feature where user can search on the basis of more than one parameters, and making the search functionality appear more elegant.

Problem Statement

  1. An instructor or administrator can search for a user by name, user-ID, or other characteristics.
  2. An instructor should be able to search for assignments by name, due date, or other characteristics.
  3. An instructor should be able to search for rubrics (or other questionnaires) by name, or by the courses or assignments they have been used in.
    1. For the instructor, there also needs to be a way to quickly find rubrics (and other questionnaires) that have been used in a single course. It should be possible to search or click somewhere to bring up a list of questionnaires used in the course, expanding only the applicable questionnaires in the list of questionnaires.
    2. One should also be able to search for questionnaires by words used in questions that belong to the questionnaires.
  4. There should be a way to search all reviews of a particular team’s work for particular scores or text strings. Reviews should be able to be filtered by score, text comment length, reviewer, and reviewee.
  5. An instructor or administrator should be able to search for all the assignments that a particular user has participated in.
  6. If more than one criterion needs to be specified, there should be an 'Advanced Search' button.

E2079 Previous Implementation

  1. E2079 Github Repository
  2. E2079 Pull Request
  3. Video Link

Issue With Previous Implementation

  1. All implementation are working on javascript inside tree_display.jsx.
  2. With compatibility issue, these work can't be check-in currently.
  3. Format are not aligned between course search/assignment search and user search/rubric search.
  4. Questionnaire search is not straightforward and the list is not working.
  5. Searching of user with "name" and "full name" is confusing.
  6. Searching criteria can't be accumulated.
  7. Instructors and administrators can't find assignments with participants.

Proposed Solution

The design proposed in this iteration of the project is not much different from a high level than the design proposed form last year in Fall 2019 Design. Below you will see a copy description of the solution previously proposed and some additional design choices added to improve upon the previous iteration of this issue. Changes from the previous design will be denoted by clear statements indicating the revision.

Four main objects in this application are used as the basis for expanding search functionality. These are the user, assignment, questionnaire, and the review. Each of these points are searchable by the title of the object or not searchable at all. The remaining sections note the current situation and propose a tentative solution. Note the following is a copy of last year's proposal. Reference is listed at the bottom of the page.

Search for User:

In the current system workflow, the user is unable to search in the Manage Users view. In the proposed workflow, we plan to enable the user to search by all the columns in the UI viz. Name, Full name, Email Address, Role, Parent by entering a partial or a complete text that matches the particular field. We will also allow searching for fields irrespective of the case of the searched string. The user will be able to apply multiple filters at a time and the output of the query will match all filters applied. If no results are found, an empty list will be returned.

Search for Assignments:

In the current system implementation, searching via the name of the assignment is supported with a partial or complete assignment name. Moreover, the user is also able to search for an assignment using additional filters such as Creation Date and Updated Date. In the proposed system, the user will be able to search for an assignment using not only Creation Date and Update Datem, but also Due Date and participated user. The user could apply multiple filters at a time and the output of the query would match all filters applied.

To search for an assignment by Date, the user will be prompted with a calendar where he can select a date and all the assignments created/updatre/due on or before the selected date will be displayed.

To apply multiple filters, the user can tap on the Advanced Search button available, adjacent to the Search button; a hidden div will then be rendered below-containing text boxes for all the columns. All assignments that match the filters will be returned. An empty list will be returned if the search criteria don't match any records in the database.

Search for Questionnaires:

The proposed system will implement search functionality for searching via below criteria:

  1. Name of questionnaire
  2. Keyword or a string in a single question within a questionnaire
  3. Course Name (drop down list of the courses of current instructor, select 1 only)
  4. Assignment Name

The user will be able to apply multiple filters at a time and the output of the query will match all the filters applied. If no results are found, an empty list will be returned. To search for an assignment by Date Created, the user will be prompted with a calendar where he can select a date and all the assignments created on or before the selected date will be displayed. To apply multiple filters, the user can tap on the Advanced Search button available, adjacent to the "Search" button; a hidden field will then be rendered below-containing text boxes for all the columns. All assignments that are created before the selected date for Date Created or Date Updated columns and the ones that match other filters will be returned. An empty list will be returned if the search criteria don't match any records in the database. All the matched questionnaires will be listed at once.

Furture Implementation

Search for Reviews

There should be a way to search all reviews of a particular team’s work for particular scores or text strings. Reviews should be able to be filtered by score, text comment length, reviewer and reviewee. The existing system does not have search functionality under Reviews. The proposed system will implement search functionality for searching using the attributes like team name, score, reviewer, reviewee, comment, etc. by entering a partial or a complete text that matches the particular field. We will also allow searching for fields irrespective of the case of the searched string. The user will be able to apply multiple filters at a time and the output of the query will match all the filters applied. If no results are found, an empty list will be returned.

The user will be able to apply multiple filters at a time and the output of the query will match all filters applied. If no results are found, an empty list will be returned.


Identified Issues

Current issues exists in this PR for this issue, including build errors in the Travis CI build and various existing bugs within beta. Some of these bugs have been mitigated but others still remain. There needs to be more eyes and time on solving many of these bugs hidden within beta surrounding this issue.

Project Mentor

Ed Gehringer (efg@ncsu.edu)

Team Members

Yu-Hsuan Lo (ylo@ncsu.edu)

Fu-Jen Yen (fyen@ncsu.edu)

Shao-Yo Chao (schao2@ncsu.edu)

References

  1. Fall 2019 Design
  2. Fall 2020 Design
  3. Expertiza on GitHub
  4. RSpec Documentation