Skip to content
ashton.aschenbrener
All projects

shipped project

Campus Compass

A campus assistant that answers course questions using semantic search over the catalog and a prerequisite graph for path navigation. Every answer includes the cited section.

Next.jsTypeScriptPostgrespgvectorReact Flow

Problem

What it solves.

Catalog PDFs are dense and prerequisites are buried. Students need to plan paths, not search keywords.

What I built

The specific parts I implemented.

›Catalog ingest + chunker
›Prereq graph builder
›Source-aware retrieval
›Path navigation UI

What I owned

My responsibility surface.

Frontend UI

Retrieval pipeline

Graph rendering

Architecture

How data moves through the system.

Next.js UI(search + path view)APICatalog ingestPrereq graphpgvector storeHybrid retrievalSource-cited answer

Screenshots

What the system looks like.

AI course advisor chat interface with suggestion buttons for Find Courses, Prerequisites, and Campus LocationsPrerequisite graph view showing course dependency navigationCourse search view with semantic results and source-cited answers

Data model

What entities the system tracks.

Course
- id
- code
- title
- description
- units
Prereq
- course_id
- requires_course_id
- type
CatalogChunk
- id
- course_id
- content
- embedding_id

Failure handling

What happens when something breaks.

Empty retrieval (no courses match query)

Surface 'no results' with suggested broader terms; do not hallucinate course data.

Graph cycle in prerequisites

Cycle detection on ingest; cycle edges flagged in UI instead of infinite path rendering.

Embedding search returns low-confidence results

Threshold filter applied; results below score are omitted rather than shown as weak matches.

Verification

How I tested or evaluated it.

Eval harness

Cases, expected, actual.

Semantic search returns relevant courses

pass
Input
Query: 'computer science introduction courses'
Expected
Return CS 101, CS 110, and related intro courses with chunk-level citations.
Actual
Returned 5 results; top 3 matched intro CS. All results included cited catalog sections.

Prerequisite path finds valid route

pass
Input
Find path from intro math to upper-level statistics.
Expected
Graph walk produces a valid prerequisite sequence without gaps.
Actual
Walk returned 4-node path with no missing intermediate courses.

Citation fidelity — no hallucinated content

pass
Input
Ask a question about a course that exists in a different subject area.
Expected
Answer cites only the matching course; does not blend unrelated course info.
Actual
Response correctly scoped to the matched course. No cross-contamination.

Next improvements

Known gaps & next moves.