How mizcausevic-dev/curriculum-knowledge-graph works
Purpose and principal workflow
Curriculum Knowledge Graph is a small FastAPI application for exploring course prerequisites, skill dependencies, and pathway bottlenecks using a seeded degree-program graph. An HTTP client initiates the main workflow by requesting a page or API endpoint; the application then renders a view or returns graph analysis. The README documents use by faculty and academic operations teams, and positions the API as a potential input to catalog, pathway, and advising tools.
Components
HTTP application and presentation
• HTTP client — *(external; no repository path)* A browser or API consumer initiates requests to the service; the README documents browser routes and machine-readable endpoints.
• Uvicorn runtime — *(external; no repository path)* The documented local launch runs the application through Uvicorn, which serves the HTTP interface.
• FastAPI application and routes — app/main.py Defines the app, exposes HTML and JSON routes, calls the graph service, and starts Uvicorn when run as a module.
• Curriculum page renderer — app/render.py Builds the overview, capstone pathway, skill-dependency, and API-summary HTML pages; the sampled functions obtain their display data from the graph service.
Graph data and analysis
• Seed curriculum graph — app/data/sample_curriculum.json Supplies the local course, prerequisite, skill-dependency, and program data read by the graph service.
• Curriculum graph analysis — app/services/graph_service.py Loads the seed, constructs forward and reverse prerequisite adjacency maps, computes course bottleneck scores and skill mappings, and finds pathways with breadth-first search; it also assembles summary and sample payloads.
Relationships
• HTTP client -> Uvicorn runtime: sends an HTTP request to the locally served application; the README documents the local URL and routes.
• Uvicorn runtime -> FastAPI application and routes: serves the application launched by the uvicorn.run("app.main:app", ...) call.
• FastAPI application and routes -> Curriculum graph analysis: constructs the service at module initialization and invokes its methods from the JSON endpoints.
• FastAPI application and routes -> Curriculum page renderer: calls the corresponding renderer for the overview, pathway, skills, and API-summary page routes.
• Curriculum page renderer -> Curriculum graph analysis: builds a service and reads summary, bottleneck, pathway, skill-map, or sample-payload results for page content.
• Curriculum graph analysis -> Seed curriculum graph: reads and parses the JSON file as the input to graph construction and analysis.
Coverage limits
The source excerpts do not include the full renderer or seed dataset, so page details beyond the sampled functions and exact graph contents are not established. The repository demonstrates local seeded analysis; no external database, persistence layer, or deployed consumer integration is evidenced.
Main entry points: main.py FastAPI Routes · graph_service.py Graph Analysis · render.py Curriculum Renderer · sample_curriculum.json Seed Curriculum Graph
Components 6
HTTP Application
- FastAPI Routes
app/main.py - Curriculum Renderer
app/render.py
Graph Analysis
- Graph Analysis
app/services/graph_service.py - Seed Curriculum Graph
app/data/sample_curriculum.json
Other components
- HTTP Client
- Uvicorn Runtime
Connections 6
- HTTP Client → Uvicorn Runtime: sends request
- Uvicorn Runtime → FastAPI Routes: serves app
- FastAPI Routes → Graph Analysis: invokes analysis
- FastAPI Routes → Curriculum Renderer: renders pages
- Curriculum Renderer → Graph Analysis: reads results
- Graph Analysis → Seed Curriculum Graph: reads data