Repository: https://github.com/BadwaterBay/intelli-trip-planner
We'd like to thank all of our contributors.
Click here to see a list of our contributors.
The goal of this project is to build an API that can intelligently recommend road trip routes, given a number of criteria, including trip duration, budget, region of interest, must-visit destinations, lodging places and time spent at a given location.
The grand goal is glorious but difficult to implement, requiring front-end website (HTML, CSS, and JavaScript), back-end database and computation, and even machine learning.
Hence, we break down it into smaller steps.
- The first baby step is to find the fastest route, given n destinations, powered by JavaScript and Google Maps API. Then, extend the algorithm to find the shortest route, given n destinations.
- The next step is to create a small database of 10-20 attractions, so that we can use it to develop core algorithms that can recommend road trip routes. The area around Las Vegas is an ideal choice. There are many natural attractions within ~4 hours of driving, including Grand Canyon National Park, Death Valley National Park, Zion National Park, Bryce Canyon National Park, Horseshoe Bend, and Antelope Canyon.
- Develop core algorithms that can intelligently recommend road trip routes.
- In the meantime, design and implement the big database of attractions. We should further break this huge task down to smaller tasks. For example, a database of all National Parks in the US will be a good starting point, given there are only 58 of them. Then we can further include more attractions, and even in other countries. Because the world is huge, to save us some time, let's try to include attractions that are meaningful to road trips.
- In the meantime, design the UI of the web app.
Please refer to our Contributing Guidelines.
- <root>
- CONTRIBUTING.md
- Dockerfile
- LICENSE
- README.md
- package.json
- pyproject.toml
- requirements.txt
- src
- app.py: Flask API app
- bin
- www.sh: Flask API driver
- core
- find_route.py (Core functionality for finding route)
- get_distance_matrix.py (Driver function for getting distance matrices from Google Maps API for development purposes)
- data
- distance_matrix.json (Raw JSON response from Google Maps API)
- parsed_distance_matrix.json (Parsed distance matrix)
- parsed_distance_matrix.pkl (Parsed distance matrix)
- distancematrix
- google_distance_matrix.py (Get distance matrices from Google Maps API)
- helpers
- general.py (Helper functions that don't fit into other files in this directory)
- read_write.py (Helper functions for reading and writing files)
- tests (test scripts for testing each script in src)
- load_answer_key.py (load answer keys for certain testing scripts)
- test_find_route.py
- test_get_distance_matrix.py
- test_google_distance_matrix.py
- test_helpers_general.py
- test_helpers_read_white.py
- test_data (data for testing purposes)
- distance_matrix.json
- parsed_distance_matrix.json
- parsed_distance_matrix.pkl