The following blog post is written by Niranjan Bala, a participant in one of MapBox’s learnups. Using what he had learned at the learnup, he came up with an interesting project. Here is a detailed first hand account of his experience.
Being a techie to the core and not much of a social guy, I am only spotted at either tech/startup conferences & hackathons & off-late LearnUps powered by Venturesity. Top tech companies teaching you their tech is not something I would skip. Here is the story of how I leveraged the skills I picked up at the MapBox learnup, and came up with a great product.
Being a total Map Geek, I have been using Google/GMaps API for as long as I remember. Google is very monopolistic in lot of ways and OSM (Open Street Maps)/MapBox are refreshing in that sense. So when I saw they had a LearnUp in their Bangalore office (PS: I did not know that they had an office in BLR), I jumped up and signed up for their LearnUp.
I reached at the venue about 15 minutes late because Google was not showing their location correctly. #irony 🙂 When I got there, the presenters were talking about tools used by users to create/update the map information (metadata like roads, hospitals). The one cool difference between OSM & Google is that all map data in OSM are exportable in easy to read formats.
While learning how to use their tools I noticed something very exciting. In their GUI tool I saw that they could merge two existing “polygons into one.” I was like “WOW! Is there anyway I can get my hand in that code.”
The tool was also able to identify where there was a connection between an existing road and non-existing road. That was super cool!
Using Turf.js, I built what I think is a really cool project. Here is the motivation for what I built, and the hack itself. 🙂
The Story of Ram and Sita
I am sure most of us have moved around houses. Let’s take a deeper look at the steps involved. Let me create two user personas Ram and Sita.
Ram has lived in Bangalore for more than 5 years. He practically knows all the major locality names. Let’s say he works at Wipro in Electronic City. Let’s also say that he lived in BTM but shifted to Emphasis (Baghmane Tech Park). Because his commute time is longer, he decides to shift his house again. He knows the city well, and figures that the ideal places to live are Domlur, Indiranagar, Jeevan Bheema Nagar, CV Raman Nagar.
Ram is also a foodie and eats out frequently. He narrows his choices to Indiranagar and Jeevan Bheema Nagar because they are closer to the office and also have a good number of restaurants. Next he goes to various portals and searches for houses in the localities he has selected.Ram happily finds a house through one of the various portals, moves into his new home and lives happily. 🙂
Sita on the other hand has just moved to Bangalore from Delhi and starts working at MindTree in Mysore Rd. She does not know any locality names apart from the popular ones like Koramangala, BTM, MG Road,Indiranagar etc. So she has a problem in trying to figure out which are the best localities.
What she might do is ask her friends or post on various groups asking people to suggest the best places to live for a single female.
None of the portals help you out in a seamless way to tackle the problem of choosing which are the best localities.
WhereHouse.in is an attempt to solve that problem. I ask user to fill up their basic personas (age, gender, relationship_status, living-with), their requirements (1/2/3 BHK); whether they would prefer living in an apartment/individual house, the points of interests (office, school etc.) and the proximity they would prefer to their prospective home. The tool then triangulates and shows the ideal location they should live on the map along with listings. The listings are powered by CommonFloor.
As of now, the tool picks out 5 localities with most listings in CommonFloor.
The triangulation logic is powered by Turf.js which is one of MapBox’s products. It’s an awesome tool for geospatial analysis.
Listings are shown as map tiles which is powered by Mapnik. Mapnik is an open source toolkit for rendering maps.
APIs are powered by node.js and deployed on AWS Elastic Beanstalk environment.
Where do we go from here?
Suggest localities based on user personas. For example: a 35 year old man with 2 kids would prefer to live where there are more parks/hospitals. A 25 year old guy would prefer to live in localities where they are a lot of eat-away options while a 23 year old girl would prefer to live in localities that are more secure.
A Few Parting Words
The MapBox LearnUp was a great opportunity to learn new skills. I used these skills to build an awesome product. I highly recommend people to attend these LearnUps. You never know what you might end up building!