Skip to main content

Documentation Index

Fetch the complete documentation index at: https://cors-lau.vercel.app/docs/llms.txt

Use this file to discover all available pages before exploring further.

The Graph API returns the prerequisite dependency graph for all courses in the catalog. Each node is enriched with bottleneck and demand scores from the most recent prediction run, allowing you to identify which courses are systemic bottlenecks in the curriculum.
Only courses that participate in at least one prerequisite relationship appear as nodes. Standalone courses with no prerequisites and no dependents are excluded from the graph.

GET /graph/

Returns the full prerequisite graph as a collection of nodes and directed edges.

How edges are directed

Each edge represents a prerequisite relationship:
  • source — the prerequisite course (must be completed first)
  • target — the dependent course (requires the source)
For example, if CSC243 requires CSC201, the edge is source: "CSC201", target: "CSC243".

Scoring fields

The bottleneck_score and latent_demand fields on each node are pulled from the latest prediction run at the time of the request. If no prediction run exists yet, both fields default to 0.
FieldFormula / sourceInterpretation
latent_demandPrerequisite completion analysis + influx inputsEstimated students ready to enroll this term
bottleneck_scoreCount of downstream courses blocked if this course is unavailableHigher = more curriculum impact if skipped
Impact score (derived)latent_demand + (5.0 × bottleneck_score)Courses with impact > 150 are systemic bottlenecks

Responses

nodes
object[]
Array of course nodes. Only includes courses that appear in at least one prerequisite edge.
edges
object[]
Array of directed prerequisite edges.
curl https://your-cors-instance.com/graph/ \
  -H "Authorization: Bearer eyJ..."

Identifying systemic bottlenecks

To flag courses that, if skipped, would block the largest number of students across the most downstream courses, compute the impact score client-side:
impact_score = latent_demand + (5.0 × bottleneck_score)
Courses where impact_score > 150 are considered systemic bottlenecks and should be prioritized for offering regardless of the ML recommendation.
The bottleneck and latent demand scores in the graph reflect the most recent prediction run. If you have just uploaded new data or run a fresh prediction, refresh the graph to get updated scores.