Skip to content

Full-stack web application that scrapes apartments from Madlan website (for sale and rent). Using machine learning models trained on the collected data, the app recommends the most relevant apartments based on user preferences such as budget, location and nearby facilities.

pazgu/Apartment_matcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

97 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Apartment Matcher ๐Ÿ ๐Ÿ”

A web application that allows users to filter apartments for buying or renting and utilizes a Machine Learning model to find the best apartments based on user preferences.

<img src="frontend/src/assets/IdeaImg.JPG" width="25" height="25"/>

Table of Contents

  1. Features
  2. Installation
  3. Usage
  4. Technologies Used
  5. Authors
  6. Machine Learning Explanation

Features โœจ

* Apartment Filtering: Search and filter apartments for sale or rent in Tel Aviv, Jerusalem, and Haifa.
  • Machine Learning Recommendations: Get personalized apartment recommendations based on your preferences.

  • Interactive UI: User-friendly interface built with React for seamless navigation.

  • Data-Driven Insights: Apartments data scraped and processed from madlan.co.il.

Installation โš™๏ธ

Clone the repository and navigate to the project directory:

bash

git clone https://github.com/pazgu/Apartment_matcher.git
cd Apartment_matcher

Run the setup script to install all dependencies and start the application:

Python 3.11.X or greater is required

Before setting up the project, make sure you have the .env file with the MONGO_URI and the JWT_SECRET.

bash

./setup.sh

Note: Ensure you have npm, pip, and bash installed on your system.

Usage ๐Ÿ–ฅ๏ธ

  • Open your browser and navigate to http://localhost:3000.

  • Explore apartments: Use the filter options to search for apartments to buy or rent.

  • Get recommendations: Fill out the form to receive personalized apartment recommendations.

  • Browse matches: Explore the top 20 apartment matches tailored to your preferences.

Technologies Used ๐Ÿ› ๏ธ

  • Frontend: React

  • Backend: Node.js, Express.js

  • Database: MongoDB

  • Machine Learning: Python, scikit-learn, pandas, NumPy

  • Data Scraping: BeautifulSoup, requests

  • Data Visualization: Jupyter Notebooks

  • Algorithms: StandardScaler, KMeans, t-SNE, Euclidean distances

Authors ๐Ÿ“

  • Paz Gueta - Backend developing using Node.js and MongoDB
  • Steve Holof - Frontend developing using React
  • Hanna Sofer - Frontend developing using React
  • Yotam Zeevi Federman - Data scraping, Data preparing, Machine learning engineering

How does the Machine Learning model work โ“

The model uses clustering algorithms like KMeans and t-SNE to group similar apartments.

When you submit your preferences, it's treated as a "new apartment," the model finds the cluster the user's prefernces in, and using Euclidean distances it finds the 20 closest (most similar) apartments in the cluster to the user's preferences.

<img src="backend/src/data/jupyter-notebooks/example_model.png" width="25" height="25"/>

About

Full-stack web application that scrapes apartments from Madlan website (for sale and rent). Using machine learning models trained on the collected data, the app recommends the most relevant apartments based on user preferences such as budget, location and nearby facilities.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •