This repository serves the purpose of building an API for retrieving data related to Airbnb listings. In the following, the data source, the involved frameworks and the API are presented (for a detailed API description, please have a look at this repository's wiki, or the included Swagger documentation). Importantly, the goal is to provide the application as a Docker application.
The data used in this project comes from Airbnb. For the purpose of this project, listings data for Berlin is used. Basically, the listing dataset contains information about each listing. This includes, for instance, the listing's name, description, price, number of bathrooms and bedrooms. The dataset contains over 100 attributes. For a more detailed overview of the data, have a look at this website.
The following two frameworks are used in this project:
-
Flask is used as Web API.
-
Tensorflow is used for the machine learning components in this project.
The API aims to deliver the following functionalities:
- Retrieve data for Airbnb listings in Berlin
- Filter data (e.g. for price ranges or a specific neighbourhood)
- Provide polygon geoJson data for neighbourhoods and their respective average Airbnb prices
- Get price predictions for a not yet published Airbnb listings
As stated above, please consult the wiki for a more detailed explanation. For an overview of the ongoing efforts to improve the functionalities, have a look at the issues section in this repository.
If you want to use this API in a development environment, you can clone this repository and use it with docker-compose
. For this purpose, use the docker-compose.yaml
in the root directory. This will start all microservices and set the
flask application to development mode. Additionally, a volume is shared with the host system so that code changes can be
applied immediately.
git clone https://github.com/webuko/backend.git
cd backend
docker-compose up
Note: The provided docker-compose files start up the full application including the frontend application that was built in connection to this API (see here).
If you want to use this API in a production environment, you can use the file dc-production.yaml
with
docker-compose
. You can pull the images and then start the containers with the following commands:
docker-compose -f dc-production.yaml up