Ubeen is a full stack node.js data visualisation tool that creates a graphical representation of your Uber ride history. Using a built in 'make and share' modual individual canvases can be captured as jpeg, perfect for social sharing.

Tool kit

View Project

This was a collaborative project with developer chum Jonny Blok, we split the project right down the middle. Client side was me and server side was Jonny. Using GitHub we were able to work remotely on our separate parts of the project and in all but one instance managed to avoid conflicts.

I'm a massive fan of APIs and like to use them in my projects as they're a great source of content which removes the burden of having to create content thus leaving more time on the actual idea...

Speaking of which, my idea was to create an infographic for a users Uber ride history, after reading the Uber API documentation I focussed my attention on the Rides API, or more specifically 'GET /v1.2/history' and 'GET /v1/me'

At this point i was thinking that if we purely used the endpoints the infographic wouldn't be that interesting, the history endpoint contains a very small amount of information so a little bit of post processing was required.

For instance. If we look at the history response:

{ "offset": 0, "limit": 1, "count": 5, "history": [ { "status":"completed", "distance":1.64691465, "request_time":1428876188, "start_time":1428876374, "start_city":{ "display_name":"San Francisco", "latitude":37.7749295, "longitude":-122.4194155 }, "end_time":1428876927, "request_id":"37d57a99-2647-4114-9dd2-c43bccf4c30b", "product_id":"a1111c8c-c720-46c3-8534-2fcdd730040d" }, ] }

You'll see we can get the 'start_time' and 'end time' if we calculate this across all rides in the history we can the create new data, like the below.

1 - The total amount of time spend in an Uber
2 - The most popular times of days that users traveled
3 - An average AM or PM section of the day

So although these stats aren't' actual endpoints from the API we are able to work new stats out based on data from the endpoints.


The image based canvas use a similar method to work out the stats but also use the "city_name" to search Flikr and return an nice relevant image for the stat. The Flikr API lookup is being done server side and also includes the keyword "night" this was so we had darker images that would more seamlessly sit behind our data.