Inspiration
Our inspiration came from the inefficiency of managing multiple tabs to research courses and professors, so we wanted to streamline the entire experience into a single interface.
What it does
GOLDLens is a Chrome extension that overlays real-time course intelligence directly on UCSB's GOLD registration system. When you hover over any course, it displays:
- Historical grade distributions (A/B/C/D/F percentages across all instructors)
- Professor ratings and reviews from RateMyProfessor, including difficulty scores and student comments
- Current quarter instructors highlighted with stars, fetched live from the UCSB API
- Per-instructor grading patterns so you can compare how different professors grade the same course
We also built an AI-powered chatbot that opens in a side panel. It's context-aware so when you click the search icon on a course card, the chatbot automatically loads all the grade data, RMP reviews, and course info, then lets you ask questions.
How we built it
- Frontend: Vanilla JavaScript Chrome Extension (Manifest V3) with Shadow DOM for isolated UI components
- Backend: FastAPI server that handles course data bundling and AI interactions
- AI: Google Gemini SDK for generating course insights and powering the chatbot
- Data Sources: UCSB API for live course/instructor data, scraped RateMyProfessor data using Playwright, and compiled historical grade distributions
Challenges we ran into
- Data integration: Merging grade data, RMP reviews, and live UCSB API data into a unified bundle that the AI could reason about coherently
- RAG tuning: Getting Gemini to pull course-specific data accurately without hallucinating or giving generic responses—we had to craft strict prompts that force data-driven answers
Accomplishments that we're proud of
- Seamless UX that feels native to GOLD
- Context-aware chatbot that knows exactly which course you're asking about
- Real-time instructor detection that highlights who's teaching this quarter
What we learned
- How to build Chrome extensions with Shadow DOM for style isolation
- Integrating multiple data sources into a cohesive RAG pipeline
- Prompt engineering to get consistent, structured JSON outputs from LLMs
- Async scraping at scale with Playwright and rate limiting
What's next for GoldLens
- Expand to support schedule planning and workload balancing across multiple courses
- Deploy the backend so it works without running locally
Built With
- fastapi
- gemini
- javascript
- rag
Log in or sign up for Devpost to join the conversation.