Stage 2 (out of 3) project
What are we trying to build?
We built a data visualization application in which user can upload a CSV file that contains data. Using that data in CSV format, the app will generate a chart, the type of which can be changed on the go. The type of charts that the app provides are Line, Bar, Pie and Column charts. The users can then download and save the charts in their computer for offline use. The charts will also be saved in the app and can be accessed anytime. For each user, we have a separate account to store charts for that particular user.
Why did we choose to work on this?
The reason we chose to do this project is because of the growing importance of data in every industry these days. If we use the data that is available to us in an appropriate way, it can prove to be of great benefit and any individual or organization can have a competitive advantage.
Data visualization is certainly one of the ways in which we can use data to determine future trends and past performance of just about anything we can imagine. So an app like ChartOwl can be very useful for such needs.
Technologies used and why?
The technologies we have used to build this web application are:
React as the front end framework
Redux for state management
For the core part of the app which is generating and exporting charts, we have used of the Highcharts library as it allows one to create interactive and a wide variety of charts and export them as images or pdf as required.
The advantage of this library is that one is free to choose the level of customization, unlike D3.js which in itself is a good library but requires a lot of customization.
The backend part of our application is built using the Parse platform which is an Open Source BaaS platform which helps developers implement scalable backend as per their requirements and with least complications as compared to using Node and MongoDB directly.
Future scope of improvement?
The 2 major improvements that we feel should be made in this web application are :
Allow the user to enter data manually in the web application itself inside a tabular like structure and generate a chart thereby providing an alternative option to the existing upload CSV.
Allow users to generate embedded URL so that the chart can be embedded in websites by the user by copying the embedding URL.