feat: search rate my professor reviews by meaning - #642
Draft
jaspermayone wants to merge 1 commit into
Draft
jaspermayone wants to merge 1 commit into
jaspermayone wants to merge 1 commit into
Conversation
Adds /api/v1/catalog/reviews and a reviews query to GraphQL, both with semantic=true, and a search box on the admin review list. Only reviews that carry a comment are returned, and every payload names ratemyprofessors.com as the source so a client can credit it. Filter errors now share Catalog::FilterError, so the new query object returns a 400 the same way the section query does.
jaspermayone
added this pull request to stack #643
September 19, 2026 22:17
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of #453. Stacked on #641.
Search Rate My Professors reviews by meaning, so "lots of group projects"
finds the reviews that say so in other words.
{ reviews(q: "team assignments", semantic: true, first: 10) { nodes { comment instructor { name } } } }The admin review list gets the same search, with a "By meaning" box, and now
shows the comment it searches.
What this publishes
Review text was already stored, and
/api/facultyalready returns it tosigned-in users. This puts it on the unauthenticated catalog API, so it is
worth a second look before merging:
nothing a reader could search.
metaof every page, namesratemyprofessors.comasthe source, so a client can credit it and link back.
instructor,sentiment,q, andsemanticare the filters. Pages are 25by default and 100 at most.
Also in here
Catalog::FilterErroris now the shared parent of the query objects' filtererrors, so the new
ReviewQueryreturns a 400 through the same handler thatSectionQueryuses, on REST and on GraphQL.Tests
bundle exec rspecis green locally (1583 examples), covering the queryobject, the REST endpoint, the GraphQL connection, and the admin search.
Stack created with GitHub Stacks CLI • Give Feedback 💬