*5.2. Dashboard Implementation*

The Dashboard is implemented as a 3-tier Java EE7 application, consisting of, from bottom to top, data access layer, business logic layer, and presentation layer.

The data access layer communicates with a MySQL database, translating data from/to database format to/from domain format. The database was designed and built based on the information modeling described in Section 4. Java entity beans and data access objects are used to map database entries to Java objects and vice versa. The value of this approach is that if something changes in the database structure, changes are automatically reflected on the application data model.

The business logic layer manages user authentication/authorization, and it performs actions based on user inputs and expected outputs. It provides a set of RESTful HTTP endpoints used to drive most of the functionality of the Dashboard, including administration facilities, as well as CRUD (create, read, update, and delete) operations on the database data.

The presentation layer handles user requests and displays information to users. The GUI consists of a web application based on HTML5, Bootstrap [21], and Angular [22]. The GUI is designed to be responsive, meaning that one may access the platform through any kind of device from smartphones to desktop computers. The main functions of the GUI are described in the following.
