CSC/ECE 517 Fall 2023 - E2376. Reimplement student quizzes controller.rb
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.