CHART VIS

Introduction

The basic concepts and methodologies used in the design and implementation of the visualization services derive from fundamental techniques used in data warehouses [1], data analytics and business intelligence [2] tools. The core independent processes and service layers that have been identified as vital for the delivery of a complete and efficient data visualization tool are the following:

Data Extraction

In order data to become available in the system, the visualization service should be able to fetch them from their source. Datasets are available in various formats and reside in data sources that implement different data transfer protocols. For this purpose, the service should be able to support some widely used protocols for fetching data and also offer the ability to easily extend the extraction capabilities with new injectable methods.

(* In the first half of the project, the service will support fetching data from a rest API and csv files.)

Data Transformation

The visualization service can operate on data of known format in order to be able to extract and present useful information. Nevertheless, the source data may require some processing in order to comply with the schema of the service. For this purpose, simple data transformation operations should be supported and offered by the service.

(* In the first half of the project, only direct - pass through importing will be supported.)

Loading

Data may reside on an external source or may be imported in the system for faster processing and visualization.

(* In the first half of the project, the system will support import of data in a mongo db database. Other alternatives will be investigated in future releases.)

Analysis

The generation of a chart may require some server-side processing of the imported data in order to generate the expected result. Some examples of basic operations that will be supported are filtering, aggregation, (joining?), etc…

(* In the first half of the project analysis will be performed at server side by java code. Will be investigated if querying on datastore or big data framework should be also supported?)

Presentation

The service supports various chart types and other more complex formats.

(* In the first half of the project the following types will be supported: Charts (Spline, Scatter, Bar, Line, Step), Graph, Tree - MindMap)

Technologies

ChartJS [3]: Displaying charts

An open source javascript chart library for developers offering a number of various cross-browser responsive charts, available under the MIT license.

D3 [4]: Displaying more complex formats

This javascript library uses HTML, SVG and CSS web standards offering data-driven approach to DOM manipulation.

React [5]: Front-end JS framework

It is a declarative, efficient and flexible JavaScript library for building user interfaces.

MongoDB [6]: Storing configurations and data

It is a flexible and scalable document database offering querying and indexing.

Java Spring [7]: Back-end web framework

Spring framework is a lightweight open source Java platform to create high performing, easily testable and reusable code.

Links

[1] https://en.wikipedia.org/wiki/Extract,_transform,_load
[2] https://en.wikipedia.org/wiki/Business_intelligence_software
[3] http://www.chartjs.org/
[4] https://d3js.org/
[5] https://reactjs.org/
[6] https://www.mongodb.com/
[7] https://spring.io/