CSC/ECE 517 Spring 2022 - E2245: View for results of bidding: Difference between revisions
Line 43: | Line 43: | ||
=== UI design === | === UI design === | ||
#Option 1: Add new columns to the existing table, and to make space for it we can | # Option 1: Add new columns to the existing table, and to make space for it we can dynamically remove the "Bookmark" and "Ads" (Advertisements) columns depending on the specific circumstance. | ||
dynamically remove the "Bookmark" and "Ads" (Advertisements) columns depending on the | |||
specific circumstance. | |||
[[File:updated_table.png|800px|Popup prototype]] | [[File:updated_table.png|800px|Popup prototype]] | ||
#Option2: View bidding details in an expanded/collapsed style (Preferred) | # Option2: View bidding details in an expanded/collapsed style (Preferred) | ||
=== Change in Work Flow Diagram === | === Change in Work Flow Diagram === |
Revision as of 01:43, 7 April 2022
CSC/ECE 517 Spring 2022 - E2245: View for results of bidding
Problem Statement
When students sign up for topics, they are presented with a system to bid on their favorite topics. This process is allowed for both individual students as well as teams. As a result, many students will first sign up for topics, which can reduce the number of teams that get their first pick, and result in long waitlists. There are several bidding algorithms available to the instructors to give as many groups as possible their first choice. As this is an NP-complete problem, the algorithm has to use heuristics to guess efficiently. There needs to be a way for instructors to easily view and compare the results of the bidding algorithms to get a quantitative sense of their effectiveness.
Project Goal
This project aims to solve this issue by giving clear and concise feedback of the algorithms in topics list in the assignment. However, since topics in the table potentially have several fields, care must be taken not to overcrowd the table with information. There are several different UI/UX approaches to display this information, and the chosen one should:
- maximize useful information at a glance, while minimizing clutter
- fit into the flow of the topic page
- allow further information to be obtained if requested
- not be visible if bidding is not used
Some other miscellaneous goals of this project are to:
- remove topic fields from view if they are not applicable
- refactor code
- increase test coverage
Previous Work
User Cases
Below is the use case diagram that depicts the existing use cases that associated to the topics bidding features of the application. Notice that in order to check some bidding information for a topic/project, the Instructor has to impersonate a student.
Design Pattern
In-progress of documenting the utilized design patterns
Work Flow Diagram
Improvement on the Previous Work
Change in Use Cases
Student: This actor is responsible for submitting and deleting bids for topics while the topic selection period is open for an assignment which uses the new lottery topic selection mechanism.
Instructor: This actor is responsible for updating an assignment to use the new lottery topic selection as well as closing the bidding period and beginning the automatic topic selection. Instructor is also able to view the progress details of bids without having to impersonate students
UI design
- Option 1: Add new columns to the existing table, and to make space for it we can dynamically remove the "Bookmark" and "Ads" (Advertisements) columns depending on the specific circumstance.
- Option2: View bidding details in an expanded/collapsed style (Preferred)
Change in Work Flow Diagram
<Flow diagram to come>
Code changes
The following files will be changed to fulfill the requirements
Controllers:
- app/controllers/sign_up_sheet_controller.rb
Models:
- app/models/bid.rb
Views:
- app/views/sign_up_sheet/list.html.erb
Rspec:
- spec/controller/sign_up_sheet_controller_spec.rb
- spec/controller/big_spec.rb
Refactor Code to follow good coding practices
Example:
1. Rename method names more meaningfully and intuitive.
Correct Previous Design
1. Remove mentors from being included in a team's number of members count.
BEFORE
AFTER
Code placed in the wrong locations to be moved to the desired locations.
Example:
- Example here
Functionalities added
- The instructor should be able to see how many teams have bid for each topic without having to impersonate students
Testing
- Some existing test cases have been modified, which have been reverted.
- Run and pass the existing RSpec Tests.
- Test the UI for the deployed project.
UI Testing
Part 1:
- Login as the instructor6
Part 2:
- Login as student575 (added to the program by the instructor)
Future Work
- If a mentor is removed from an assignment, reassignment of mentor has to be done. (edge-case)
- Rspec for email functionality needs to be implemented.
Team Roster
- Duy Nguyen - dvnguye3@ncsu.edu
- Kwon HyeokJun - khyeokj@ncsu.edu
- Shawn S - ssaleki@ncsu.edu
- David Glymph - dwglymph@ncsu.edu
Mentor: Ed Gehringer - efg@ncsu.edu