Inspiration

Finding the right home is often overwhelming, especially for new buyers unfamiliar with the market. There’s a lot to consider – from budgets and locations to school districts and amenities. Traditional search engines often require rigid filters that don’t capture the full nuance of what people want. We wanted to simplify this process using the power of AI, allowing users to describe their ideal home just like they would to a friend, and get personalized results in return. The goal was to make home-buying more intuitive, personalized, and stress-free.

What it does

HomeFind uses natural language processing (NLP) to understand users’ housing needs and quickly matches them with the most relevant listings. Instead of fiddling with dozens of filters, users can type in something like, “I’m looking for a 2-bedroom apartment near public transit,” and the app will provide tailored recommendations. Listings are displayed with detailed property information, pricing, and amenities. The app also visualizes property locations on an interactive map, helping users make informed decisions by showing proximity to points of interest, neighborhoods, and transport options.

How we built it

We used Flask to power the backend and connect with OpenAI’s GPT-3.5-turbo model, which handles natural language processing. For the frontend, we built a sleek interface using React, styled with CSS, and made API requests using Axios. The property data is stored and managed in PostgreSQL, which allows us to efficiently query listings. The map functionality is powered by Leaflet.js with OpenStreetMap integration, allowing users to visualize property locations. To ensure smooth cross-origin communication between frontend and backend, we used Flask-CORS. Poetry was utilized to manage dependencies in the backend, making it easier to set up the environment.

Challenges we ran into

One major challenge was scraping accurate and reliable real estate data to populate the database. Real-world data isn’t always consistent, and handling edge cases required a lot of time. Visualizing latitude and longitude coordinates on the interactive map was another tricky part – small errors in formatting would place properties in the wrong locations. We also faced hurdles with NLP implementation; understanding user queries in natural language is complex, and we had to fine-tune the AI model to improve the relevance of its responses. It was also a challenge to deploy Flask properly as this was our first time using it for a hands-on project.

Accomplishments that we're proud of

We’re especially proud of fine-tuning the AI model to return high-quality recommendations. It was satisfying to see the app respond intelligently to user queries, especially after hours of tweaking. Another major accomplishment was learning Flask from scratch. For most of us, this was our first time building a backend with Flask, and we were able to complete the backend functionality and connect it seamlessly to the React frontend. We’re also proud of the map integration, which took a lot of trial and error to display property data accurately.

What we learned

We learned a lot about working with PostgreSQL for managing data efficiently. Handling large datasets and optimizing queries was a valuable learning experience. We also gained hands-on experience with full-stack development, including setting up backend routes, working with APIs, and building an interactive frontend. This project helped us deepen our understanding of natural language processing (NLP) and how to train and fine-tune models for specific use cases. Additionally, working with mapping libraries like Leaflet gave us insights into how spatial data works and how to visualize it effectively for end users.

What's next for Test

In the future, we plan to partner with real estate platforms like Zillow or Redfin to pull in more comprehensive data and improve the accuracy of our recommendations. At the moment, we’re working with a limited dataset, which restricts the scope of the app. Expanding our data sources would unlock more potential and allow us to better serve users. Another feature we aim to implement is school rating integration, helping users find the best schools near potential homes. This will give families a seamless experience, letting them consider both housing options and education opportunities in one place. Eventually, we hope to deploy the app to the cloud for better scalability and accessibility, allowing users to benefit from the service anywhere, anytime.

Share this project:

Updates