The basic concepts and methodologies used in the design and implementation of the visualization services derive from fundamental techniques used in data warehouses , data analytics and business intelligence  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:
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.)
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.)
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.)
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?)
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)
ChartJS : Displaying charts¶
D3 : Displaying more complex formats¶
React : Front-end JS framework¶
MongoDB : Storing configurations and data¶
It is a flexible and scalable document database offering querying and indexing.
Java Spring : Back-end web framework¶
Spring framework is a lightweight open source Java platform to create high performing, easily testable and reusable code.