CSC/ECE 517 Spring 2020 - E2003. Refactor and improve assessment360 controller
About Expertiza
Expertiza is an open-source project based on Ruby on Rails framework. The software allows the instructor and students with the following privileges,
Instructors
- Create new assignments
- Customize new or existing assignments
- Create a list of topics that students can sign up for
- Give grades/reviews for the students' submissions
Students
- Form teams with other students to work on various projects and assignments
- Peer review other students' submissions
Note: Expertiza supports submissions across various document types, including URL and wiki pages
Project Description
About assessment_360 Controller
The assessment_360 controller is designed to gather data from all stakeholders about the performance of a student in a course. Thus, its purpose is to provide course-level statistics. At present, the controller provides only two top-level functions where each of them gives a list of students in the class.
- all_students_all_reviews contains teammate and meta-review scores received by students for all assignments in the course
- course_student_grade_summary gives a listing of students and what topic they worked on and what grade they received on each assignment during the semester
Problem Statement
The assessment360 controller had three major issues. This project is aimed to address some of them, including:
Issue 1: Methods all_students_all_reviews and course_student_grade_summary were too long. Common initialization and looping had to factored out by moving them into smaller methods with mnemonic names
Issue 2: Method populate_hash_for_all_students_all_reviews is not easy to understand. It uses a special data structure to do a very simple task. That had to be refactored
Issue 3: Method course_student_grade_summary () stopped working and has to be fixed
Motivation
This project aims at encouraging students to collaborate and contribute to open-source project in turn helping them understand what goes on in a full-fledged software deployment process. It also paves a way to understand how one can use Rails, RSpec to develop a system that does justice to the DRY code practicing principles.
Current Implementation
Team Information
Ramya Ananth
Sri Harsha Varma Uppalapati
Mentor: Dr. Edward Gehringer