lazy-holiday-planner

About

The lazy bastard's holiday planner. Creating account gains you access to the ability to just quickly generate a full holiday by just specifying some details including location and the dates you want to be there. You get the ability to share the trip with friends and add landmarks and scheduled events.

After creating an account and filling in a short form, the user is presented a draft itinerary, already complete with the best flights selected according to the user's specifications. The Lazy Holiday Planner also suggests attractions nearby, which can be added to the itinerary at the push of a button.

Users can also confidentially share their holiday plans and edit them collaboratively. The Lazy Holiday Planner makes it easy, all you have to do is send your friend a link.

How we built it

The application is a django web app, that incorporates the Skyscanner API to get flight information given the users input, typeform to get the users preferences and the google maps api. The google maps api does a lot of the navigation and retrieval of points of interest.

Setup

To setup the application in a developer environment, you will need to install the pip requirements and then run the dev-run script:

bash scripts/requirements-install
bash dev-run

This will begin the server, however a lot of the functionality will not work if you don't expose the webhook correctly. You can use ngrok to expose the /api/typeform to the internet, which will make the system actually work. ngrok can generate you a public facing domain by running the following command:

sudo ngrok http 8000

Then, you will need to modify the domain on the typeform website so that it can properly reach the webhook. I'd recommend using typeform's built in method for checking that the webhook properly works.

To start from a clean slate with the database, run the following command:

bash scripts/reset-db

If you aren't going to run the scripts/dev-run after, ensure that you run the following commands so that the migrations are made and applied before running:

python manage.py makemigrations
python manage.py migrate
Share this project:
×

Updates