Inspiration

As Skyline students, we know how stressful it can be to build the perfect class schedule. It’s not just about clicking the “Add” button; it’s about researching course options, checking RateMyProfessor scores, and making sure classes align with transfer requirements. This process can quickly become overwhelming. That’s why we built BetterWebSchedule: to streamline and simplify the experience for students like us.

What it does

BetterWebSchedule is a Google Chrome extension designed to make course planning easier and smarter. Key features include:

• Professor Insights: Click on any professor’s name in WebSchedule to instantly see their RateMyProfessor rating, difficulty score, and “would-take-again” percentage, no tab-switching to RMP ever needed again!

• AI Assistant Using Gemini: Chat with an AI assistant that answers questions about professors, classes, and transfer planning, including suggestions based on your goals.

• Campus Map Viewer: View an interactive campus map to locate classes and buildings to ease those nerves getting around school.

• Dark Mode: For better readability and accessibility when using WebSchedule at night.

• Calendar Integration: Export your .ics file of your registered schedule directly into your calendar with one click.

How we built it

BetterWebSchedule is built as a Chrome extension designed to enhance the student experience. The making of our project is a Manifest V3 compliant structure that includes a background service worker, content scripts, and a side panel interface. The core languages we used include HTML, CSS, and JavaScript for the user interface, along with Gemini API for generating responses from user data. For data collection, we developed web scraping capabilities to gather professor information and transfer requirements from ratemyprofessor.com and assist.org respectively. The professor information display feature is implemented through content scripts that implement functionality directly into WebSchedule pages, while the AI assistant is accessible through a side panel with an intuitive chat interface.

Challenges we ran into

• Chrome Content Security Policy (CSP): Navigating Manifest V3 restrictions required deep research into permissions, remote code access, and safe script execution.

• Data Integration: Gathering, structuring, and updating professor and transfer data was complex. It took multiple iterations of scrapers to reach the right format and accuracy.

• UI/UX Integration: Blending seamlessly with WebSchedule’s existing layout without overwhelming users was a constant headscratcher.

• State Management: Ensuring consistency between components (e.g., popup, content scripts, side panel) and dealing with extension loading quirks took time and testing.

Accomplishments that we're proud of

We are quite proud of all that we have been able to accomplish in BetterWebSchedule. We successfully created a user-focused design that enhances rather than replaces WebSchedule, providing students with additional functionality while maintaining familiarity with the existing interface. Though there will always be small improvements or even major updates to be added, we believe our project has a great foundation and will be relevant to the students at SMCCD.

What we learned

There was a lot of learning opportunities in developing BetterWebSchedule. From a technical perspective, we learned about developing Chrome Extensions and learning its corresponding APIs. Learning from each other's experiences, we learned advanced JavaScript patterns for state management, especially finessing the data flow between different components of the extension. We also developed some expertise in web scraping and processing to get professor information quickly and organized. In terms of project management, we learned how to break down complex features into manageable components and refocus the development based on student needs. It was helpful to utilize the iterative development method to source student feedback and really understand what that actually meant in terms of decisions. From a user's perspective especially coming from students such as ourselves, we have a better understanding of the balance of feature richness with simplicity, in other words, making BetterWebSchedule's features more simple and approachable, to ease the stress in making choices when selecting classes and making our schedules.

What's next for BetterWebSchedule

• Expanding Professor Data more: Pull more in-depth reviews, comments, and even grade distributions.

• Smart Schedule Builder: Use AI to recommend optimized class schedules based on user preferences, detect time conflicts, and support drag-and-drop planning.

• AI Memory: Allow students to revisit past chats, enabling the assistant to give more contextual and helpful responses.

• Enhanced Personalization: Tailor schedule suggestions based on major, transfer goals, and individual constraints.

Share this project:

Updates