CSC/ECE 517 Fall 2022 - E2281. Reimplement Waitlists: Difference between revisions

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


=== RSPEC Test Cases ===
=== RSPEC Test Cases ===
'''' Tests will be added once they've been implemented ''''
'' Tests will be added once they've been implemented ''


=== Manuel UI Testing ===
=== Manuel UI Testing ===

Revision as of 17:13, 11 November 2022

Topic Overview & Prior Work

Feature Overview

E2240 contains detailed information on the previous team's work with this feature.

A summary of the desired functionality is presented below:

Any instructor or TA can sign students up for a topic. Students are able to sign themselves up for a topic. If the topic is full then the team will be put on a queue or "waitlist" for the topic. If the current team holding that topic drops the topic, then the team at the top of the waitlist will be assigned the topic.

Concerns with current functionality

  • What if a team is currently assigned a different topic and waitlisted for a topic that is now available?
  • How many topics can a student be waitlisted for?
  • If two topics become available at the same time and the same student is at the top of both waitlists, which does it choose?
  • How are students notified that they were assigned a new topic?

Overview of Major Changes By Previous Team

  • Added new table waitlist_teams
  • Segregated functionality of waitlisting of teams from signed_up_teams table to waitlist_teams

Files Modified By Previous Team

  • signed_up_team.rb
  • waitlist.rb
  • sign_up_sheet_controller.rb
  • sign_up_sheet.rb
  • sign_up_topic.rb
  • suggestion_controller.rb
  • invitation.rb

Planned Work

  • Add migration for "remove_column :signed_up_teams, :is_waitlisted"
  • Remove all the references of is_waitlist column
  • Increase the test coverage by creating new Waitlist tests (Ex. Accept Invitation, Leaving team etc.)
  • Add more descriptive code comments
  • Update to match Ruby Style Guide

Design Strategy

Ruby Style Guide Basics

  • Indentation: Each indentation level should be marked using two spaces.
  • Line Length: Each line should contain a maximum of 80 characters.
  • End of Line: Each line should have no trailing whitespace and should use UNIX Style line endings (CRLF).
  • Expression: Each line should only contain one expression.

Testing

Planned Test Cases

  • Waitlist
Scenario: Student leaves a waitlisted team 
 Given: Logged in as an Student
  When: Student leaves a team
   Then: Student should be removed from all waitlisted topics associated with that team

Scenario: Instructor/TA Removes Student from Class 
 Given: Logged in as an Instructor/Admin
  When: Student is dropped from class
   Then: All topics that the student has waitlisted should be freed up

Scenario: Student accepts new team invitation 
 Given: Logged in as an Student
  When: Student accepted invitation to join team on a waitlist
   Then: Student should be added to the waitlist

Scenario: Instructor/TA Removes a topic
 Given: Logged in as an Student
  When: Instructor/TA removes a topic containing a waitlist
   Then: The waitlist should be deleted

Scenario: Student is assigned a topic and a waitlisted topic becomes available 
 Given: Logged in as an Student
  When: A topic that a student has waitlisted becomes available 
   Then: TBD

RSPEC Test Cases

Tests will be added once they've been implemented

Manuel UI Testing

Conclusion

  • Functionality: The overall functionality is good, it just requires the code be cleaned up in order to meet Ruby Stylistic Guidelines.
  • Comments More descriptive comments will need to be added for increased readability.
  • Testing: Some tests will need to be created in order to test the waitlist controller, and other waitlist related functionality.

Useful Links

Our Github Forked Repo

Contributors

Students

  • Nick Aydt (naydt)
  • Nagaraj Madamshetti (nmadams)
  • Rohan Shiveshwarkar (rsshives)
  • Gun Ju Im (gim)

Mentor

  • Naman Shrimali (nshrima)