Go to file
2021-04-18 22:55:19 +02:00
.ci Do some linting 2017-10-29 21:04:09 +01:00
.vscode WebOOB -> Woob 2021-04-08 20:08:23 +02:00
doc Reduce number of requests to housing websites 2021-04-12 23:28:42 +02:00
docker WebOOB -> Woob 2021-04-08 20:08:23 +02:00
flatisfy Bugfix 2021-04-13 18:58:55 +02:00
hooks Switch to a Vue-based web app 2017-05-03 15:54:26 +02:00
migrations Add INSEE filtering 2021-02-08 17:08:52 +01:00
modules Fix modules 2021-04-18 22:55:19 +02:00
.babelrc Switch to a Vue-based web app 2017-05-03 15:54:26 +02:00
.dockerignore Do not copy data in docker context 2021-02-08 17:08:52 +01:00
.editorconfig Reformat with black (max-line-length=120) 2021-02-08 17:08:52 +01:00
.eslintrc Fix eslint config 2021-02-08 17:08:52 +01:00
.gitignore WebOOB -> Woob 2021-04-08 20:08:23 +02:00
.gitlab-ci.yml Update docker to use python3 and add docker-compose 2021-01-03 12:18:14 +01:00
alembic.ini Handle database migrations 2018-10-16 23:07:53 +02:00
CodeOfConduct.md Add a code of conduct 2017-10-30 11:43:08 -04:00
CONTRIBUTING.md WebOOB -> Woob 2021-04-08 20:08:23 +02:00
import.sh Add start/import scripts 2021-02-08 17:08:52 +01:00
LICENSE.md Initial commit 2017-04-13 20:03:59 +02:00
package-lock.json Bump package-lock.json 2021-03-27 18:00:59 +01:00
package.json Add ziparound script 2021-02-08 17:08:52 +01:00
README.md WebOOB -> Woob 2021-04-08 20:08:23 +02:00
requirements.txt Typo in requirements.txt 2021-04-08 20:13:33 +02:00
start.sh Fix handling of multiple INSEE on same postal code 2021-02-12 11:51:10 +01:00
webpack.config.js Write some documentation 2017-05-03 15:54:59 +02:00
wsgi.py Reformat with black (max-line-length=120) 2021-02-08 17:08:52 +01:00

Flatisfy

PROJECT HAS MOVED: Please use Framagit to create issues on the project. You can still create merge requests from either Github or Framagit.

Flatisfy is your new companion to ease your search of a new housing :)

Note: This software is under heavy development at the moment, and the database schema could change at any time. Do not consider it as being production ready. However, I am currently using it for my own housing search and it is working fine :)

It uses woob to get all the housing posts on most of the websites offering housings posts, and then offers a bunch of pipelines to filter and deduplicate the fetched housings.

It can be used as a command-line utility, but also exposes a web API and visualisation, to browse through the results.

Note: It is targeted at French users (due to the currently supported websites), and in particular at people living close to Paris, as I developped it for my personal use, and am currently living in Paris :) Any feedback and merge requests to better support other countries / cities are more than welcome!

Note: In this repository and across the code, I am using the name "flat". I use it as a placeholder for "housing" and consider both are interchangeable. This code is not restricted to handling flats only!

Getting started

See the getting started guide. If you want to give it a try quickly, you can have a look at the Docker image.

Documentation for the whole app is available online.

Documentation

See the dedicated folder.

Screenshots

Home page

Display available flats on a map:

And list them with the details in a sortable table:

Details page

Uniform display of the flat information in a dedicated page, with the contact etc:

Follow flats

Track interesting flats and store them with notes:

OpenData

I am using the following datasets, available under flatisfy/data_files, which covers Paris. If you want to run the script using some other location, you might have to change these files by matching datasets.

  • LaPoste Hexasmal for the list of cities and postal codes in France.
  • Navitia public transport datasets for the list of subway/tram/bus stations with their positions in France. These are the stops_fr-*.txt files, extracted from the NTFS datasets for each region.

Both datasets are licensed under the Open Data Commons Open Database License (ODbL): https://opendatacommons.org/licenses/odbl/.

License

The content of this repository is licensed under an MIT license, unless explicitly mentionned otherwise.

Contributing

See the CONTRIBUTING.md file for more infos.

API

Your Flatisfy instance is accessible through an API. API documentation is available here.

Getting help

Feel free to open issues. An IRC channel is available at irc://irc.freenode.net/flatisfy as well.

Thanks

  • Woob. Note that this is actually the only and best software out there to scrape housing posts online. Using it in Flatisfy does not mean the authors of Flatisfy endorse Woob authors' views.
  • The OpenData providers listed above!
  • Navitia for their really cool public transportation API.
  • A lots of Python modules, required for this script (see requirements.txt).
  • Kresus which gave me part of the original idea (at least proved me such software based on scraping can achieve a high quality level :)
  • Current favicon is from Wikipedia