CSC/ECE 517 Fall 2022 - E2279. Further refactoring and improvement of signup sheet controller: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
Line 1: | Line 1: | ||
*Team | == Team == | ||
* | === Mentor === | ||
* | * Ed Gehringer (efg) | ||
=== Team Members === | |||
* Juan Benavides (jdbenavi) | |||
* Wei-Chi Chen (wchen37) | |||
* Swetha Sairamakrishnan (ssairam) | |||
==Problem Statement== | ==Problem Statement== | ||
==Prior Work section with last years and last projects background== | ==Prior Work section with last years and last projects background== | ||
== About Controller == | |||
The sign up sheet controller performs the following functions: | |||
* Allows an instructor to add/remove topics to an assignment. | |||
* Allows an instructor to assign/remove students to topics (This has been removed as it is unused/impersonation of student is used instead) | |||
* Allows a student to see the list of available topics which can be bid on for given OSS assignment. | |||
== General Design Goals == | == General Design Goals == | ||
==Plan and List of Work done (specific tasks planned)== | ==Plan and List of Work done (specific tasks planned)== | ||
Line 10: | Line 24: | ||
* participants variable (Juan) | * participants variable (Juan) | ||
* topics staggered ( Wei-Chi) | * topics staggered ( Wei-Chi) | ||
== Test Plan == | |||
=== Edge Cases and Pre-Conditions === | |||
# When dropping topic if submission already done. | |||
# When deadline from dropping topic has passed. | |||
# Deleting topic when topic cannot be found. | |||
# Signup in case when user cannot be found. | |||
# Create signup_sheet when sign_up_topic cannot be found. | |||
# Destroy signup_sheet when other topics with the same assignment exists. | |||
: | |||
=== RSpec === | |||
: As such no functionality changed in any function, only refactoring done. All the refactoring was carefully verified by running rspec tests. To run the spec file, run: | |||
: rspec spec/controllers/signup_sheet_controller_spec.rb | |||
We also ran the rspecs for signup_sheet model and helper just to make sure no functionality was broken. | |||
: rspec spec/helpers/signup_sheet_helper_spec.rb | |||
: rspec spec/models/signup_sheet_spec.rb | |||
; New test cases | |||
: Destroy signup_sheet when there are other topics in the assignment | |||
: New, more general test case added for rendering list view, as we noticed that some functionalities we broke while refactoring did not result in failed test cases. | |||
[[File:F22_Signup_rspec.png]] | |||
=== Mandatory === | |||
; Login as instructor | |||
# Hover on Manage Tab | |||
# Click on Assignments Tab | |||
# Click on Edit Button for "OSS project & documentation" assignment | |||
# Select the Topic Tab | |||
# Add New Topic or Delete topic using links in the form below | |||
; Login as student | |||
# Click on OSS project/Writing assignment 2 | |||
# Click on Signup sheet | |||
# The list must be visible, which indicates functionality is as before after refactoring list function. | |||
*Testing Scenarios (Basic + Edge cases) | *Testing Scenarios (Basic + Edge cases) | ||
*RSpec Testing | *RSpec Testing | ||
Line 21: | Line 70: | ||
*https://github.com/weichic-ncsu/expertiza | *https://github.com/weichic-ncsu/expertiza | ||
*Link to Pull Request | *Link to Pull Request | ||
*http://152.7.99.122:8080/ | * We have deployed the project at http://152.7.99.122:8080/ | ||
* Instructor login: username -> instructor6, password -> password | |||
* Student login: username -> student5899, password -> password |
Revision as of 23:17, 14 November 2022
Team
Mentor
- Ed Gehringer (efg)
Team Members
- Juan Benavides (jdbenavi)
- Wei-Chi Chen (wchen37)
- Swetha Sairamakrishnan (ssairam)
Problem Statement
Prior Work section with last years and last projects background
About Controller
The sign up sheet controller performs the following functions:
- Allows an instructor to add/remove topics to an assignment.
- Allows an instructor to assign/remove students to topics (This has been removed as it is unused/impersonation of student is used instead)
- Allows a student to see the list of available topics which can be bid on for given OSS assignment.
General Design Goals
Plan and List of Work done (specific tasks planned)
- assignment is intelligent? (Swetha)
- participants variable (Juan)
- topics staggered ( Wei-Chi)
Test Plan
Edge Cases and Pre-Conditions
- When dropping topic if submission already done.
- When deadline from dropping topic has passed.
- Deleting topic when topic cannot be found.
- Signup in case when user cannot be found.
- Create signup_sheet when sign_up_topic cannot be found.
- Destroy signup_sheet when other topics with the same assignment exists.
RSpec
- As such no functionality changed in any function, only refactoring done. All the refactoring was carefully verified by running rspec tests. To run the spec file, run:
- rspec spec/controllers/signup_sheet_controller_spec.rb
We also ran the rspecs for signup_sheet model and helper just to make sure no functionality was broken.
- rspec spec/helpers/signup_sheet_helper_spec.rb
- rspec spec/models/signup_sheet_spec.rb
- New test cases
- Destroy signup_sheet when there are other topics in the assignment
- New, more general test case added for rendering list view, as we noticed that some functionalities we broke while refactoring did not result in failed test cases.
Mandatory
- Login as instructor
- Hover on Manage Tab
- Click on Assignments Tab
- Click on Edit Button for "OSS project & documentation" assignment
- Select the Topic Tab
- Add New Topic or Delete topic using links in the form below
- Login as student
- Click on OSS project/Writing assignment 2
- Click on Signup sheet
- The list must be visible, which indicates functionality is as before after refactoring list function.
- Testing Scenarios (Basic + Edge cases)
- RSpec Testing
- Manual Testing
- New Tests
Modifications (probably after working on them)
Relevant Links
- https://github.com/weichic-ncsu/expertiza
- Link to Pull Request
- We have deployed the project at http://152.7.99.122:8080/
- Instructor login: username -> instructor6, password -> password
- Student login: username -> student5899, password -> password