All Projects → Isso → pararius-apartment-hunting-dashboard

Isso / pararius-apartment-hunting-dashboard

Licence: MIT license
🏡 A NodeJS server to scrape Pararius listings and show them in a dashboard 🏘️

Programming Languages

CSS
56736 projects
javascript
184084 projects - #8 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to pararius-apartment-hunting-dashboard

mapkit-android-demo
MapKit Android demo
Stars: ✭ 92 (+148.65%)
Mutual labels:  maps
WKTParser-ObjC
Well-Known-Text Parser for Objective-C
Stars: ✭ 21 (-43.24%)
Mutual labels:  maps
brazil-civil-registry-data
Raw scrapings of ARPEN https://transparencia.registrocivil.org.br/
Stars: ✭ 35 (-5.41%)
Mutual labels:  scrapping
Maps
TGM Maps used on the Warzone server (2017 - 2022).
Stars: ✭ 22 (-40.54%)
Mutual labels:  maps
Speculative-Sea-Level-Explorer
Reshaping the coastline by climate change and any other speculative sea level
Stars: ✭ 18 (-51.35%)
Mutual labels:  maps
google maps
🗺 An unofficial Google Maps Platform client library for the Rust programming language.
Stars: ✭ 40 (+8.11%)
Mutual labels:  maps
react-azure-maps
React Wrapper for azure-maps-control
Stars: ✭ 32 (-13.51%)
Mutual labels:  maps
Bugs-feed
Bug's feed is a local hosted portal where you can search for the latest news, videos, CVEs, vulnerabilities...
Stars: ✭ 90 (+143.24%)
Mutual labels:  scrapping
openstreetmap-carto-vector-tiles
A general-purpose OpenStreetMap mapnik style, in CartoCSS, served with vector tiles
Stars: ✭ 46 (+24.32%)
Mutual labels:  maps
here-map-widget-for-jupyter
Use HERE Maps API for JavaScript in your Jupyter Notebook.
Stars: ✭ 29 (-21.62%)
Mutual labels:  maps
census-map-consolidator
Combine Census blocks into new shapes
Stars: ✭ 31 (-16.22%)
Mutual labels:  maps
rc-here-maps
React components implemented on top of Here Maps API
Stars: ✭ 16 (-56.76%)
Mutual labels:  maps
OoT-Interactive-Map
Interactive Map for the world of Zelda: Ocarina of Time
Stars: ✭ 22 (-40.54%)
Mutual labels:  maps
planetiler
Flexible tool to build planet-scale vector tilesets from OpenStreetMap data fast
Stars: ✭ 823 (+2124.32%)
Mutual labels:  maps
deck.gl-time-series-widget
A React Time Slider implementation for DECK.GL - (non)temporal data - by CPU filtering ⌛
Stars: ✭ 19 (-48.65%)
Mutual labels:  maps
Web-Map-Custom-Element
A custom <mapml-viewer> and <layer-> element suite
Stars: ✭ 49 (+32.43%)
Mutual labels:  maps
rlayers
React Component Library for OpenLayers
Stars: ✭ 98 (+164.86%)
Mutual labels:  maps
path-19
COVID-19 contact tracing mobile app
Stars: ✭ 12 (-67.57%)
Mutual labels:  maps
kartotherian docker
Docker deployment for Qwant Maps tile server, based on Kartotherian (https://github.com/kartotherian/kartotherian)
Stars: ✭ 24 (-35.14%)
Mutual labels:  maps
mapsforge flutter
Offline maps as pure flutter code
Stars: ✭ 30 (-18.92%)
Mutual labels:  maps

Pararius Apartment Hunting Dashboard

I built this app to help me in my apartment hunt in Amsterdam. It scrapes Pararius.com for apartments that I'm interested in and populates a nice dashboard with the results where I can categorize them, compare them, add notes or see my daily commute time and distance for each listing.

Features

  • Scrap a Pararius URL every hour for new listings.
  • Maintain a local database for all properties fetched so far.
  • Add apartments to a new category automatically.
  • Allow favoring, shortlisting or hiding properties.
  • Allow saving text notes on each property.
  • Calculate the daily commute time and distance to a specific address.
  • Compares: price, surface area, bedrooms, whether it is furnished, neighborhood, distance, and compute time.
  • Show a map for each category.

Still to come if I have time:

  • Chrome notifications for new listings.
  • Chrome notifications for shortlisted or interesting listings that are not available anymore.
  • Sorting listing on various parameters. (especially the commute time and distance)

Demo Screenshots

Home Page

Leaving Notes

Maps

Google APIs

In order for this app to work and show you maps, commute time, and distance, you need an API key from Google. You can get it for free after logging-in and enabling billing here. You should enable these three APIs for the key: Geocoding API, Maps JavaScript API, and Distance Matrix API.

You can then place the key in the config file. (See below)

Configuration

You can configure different aspects for the app from the config.js file.

// We will parse the listings from this URL, open it in your browser first, adjust the filters and make sure it is in the list mode not the maps.
config.url = "https://www.pararius.com/apartments/amsterdam/1500-1900/75m2/2-bedrooms/furnished";

// Frequency of scraping and updates from Pararius in minutes. (Minimum: 15)
config.updateFrequency = 60;

// Used to calculate distance and commute time, can be any string. Please try it on Google maps first.
config.commuteAddress = "1011 DJ, Amsterdam"

// Used to calculate distance and commute time to commuteAddress. It can be: driving, walking, bicycling or transit. (transit calculate it as if you are commuting now)
config.commuteMode = "bicycling";

// Max results per page in the dashboard.
config.resultsPerPage = 20

// So as not to leech Pararius, a sane limit has to be in place.
config.maxScrapingResults = 500

// Maximum requests per second for Pararius.
config.googleApiMaxRequestPerSecond = 10

// Maximum requests per second for Google APIs.
config.googleApiMaxRequestPerSecond = 10

// Very important to calculate distance, coordinates, and displaying maps in the dashboard.
// These APIs have to be enabled on https://console.developers.google.com/: Geocoding API, Maps JavaScript API, and Distance Matrix API
config.googleApi = "GOOGLE_API_KEY"

// Where to serve the app
config.port = 8080

Building And Running

Install dependencies:

npm i

Start the dashboard:

npm start

You can then go to http://localhost:8080 to see the dashboard.

Legal Notice

All product names, trademarks and registered trademarks of Pararius are property of their respective owners. All company, product and service names used here are for identification purposes only. I'm not by any means affiliated with them or claim any rights with respect to their website or their brand.

License

The MIT License

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].