Real estate map search project
Our team designed, developed, and hosted a system for a client who wanted to search in real-time a large geospatial data set consisting of real estate items (Homes, land, etc...). The input data consisted of raw street addresses (Some with incorrect or missing fields such as zip code, country, street, or even house number), we pulled this data from several multiple listing services (MLS).
The data was then cleaned, normalized, deduplicated, geocoded, and repaired if required. The system checked the MLS and processed new data every 5 min. (This was much faster than other real estate sites!) The system also processed all the images associated with each listing, sometimes up to 100 photos per house. In total the constantly changing and updating data consisted of over 100,000 listings from 3 MLS, and over 4,000,000 images.
Once the data was in the database (we used ElasticSearch at the time) we could then run realtime queries and display the data on our custom web front-end. This included displaying up to 400 items at once on the map with images on the site. (This was increased later as we tuned for performance.) The map featured clustering for minimizing client load on low end devices. We utilized web-workers to run the data intensive tasks in another thread on client devices.
The backend data processing system was written in C++, the web backend and API was written in NodeJS, with plenty of Javascript for the front-end. We also used Redis and ElasticSearch for the databases. Hosting was provided by our on-premises HPC data center and a well-known cloud provider.
You can view some images and a video below.
PS Thank you Luc!
We are currently building a brand new (gen 3), state of the art, real estate map search system in Rust for another client. Stay tuned for when this releases.