We used a Model View Controller architecture to build the core components of our system. Models define visualization types and data storage. Views define elements of the graphical user interface, supported by styling and control features. Controllers are the “brains of the system,” directing the flow of the application and responding to user input and events. This architecture was chosen to keep our design as modular and flexible as possible. That is to say, we wanted to be able to create visuals that were independent of any data set. No matter how the data set would change in the future, the visuals that we created would still work properly. Using an MVC approach we were able to separate many components of the system. In one case we decoupled data retrieval from visualization models. In another enhancement, we modularized the components of the dashboard itself. This further allows us to interchange new visuals that were developed without creating a dependency on any one component of the system. Decoupling components of the application with respect to an MVC mindset was a key part of producing the quality of this project.