You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

5.3 KiB


v 0.9.0

This project is deprecated. Since Google increased the cost of their maps API, it no longer made financial sense to keep it running. I might revive or remix the project in the future.

node.js application to display a sharable map with user's location.

Travis Build Status Coverage Status JavaScript Style Guide


On unix-based systems:

git clone tracman-server &&\
cd tracman-server &&\
npm install

You will need to set up a configuration file at config/env/env.js. Use config/env/sample.js for an example. You can get API keys at the google developer's console. You will need to set up approved hosts and auth callbacks. There is more information in their documentation.

A good method is to simply copy the sample configuration and point config/env/env.js to the new version:

cp config/env/sample.js config/env/local-config.js
echo "module.exports = require('./local-config.js')" > config/env/env.js

Then edit config/env/local-config.js to match your local environment.


Run Tracman with npm:

npm run build && npm start

...or with nodemon:

npm run nodemon

Nodemon will automatically rebuild and restart the app when you make changes.


Tracman will be updated according to this branching model... more or less. If you know anything about programming Android, the Tracman android app is more desperate for help.


view full changelog

  • Removed coinhive
  • Fixed CSP rules
  • Improved debugging output
  • Tried to fix scrollwheel
  • Fixed security audited npm packages
  • #121 Fixed various security holes
  • #68 Added tests, mostly for authentication
  • #120 Split config/routes/settings.js into two files
  • Removed express validator and replaced with homegrown function
  • Fixed showing welcome message on every login
  • Removed naked domains
  • Patched CVE-2017-16117 on node-slug
  • Hotfixed service worker bugs
  • Added check to ensure only the newest location is sent
  • Removed buggy login/-out redirects
  • #111 Implemented service worker
  • #116 Switched promises for async/await
  • #64 Started using promises in model methods
  • #63 Disconnect inactive clients
  • #110 Implemented StandardJS
  • Removed emojis
  • #113 #114 Switched to useMongoClient
  • #67 Fixed invisible marker in demo
  • Shortened if statements and long lines


  • Fixed altitude sign
  • Added coinhive
  • Added HTML5 shiv
  • Added support for browser geolocation
  • Fixed streetview image bugs
  • Added sourcemaps for debugging
  • Fixed streetview bearing
  • #96 Replaced panorama with static images
  • #96 Continue to update panorama after creating element
  • #100 Moved CSS out of webpack
  • Fixed #108
  • Fixed bugs #105 and #107
  • #89 Can change marker color
  • Fixed #102 issue creating account


view full license

Tracman: GPS tracking service in node.js Copyright © 2018 Keith Irwin

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see