When I first started my entrepreneur life, I worked on location based applications. Soon, I realized, to build an location based application, there are three things in common.
- UI: A Mobile UI and/or Web UI is required.
- Data: Either the developer or the users have to contribute valuable data to the application.
- Backend: Besides a UI and valuable data, you still need a powerful backend to manage data and serve requests. Also, the backend need to track usages and analyze user behavior.
On the backend side, for most startups, when they first start, all they need is a simple data model just like an excel spreadsheet. The backend need to be able to handle data types like String, Number, Date, Location, Array, and Map.
With these simple data types, we could build powerful search applications. For example, we can ask the backend to give me a list of “fast food restaurant” “with in 2 miles radius”, “which offers coupons”, “by 7/30/2011”.
Another good sample is a demo application, “The Paparazzis”, my company is building. The idea is inspired by a Paparazzi website which I couldn’t remember the name.
The idea is when you, the pararazzi, see famous stars shopping at Rodeo Drive, Hollywood, you can take a picture for the star and upload the picture to “The Paparazzis”. So that, when other user wants to follow where this star has been to during the past few weeks, he/she can just open the application and check. Or if you want to know are there any famous stars shopping at Rodeo Drive at this moment, you can just open the application and check.
The SearchCloud Platform
Our LBS platform, SearchCloud, provides an programming interface for storing, managing, and querying data. Search Cloud allows developers to store business in SearchCloud and build a GUI on the top of their data and the rich search cloud API.
The data model in SearchCloud is simply a Json Object with an id. The developer has to provide a schema first and then upload json objects to SearchCloud. The SearchCloud will store and build search indices for the developer. When the developer does CRUD operation against an object, the search cloud will update the search indices as well.
Searchcloud provides a rich search interface. Data objects can be searched by keywords, by value, by a range of value, or by location. Combining multiple criteria into one single query is supported as well.
Also, tracking variables could be added to search requests. ie: the location of the user, the machine id of the mobile device. When tracking variables are integration into the application, SearchCloud will be able tell the developer where the customers are, what they care about, what the popular search results are, and what result the users click.
In the restaurant example we talked above, if the developer see most of his/her customers look for Italian restaurants near San Francisco, the developer can do two things. First, he may stop collecting restaurants data in other cities. Or, we can create another application for this target group.
On the top of the SearchCloud platform, we will offer SDKs and UI Widgets to developers. We are building the client library in Java and Android UI widget. The client library in iOS UI Widgets are coming soon as well. Our target is to enable developers to build a LBS application in five minutes.
Other than that, an interesting application is under going. I call it ‘Google AppEngine’s Missing Piece’. GAE provides a powerful datastore without the support for search. Prior to GAE’s Backend API, it is hard to do search on GAO.
The ‘GAE’s missing piece’ offers a JDO lifecycle listener. When the datastore performs a CRUD operation against an object through JDO, the library will send a copy of the object to the SearchCloud. As a result, the developer would be able to perform search operation against the data.
Our target customers are small startups in their early stage. The SearchCloud platform will help them to bring the product to productions in a short amount of time.
Our pricing plans are
– Store 5000 Json objects
– 10,000 Requests per day
– 50 USD per Month
– Store 25000 Json objects
– 250,000 Requests per day
– 200 USD per Month
– Store 250,000 Json objects
– 250,000 Requests per day
* the pricing model for exceeding daily requests is under development.