Skip to content

Dashboard Architecture

Luca Mearelli edited this page Jun 3, 2014 · 4 revisions

The current incarnation of the edgesense SNA tool is made up of two components:

  • a python script used to build the network from the source json files and to compute all the metrics. This script is contained in the python directory (it is build_network.py)
  • a single-page HTML5/javascript application that reads the json produced by the python script and builds a dashboard with the visualization of the network and the metrics

The process to populate the dashboard is the following:

  1. the views to dump the JSON for the users,nodes and comments are created in the community sites
  2. the build_network script is scheduled to be run at regular intervals, the paths or URLs to the json files are passed to the script
  3. the configuration.json file is created with the analytics tracking id, and the dashboard name to use.
  4. when a user opens the dashboard page the javascript code in the page populates the visualization:
  5. the configuration.json file is read from the server and used to set the dashboard title and activate the analytics tracking
  6. the help.json file is read from the server and used to populate the dashboard contextual help
  7. the latest.json file is read from the server and with the information provided there the processed data is read
  8. the json containing the processed data is used to setup the dates range to be shown and the latest metrics are shown 4.5 the json containing the processed data is used to populate the network graph 4.6 all the dashboard controls (filters, time slider, ...) are activated

When the dashboard is running, each user interaction with the time slider or with the filters results in the following events:

  1. the current view-date is updated
  2. the metrics corresponding to the current view-date are extracted from the processed data
  3. the network is updated by showing only the elements that are valid at the current view-date selected
  4. the graphs are updated to show the current metrics

N.B. both the python script and the dashboard should be on the same machine, but they can be on a different host from the one where the community is hosted