Inspiration

As students, our academic lives are scattered across a dozen platforms. We have Canvas for logistics, Quizlet for memorization, and generic AI for explanations. But none of these tools understand the context of our specific course. We realized that Canvas isn't just a list of files. it's a tangled web of knowledge. We built Knot to "pull the right thread", turning a semester's worth of disconnected PDFs and assignments into a structured path to mastery.

In general, we are very passionate in EdTech and creative applications of modern stacks to optimize learning.

What it does

Knot is a course-aligned study tool that integrates directly with your Canvas account. It ingests your entire course history, including syllabus, modules, and assignments, and organizes them into a comprehensive knowledge base. Knot can also generate practice questions from your materials, and identifies your weak spots so you can focus on what matters.

Contextual quizzing: It generates practice questions that are strictly "course-scoped," meaning it tests you on material your professor has actually provided.

Traceable answers: Unlike generic chatbots that hallucinate, every answer Knot uses citations traceable back to specific source chunks (like a specific paragraph in a lecture slide).

Gap analysis: It identifies exactly which concepts/nodes of knowledge you are weak on and serves up the specific material needed to help you practice it.

Task creation: Users can create "tasks" with deadlines (for example, a Homework assignment or a Midterm Exam) and include any units, topics, or subtopics they want under the task to prepare for it or learn the material contained in it. This way, you can choose exactly what kind of practice problems you receive so you can concentrate your learning for a specific task, like an exam.

Chatbot: We threw in a built-in chatbot assistant that is trained with all the information on your courses, syllabi, tasks, deadlines, etc. just for good measure.

How we built it

We designed our own RAG architecture to power Knot, prioritizing a clean, structured pipeline to stay within the scope of the hackathon. Ingestion: We used the Canvas API to fetch course modules and store raw documents in Snowflake. Vectorization: We implemented a structured chunking strategy (splitting by paragraph with overlap) and used Gemini Embeddings to create vectors stored directly in Snowflake using the VECTOR(FLOAT, 768) data type. Generation: We utilized Gemini for the generation layer. When a user queries a topic, the system performs a cosine similarity search in Snowflake to retrieve the top 6-8 relevant chunks and Storage: We designed a relational schema in Snowflake with tables for courses, modules, documents, and document_chunks to maintain strict hierarchy and organization.

Challenges we ran into

We had to make tough decisions to ensure the project was finishable. We explicitly defined "Non-Goals" like hybrid search, caching layers, and ANN indexing to prioritize a working prototype. Also, handling updates was tricky. We had to design an update strategy where if a document changed, we deleted all associated chunks and re-ran the embedding process to prevent ghost data.

Accomplishments that we're proud of

Zero hallucinations: We achieved very solid levels of traceability. The backend validates that every cited source actually exists, so students can trust the study guide. Course and topic isolation: We successfully implemented logic to ensure no cross-course contamination, or even cross-topic contamination, so your Biology notes never leak into your Chemistry study session.

What we learned

Vector Search in Snowflake: We learned how to implement VECTOR_COSINE_SIMILARITY natively within Snowflake SQL queries to rank content relevance without needing an external vector database. We also learned that a smaller, highly relevant dataset (your actual homework) produces significantly better study results than a massive, generalized model.

What's next for knot

We want to try moving from infrequent ingestion to a real-time event listener that updates your study guide the moment a professor uploads a new file.

We also want to potentially integrate the option to tailor the medium of learning content (rather than just quizzes) such as video generation, podcasts, diagrams, etc. To turn Knot into a truly freeform learning engine.

Built With

Share this project:

Updates