CSC/ECE 517 Spring 2022 - E2244. Support for saying your team pair-programmed

From Expertiza_Wiki
Jump to navigation Jump to search

Introduction

E2244 introduces a new feature of pair-programming for the teams. Pair-programming feature will allow the teams as well as the instructor to ensure that all the team members have collaborated and committed using a single id.

Problem Statement

Expertiza allows the students to form teams for a given assignment. At times the students wish to submit or commit their work in a collaborative way from a single account. As of now, expertiza does not capture this intent of the students which makes it difficult for the instructors and the teaching assistants to understand whether all the students have contributed towards the assignment and students have to commit using different accounts to show their work. E2244 will allow the instructors to create a new assignment with the pair-programming feature which will allow the students to mark whether they performed pair-programming or not for a given assignment. It will also ensure that all the team members have agreed to pair-programming. The instructors and teaching assistants will be able to view whether a team has opted for pair-programming or not on the UI.


What needs to be done

  • Student view
    • A button for requesting pair-programming
    • Pair-programming initiators - the user's view who has requested for pair-programming
    • Pair-programming receivers - all the other users to who have to accept/decline the pair-programming request
  • Instructor/Teaching Assistant view
    • has pair-programming? checkbox on the create assignment page
    • pair programming column of a given assignment which will show if a team has opted for pair-programming or not.
  • Table changes
    • Teams table - Add a new attribute for pair-programming
    • Teams Users table - Add a new attribute to capture individual acceptance or rejection of pair-programming request.
    • Assignment table - Add a new attribute for pair-programming

Design

Files Requiring Modification

  • app/views/reports/response_report.html.haml (issue 1, 3, 4)

It appears this HAML file renders the dropdown that appears at the top of the “Review reports” page and renders the partials for the requested type of report when submitting the dropdown.

  • app/controllers/reports_controller.rb (issue 1)

We will also likely need to be adding a line to determine the assignment name and pass it into the view.

  • app/views/reports/_feedback_report.html.erb (issue 2, 4)

This file contains the code which generates the author Feedback reports table. This is a form that is rendered by the response_report.html.haml file when the Feedback report is requested from the dropdown. This gives us access to the column names which require change. Making the columns sortable will be done in this file.

  • app/helpers/review_mapping_helper.rb (issue 2)

This file has code which generates the instance variables used by the Feedback reports table and it also creates the headers used by the reports table. Changes may be needed to the header to make the columns sortable.

  • app/views/reports/_searchbox.html.erb (issue 3)

This file contains the html erb form code for the dropdown to select which type of review the user wants to render. After reproducing and determining the root of the issue, we will likely need to make edits to this file in order to resolve the problem. This is for Chrome on Windows 10, and will have to be reproduced to see what’s causing the issue.

  • app/views/reports/_review_report.html.erb (issue 4)
  • app/views/reports/_team_score_score_awarded.html.erb (issue 4)
    • This file will be created to assist with the rendering within _review_report.html.erb

This issue requires the assignment name to be displayed for the particular review report. We will use the set instance variables to display the assignment name.

  • app/views/reports/_teammate_review_report.html.erb (issue 5)

This file contains the source for displaying the teammate review report. We will have to edit this file to adjust the sorting of the columns.

Design Patterns aren't applicable to our project since all it involves is to make columns sortable and some isolated issues.

Additional files changed from bugs we discovered:

  • app/model/assignment.rb - Fixed the varying_rubrics_by_round? method
  • spec/model/assignment_spec.rb - Added Rspec tests for varying_rubrics_by_round? method


Test Plan

For our project, which is mostly concerned with making changes to different views, we are planning to do the majority of testing through manual UI testing. As of now, we don't anticipate having to make many/any changes to files that are not views. If any changes are made to controllers, models, etc to accomplish our tasks, we will adjust or add SPEC tests to make sure our code is covered.

UI Testing

Automated Testing

Team Information

Atharva Rajendra Patil
Atharva Milind Joshi
Kriti Khullar
Rucha Kolekar