/larentals

An interactive map of for-sale & rental property listings in Los Angeles County, updated weekly.

Primary LanguagePythonMIT LicenseMIT

CodeQL

Build image and publish to DockerHub

Build and Publish - Dev Build

This is an interactive map based on /u/WilliamMcCarty's and /u/TannerBeyer's weekly spreadsheets of new rental & for-sale listings in the /r/LArentals & /r/LosAngelesRealEstate subreddits. Just like the actual spreadsheets, you can filter the map based on different criteria, such as

  • Monthly rent/List price
  • Security deposit cost
  • Number of bedrooms
  • Number of garage spaces
  • Pet Policy
  • Square footage
  • HOA fees (for-sale properties only)
  • and more!

Some additional capabilities are offered, such as a featured MLS photo for the property and a link to the associated MLS listing page (if available).

You can click the toggle buttons next to the title to switch between For Rent and For Sale listings:

image

⚠ This website is mobile-friendly but I highly recommend using an actual computer or tablet for the best experience

What I'm Using

  • BeautifulSoup (webscraping MLS photos and links)
  • Dash Leaflet (displaying the map and graphing the markers)
  • Dash Bootstrap Components (the website layout and icons)
  • GeoPy (geocoding coordinates via the Google Maps API)
  • ImageKit (resizing MLS photos into a standard size on the fly)
  • Pandas (handling and manipulating the rental property data for each address)

A Deeper Dive

I made a post detailing my idea, progress, challenges, etc.

How to Build and Run

Docker

  1. Pull the Docker image: docker pull strayingfromthepath:larentals
  2. Run the Docker image: docker run -p 1337:80 larentals
  3. The Dash app will be accessible at $HOST:1337

Non-Docker

  1. Clone the repo git clone https://github.com/perfectly-preserved-pie/larentals.git
  2. cd into the new directory
  3. Install requirements with pip install -r requirements.txt
  4. Launch the webserver with gunicorn -b 0.0.0.0:8050 --workers=4 app:server or python3 app.py for the default Dash webserver.
  5. Have fun