How matthewhtang/campus-nav-analytics works
This is a menu-driven C++ campus information application. Users select facility browsing/search, building graph and BFS, or department-tree operations; startup loads the corresponding records before the menu runs. The graph separates those domain areas and includes the shared input/record utilities and facility hash index. Some capabilities documented for later milestones are represented, but their runtime wiring is not assumed where it was not shown.
Main entry points: main.cpp Menu and startup · FacilityDatabase.cpp Facility database · CampusGraph.cpp Building graph · data Campus input files
Components 12
Application
- Menu and startup
src/main.cpp - Campus input files
data - Input utilities
src/Utils.cpp
Facilities
- Facility database
src/FacilityDatabase.cpp - Facility records
src/Facility.cpp - Facility ID index
src/HashTable.cpp
Campus Graph
- Building graph
src/CampusGraph.cpp - BFS reachability
src/CampusGraph.cpp - Shortest path
src/CampusGraph.cpp
Departments
- Department tree
src/DepartmentTree.cpp - Department nodes
include/DepartmentNode.h
Other components
- Campus user
Connections 18
- Campus user → Menu and startup: chooses operations
src/main.cpp - Menu and startup → Building graph: loads and dispatches
src/main.cpp - Menu and startup → Facility database: loads and dispatches
src/main.cpp - Menu and startup → Department tree: loads and dispatches
src/main.cpp - Campus input files → Building graph: supplies buildings
README.md - Campus input files → Building graph: supplies connections
README.md - Campus input files → Facility database: supplies facilities
README.md - Campus input files → Department tree: supplies departments
README.md - Facility database → Building graph: validates buildings
src/FacilityDatabase.cpp - Facility database → Facility ID index: indexes and searches IDs
src/FacilityDatabase.cpp - Facility database → Facility records: creates records
src/FacilityDatabase.cpp - Building graph → Input utilities: uses record helpers
src/CampusGraph.cpp - Facility database → Input utilities: reads and validates records
src/FacilityDatabase.cpp - Facility ID index → Input utilities: normalizes IDs
src/HashTable.cpp - Department tree → Input utilities: reads and validates records
src/DepartmentTree.cpp - Department tree → Department nodes: creates and links
src/DepartmentTree.cpp - Menu and startup → BFS reachability: requests reachability
src/main.cpp - Menu and startup → Shortest path: offers shortest path