GitHub is a web based version control repository. This was chosen because team FNS was familiar with this specific repository. Every member of team FNS is knowledgeable in version control and has consistently used GitHub throughout the development of this application.
Atom is an open source text editor that is available all on platforms. Atom was specifically chosen as our primary IDE because of the fact that it is easy to use and it supports a majority of all the current and popular languages used in the Computer Science field.
MySQL is an open source database that Web sites and Enterprise level companies alike. We chose MySQL because we are both familiar with using MySQL and we were given no restriction on which database technology to use with all test data given to us. The point of using MySQL was to store all of the test data that our sponsors gave to us to use. Specifically this data was analyzed in order to find information that was relevant to a system administrator making informed decisions when managing their data on the Spectrum Protect servers, and to visualize that information. After we found the proper visuals for said data we used queries to communicate with the database and feed the data returned by the database to the visuals.
HTML was used as the underlying frame used to create this web application. This conforms to the standards of web applications that all use HTML. In order to rapidly prototype our application with a familiar look, we used Bootstrap. It is s a great framework for fast front-end development. In particular, Bootstrap allowed us to provide the system administrator with a familiar user interface which is akin to the current version (as of 2017) of the Spectrum Protect product.
Backbone is a JavaScript library that provides a framework for key-value binding and custom events. This is critical for our application as the dashboard highly dynamic. With Backbone we can keep components modular and the whole application more flexible.
PHP was used for a few separate reasons. Apart from being familiar with PHP, PHP allowed us to create scripts that would run in the background of our application in different cases. For example, in order to actually retrieve the data needed for a visual, a script runs in the background that communicates with the MySQL database and returns that data to the visualization. We also used this script to take care of the login page; this includes a validation page that checks against the database to make sure that no unwanted access occurs. Lastly we used a PHP script to quickly load the test data into the MySQL database.
JavaScript was used specifically to improve upon the initial functionality of our original application prototype. JavaScript allowed team FNS to introduce and expand the ways that a system administrator navigates the application.
D3 is a JavaScript library that is specifically used to visualize data. This was our primary choice because it was recommended to us by our sponsors. All of the visuals used by team FNS on this project stemmed from an initial base visual; the initial visuals can be found at D3js.org where there is a lot of various example of different visualizations for different kinds of data ranging from basic bar graphs to intricate heat maps. Team FNS then proceeded to modify and expand upon all of the different visuals that were used in order to add different features to the visual for both the requirements of this project as well as to increase the usability of the visualizations. This included adding a way to filter out data from the visual, adding legends to the visual, increasing all sizes for increased readability, and modifying these visuals so that they can handle large amounts of data at a time. Finally all of the D3 visuals are taken and placed in the dashboard where it uses a php script to fill in the visual with relevant data.