Living in India, finding the right real estate was always a pain. So we decided to make the job easier by implementing a blazingly fast search portal to make the cumbersome searching process, seamless and magical.
What it does
This project aims to deliver super-fast search results, even on applying multiple search filters and tough queries. It can be used to search through hundreds of thousands of records (in this case, over 200k records) within a fraction of a second. It comes with 'search-as-you-type' feature out of the box. We wanted to provide the users with an innovative and super-fast way to search through properties, so we implemented Geo Search that enables, 'search-as-you-scroll' on a map. This, combined with the robust filtering engine, our web app, is a powerful tool.
Note: Currently, the locations are based in India, so the search queries and Geo Search are limited to the country.
How we built it
We have made use of KendoReact, Typesense, AWS EC2, S3, Lambda, DynamoDB, SNS, and finally React InstantSearch. It was built ground up with two things in mind:
- Robust feature-set
- Ease of Access
DynamoDB is used as our primary database, and its streams are pipelined to Typesense's server (Which is an asynchronous replication of DynamoDB).
Each time a search query has been made, we make an API fetch to Typesense and it responds with hits.
The data is lazy loaded so only the current page loads at the instance.
We made use of Kendo React components in our form layouts, to build a contact form, which is connected to AWS Simple Notification Service (SNS) and the contact data gets enqueued into Simple Queue Service (SQS) for further action.
We also used Kendo React's icon packs and its bootstrap theme to stylize our icon tabs and make them look great.
Challenges we ran into
We were able to link our project with up to 10k records easily. But scaling it up to 100k seemed to be a challenge, considering the constraints of our cloud instances. But after a lot of fine-tuning the product and optimizing it, we were able to achieve the same, without compromising the speed of the search queries.
We also faced a bug with Geo Search and the map's layout was glitchy for a while. We had to delve deep into its API layout on React to fix the issue and now, it works brilliantly and provides a search-as-you-scroll experience.
Accomplishments that we're proud of
We are insanely proud of implementing and optimising the Geo Search feature. This was the ultimate goal as well as a challenge for us. We are really thrilled by the result we have arrived at, which is a very fast and intuitive way to search through a map.
We are also proud of the neumorphic design scheme that sprawls across the web app, which leverages rich interfaces to make the user feel comfortable and provides ease of access.
What we learned
It was our first time implementing Kendo React on our project and the development phase was enjoyable and knowledgeable. We learned a lot of things about Typesense, AWS (DynamoDB, SNS, Lambda), and Google Maps API.
What's next for Property Portal
- User Personalisation (features like save location, cookies, user-based recommendations)
- Suggestions based on current location
- Scale up to millions of records
- Making the web app responsive
- Use intuitive search parameters like near me, within a 5 km radius