CSC/ECE 517 Fall 2023 - E2376. Reimplement student quizzes controller.rb: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
Line 2: Line 2:
Our team is tasked with creating the backend reimplementation of the student quizzes controller found in student_quizzes_controller.rb.
Our team is tasked with creating the backend reimplementation of the student quizzes controller found in student_quizzes_controller.rb.
We are to use SOLID principles and adhere to the Guidelines for Reimplementation.
We are to use SOLID principles and adhere to the Guidelines for Reimplementation.
== Introduction To Expertiza System ==
The Expertiza system, a modular and multifunctional platform, empowers students to seamlessly submit assignments and quizzes while facilitating collaborative learning through features like peer review. Widely embraced by students, assistants, and professors, this advanced system streamlines academic assessments, fostering an efficient and interactive educational experience.
The main goal of student quizzes module is to give an environment for students to create quizzes for other students with same assignments, giving them a chance to learn in a collaborative setting where they can collectively enhance their understanding and support each other's learning journey.


=== Issues with Previous Functionality ===
=== Issues with Previous Functionality ===
Student quizzes are currently a discontinued function from Expertiza. This module orginally interacted with many other components such as questions and questionnaires. The complex structure along with faulty coding practices has resulted in a vulnerable and error prone system. With reimplementing student quizzes we believe many of those problems can be overcame.
Previous implementations of student quizzes were difficult to understand due to:
Previous implementations of student quizzes were difficult to understand due to:
* The controller not following CRUD methodology
* The controller not following CRUD methodology
Line 12: Line 19:
== Design ==
== Design ==
=== Test Driven Development (TDD) ===
=== Test Driven Development (TDD) ===
Our approach to developing Expertiza student quizzes will adhere to a test-driven design methodology. This means that we will be utilizing the test skeletons provided to us and tests for each component of the student quizzes module before implementing the corresponding functionalities. By following this rigorous testing approach, we ensure a reliable and thoroughly validated system, enhancing the overall quality and robustness of the Expertiza platform.


=== Controller ===
=== Controller ===

Revision as of 02:05, 16 November 2023

Overview

Our team is tasked with creating the backend reimplementation of the student quizzes controller found in student_quizzes_controller.rb. We are to use SOLID principles and adhere to the Guidelines for Reimplementation.

Introduction To Expertiza System

The Expertiza system, a modular and multifunctional platform, empowers students to seamlessly submit assignments and quizzes while facilitating collaborative learning through features like peer review. Widely embraced by students, assistants, and professors, this advanced system streamlines academic assessments, fostering an efficient and interactive educational experience.

The main goal of student quizzes module is to give an environment for students to create quizzes for other students with same assignments, giving them a chance to learn in a collaborative setting where they can collectively enhance their understanding and support each other's learning journey.

Issues with Previous Functionality

Student quizzes are currently a discontinued function from Expertiza. This module orginally interacted with many other components such as questions and questionnaires. The complex structure along with faulty coding practices has resulted in a vulnerable and error prone system. With reimplementing student quizzes we believe many of those problems can be overcame.

Previous implementations of student quizzes were difficult to understand due to:

  • The controller not following CRUD methodology
  • The controller using vague names for variables.
  • Difficulty in setting up a sample quiz and testing
  • Test Driven Development (TDD) was not followed and tests created after the code. The code being in a unknown state led to tests that passed possibly buggy code.

Design

Test Driven Development (TDD)

Our approach to developing Expertiza student quizzes will adhere to a test-driven design methodology. This means that we will be utilizing the test skeletons provided to us and tests for each component of the student quizzes module before implementing the corresponding functionalities. By following this rigorous testing approach, we ensure a reliable and thoroughly validated system, enhancing the overall quality and robustness of the Expertiza platform.

Controller

Create

Read

Update

Delete

Solution

Achieved Design Goals

UML Diagram

Class Diagram

Actions performed