Submission to Homeaway Homeaway Hackathon project.
- Predictive Overbooking Demo Video: https://youtu.be/XAs1HuBv4y4
- Fabric Demo Video: https://youtu.be/mivPSjEhxz0
Each year, approximately 1 million guests are relocated due to overbooking. Walking guests costs the hotel industry an estimated $5 billion per year.
4C is a cloud-based application that leverages predictive analytics to get actionable insights for optimizing overbookings by hotel sales managers. It relies on historical occupancy data, current & future reservations, variable room costs and walk costs to forecast the optimal rate of overbooking.
See architecture in gallery above
- Setting up authorization flow with 3rd-party hotel API
- Getting access to data & sort through it
- Narrow down problem scope
- Develop algorithm & data science to get problem insights
- Team-wide contributions where each member was able & willing to help in their field of expertise
- Fully-functional app that actually works
- Working data pipelines to ingest & analyze real data in real-time from 3rd party APIs.
- Rapid focus in defining problem so we can prioritize objectives, divide tasks, plan and execute in short timeframe
- Fantastic team chemistry
- The power of working in a multi-functional team
- The invaluable insights one can get from existing data
- What's next for 4C - Predictive Analytics for Overbooking Optimization
- Develop ability to input additional variables such as events and weather to algorithm to calculate cost and opportunity
- Give hotels ability to view data by day of week, reservation type, loyalty status and more
- Incorporate data from additional APIs to accurately forecast demand for similar properties
- Leverage more machine learning to optimize forecast for all variables.
- django
- splunk
- snapshot-api
- oauth
- amazon-web-services
- amazon-ec2
- javascript
- jquery
- python
- ajax
- html5
- css3
These instructions are from a complete fresh install. If your machine already has python3, pip, and pipenv installed, then skip to step 4.
- Most macOS comes with Python installed. But to make sure that you have Python version 3.6 is installed, open a terminal and run the following command.
python3 --version
. If it returns a version number, then you have python installed. If you do not see a version number, enterbrew install python3
- Install pip with the command
sudo easy_install pip
. Pip is a package management system used to install and manage software packages written in Python. - Since we are using the latest version of Django, you will also need pipenv. Pipenv is a dependency manager and virtual environment tool. Install it with
pip install pipenv
- git clone the repository and cd into it. You should be in the directory /homeaway
- In the command line, start a virtual environment with
pipenv shell
. You should see a wall of scrolling code while it is creating a virtual environment for the project in the current directory. While in development, you should always activate the virtual environment with this command. You deactivate with the commanddeactivate
. - Install the dependencies with
pipenv install
. This will install the Django framework and all dependency packages in the pipfile. The pipfile and pipfile.lock is very similar to package.json for Javascript or Composer for PHP. - After the installations are complete, you will need to make a migration to apply changes. Use the command
pipenv run ./manage.py migrate
. - Start the app with
pipenv run ./manage.py runserver
. - If you see a
Starting development server at http://127.0.0.1:8000/
, then the server was successfully started and you may see the app at http://localhost:8000.
- The following commands allow you to install/uninstall packages, create a super user account, and access the admin page.
- Install packages with:
pipenv install [package-name]
- Uninstall packages with:
pipenv uninstall [package-name]
- Create a super user with:
pipenv run ./manage.py createsuperuser
Enter a username, an email, and a password. - Access the admin page at http://localhost:8000/admin. Login with your superuser account. This page gives you administrative privileges to manipulate users and permission groups.