Inspiration

You’ve definitely heard of and used UCSB Gold and Plat—two amazing tools that simplify course registration and planning for UCSB students. But what if we could take this to the next level? That’s where Sapphire comes in.

Sapphire is the ultimate, all-in-one UCSB planner, personalized to help students achieve their goals over a timeline they define. Whether you’re an incoming Art major aiming to break into the UI/UX industry or a third-year CS major deciding to pursue graduate school, Sapphire tailors a schedule designed specifically for you, ensuring your path to success.

The idea for Sapphire grew from our personal experiences. Among the three of us—Aman, Vala, and myself—we share a passion for computer science, but our goals couldn’t be more different. Aman is fascinated by computer architecture and plans to enter academia. I’m deeply interested in theoretical AI/ML and hope to pursue graduate school as well. Meanwhile, Vala dreams of becoming a software engineer in industry. Even within the same field, the best course path for each of us is drastically different.

We realized that with so much flexibility and variance in available courses, students need a tool to guide them toward the classes that best align with their unique aspirations. That’s why we built Sapphire: to make sure every UCSB student has a clear, personalized roadmap to reach their goals and maximize their potential.

What It Does

Sapphire helps you build a personalized roadmap for your academic journey. By filling out some basic information about yourself and your history, you can directly interact with a personalized schedule assistant through a simple conversational interface. In just a few steps, Sapphire generates a tailored calendar plan designed to align with your goals.

Whether you want to optimize your schedule to have evenly spaced classes next quarter, or balance high grades with a focus on biomedical engineering over three years, Sapphire makes it easy to craft the perfect plan.

Sapphire also factors in key information like graduation requirements and GE completion, ensuring that you stay on track to graduate on time. With Sapphire, your academic success is streamlined and personalized, so you can focus on achieving your dreams.

How We Built It

Sapphire is the result of a collaborative effort that combines thoughtful design, robust frameworks, and advanced technologies. Here's how we brought it to life:

  • Design: We started with mockups created using Figma and Visily.ai to visualize the user experience and interface.
  • Frontend: Built with React, HTML, and Tailwind CSS, all powered by TypeScript for type safety and enhanced development.
  • Framework: We used Next.js for a great dynamic frontend experience.
  • Authentication: Implemented secure user authentication with NextAuth.
  • User Data Storage: Managed with PostgreSQL, integrated through Drizzle ORM, and hosted on Neon and AWS for scalability.
  • Course Planner and Class Data: Stored in SingleStore, ensuring fast and reliable access to course information. Queried discretely and efficiently in the backend with MySQL.
  • AI Integration: Leveraged Anthropic’s LLM to provide an intuitive conversational interface for users.
  • Backend API: Developed with Flask to create endpoints for smooth frontend-backend communication.
  • Data Collection: Used Python, BeautifulSoup (bs4), Pandas, and multithreading to efficiently scrape and organize course data, which was then stored in SingleStore.

Sapphire is a blend of meticulous planning, cutting-edge tools, and collaborative teamwork, all aimed at creating the ultimate UCSB schedule planner.

Challenges We Ran Into

One of the major challenges we faced was scraping prerequisite information for courses. This data wasn’t readily available in the UCSB API, which led us to explore alternative solutions. Ultimately, we decided to scrape the information from UCSB Plat.

Understanding how the hyperlinks were structured proved to be tricky. We discovered that courses were indexed by quarter, year, and either the enroll code or the first section number—depending on availability. It took significant effort to analyze and decode this pattern. However, once we figured it out, the data collection process became much more straightforward.

This experience taught us the importance of persistence and problem-solving, which helped us successfully gather and integrate the data needed for Sapphire.

Accomplishments That We’re Proud Of

We successfully developed a complete end-to-end planning algorithm that powers Sapphire. One of our proudest achievements is the sheer volume of data we collected, organized, and utilized effectively to create a personalized experience for every user.

We’re also proud of how we seamlessly integrated a wide range of technologies to build a robust and efficient product. Balancing multiple frameworks, APIs, and data sources, we ensured that everything worked together smoothly.

Additionally, we placed a strong emphasis on optimizing for low latency and high efficiency to enhance the user experience. Despite handling a significant number of requests, we achieved impressive speeds, providing a fast and seamless interaction for our users.

What We Learned

Throughout this project, we gained valuable experience in optimizing heavy API usage to reduce latency and improve performance. Managing a large volume of API calls required careful planning and implementation to ensure a seamless user experience.

We also learned a great deal about designing and managing internal APIs. With ongoing communication between our frontend, backend, and multiple databases, we handled significant amounts of data being exchanged. This taught us how to efficiently coordinate data flow and ensure that every component of the system worked together smoothly.

Overall, this project deepened our understanding of building scalable, efficient systems and reinforced the importance of thoughtful architecture in handling complex data operations.

What’s Next for Sapphire

Looking ahead, we have exciting plans to expand Sapphire’s capabilities and impact.

  1. Class Review System: We aim to integrate a class review feature, allowing students to share their experiences and insights about courses. This will not only help other students make informed decisions but also provide valuable data to further optimize schedule recommendations.

  2. Token-Based Incentive System: To encourage participation in the class review system, we plan to implement a token-based model. Students would earn tokens by reviewing classes, which they can then use to access Sapphire’s personalized services. This creates a mutually beneficial ecosystem that promotes student engagement.

  3. Collaboration with UCSB Plat: Our goal is to partner with UCSB Plat to integrate Sapphire into a centralized academic planning ecosystem. By working together, we can provide a unified and seamless resource for all UCSB students.

Ultimately, our vision is to make Sapphire the go-to tool for every UCSB student, empowering them to achieve their academic and career goals with ease.

Built With

Share this project:

Updates