Skip to content

Finalize Submit Ratings Flow#440

Open
emilyliublair wants to merge 12 commits intocourse-page-do-overfrom
emily/finalize_submit_ratings_flow
Open

Finalize Submit Ratings Flow#440
emilyliublair wants to merge 12 commits intocourse-page-do-overfrom
emily/finalize_submit_ratings_flow

Conversation

@emilyliublair
Copy link
Contributor

@emilyliublair emilyliublair commented Feb 28, 2026

Summary

Resolves #436

Checklist

  • Only allow the submit course ratings flow and the button to display if a user is logged in and not on mobile mode.
  • Add the ability so that if you start rating something and exit it, it prepopulates the ratings and the classes from the last time we tried to rate using local storage
  • If a user has already submitted ratings for a term, don't display the Rate my courses button for that term
  • Add term handling
  • Add back button, exit button, and keep page on same window
  • Update useSubmitRatings hook to be compatible with existing endpoints
  • Invalidate cached ratings after successful submission
  • Add rate limiting to prevent multiple submissions from rapid repeated clicks
  • Add light mode designs

How to Test

  1. Rate my courses & rate banner not displayed when user not signed in or mobile:
Screenshot 2026-02-28 at 4 41 42 PM Screenshot 2026-02-28 at 4 48 20 PM
  1. Click 'Rate my courses', rate courses without submitting, exit, and re-enter to see ratings/progress saved.
  2. Submit ratings and see 'Rate my courses' button disappear. Also verify that information is updated in the Course Details page (course and professor ratings cache invalidated).
  3. Click the 'Rate you Spring 2026 courses' Banner and verify that course and professor information displayed are for Spring 2026.
  4. Light mode designs:
Screenshot 2026-02-28 at 5 56 12 PM Screenshot 2026-02-28 at 6 02 44 PM Screenshot 2026-02-28 at 6 04 05 PM 7. User cannot proceed if all fields not filled out: Screenshot 2026-02-28 at 6 03 34 PM 8. To test rate limiting, you can modify `{type === 'signedIn' && !hasSubmitted && (` in ScheduleContainer to be `{type === 'signedIn' && (` so that the Rate my Courses button stays visible after submitting. Also, comment out: ``` useEffect(() => { const stateToSave: PersistedRatingsState = { selectedCrns: selectedSections.map((s) => s.crn), currentIndex, ratingsMap, term: ratingTerm, }; localStorage.setItem( RATINGS_STORAGE_KEY(ratingTerm), JSON.stringify(stateToSave) ); }, [selectedSections, currentIndex, ratingsMap, ratingTerm]); ``` in RatingsPage to prevent saving state. Finally, change `const RATINGS_LIMITER_INTERVAL_SEC = 5;` to `const RATINGS_LIMITER_INTERVAL_SEC = 60;` and make 2 submissions within one minute. Verify on backend/console that second submission does not go through. Screenshot 2026-03-01 at 7 18 46 PM
  1. Also fixed bug [BoG S25] N/A GPA showing up as Loading in Metrics #439
Screenshot 2026-03-01 at 7 19 30 PM

@github-actions
Copy link

github-actions bot commented Mar 2, 2026

PR Preview Action v1.8.1

QR code for preview link

🚀 View preview at
https://gt-scheduler.github.io/website/pr-preview/pr-440/

Built to branch gh-pages at 2026-03-02 00:51 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

@emilyliublair emilyliublair marked this pull request as ready for review March 2, 2026 00:53
@emilyliublair emilyliublair requested a review from uma-anand March 2, 2026 00:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant