Introduction
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 enviroCar project’s website, 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. This could also serve as the starting point for the next generation website.
The core tasks and milestones laid out for the first four weeks can be summarized as follows.
- Build a working model of the website with primary and important features: The emphasis should be on visual analytics and user workflow model.
- Improve the User Interface of the application to move towards the next dashboard design of the website. We were also able to decide on the improvements and additions that have to be carried out on the server side to make the dashboard more informative for the user.
An overview on sections and the work done is listed below.
Dashboard Page
We intend to give the user a quick review of his latest activities, tracks and friends’ activities in addition to other profile overview information, such as number of tracks and friends. A timeline of the last 5 tracks is present on the main page of the dashboard along with user statistics vs public statistics of phenomenons (e.g. speed, consumption, CO2 emission). Updates must be made to the enviroCar server backend to provide more related average information that will help the user gauge vehicle performance with respect to other users of similar vehicles. Once this is done, the dashboard will contain performance grades and measures while pitting performance against a more relevant set of statistics.
The Activity Section shows the latest user activity and friend’s activity. Due to current CORS issues, the user icons do not work as expected. This will be resolved soon.
The Friends Section currently has a list of friends whose profiles can be explored. A search option for friends and the corresponding groups functionality will be added to the same tab soon.
TracksListPage
This section presents a paginated approach to all the user’s tracks. He/she can preview his/her track by hovering above the track.
Single Track Analytics Page
A card based approach for most of the application has been taken to encapsulate each feature into a unit of its own. That makes the application really convenient to extend and also brings a structured approach to it. This also adheres to the material design guidelines. We decided to go with an Angular material look and feel to the website as it gives a consistent user experience throughout the software stack (Android application).
The single tracks analytics page consists of 4 sections.
- The leaflet of the map with varying colour combinations for segments of the track for 5 important phenomenon (if one is not present in the user’s data, it is removed from the list).
- The chart with multiple phenomenons on the same graph is an NVD3 graph that can be used to compare multiple phenomenons as per requirements.
- A pie chart shows the category in which the tracks performance lie for each individual phenomenon.
- An overview of the track that displays information like total consumption and emission, among other details.
Login Flow
The current login and authentication method sends login credentials on every subsequent request to the server. This implementation will be changed to a secure JSON web token based approach once a few changes are made on the server side.
Internationalization Support
The foundation is in place to support different languages in the website. During the next couple of weeks, the data for the localized versions will be integrated in the website to allow more users to comfortably use the service.
Friend’s Profile View
Accessing a friend’s profile uses the same logic and code used to view one’s own profile. The user can gain insight into his friend’s statistics. The other user’s privacy is not compromised due to the abstraction of those parts required.
Single Track Page for Sharing
One can share the single track page with anyone who is not logged in/does not have an account with enviroCar. The tracks appear anonymously with only an identifier. The user is able to view the other details of the track after logging in. In addition, segment analysis and advanced analytics are only available/visible after login.
Over the next weeks
The past few weeks have been well spent on building a strong modular foundation for the project. Well structured and logically separated parts not only make the functioning robust, but also make the application highly extensible. This keeps in mind the requirements the community will face in the future.
Segment track analysis for a particular segment of a track has to be performed to allow the user to compare the performance of tracks that overlap with a certain threshold in the same route segment. This provides more flexibility to the user to compare local statistics per track instead of overall statistics. Exploring other advanced analytics will also be carried out.
Other usual website functionality like signing up users, more secure token logic for login authentication, editing user profile are a few of the minimum requirements that will be implemented in the coming weeks.
janki thakkar says
Thanks for sharing information.