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

From Expertiza_Wiki
Jump to navigation Jump to search
Line 19: Line 19:


* Table changes
* Table changes
** Teams table - Add a new attribute for pair-programming
** Teams table - Add a new attribute for pair-programming (pair_programming_request)
** Teams Users table - Add a new attribute to capture individual acceptance or rejection of pair-programming request.
** Teams Users table - Add a new attribute to capture individual acceptance or rejection of pair-programming request (pair_programming_status).
** Assignment table - Add a new attribute for pair-programming
** Assignment table - Add a new attribute for pair-programming (enable_pair_programming)


== '''Design''' ==
== '''Design''' ==

Revision as of 14:10, 6 April 2022

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 (pair_programming_request)
    • Teams Users table - Add a new attribute to capture individual acceptance or rejection of pair-programming request (pair_programming_status).
    • Assignment table - Add a new attribute for pair-programming (enable_pair_programming)

Design

Files Requiring Modification

  • app/views/assignments/edit/_general.html.erb

It appears this partial renders the general tab of the create new assignments page. We need to add a checkbox for pair programming in this file.

  • app/views/assignments/list_submissions.html.erb

This file renders the list of all the submissions for a given assignment. We need to add a new column - pair-programming which will indicate if the team has pair-programmed for this assignment or not.

  • app/views/student_teams/view.html.erb

This file renders the team information of a given assignment for a particular member. We need to add a table for pair-programming and a button to request for pair-programming.

  • app/helpers/student_teams_helper.rb

We will use this helper file to add the pair-programming feature.

  • app/models/assignment.rb

This is a model for an assignment. We will add a method pair_programming_enabled? in this file. This will allow us to check if pair-programming has been enabled in the current assignment.

  • app/controllers/pair_programming_controller.rb

We have created a new controller to handle the send invitation and accept/decline feature.

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