The enviroCar project allows users to collect and share their driving statistics via an OBD sensor coupled with an Android app. The app collects car data and pushes the data to a server with a stateless REST API that exposes this data. The website of the enviroCar project, which is currently built in PHP, makes use of this API endpoint to provide a dashboard experience to a user for vehicular track analysis. The project’s objective is to rebuild the website as a SPA (Single Page Application) with the AngularJS framework that could also serve as the starting point for the next generation website.
Apart from just reimplementing the same set of features in AngularJS, I propose to also add a rich set of visualizations and features that would give more power and flexibility to the user who would like to explore his/her tracks. I propose to implement the following important analytics features:
- Track Performance: To provide visualizations for the user to compare the performance (in terms of fuel efficiency, pollution levels) of the track in question to the average performance of all users and also to compare with the user’s other tracks.
- Track Segment Analysis: Provisions that allow the user to examine the statistics of a particular segment of the track for a finer level of clarity and flexibility. This would allow one to observe more useful information from local sets rather than just an aggregated global performance set.
- Multi Phenomena Comparison: The current implementation only allows for two phenomenon to be compared at a given time. The objective is to allow multiple phenomena to be plotted against each other for better understanding of how one parameter affects the others (a simple click to select and deselect option). Better intuitive visualizations involving different graph types will be an addition to the current website.
- R (OpenCPU implementation) integration to allow for advanced an analytics section that goes beyond visualizations. It will provide mathematical measures to support the visualizations from the previous section.
The charting framework for the visualization is D3. NVD3.js is specifically used for the same. LeafletJS is used to plot the track on an interactive Map. AngularJS is used to build the entire SPA. These broad generic milestones have a more detailed (on the implementation front) approach that can be found in the initial proposal for this project under the Google Summer of Code 2016 Umbrella.
I am Naveen Jafer a Pre-Final year student of Computer Science from Birla Institute of Technology and Science Pilani, Hyderabad Campus in India. If you are interested in this project you will find more technical details on the official wiki page and in the blog posts to come.