Browser extension for UW Madison students that pulls Rate My Professors and Madgrades info into Course Search & Enroll
The chrome extension was built with Plasmo. A content script listens for changes to the DOM with a mutation observer, and sends messages to a service worker using Plasmo's Messaging API. The service worker makes http requests to the Madgrades API directly and the Rate My Professors GraphQL API using this wrapper. The service worker sends data back to the content script, which modifies the DOM accodingly.
- Free
- Fresh Data
- Simple
- API Rate Limits
- If too many users are active at once, could run into these
- Undocumented, so don't know how many users can be handled
- Requires exposing readonly API key, opens up trivial attack on user experience
- Slow - making API calls as needed means latency each time a users click on a course
See this issue with a proposed overhaul, which would eliminate these Cons while keeping this project having zero operating expenses. It would sacrafice some data freshness, though.