October, 2024
I built this semantic‑search platform during a 8‑hour UBC hackathon, where our team set out to make the flood of Canvas course discussions easier to navigate in a single day.
End‑to‑end architecture: Designed a three‑tier stack—Jupyter notebooks for rapid NLP experimentation, a Flask API for vector indexing/querying, and a Next.js front‑end that mirrors the Canvas UI.
Semantic search engine:
- Extracted discussion posts via the Canvas REST API.
- Generated sentence embeddings with sentence‑transformers and stored them in a FAISS vector index.
- Exposed REST endpoints (/search, /discussions) that return ranked results in <150 ms for a 10 k‑post corpus.
Interactive UI: Built a React/Next.js search bar that displays contextual snippets and deep‑links back to the original Canvas thread, improving discoverability during large‑class discussions.
Tech stack: Python, Flask, FAISS, sentence‑transformers, Canvas API, Next.js (TypeScript), React, Tailwind CSS