# Project export: LearnBridge

This document was generated by HackStack to give an AI agent context about a hackathon project. Sections are labeled with their provenance; content marked as truncated was cut to keep this document small.

## Project metadata

- Hackathon: Cal Hacks 12.0
- Tagline: AI tool for student productivity and organization, because monitoring canvas, teams, docs, discord, and gmail is way too hard on top of your studies!
- Devpost: https://devpost.com/software/learnbridge-cbnjx2
- GitHub: not linked
- Video: https://www.youtube.com/embed/wRsyMHja9rw?enablejsapi=1&hl=en_US&rel=0&start=&version=3&wmode=transparent
- Team: contributor stats unavailable

## Devpost submission (written by the team)

### Inspiration

Students constantly juggle multiple courses, each with their own slides, assignments, grades, and announcements. Managing all this information is overwhelming — especially when you just want to ask a simple question like “When is my next assignment due?” or “What topic should I review for the exam?”. LearnBridge was inspired by that gap — the idea that Canvas knows everything about your courses, but you can’t talk to it.

### What it does

LearnBridge is an AI agent that connects directly to your Canvas LMS and lets you talk to your coursework. It can: 🧠 Understand your assignments, including reading PDF instructions, extracting key info (due date, rubric, description). 📢 Summarize announcements and suggest next actions. 📚 Parse all course content files (lecture slides, notes) for context-aware Q&A and exam prep. 🎓 Analyze your grades and feedback to pinpoint where you can improve. 🧩 Generate structured outputs — from tables of deadlines to study summaries and assignment writers.

### How we built it

We used Sim AI as our orchestration layer — it dynamically decides which tool (API function) to call using an AI Router, enabling autonomous tool usage with context awareness and memory. Core components: 🛠️ Canvas API Integration list_assignments(student_id) get_assignment_details(student_id, assignment_id) list_announcements(limit) list_grades(student_id) get_course_content(course_id) list_assignments(student_id) get_assignment_details(student_id, assignment_id) list_announcements(limit) list_grades(student_id) get_course_content(course_id) 📄 PDF Parsing Engine: Extracts text from Canvas file attachments (lecture notes, assignments). 🧩 AI Router: Routes student questions to the right API tool dynamically based on prompt context. 🧠 Memory & Context Layer: Keeps conversation history so the AI understands what’s already been discussed. Each API function: Calls the Canvas API Parses relevant information Returns it as a structured HashMap Lets the AI interpret, summarize, and respond contextually

### Challenges we ran into

📎 PDF parsing issues: Canvas-hosted PDFs (with download_frd links) often failed to parse correctly because of authentication and non-direct download links. ⚙️ Grades API errors: Canvas sometimes returned HTTP 500 or 404 for submission or grade endpoints — requiring error-handling logic and retries. 🧭 Tool orchestration: Making the AI dynamically select which API to call (and when) without hardcoding prompts was tricky — required designing clear, semantic tool descriptions for the AI router. 🧠 Maintaining context: Ensuring the agent remembered user intent across multiple API calls without redundant fetches.

### Accomplishments we're proud of

Built a fully agentic Canvas AI capable of querying assignments, announcements, and content intelligently. Created a robust tool layer with dynamic routing, allowing seamless switching between multiple Canvas functions. Successfully parsed and structured course content PDFs for contextual Q&A. Designed a modular prompt-driven architecture for tool calling, making the system easily expandable (more tools, new LMS platforms, etc.).

### What we learned

How to design AI systems with memory and function calling, not just chatbots. How Canvas APIs are structured — and how to handle their quirks (rate limits, 404s, and attachment handling). How to build an AI Router that uses LLM reasoning to choose the right action dynamically. The importance of context continuity for agent UX — students expect the AI to “remember” what they’re talking about.

### What's next

🚀 Fix PDF parsing: Add authenticated download + OCR fallback for all Canvas file links. 💬 Assignment Writer & Exam Prep Components: Personalized agents that generate study plans or draft assignment outlines based on course materials. 🎓 Integrate across platforms: Support for Google Classroom, Brightspace, and Blackboard. 🪄 Canvas plugin: So students can access LearnBridge directly inside their LMS dashboard.

## README (from the GitHub repository)

No README available.

## Detected evidence (automated analysis)

No repository was indexed for this project. Claimed technologies below could not be checked against code.
- JavaScript (language) — claimed on Devpost, not found in the code

## Codebase structure

No repository index available.

## Key source files

No repository index available; no source files included.