usef-kh / easyroute

An application that optimizes the timings between all landmarks a user wants to visit in a day.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Easy Route

Choose your favorite locations and landmarks and let us plan your day!

Useful Links

Basically

The internet has an abundance of articles on the best spots to visit in each area but no simple way to connect all these locations and make an optimal itinerary. Easy Route allows you to find all these places you want to visit and create the perfect route based on location and opening time of these places.

Stack

  • Language: Python, HTML, CSS
  • Framework: Flask
  • Database: SQLite

Technically

  • The backend is entirely written with python and api calls to Google maps API and Bing maps API. Google maps is used to search for places and find their addresses and opening times. Bing maps is used to generate the optimal route. Bing map's multi-itnerary optimization service solves efficiently the routing using a traveling salesman with time windows' algorithm.
  • SQLite is used for the authentification.
  • Flask is used for the front-end of this app.

Workflow

  • Create an account
  • Login
  • Create a new trip
  • Search for places through the query search bar
  • Select how long you want to stay at each place
  • Click the place you want to visit to save it in your unscheduled list of places
  • Input all the places you would like to visit
  • Confirm your list
  • Select the day you want to travel, your starting and ending time and locations
  • Create and view your scheduled itinerary in table and map format
  • Make edits to your inputs if needed

Set up

Local machine set up

Local installation set up steps

Clone project:

git clone https://github.com/usef-kh/easyroute.git

Create a virtual environment:

virtualenv ~/easyroute-env 

Activate the Virtual Environmnet:

source ~/easyroute-env/bin/activate

Download Flask:

pip install Flask

Get a Google maps api key

Get a Bing maps api key

Create a keys.json file in the main directory, easyroute, written like this:

{
  "bingRouting": "<Your Bing API Key>",
  "gmaps": "<Your Google maps API Key"
}

Run your app locally:

flask run

Contact

About

An application that optimizes the timings between all landmarks a user wants to visit in a day.


Languages

Language:Python 48.8%Language:HTML 38.0%Language:CSS 13.2%