CSC/ECE 517 Fall 2022 - E2279. Further refactoring and improvement of signup sheet controller
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
- CSC/ECE 517 Fall 2022 - E2259. Refactor signup_sheet_controller
- CSC/ECE 517 Spring 2022 - E2223. Refactor sign up sheet controller.rb
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.
- 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