Skip to content

What if you didn't want to walk the fastest route from A to B, but the nicest? Geodata project made into a webapp

Notifications You must be signed in to change notification settings

TechLabs-Berlin/wt21-way-to-go

Repository files navigation

Way To Go is a personalised, map based web app that provides route recommendations in Berlin, based on a user’s interests. You tell us what you feel like and we’ll tell you the Way To Go!

Background

We all use Google Maps. However, when searching for directions between two places, Google only gives you the fastest, most direct routes, with very limited scope for personalisation. What if you have extra time to pass by interesting places on the way to your destination? This is what Way To Go seeks to address, asking a user to choose from pre-defined categories to determine what they will do or see along their journey. The suggested routes and route categories are based on data collected from previously walked routes and public locations across Berlin.

UX Research

To learn more about what UX researchers did in order to design a prototype for the app, check out their work in Notion!

Requirements

API Keys

For this demo to work, please create a Google Map API Key, and ensure that the two services below are enabled... otherwise it won't work! This API key must be in the environment variable REACT_APP_GOOGLE_PLACES_API_KEY.

  • Maps JavaScript API
  • Places API
  • Geocoding API

Virtual Environment

In order to run the Python and .ipynb code for data manipulation and machine learning, you need to have the following libraries installed:

Setup

1. Clone repository

git clone https://github.com/TechLabs-Berlin/wt21-way-to-go.git

2. Move to new directory

cd wt21-way-to-go

3. Install dependencies

npm install

4. Start up local development server

npm start

5. Run app in development mode

http://localhost:3000

6. Navigate into folder

cd flask

7. Create virtual environment

python3 -m venv venv

8. Activate environment

8.1 for MacOS

. venv/bin/activate

8.2 for Windows

venv\Scripts\activates

9. Install the requirements

pip install -r requirements.txt

10. Convert the .csv database into an SQL database

i. Move the "joined_data.csv" in the same folder.

ii. Create the SQL Database running create_sqlite_db.py.

Output file is the "routes.db".

11. Export Flask

export FLASK_APP=api

12. Run flask server

flask run

Deployment

Soon to be deployed

Data

We worked with data on popular routes and with data on points of interest that pedestrians might want to look for when walking. The data is geographically constrained on Berlin and surroundings.

For obtaining the routes data, you need to scrape wandermap.net on the query "Berlin".

The data on points of interest can be scraped from OpenStreetMap.org filtering for the following place type categories:

  • “amenity”: “bar”
  • “amenity”: “cafe”
  • “amenity”: “ice_cream”
  • “amenity”: “restaurant”
  • “amenity”: “nightclub”
  • “amenity”: “atm”
  • “amenity”: “bench”
  • “amenity”: “drinking_water”
  • “historic”: “yes”
  • “leisure”: “picnic_table”
  • “natural”: “tree”
  • “shop”: “convenience”
  • “tourism”: “art_work”
  • “tourism”: “attraction”
  • “tourism”: “gallery”
  • “tourism”: “viewpoint”

For data visualisation, we used post code data from suche-postleitzahl.org, together with Dr. Juan Camilo Orduz'wonderful Github repository and blogpost "Open Data: Germany Maps Viz"

Deployment

Pending to deploy on: https://www.heroku.com/

Team

Data Science

Merve Büşra Duman, Emilio Flores Bartelt, Stefanie Senger

User Experience

Sueon Ahn, Paula Sebastiano

Web Development

Leonor Cascais, Sara Pulido, Leonel Acosta

About

What if you didn't want to walk the fastest route from A to B, but the nicest? Geodata project made into a webapp

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages