For some time now, we have been contemplating the idea of holding a “mini” hackathon for our Development team here at White Lion – limited to 4 hours duration with no interruptions. We wanted to focus on creating an application that our team and our clients could benefit from, while at the same time having a little fun along the way.
What is a Hackathon?
A hackathon is generally a formal event, usually lasting several days, in which a group of people meet to collaborate intensively on a software project. Hackathons typically have a specific focus or goal, and often this is a working application with specific functionality.
We wanted the focus of the hackathon to be something all of our Developers could contribute to, so we decided to explore the possibilities with Algolia Search.
Research Your Subject
Algolia Search is incredibly fast with amazing geo-location, autocomplete, and browse-as-you-type searching. It’s a hosted service, which means more uptime and fewer headaches than maintaining an in-house search implementation. Also, there are already packages available to help us implement it into our primary frameworks, Laravel and WordPress. All things our client’s projects can benefit from.
Where We Started
As a very first step, the Development team got together on a conference call to brainstorm specific ways we could use Algolia Search within our work. We tracked our thoughts and conversation in our Slack (instant messaging) channel and through a dedicated post in our in-house collaboration forum.
Here are the highlights from our brainstorming session:
- We can crawl a site and index static content.
- Faceted product search is a win to enable users to explore a collection of information by applying multiple filters.
- Geo-search capabilities look promising to enable searching of targeted areas.
- We could create an analytics tool for determining what users are searching for.
- It could be used for quickly filtering list page results in a custom CMS.
- We could create a “power user” search input for queries like “email: <something>, name: <something>” so that users can get to items quickly.
Searching for Solutions
For the hackathon’s focus, we decided to create a locator app that would allow users to find a store based on their current location. We also planned for filtering stores to only those that were “authorized” or carried specific product lines. We chose Laravel for the back-end so we could experiment with the above package. AngularJS was used for managing front-end interactions.
We started with a basic list of 300 stores and 4 product lines — Widgets, Gadgets, Gizmos and Doodads. One-third of the stores carried the specific ‘authorized’ product line ‘Widgets’, 75% carried ‘Gadgets’, 50% carried ‘Gizmos’ and 25% carried ‘Doodads’.
Our front-end Development team worked on geo-location to search for the 10 nearest stores with results displayed as pins on a Google map. They also incorporated a standard search input, with autocomplete, to further refine results.
Our back-end Development team created a lightweight CMS tool allowing us to manipulate each store’s data. This let us edit existing stores, create new stores, or remove stores from the database. The Laravel package was able to push these database changes to the index immediately which was very impressive.
Our Lead Developer and I focused on alternative indexing approaches to increase the relevancy of results. For the initial index, we added product line information to each store’s Algolia record, and as just noted, the Laravel package worked very well.
Some of the Snags
According to Algolia’s documentation, we could expect “more relevant” results by creating separate records for stores and their related product lines. Here we found a shortcoming with the Laravel package where complex indexing like this just isn’t easily accomplished. We determined, though, that we could write our own code, relatively quickly, that could handle multiple custom records like these in addition to the default records that work out of the box.
Why this was Important
The takeaway is that we feel Algolia Search is a great service that can be incorporated fairly easily into recent client projects and should be the search service we use for all new projects going forward.
All of us on the Development team had fun, and we enjoyed the camaraderie and being able to work together again after several weeks transitioning to our new Home Base. We also feel the hackathon approach is a very effective way to learn a new technology.
Your Trusted Developer
At White Lion, we take a lot of pride in being able to develop sophisticated code using the latest technology for our clients. The web moves at the speed of light and we constantly see new tools that we can incorporate to solve your specific need. Don’t hesitate to reach out to us and pick our brain about how we can help you with your next project.