Hiking routes in Switzerland

Frontend app for displaying hiking routes in Switzerland on a OpenStreetMap. The content is fetched from SchweizMobil website.

Installation

Project

git clone git@github.com:lyx-x/SwissHiking.git

Dependencies

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo npm install npm --global
cd SwissHiking
npm install

You'll also need to setup authentication for Google Cloud in order to access Datastore.

Launch

The default port is at 3000, this is defined in bin/www.

npm run start

How to setup GCP App Engine (GAE)

This project is currently deployed to Google App Engine via Cloud Build. The config are located in app.yaml and cloudbuild.yaml. Just push to the master branch, the app will be deployed to https://swiss-hiking.appspot.com. This section writes down some of the important steps when configuring the stack.

App Engine

Cloud Build

We use Cloud Build and Cloud Source Repositories to update our app after each push to the master branch. The config is written in cloudbuild.yaml which contains 3 tasks: installing dependencies, deploying the app and deploying the cron job. The Cloud Build service account needs 2 permissions for deploying the app and the cron job. The first is given by App Engine Admin role and the second by Cloud Scheduler Admin role.