Inspiration
We were inspired to build this Canvas extension to solve problems many students face every semester. Often, we miss small but important details hidden in lengthy syllabi—like finding out too late that an “A” starts at 95% instead of the usual 93%. Other times, we overlook resources already provided by professors and end up paying for them ourselves. These issues arise because students may not have the time to read the entire syllabus, and sometimes directions from professors are unclear. Our extension addresses these challenges by letting users ask questions and instantly receive clear, detailed answers—no need to dig through documents of text. By making information accessible and easy to understand, our product helps students stay organized, save time, and avoid preventable mistakes.
What it does
We’ve built a chatbot that lets users easily ask questions about their Canvas courses—whether it’s grades, course information, or syllabus details. Our product automatically gathers and organizes all relevant Canvas data, then delivers clear, concise, and detailed answers in seconds. No more digging through endless announcements, modules, or files to find what you need—just ask the chatbot, and the information is right at your fingertips.
How we built it
We built a Canvas extension that allows users to send queries directly to a chatbot. When a user asks a question, a large language model (LLM) interprets the query and determines which tables in the vectorized database should be accessed. This database was created by web scraping and processing the user’s entire Canvas page, using the Canvas API to collect information such as grades, course details, and syllabi. All this data is stored in vectorized tables: grades, courses, course_content_summary, and syllabus.
For example, if a user asks, “What are my grades for CMPSC 465?” the LLM identifies that the query relates to the grades table. It then retrieves all relevant data from the vectorized grades table corresponding to that course. Finally, the retrieved data is passed through the LLM again, which formats it into a clear, structured response for the user.
Challenges we ran into
One major challenge we encountered was integrating the backend with the frontend of our Canvas extension. The connection between the chatbot interface and the database was not functioning as expected, which prevented smooth data retrieval. Additionally, our vectorized database initially struggled with accuracy—it sometimes mixed up course data, such as confusing CMPSC 465 with CMPSC 132. To overcome this, we employed the LLM to better interpret user queries and guide the search algorithm toward the most relevant tables, significantly improving the precision of results.
Accomplishments that we're proud of
We were able to successfully integrate several different components into our project, including Eleven Labs, Vultr, and Gemini APIs. Working with these tools gave us valuable hands-on experience with modern AI, cloud, and API-based technologies.
We’re especially proud of resolving the backend–frontend connection issues that initially blocked our progress. Getting the chatbot interface to communicate smoothly with the backend and database was a major milestone that made our system fully functional and reliable. We’re also proud to share that our website is Section 508 compliant, meaning it meets federal accessibility standards to ensure that everyone — including users with disabilities or color blindness — can easily navigate and interact with our platform.
What we learned
Throughout this project, we learned how to leverage Gemini LLMs to our advantage—using them to guide semantic search algorithms within our vectorized database and to generate clear, user-friendly outputs. We also gained hands-on experience working with LLMs, designing an eye-catching UI, and building Chrome extensions. Additionally, we explored tools like Eleven Labs and Vultr, learning how to integrate cloud infrastructure and multiple APIs to create a seamless, scalable, and interactive user experience.
What's next for CanvAI
Moving forward, we plan to expand CanvAI’s capabilities by incorporating additional Canvas features such as announcements, notifications, and even video lecture content. By integrating these elements, we aim to make CanvAI a comprehensive assistant that helps students stay informed, organized, and engaged across every aspect of their courses.
Built With
- canvasapi
- gemini2.5-pro
- huggingface
- openrouter
- python


Log in or sign up for Devpost to join the conversation.