Inspiration

Realizing that 90% of real estate agents waste resources to find leads and clients struggle to match with realtors, we developed OpenDoor.

What it does

OpenDoor is an AI-powered app with a custom, prompt-engineered algorithm designed to match realtors with clients based on specific expertise and needs. With this tool, agents will stop wasting time chasing leads that aren’t a good fit. Our compatibility matching system quickly connects realtors to the right clients—so realtors can focus on what they do best.

How we built it

First, we brainstormed all of our ideas and drafted them in a Google doc. After initially considering a safety-focused skin care product and a few other ideas, we ultimately decided to develop a Tinder-like website that connects real estate agents with leads. The website uses AI-powered matching algorithms to pair realtors and clients based on shared attributes. The team was divided into two groups: Ira and Arshia focused on the front end, while Lily and Nandita handled the back end.

Ira and Arshia: We created a whole website from scratch using HTML, CSS, and JavaScript for this project. First, we created two sign-up pages for realtors and clients to create their profiles on our website. After pressing submit on these pages, their information is stored in our database, which we implemented by creating HTTP requests through Fetch API (backend). Our next big step was making the Swiping page where realtors and clients alike would be matched together based on their compatibility, which is calculated by our algorithmic AI. We took clients/realtors that were fed from the backend and displayed their profile pictures and relevant information for users to see. We implemented various CSS attributes to enhance our website appearance. By choosing a color scheme carefully, we made our website look professional and pleasant to users. To make our website more lively, we added pictures using HTML. Furthermore, we created a landing page, where users can choose between creating a realtor or client profile. For users to easily navigate through our website, we implemented a navigation bar that contains links to our profile creation pages, our home page, and our swiping page.

Lily and Nandita: Since neither of us ever worked with the back end before, we decided to build a website instead of an app since it would be easier to build for beginners. We used Flask in our development process and developed our code in Visual Studio. Nandita implemented a dictionary to store the realtor and client lists, in which we created dictionary instances of each person. In this dictionary we added mock test data of people with different attributes to use in our testing. One of the steps that took us the longest time was to integrate Google Gemini AI API into our project. Next, Nandita continued to develop an algorithm that calculates similarity scores using Google Gemini API. Each attribute (city, state, language, timeline, experience level, budget, lifestyle, personality) is weighted differently and contributes to a total compatibility score out of 100. We used Gemini to dynamically consider the attributes and assign compatibility scores to realtor-client pairs. Next, we worked together to fetch the user input data into the dictionary in the back end and get data from the back end to print out to the users. We first fetched the users' data from the front end when users clicked the submit button. Next, we turned our data into a dictionary and appended it to our database (a dictionary) file. To do the inverse, we fetched the data from our dictionary file and extracted each information to display in the HTML.

Challenges we ran into

Front end: Working on the front end, one of our biggest challenges was connecting to the back end and successfully getting and posting data from and to our database. First, we had to figure out how to run the backend server on our computers, which is when a mentor directed us to NGROK, which enabled us to create a link that worked on our local devices. From here, we worked on using the Fetch API to make HTTP requests to communicate with the backend and obtain client and realtor data from the database. While creating these functions that interacted with the database, we ran into a lot of errors that we debugged by looking at the console messages, whether it be security issues with NGROK or trying to jsonify a file that was already in JSON format. Overall, our experience during this project helped us understand how the frontend and backend interact with each other, and how to connect the two, and helped us gain experience working with HTML, CSS, and Javascript.

Back end: Our very first challenge was to decide which technology to use for our back end. With advice from a mentor, we went with Flask. Installing Flask and running it was our next challenge. Getting into the right environment and activating it before running Flask was one thing we struggled with and learned much about the terminal. Nandita struggled with downloading and running Flask after creating a copy of her folder on GitHub. For a while, she was implementing Flask into the wrong copy of the files, because there was a duplicate folder. Integrating AI into our project was also one of our biggest challenges. For a long time, we could not verify if we successfully integrated AI into our project. We eventually fixed all issues relating to AI, but it was the biggest challenge Nandita dealt with during this hackathon. Lily ran into an issue with an error of 'generate_text' is not an attribute the AI has while Ira ran the incorrect file. Lily could not resolve her error while Ira took a long time to figure out that she ran the wrong file. After overcoming many errors to integrate Gemini AI into our project, we ran into an error called "429 resources have been exhausted." To resolve this issue, we decided to go with a less complicated algorithm and simpler database so that the code would not have to iterate through the database more times than necessary.

Accomplishments that we're proud of

As beginners, we successfully implemented AI and connected a front end and back end in a short amount of time. We came up with an idea that actually is beneficial to a niche group of people, and if developed further, has the potential to be a viable solution to a problem that almost every realtor faces. The whole team was present for 100% of the hackathon and built a project together from start to finish. Worked with and creatively came up with a solution to bypass the exhausted API without purchasing anything. Created two separate UI for realtors and clients.

What we learned

We learned how to install, run, and develop code using Flask. We learned how to work in the back end for the first time.
We learned how to integrate AI into our project; in specific, we need to have the API key and know which model we want to use. We realize how AI API has a small limited usage! We learn how to take users to fetch to our backend and write it into our database.

What's next for OpenDoor

Use a real database to compare people instead of made-up data. Ideally, when we have enough users in our record, we can use our own database. We also hope to scale our databases and utilize a proper database management system like MongoDB or Firebase. We plan to implement an app beside our website so users can use it more conveniently. We plan to include a login feature, so users' data will be safe and secure. Implement a chat feature once a match is made Implement identity verification with the Melissa API.

Share this project:

Updates