GSoC 2014 - EnviroCar APP
The project is an extension of the enviroCar android application
that connects through an OBD Adapter through a user's car and records important data like speed, co2
emission, fuel consumption, Mass Air Flow etc. The complete details of the parameter is given here
. The data is sent to a server and it can be compared for a user against all the users to give him an idea about the parameters as co2
emission and speed over time.
So as a part of GSOC, i am working on
- Adding more parameters to the dashboard such as fuel consumption and engine load.
- Localizing the app in terms of language and units of measures( different units available for a language according to different languages).
- Adding a Profile page to display user's track info, his statistics on graph and comparing his data with his friends.
- Adding a contrasting background to prevent battery loss in phones. Details here
About the student
I am Rahul Raja, a student of final year Computer Science Engineering from VIT University, India. I have extensively worked on native and hybrid Android apps as personal projects and internships. This is my first attempt at GSOC and its one of the best development projects that i have worked on.
Here is my devlopment profile
My development work can be followed here
Report Week 1 (19-05-14)-EnviroCar UX Design
- Prepared a draft of the features to be implemented and the existing features to be changed in the enviroCar app and get it reviewed by my mentor, Carson.
- Development environment all set.
- Went through the enviroCar API and the code in detail ( though some part of it was covered under the application period ).
None till now.
- Finalizing the requirements and also how they need to be done.
- Deciding about how the app has to be localized.
- How many languages and regions we need to cater to?
- What are the ‘on-the-fly’ translational APIs present for this?
- How it has to be integrated with the existing API?
- Creating working mockup for the app so that they can emulate the real application.
- Coming with a timeline/schedule for all the features.
- I will work on the Dashboard of the app to begin with.</sticky>
Report Week 3 (02-06-14)-EnviroCar UX Design
- Worked on my proposal and user requirements with Matthes and Carson. Added some new features and worked on the previous ones.
- Designed prototypes for all the screens that I am going to change including their color and features. Here is the link https://www.behance.net/gallery/17176985/enviroCar-gsoc
- Found out the methods of localizing the application.
None till now
- I have to work on the app dashboard and include the new features viz fuel consumption for gasoline cars and speedometer for diesel cars.
- Include the new feature of action bar in the app.
Report Week 4 (9-06-14)-EnviroCar UX Design
- Worked on the app dashboard and changed its UI. I have added features (UI only now) for fuel consumption, engine load and information about these parameters.
- Almost done the implementation for showing engine load on the dashboard for all car types i.e gasoline and diesel. Will post the code today.
Nothing great problem as such but going through the huge code base and understanding each functionality is taking up a bit time. This will speed up as I go through it.
- Implement fuel consumption on dashboard for gasoline cars and for the diesel cars, the speedometer will remain as it is.
- Provide support text for each of these parameters on dashboard
- Make the help icons at the bottom of dashboard clickable, i.e should take to the respective pages on clicking them.
- Add option menu in the action bar.
- Start working on the localization part- I have gone into depth about how this will be done. Will discuss it with Matthes and Carson on Tuesday.
Report Week 5 (16-06-14)-EnviroCar UX Design
- Completed the feature of ‘Engine Load’ to be displayed on dashboard. I was stuck due to some problem in the OBD Simulator code. But Matthes Rieke fixed it and it was done.
- Implemented the feature of displaying ‘Fuel Consumption’ for gasoline cars and ‘Speed’ for diesel based cars. There is a bug remaining which I have to fix.
- Provided text support about the parameters that are displayed on the dashboard.
- Added overflow menu in the action bar and removed some options from the slider menu.
- Worked on the bottom icons on the dashboard so that they take you to appropriate page to select car or turn on Bluetooth.
No problems as such but the OBD Simulator is kind of buggy. Also the app automatically turns my bluetooth off again and again and it takes me some 20 minutes before it starts working normally.
- There is a usability issue which was already there in the app and arises when we turn on the Bluetooth and select adapter. So first I have to fix that.
- The small bug while implementing fuel consumption for gasoline cars.
- There are some minor design changes for dashboard and AlertDialog ( settings its colour ).
- Above 3 points are for Monday. I will commit the code after fixing the bugs and edit this page with its link. From Tuesday, I will work on localization of units.
- Regarding localization, we plan to give an option to the user to select both the components of a unit (km and hour for speed etc. ). As there are only 3 units to be displayed to user, this seems feasible. Localization across English languages seems feasible, because it wont be possible to handle French, German etc. and then their different units. So only when the app is not in running mode( speedometer etc running), the user will be able to choose the units from the options given.
I have pushed the code in the develop branch
of the forked repository with commit name as "Changed Dashboard". Here
are the commit details
Report Week 6 (23-06-14)-EnviroCar UX Design
- The usability issue while turning on the bluetooth as mentioned in my last task-list is fixed.
- The bug regrarding the fuel consumption for gasoline cars(last task-list ) fixed and its working fine now
- Regarding localization, i am giving options to the user to select both the components of a unit( Eg select km and h for speed ). So in this way, i have implmented it for speed. Co2 emission and fuel consumptions will be done on the same lines with minor changes in code.
So till Friday, complete localization thing( means the user can select his own langauge and units) with the dashboard will be finished( my 2 modules of the proposal ) and i will give the app for review
4. In the weekend, i will start with the "MY Profile" page for the app, where the users profile, his sustainability rank, his graphs will be displayed.
- Localizing fuel consumption and co2 emission - a few hour work left.
- Providing option to the user of changing the language at run time and changing the units accordingly.
- Also i have to discuss the approach that i have written for localization with Matthes and some its parts can change.
are the commit details
Report Week 7 (30-06-14)-EnviroCar UX Design
- Fuel consumption and co2 emission localization are done
- User is able to select a language at run time and the app is changed according to that preference. Currently German and English are the two languages provided. But it can be extended to any number of languages.
- So dashoard and localization are complete totally. There are 1-2 bugs remaining. The app was not able to find any bluetooth adapter dur to which it was hung.So few hours of work left for it.
- The app is not able to connect to the OBD simulator app for quiet some time. I am trying to fix but if the problem persists,then Matthes could help.
- I would need some source of data (if 52 North has it ) to display safe range values for engine load, fuel consumption etc.
I will start working on the Profile page from this week. So this module contains 4 points in total
- User Info- Profile picture, tracks and total tracks
- Sustainability rank
- View Progress on chart
- Compare data with friends
So for this week i will be working on first 3 points.
Here are the code commits.
Report Week 8 (07-07-14)-EnviroCar UX Design
This week i worked on the profile page and half of the page is done. The points i covered this week are
- Built the UI for the profile page.
- Fetching the profile picture of the user and crop it to display a circular image. Though i have worked with sample images because i had a doubt regarding the parameters of the GET request.
- Fetching the tracks of the user and displaying it.
- Fetching the total tracks available for all the users and displaying it
I had some problems regarding fetching of data and the leaderboard and the safe values for various parameters which i have already mailed to the team
- Disaplaying the statistics of user in the application as is disaplyed in the website. There is also a possibility of disaplying the graphs as a parameter of time.
- Comparing the user's data with the user's friends.
Report Week 9 (15-07-14)-EnviroCar UX Design
- Comparing user's data with his friends in the form of graph as disaplyed in the website dashboard.
- Disaplying the user's statistics in the form of a graph. But since i have to decide on the usability of the graph to the user,it will take slightly more time and will be done.
The only major task left in my proposal is the contrasting designs after the above mentioned graphs are completed. So i would need Matthes's help in that. Apart from that, i proposed some design changes in the app in the existing features. So it would take one and half week to complete all design changes+contrasting designs.
Here are the commits
Report Week 10 (22-07-14)-EnviroCar UX Design
- Completed the graph which compares a user's data with his friends
- Analyzed the possibility of a time series graph of the user, which would require an extra PHP service
- Reserached about the contrasting designs. We can still go ahead if i change all the text colors and the icons to white.
This and this are commits
- Download the user's friends picture along with his name. I will see if i have to use Picasso for that
- I suggested improvising the "MyTracks" page and "Help Page" in my proposal. So i will be working on that
Report Week 11 (29-07-14)-EnviroCar UX Design
- Completed the time series graph using dummy data. For converting it into real graphs( real values fetched from the service), just the array values have to be changed.
- Integrated Picasso and OkHttp libraries to download the user's friend's pictures and also the user's picture. It takes care of caching the images and downloading in a separate thread.
- Built the UI for the leaderboard to be displayed in the app( profile pic also displayed ). Only the values have to be replaced with the original values. I will integrate Picasso with this also.
- Redesigning the "Help Page". Small part is left.I will post its UI tomorrow.
Here are the commits
- I have to research on the possibility of having different themes.
- Provide a Logout Button in the Profile Page.
- Display the user's rank in bold in the leaderboard.
- Integrating localization of units in graphs (i.e change graphs according to the units selected)
Report Week 12 (05-08-14)-EnviroCar UX Design
- Redesigned the Help page. Here is the screenshot
- Provided a Logout button in the app to logout of the profile.
- User's rank is being disaplyed in the leaderboard. Here is the screenshot for leaderboard.
- Researched over the possibility of themes in Android and came up with a solution. I will post the same in the mailing list
Here are the commits
- Few bugs exist in the localization feature.
- Also, i have to improvise on some code for localization.
- I have made 1 leaderboard currently. I will make a Viewpager so that we can display different leaderboards in different screens.
Report Week 13 (12-08-14)-EnviroCar UX Design
- Revamped the code for localization. Now its perfectly done.
- Also added this localization feature in the graphs( some part was remaining).
- Fixed and modified the LogBook page.
- Restructured several parts of code
Disk and memory caching in Picasso library is slightly giving headache.
- Caching in Picasso for images.
- I will add all the types of different icons ie ldpi, hdpi etc.
- Final code refactoring and restructure.