CSC/ECE 517 Fall 2023 - E2373. Reimplementation of teams controller

From Expertiza_Wiki
Revision as of 00:31, 31 October 2023 by Nmadapa (talk | contribs)
Jump to navigation Jump to search

'''1. Project Overview'''


1.1 Expertiza Background

Expertiza is an online platform designed to facilitate peer review and submission of various types of academic work, including articles, codes, and websites. The application allows instructors to add assignments, grade them, and assign students to teams based on their topic preferences. The platform also enables students to provide feedback on each other's work through peer reviews, which can be helpful in improving the quality of their projects. Expertiza is backed by the National Science Foundation.

'''1.2 Problem Statement'''

The teams_controller.rb file contains operations on teams like listing of teams of an assignment/course, updating a team, deleting teams of an assignment/course, copying teams between two assignments or courses among others. The model team.rb contains a lot of functions, with probable violations of single responsibility principle and this needs to be reimplemented with care. The files do not benefit from the complex names the functions are given.

'''What needs to be done:'''

Emphasize on Single Responsibility Principle - There are a questionable amount of functions that are directed at copying teams and team members between parents (courses/assignments). There are a lot of class functions in the model, which could be bad design. While reimplementing, make sure that SRP is maintained. See if any code is repetitive, and can be cut down.

Improve naming - Some functions have confusing names. For example, the function “bequeath_copy” can definitely be given a better name if the functionality needs to be reimplemented. The over-populated “copy” related functions in this controller decrease the readability of the code.

Better comments - Bigger files and functions require better comments for readability.

2. Class Diagram: