CSC/ECE 517 Spring 2024 - E2416. Reimplement the Question hierarchy: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
(Created page with "== '''Expertiza''' == Expertiza is an open-source project built using Ruby on Rails. It provides a platform for instructors and students to manage, submit, and evaluate assignments and projects. Instructors can create, edit, and grade assignments, while students can collaborate in teams, submit their work, and review peers' submissions. == '''Objective''' == Firstly, by removing unnecessary partials, the goal is to streamline the codebase and eliminate redundancy. The...")
 
No edit summary
Line 1: Line 1:
This wiki page is for the description of changes made under E2367 OSS assignment for Fall 2023, CSC/ECE 517
__TOC__
== '''Expertiza''' ==
== '''Expertiza''' ==


Line 9: Line 13:


The emphasis on comprehensive testing ensures that these modifications don't compromise the system's reliability or functionality. Rigorous testing helps identify and address any potential issues, ensuring that the code modifications maintain the system's integrity while improving its performance and adaptability to modern web development practices.
The emphasis on comprehensive testing ensures that these modifications don't compromise the system's reliability or functionality. Rigorous testing helps identify and address any potential issues, ensuring that the code modifications maintain the system's integrity while improving its performance and adaptability to modern web development practices.
== '''Problem Statement''' ==
The current implementation of the question hierarchy within Expertiza contains unclear variables, method names, and incomplete functionality at certain places. Additionally, many methods produce complex and lengthy HTML strings, making the codebase difficult to maintain. Objective: The project aims to enhance the question hierarchy component to improve code readability, comprehensibility, and maintainability.
== '''Explanation of the feature''' ==
The Question class and its subclasses are pivotal components utilized in Expertiza for implementing rubric items, quiz questions, and survey questions. This feature offers a versatile framework for constructing various types of questions within the platform. The hierarchy of question types within Expertiza is delineated as follows:
*'''Choice questions''' offer users a selection of answers to choose from, categorized into scored and unscored subtypes.
**'''ScoredQuestion''' are assigned a point value, contributing to the final score of the questionnaire. Subtypes include:
***Scale: Presents a set of answer options covering a range of opinions, often represented numerically.
***Criterion: Establishes a standard for evaluating something.
**'''UnscoredQuestion''' do not influence the final score of the questionnaire. Subtypes include:
***Dropdown: Presents a list of options in a dropdown menu format.
***Multiple Choice: Provides users with multiple options for selection, available as single-select (radio buttons) or multi-select (checkboxes).
***Checkbox: Allows users to select multiple options from a list.
*'''Text Response''' questions enable users to input their answers directly, bypassing predefined choices. Subtypes include:
**'''Text Area:''' A text box with adjustable height and width.
**'''Text Field:''' A single-line input field with fixed dimensions.
*'''Upload file''' empowers users to upload files containing valid input to utilize as questionnaires. Additionally, users can export questionnaires to a .csv file format for further analysis and sharing.

Revision as of 05:07, 24 March 2024

This wiki page is for the description of changes made under E2367 OSS assignment for Fall 2023, CSC/ECE 517

Expertiza

Expertiza is an open-source project built using Ruby on Rails. It provides a platform for instructors and students to manage, submit, and evaluate assignments and projects. Instructors can create, edit, and grade assignments, while students can collaborate in teams, submit their work, and review peers' submissions.

Objective

Firstly, by removing unnecessary partials, the goal is to streamline the codebase and eliminate redundancy. The initial implementation used partials to structure HTML, but upon analysis, it was found that the distinct functionalities of each question type made these partials redundant. By removing them, the code becomes more concise, easier to maintain, and less prone to inconsistencies.

Secondly, transitioning from returning HTML to delivering JSON objects from the models offers several advantages. This shift aims to enhance efficiency, readability, and maintainability. JSON objects are more lightweight than HTML representations, facilitating faster data transmission and reducing server load. Additionally, JSON is a widely accepted format for data interchange in modern web applications, enhancing compatibility and enabling seamless integration with various front-end frameworks or technologies.

The emphasis on comprehensive testing ensures that these modifications don't compromise the system's reliability or functionality. Rigorous testing helps identify and address any potential issues, ensuring that the code modifications maintain the system's integrity while improving its performance and adaptability to modern web development practices.

Problem Statement

The current implementation of the question hierarchy within Expertiza contains unclear variables, method names, and incomplete functionality at certain places. Additionally, many methods produce complex and lengthy HTML strings, making the codebase difficult to maintain. Objective: The project aims to enhance the question hierarchy component to improve code readability, comprehensibility, and maintainability.

Explanation of the feature

The Question class and its subclasses are pivotal components utilized in Expertiza for implementing rubric items, quiz questions, and survey questions. This feature offers a versatile framework for constructing various types of questions within the platform. The hierarchy of question types within Expertiza is delineated as follows:

  • Choice questions offer users a selection of answers to choose from, categorized into scored and unscored subtypes.
    • ScoredQuestion are assigned a point value, contributing to the final score of the questionnaire. Subtypes include:
      • Scale: Presents a set of answer options covering a range of opinions, often represented numerically.
      • Criterion: Establishes a standard for evaluating something.
    • UnscoredQuestion do not influence the final score of the questionnaire. Subtypes include:
      • Dropdown: Presents a list of options in a dropdown menu format.
      • Multiple Choice: Provides users with multiple options for selection, available as single-select (radio buttons) or multi-select (checkboxes).
      • Checkbox: Allows users to select multiple options from a list.
  • Text Response questions enable users to input their answers directly, bypassing predefined choices. Subtypes include:
    • Text Area: A text box with adjustable height and width.
    • Text Field: A single-line input field with fixed dimensions.
  • Upload file empowers users to upload files containing valid input to utilize as questionnaires. Additionally, users can export questionnaires to a .csv file format for further analysis and sharing.