Get me out of here chrome extension

I wanted to create a simple way for desktop users to book an uber without the need to pull out their mobile device. By developeing as a chrome extension it allows deeper integration into the users browser than a regular website. The following features are made possible from this deeper integration:

  • User details are stored across multiple devices, synced up via the signed in google account ✓
  • Background processing of a request once a user book a journey. This means a user doesn't have to keep the extension window open through the lifecycle of a uber request ✓
  • The extension has visibility of the web around it that the user may visit. For example if the user uses an online calendar and the extension can see an address microformat on the page for an upcoming meeting, the extension button will get a badge to draw the users attention and turn the uber request into a 1 click process.
  • Similarly if the user browsers to a contact page of a website that includes well structured address information a badge will be added to the extension for easy uber booking.
  • Google maps integration - when a new address is found in google maps the extension can be badged again in a similar fashion.
  • Even deeper system integration could easily be achieved by instead packaging as a chrome native app I have tried to make the booking process fairly close to the app whilst taking advantage of the extra screen realestate available. ### The target audience I envisage office workers who travel regularly to meetings as a main audience so that they can order an uber from their desk quickly and step outside to let the mobile app take over from that point. ###What features are incomplete? Unfortunately I didn't leave myself enough time to get all of the deeper integration features complete as I would have like to and instead focused on a smooth authentication and booking system. The deeper integration and badge system is very possible and I have experimented with it but its not ready to be included in the submission. Lots of extra UI polish will also be added before releasing the extension to the extension store.

More about the technology choices

All aspects of the apps stack are written in javascript. There is a very simple nodejs server that handles the token exchanging when a user first authenticates with the app which is passed to the chrome extension. After that point all of the requests come directly from within the extension and do not use a server side component apart from when token refreshing is needed. The front end of the extension is written with angular js with a bootstrap template, it integrates with the native chrome apis via several wrappers I wrote to allow for easier development in the browser before packaging as an extension. In order to keeo the experience similar to the mobile app geolocation is used for setting the users start position and the map is dragged to refine the start position. Google places API is used for entering the destination or refining the pick up point. Google directions API is used to render a predicted route that the driver will take.

Share this project: