Inspiration

Students rarely fail for lack of material. The material is scattered across lecture videos, slides and textbooks, and their study plan never adapts. Nobody warns them they're about to forget last week's topic. We wanted a study companion that gives answers you can verify and fixes your plan before you fall behind.

What it does

Bloom merges videos, slides and textbook pages into one searchable knowledge base. Every answer cites the exact video timestamp, slide or page. It also tracks mastery per topic and rewrites your schedule when you miss a session, bomb a quiz or start forgetting.

How we built it

  • Stack: React, Vite and Tailwind on the frontend. Express and TypeScript on the backend. Postgres with pgvector for storage.
  • Ingestion: We chunk each source and record where it came from (timestamp, slide or page). Slides, diagrams included, are read by a vision model. Chunks are embedded and tagged to a topic tree by a similarity threshold.
  • Cited tutor: Hybrid search combines semantic and keyword matching. The LLM may answer only from the retrieved passages. A validator then checks that each passage exists, that the quoted words really appear in it, and that the location resolves. A failed answer gets one repair attempt, then a safe fallback. If there's no evidence, Bloom says so.
  • Design principle: The AI writes words and code makes decisions. Mastery, scheduling, deadlines and validation are deterministic code, so the system still runs with the model turned off.
  • Forgetting model: Retention decays exponentially, $R(t) = e^{-t/S}$, where $S$ is the memory strength for a topic. Bloom schedules a review when $R$ drops below a threshold.
  • Agent loop: An observe → plan → act loop re-plans on its own. If a deadline can't fit the work, it offers real trade-offs (extend the deadline, add study time or cut scope) instead of a fake schedule.
  • Reliability: A tool layer with circuit breakers and retries falls back to the last good result when something fails.

Challenges

  • Getting citations to be provably correct, not just plausible. Checking quotes against the source text fixed this.
  • Aligning three modalities (video time, slide number, page number) in a single index.
  • Keeping the LLM out of decisions that need to be reproducible.
  • Making quiz generation trustworthy. A question is accepted only if its answer is quoted from the course material.
  • Handling impossible schedules honestly and recovering from tool failures without breaking the user experience.

What we learned

  • Validating LLM output with deterministic checks beats prompting it to be careful.
  • Hybrid retrieval outperforms pure vector search on course material full of technical terms.
  • Designing for failure, with fallbacks and clear flags, is what makes an AI product feel dependable.

Built With

Share this project:

Updates

Submission history