Introduction
enviroCar is a citizen science community that gathers, distributes and analyses floating automobile data for traffic management and environmental purposes. The enviroCar app for mobile devices offers functions including track recording, track exploration, and track uploading as “open data” to the server for analysis. Real-time information about the recorded tracks, including their length and distance, is also provided.
I’ll be referencing my work from this year’s Google Summer of Code (GSoC) under the direction of my mentor D Ajay Kumar in this blog post. Please visit my introduction blog post, midterm blog post, and GitHub repository for further details.
About the Project
The enviroCar cross-platform application has features like Bluetooth connection to an OBD-II adapter, track recording, and server uploading. The project’s main objective is to create a user interface (UI) for data privacy and control to provide users autonomy over the data supplied through the app and to inform them of how the location data is handled to obtain their informed permission.
The following is a summary of the main tasks accomplished so far:
- Implemented UI for providing informed consent to the user for location data sharing
- Improved the UI of the app
- Fixed bugs in the track details screen
- Established the groundwork for Bluetooth-based OBD-II communication library.
UI for providing Informed Consent
We developed widgets to obtain informed consent (related to location data sharing). An example is a dialog box that notifies the user that location data will be utilized and requests their approval.
UI for data privacy and control options has been implemented. It allows users to choose what location data they are willing to share.
We also implemented a FAQs screen UI (see below).
Improved app UI
We made several adaptations to improve the app UI. These include:
- Changing the default color of the deactivated widgets.
- Adding notification badge on the dashboard screen
Groundwork for Bluetooth-based OBD-II communication library
We researched about Bluetooth and OBD-II device communication to implement the functions to enable reading, writing and subscribing to characteristics. Please see the library implementation of Bluetooth-based OBD-II communication: https://github.com/KhyatiSaini/bluetooth_obd2
Pull requests
Pull request link | Features/Updates of the PR |
https://github.com/enviroCar/enviroCar-Cross-Platform-App/pull/65 | dependency upgrades/updates |
https://github.com/enviroCar/enviroCar-Cross-Platform-App/pull/66 | GitHub workflows fix by updating the version of the dependency used for the ios build in the workflow |
https://github.com/enviroCar/enviroCar-Cross-Platform-App/pull/67 | data privacy and dialog box UI |
https://github.com/enviroCar/enviroCar-Cross-Platform-App/pull/68 | updated the default disabled color of the widgets on the dashboard screen |
https://github.com/enviroCar/enviroCar-Cross-Platform-App/pull/67 | custom track name visibility issue was fixed by adding a parameter “name” in the track model object |
https://github.com/enviroCar/enviroCar-Cross-Platform-App/pull/69 | data privacy and control settings screen: contains the basic UI with checkboxes to save the preferences about what data could be shared |
https://github.com/enviroCar/enviroCar-Cross-Platform-App/pull/70 | fix null object reference error on the tracks screen. the error occurred because a few of the uploaded tracks was not having the properties data encoded along with the track recording |
https://github.com/enviroCar/enviroCar-Cross-Platform-App/pull/67 | update the dummy text of the dialog boxes to custom and explanatory ones |
https://github.com/enviroCar/enviroCar-Cross-Platform-App/pull/71 | FAQs screen |
https://github.com/enviroCar/enviroCar-Cross-Platform-App/pull/73 | notification badge on dashboard screen UI |
https://github.com/enviroCar/enviroCar-Cross-Platform-App/pull/72 | profile screen UI Improvements |
https://github.com/enviroCar/enviroCar-Cross-Platform-App/pull/74 | change the deprecated function to an updated one for launching URL |
A few of the features are partially done:
- Debug the Bluetooth-based OBD-II communication library implementation (this needs the actual vehicle and OBD-II should be connected because the simulator is not getting detected)
- Implement UI for the Figma designs (we can develop and study about the user interface that can be used to obtain informed consent)
Figma design of the UI
UI design for screen | UI design |
dialog box widgets in the app for informing the user about location data processing | |
notification badge on the dashboard screen to periodically update the user about the PLI processing | |
confirmatory dialog box while uploading the track recording to the server as “open data” and informing the user about the potential risks involved in uploading | |
individual notification screen |
Summing Up
I appreciate the organization and all the mentors for selecting me to engage in this year’s GSoC as a contributor. It was a great learning opportunity. My mentors, Benjamin Pross, Sebastian Drost, D Ajay Kumar and Ann Hitchcock deserve the greatest thanks for their advice and support during the program. My presenting abilities improved thanks to the weekly meetings, and it became easier for me to explain my views. The project progress management tools made it easier to keep organized and plan further.
I am immensely grateful to my mentor D Ajay for providing me with invaluable advice at this time. I significantly improved as a result of working on this project. Every day I got to learn something new. It was an incredible experience, indeed.
Leave a Reply