MUSTANG MOBILITY
Accessibility-first campus navigation


Navigating a university campus isn’t just about distance—it’s about access. Existing tools like Google Maps or static accessibility PDFs don’t support real campus needs: multiple destinations, entrance-level accessibility, or building hours.
Buildings aren’t single points.
Accessibility depends on which entrance you use. Modeling each building as a single node hides critical constraints and leads to unusable “shortest paths.”


SIXTY PERCENT
of disabled students experience fatigue simply trying to get around campus—often without sufficient institutional support.
THE SOLUTION
Model the campus as a graph where each building has multiple entrance nodes, each with its own accessibility metadata. Then compute routes using Dijkstra’s algorithm, selecting the most accessible entrance–exit combination at every step.
Users can:
Select multiple buildings
Filter for wheelchair-accessible entrances
View entrance images, building hours, and closing warnings




THE PROBLEM
INSIGHT
CORE SYSTEM DESIGN
Graph-based model with 5,000+ edges
Dijkstra’s algorithm for reliable, constraint-aware routing
Adapter pattern to decouple graph storage from algo and UI
Singleton graph instance to ensure consistency and performance
This structure made the system scalable, debuggable, and realistic.


CHALLENGES → SOLUTIONS
Messy real-world data → CSV validation + logging
Missing nodes in adjacency lists → defensive checks + refactored edge models
Multi-entrance complexity → evaluate all entrance combinations per route leg
Each challenge reinforced that real-world systems are messy—and must be designed for it..
KEY ENGINEERING DECISIONS
Why Dijkstra (not Prim’s):
1
2
Why multiple entrance nodes:
3
Why testing mattered:
The problem wasn’t “connect everything cheaply,” but “find reliable, accessible paths between chosen destinations.”
Modeling that included every entrance in all buildings enabled meaningful accessibility decisions instead of theoretical shortest paths.
Using Google Test / Mock surfaced 4+ edge cases early—missing nodes, broken adjacency links, and invalid paths.
Good abstractions matter more than clever algorithms
Edge cases are product cases
Designing for accessibility improves system quality overall
WHAT I LEARNED
WHAT I'D DO NEXT
Add elevation/slope and indoor routing
Expand to surrounding London routes
Introduce user feedback loops for accessibility data





