-
Notifications
You must be signed in to change notification settings - Fork 72
GSoC2017
Welcome to the Kute wiki GSoC 2017 page! This page will contain documentation regarding GSoC 2017 project done by student Nipun Arora.
Following are some key of points of the development that took place in this phase
- Building a complete walkthrough/Mock up of the ui workflow for the private vehicle part of the application
-
I used the following online Web Tool to create high quality mockups-Proto.io
-
Proto.io is a great web platform that enables you to create wireframe designs with the most basic building blocks just by drag and drop
-
Also there is an app for the platform which helps you visualise how your wireframes would look and feel on an actual device
Here is a little video insight to the workflow- Youtube Video Url
- Building UI based on the mockups as mentioned previously
- Used Card Views and Heterogeneous Recycler views and floating action button to create interactive UI.
-
Card views help you create modular ui and a nice user experience.
-
Heterogeneous Recycler Views imply that there are more than one item type in a recycler view so that we can add a custom head banner and then create a list items below that.The Screenshot below depicts a heterogeneous recycler view
- Also Referred to Material Guidelines for shadow and elevation values to bring out material design -Material Guidelines.
- The guidelines given on material.io help you create an interactive User experience.
- For Custom Drawable Icons i used Flaticon
- Building a complete walkthrough/Mock up of the ui workflow for the private vehicle part of the application
- The use of Facebook Graph Api has been really explained well in their online documentation Facebook Docs
-
Using the GraphRequest Class of the Facebook SDK , We can query for the person's profile picture given his profile id which we store on firebase Realtime DB when a user logs into our app
-
Completed Feature for custom profile changes along with custom profile pictures along with initial dialog slider to enhance user experience and get important details on app startup
-
Currently storing the images in Base64 Format on firebase database realtime storage
-
We created Chooser Intent for picking image either via camera or gallery
Following are some key of points of the development that took place in this phase
- Researching on how to snap the irregular co-ordinates to actual points on path
- Researched on Snap to road APIs and other routing machines available online
- Found two solutions that would work best on a scaled app
-
Google's ROAD API Complete details can be found at- https://developers.google.com/maps/documentation/roads/intro
-
Open Source Routing Machines Major details can be found out at -http://www.matchingnotes.com/snapping-gps-tracks-to-roads.html
-
The decision regarding which api to use was postponed since it was not blocking any of the current development
-
Implementing the pub sub location behaviour
-
Aim was to develop live tracking of the route host and broadcast location to all others in the trip
-
For broadcasting and receiving location data we created a Background Intent Service which either publishes the current location whenever it changes or gets live location updates from a firebase node
-
Also created a handler thread to reverse geocode and and upload data to firebase
-
Used an Intent Service and handler thread for their respective tasks in order to save unnecessary machine time and resources which otherwise could have been implemented via normal service and asynctasks but creating and managing asynctasks even on a thread pool executor may not match the performance of a handler thread with new messages in looper for every new task that is to be performed and intent service removes the headache of calling service.stop() to prevent unnecessary work as it automatically stops when it has no intents left to be processed
-
Developed a standalone app which just shows this pub sub location behaviour since we did not have a map license to track the assets right now . The app can be found at - https://github.com/icancode23/WhereAbouts
-
Also Researched on Asset Tracking Options available summary of both researches in this phase is available on the doc below: https://docs.google.com/document/d/1agiWzgvmrWMxRdV5j5JyXYS80GvoKUODlCGt-yh0YmU/edit?usp=sharing
-
Implementing Route Specific User Interface
-
Implemented activities , fragments and Recycler Views for route creation, view and edit.Some screenshots have been attached below
-
Used Android library for the material time picker and created an activity for day picker which could be launched as ActivityForResult and it would return all the days selected by the person.
-
Focus on last working period was to build a minimum viable product or a working BETA which could match routes.The main areas of development were
-
Matching Algorithm Web Server
-
We created a matching algorithm which strip each route into set of co-ordinates and then matched two corresponding routes by keeping a small deviation based index threshold
-
The matching Algorithm (Matching Algorithm) is computationally quite expensive hence it could not run in a simple http request time interval thus I setup a dedicated Task queue with a message queue that would take in matching route and run the algorithm on it.
-
Notification Workflow
This feature enabled the backend to respond to clients after it computed the matching algorithm and ask for confirmations
-
we setup the Firebase Cloud Messaging Service on android and configured the server to send out the Data Messages
-
Based on various kinds of server data messages i programmed different notifications such as one asking confirmation for a match from the route host other asking for confirmation from the rider
-
UI Implementations
Worked on UI for trip confirmation and details UI and below i have attached a few screenshots showing what i built
Really enjoyed working for Sustainable Computing Labs during GSOC 2017.I worked as directed by my respected mentors,Dilushi Mam and Nithila Sir along with Organisation Mentors Rumesh Sir and Charitha Sir and I hope i stood up to their expectations.










