CSC/ECE 517 Fall 2022 - E2281. Reimplement Waitlists: Difference between revisions
Jump to navigation
Jump to search
Line 55: | Line 55: | ||
=== RSpec Unit Tests === | === RSpec Unit Tests === | ||
'''''Planned Test Cases''''' | '''''Planned Test Cases''''' | ||
*Waitlist | |||
* | |||
<pre> | <pre> | ||
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 | |||
Scenario: | |||
Given: Logged in as an Instructor/Admin | Given: Logged in as an Instructor/Admin | ||
When: | When: Student is dropped from class | ||
Then: | Then: All topics that the student has waitlisted should be freed up | ||
Scenario: | Scenario: Student accepts new team invitation | ||
Given: Logged in as an Instructor/ | Given: Logged in as an Student | ||
When: | When: Student accepted invitation to join team on a waitlist | ||
Then: | 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: | Scenario: Student is assigned a topic and a waitlisted topic becomes available | ||
Given: Logged in as an | Given: Logged in as an Student | ||
When: | When: A topic that a student has waitlisted becomes available | ||
Then: | Then: TBD | ||
</pre> | </pre> | ||
Revision as of 19:28, 10 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
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
Problem Statement
Our goals for this project are as follows:
Code and Documentation Goals
We must explain changes made to files with diagrams and justifications.
Explanations will be provided from these perspectives:
- data flow
- functions
- code comments
Functionality
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.)
Testing
RSpec Unit Tests
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
Manual UI Tests
Conclusion
- Functionality: The overall functionality is good, it just requires the code be cleaned up in order to meet Ruby Stylistic Guidelines.
- Testing: Some tests will need to be created in order to test the waitlist controller, and other waitlist related functionality.
Useful Links
Contributors
Students
- Nick Aydt (naydt)
- Nagaraj Madamshetti (nmadams)
- Rohan Shiveshwarkar (rsshives)
- Gun Ju Im (gim)
Mentor
- Naman Shrimali (nshrima)