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 previous blog post contains the work done till the mid term of this project. The upcoming sections of this blog post discuss further work done and problems faced.
The main project repository can be found here https://github.com/enviroCar/enviroCar-website-ng
All Tracks Page:
The previous “all tracks page” had a paginated approach, which made it really cumbersome for users with a large number of tracks to find what they were looking for. To tackle this, we have come up with two approaches.
- Calendar Based Tracks Page: A calendar allows users to look for tracks by date of travel and also view monthly statistics of the car tracks. Selecting a day displays the tracks driven on that day including additional information like track preview, distance and vehicle information. The user can easily narrow down on a track of his/her interest.
- Filter Based Tracks Page: In addition to a calendar based approach, a chip based filter approach has been implemented. It let’s the user sort/search for important parameters like distance, duration of travel, date or vehicle. This is a highly extensible approach keeping in mind the additional information that the server could expose in the future. It also comes with a quick search option.
Segment Analysis in Single Track Analysis Page:
The single track analysis page now features analysis of a track segment. A slider and movable markers based approach makes for an intuitive interface for the user who wants to explore a segment of the track. The statistics of the page are recalculated as the segment is changed.
Independent Segment Analysis Page:
The independent segment analysis page is the advanced analytics page that was proposed in the initial proposal. The idea behind the segment analysis page is to allow a user to explore all tracks crossing a set of segments that the user specifies with a level of tolerance. This is achieved by letting the user draw a polyline using leaflet draw in the map, and making use of a slider in the control panel that controls the radius of the circular markers around each point on the map, that is an indication of the geographical extent being covered by the search for global track statistics in that region.
Heat Map and Speed Ranges:
A heat map has been included in the dashboard to let the user understand his/her area of geographical impact and frequently driven areas. It is a heat map of the start and endpoints of all the user’s tracks. Currently this feature uses dummy values until the server is capable of returning both the data required for the heat map and speed zones.
Speed Zones are an indication of the time and distance spent by the user in three major speed categories (0-60 km/h, 60-130 km/h, >130 km/h). These zones are an indirect representation of the amount of time spent by a user in high/moderate/low traffic areas.
A few components that have had a general redesign are
- Latest tracks page
- Dashboard layout of widgets
- Activity Section’s
- Friend’s preview on dashboard
- Side Navbar redesign.
These are few of the design modifications that were done to improve the look and feel of the application for a better user interface.
We have completed most of the features that were promised in the initial proposal. However, this is a project that will keep growing and has scope for a better set of features and improvements. A few major areas that have to be covered before the application can be deployed are:
- The login flow with server based JWT has to be implemented to avoid the cookie hijack to which the current implementation is vulnerable.
- There was no necessity of an R integration under advanced analytics in this phase of the project (future needs could change this).
As a student of Computer Science interested in the field of machine learning and artificial intelligence, I found this a very enriching experience. I was introduced to the field of software engineering and got a good peek into geo-informatics thanks to the interactions with my mentors. In terms of connectivity with mentors in times of trouble, I have have had no issues at all. This was a really pleasant part about my communication and relationship with 52°North.
Most of the goals of this project have been met with a few additions and deletions done to suit the needs of the application better. My sincere thanks to my mentors who have always ensured that they cleared my issues on time and gave instant feedback on features implemented. I have learnt a lot more than just application development practices over the course of 12 weeks and I am really grateful for the enriching experiences I have got. I believe most of my promises have seen the light of the day. There is however a lot of scope for development in the enviroCar project. I am looking forward to staying affiliated with this project over the long run and do my best in helping newcomers with ideas that are to be implemented on top and also provide support for issues that might arise in the future.