Improve analysis UX: algorithm explanations, skeleton loading, auto-expand achieved specs
- Replace terse one-line optimization mode descriptions with clearer multi-sentence explanations of how Maximize Count and Priority Order algorithms behave - Add skeleton loading placeholders on course buttons while analysis is pending - Auto-expand achieved specializations to show credit breakdown by default - Add instructional subtitles to Course Selection and Specializations sections - Make Clear and Clear All buttons more prominent with visible backgrounds
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
## ADDED Requirements
|
||||
|
||||
### Requirement: Mode description explains practical behavior
|
||||
The ModeToggle component SHALL display a multi-sentence description for each optimization mode that explains the algorithm's practical behavior and when a user would choose it.
|
||||
|
||||
For "Maximize Count", the description SHALL convey that:
|
||||
- The algorithm finds the combination of specializations that achieves the highest count (up to 3).
|
||||
- The user's ranking is used only to break ties when multiple combinations achieve the same count.
|
||||
|
||||
For "Priority Order", the description SHALL convey that:
|
||||
- The algorithm processes specializations in the user's ranked order, top to bottom.
|
||||
- It locks in the highest-ranked achievable specialization first, then adds more if feasible.
|
||||
- The user's ranking directly controls which specializations are prioritized.
|
||||
|
||||
#### Scenario: User selects Maximize Count mode
|
||||
- **WHEN** the optimization mode is set to "maximize-count"
|
||||
- **THEN** a description is displayed that explains the algorithm finds the largest possible set of specializations and uses ranking only as a tiebreaker
|
||||
|
||||
#### Scenario: User selects Priority Order mode
|
||||
- **WHEN** the optimization mode is set to "priority-order"
|
||||
- **THEN** a description is displayed that explains the algorithm guarantees the top-ranked specialization first and greedily adds more in rank order
|
||||
|
||||
#### Scenario: Description updates on mode switch
|
||||
- **WHEN** the user switches from one mode to the other
|
||||
- **THEN** the description text SHALL update immediately to reflect the newly selected mode
|
||||
@@ -0,0 +1,21 @@
|
||||
## ADDED Requirements
|
||||
|
||||
### Requirement: Skeleton placeholder during analysis
|
||||
When an elective set is not pinned and analysis is pending, the CourseSelection component SHALL display skeleton placeholder elements in place of the course choice buttons.
|
||||
|
||||
The skeleton placeholders SHALL:
|
||||
- Visually approximate the size and layout of the course choice buttons they replace.
|
||||
- Display a pulsing/animated background to indicate loading.
|
||||
- Replace the current "analyzing..." text label.
|
||||
|
||||
#### Scenario: Analysis pending for an unpinned set
|
||||
- **WHEN** an elective set is not pinned AND `loading` is true AND no analysis result exists for that set
|
||||
- **THEN** skeleton placeholder rectangles SHALL be displayed instead of course choice buttons
|
||||
|
||||
#### Scenario: Analysis completes for a set
|
||||
- **WHEN** an analysis result arrives for a previously loading set
|
||||
- **THEN** the skeleton placeholders SHALL be replaced with the actual course choice buttons showing analysis data
|
||||
|
||||
#### Scenario: Set is already pinned
|
||||
- **WHEN** an elective set has a pinned course
|
||||
- **THEN** no skeleton placeholders SHALL be shown regardless of loading state
|
||||
@@ -0,0 +1,20 @@
|
||||
## ADDED Requirements
|
||||
|
||||
### Requirement: Achieved specializations default to expanded
|
||||
The SpecializationRanking component SHALL initialize with all achieved specializations in the expanded state, showing their AllocationBreakdown credit list by default.
|
||||
|
||||
#### Scenario: Initial render with achieved specializations
|
||||
- **WHEN** the SpecializationRanking component renders with one or more achieved specializations
|
||||
- **THEN** the AllocationBreakdown (per-course credit list) SHALL be visible for each achieved specialization without user interaction
|
||||
|
||||
#### Scenario: Achieved set changes after course selection
|
||||
- **WHEN** the set of achieved specializations changes due to a course pin/unpin or ranking reorder
|
||||
- **THEN** all newly achieved specializations SHALL be expanded by default
|
||||
|
||||
#### Scenario: User manually collapses an achieved specialization
|
||||
- **WHEN** the user clicks on an achieved specialization that is currently expanded
|
||||
- **THEN** the AllocationBreakdown for that specialization SHALL collapse
|
||||
|
||||
#### Scenario: Non-achieved specializations remain non-expandable
|
||||
- **WHEN** a specialization has a status other than "achieved"
|
||||
- **THEN** it SHALL NOT display an AllocationBreakdown and SHALL NOT be expandable
|
||||
Reference in New Issue
Block a user