Skip to content
Demo web application which records a device's location and saves this information to IBM Cloudant
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Cloudant Location Tracker

The Cloudant Location Tracker is a demo web application which records a device's location and saves this information to IBM Cloudant.

UPDATE June, 2016: We have several sample apps covering location tracking with Cloudant. Use the one that fits your coding needs best. There's a bare-bones couchapp, this one for Angular (version 1)/NodeJS developers, and the latest using Swift/iOS on the client-side with a NodeJS back-end.


Get the project and change into the project directory:

$ git clone
$ cd location-tracker-nodejs

Configuring IBM Bluemix

Complete these steps first if you have not already:

  1. Install the Cloud Foundry command line interface.
  2. Follow the instructions at the above link to connect to Bluemix.
  3. Follow the instructions at the above link to log in to Bluemix.

Create a Cloudant service within Bluemix if one has not already been created:

$ cf create-service cloudantNoSQLDB Lite cloudant-location-tracker-db

Configuring Local Development

Local configuration is done through a .env file. One environment variable, VCAP_SERVICES, is needed in order to configure your local development environment. The value of the VCAP_SERVICES is a string representation of a JSON object. Here is an example .env file:

VCAP_SERVICES={"cloudantNoSQLDB": [{"name": "cloudant-location-tracker-db","label": "cloudantNoSQLDB","plan": "Shared","credentials": {"username": "your-username","password": "your-password","host": "your-host","port": 443,"url": "https://your-username:your-password@your-host"}}]}

Note: Services created within Bluemix are automatically added to the VCAP_SERVICES environment variable. Therefore, no configuration is needed for Bluemix.


Install the project's dependencies and initialize the database:

$ npm install


  1. Run the project through Foreman:

     $ foreman start
  2. Authenticate by clicking the sign up link. Iif this is your first time logging in, enter your email address and a password. If not, click the "Go Sign In" link.

  3. Track locations by simply doing nothing or moving around by foot, bike or vehicle. Location data is saved in your browser in a PouchDB database.

  4. Persist the data to the cloud by clicking "Stop & Save Location Data". Everything is saved to the Cloudant database you created earlier, with your username included in each location reading.


To deploy to Bluemix, simply:

$ cf push

Note: You may notice that Bluemix assigns a URL to your app containing a random word. This is defined in the manifest.yml file. The host key in this file contains the value cloudant-location-tracker-${random-word}. The random word is there to ensure that multiple people deploying the Location Tracker application to Bluemix do not run into naming collisions. However, this will cause a new route to be created for your application each time you deploy to Bluemix. To prevent this from happening, replace ${random-word} with a hard coded (but unique) value.

Privacy Notice

The Location Tracker sample web application includes code to track deployments to IBM Bluemix and other Cloud Foundry platforms. The following information is sent to a Deployment Tracker service on each deployment:

  • Application Name (application_name)
  • Space ID (space_id)
  • Application Version (application_version)
  • Application URIs (application_uris)

This data is collected from the VCAP_APPLICATION environment variable in IBM Bluemix and other Cloud Foundry platforms. This data is used by IBM to track metrics around deployments of sample applications to IBM Bluemix to measure the usefulness of our examples, so that we can continuously improve the content we offer to you. Only deployments of sample applications that include code to ping the Deployment Tracker service will be tracked.

Disabling Deployment Tracking

Deployment tracking can be disabled by removing ./admin.js track && from the install script line of the scripts section within package.json.


Licensed under the Apache License, Version 2.0.

You can’t perform that action at this time.