/nikeplus-to-runkeeper

Web application for importing Nike+ running data into RunKeeper

Primary LanguageRuby

Nike+ to RunKeeper Importer
===========================

A web interface for exporting your running data from Nike+ and then importing
into RunKeeper. This was built because existing tools providing this
functionality require you to input your email/password for a Nike+ account.

Due to the nature of the Nike API this app requires the same details, but
through building it on open software and the user running it on thier own
machine at least there is a little more transparency.

This should be considered a work in progress, it functions but is very
rough around the edges. Feedback is welcome though, just open a new issue
on this project or email me at hello@aroncarroll.com.

Installation
------------

You will need to create a RunKeeper app in order to run the server. This can
be created at http://runkeeper.com/partner/applications, doing so will give
you an client ID and secret.

After cloning the repository into a local folder you will need to install the
dependancies using bundler. If you do not have bundler installed
`gem install bundler` will set you right.

    $ bundle

Configuration
-------------

    APP_SECRET: A random string used to encode the session keys.
    RUNKEEPER_CLIENT_ID: Your RunKeeper app id.
    RUNKEEPER_CLIENT_SECRET: You RunKeeper app secret.

Usage
-----

Start the app with the runkeeper settings and a secret token for the sessions,
this is done using environment variables (replace the tokens eg. `{client_id}`
with your own settings).

    $ APP_SECRET={some_random_string} \
    > RUNKEEPER_CLIENT_ID={client_id} \
    > RUNKEEPER_CLIENT_SECRET={client_secret} \
    > bundle exec rackup

Visit http://localhost:9292 in your browser and select login. You will then be
prompted to authorise the app with RunKeeper, then you will need to enter your
Nike+ details. This will present you with a list of past activities, select the
ones you want to import and submit the form.

Limitations
-----------

The Nike+ API does not provide any timing data for it's GPS co-ordinates so
currently each reading is assigned a timestamp based on a fraction of the total
run time. This is okay for most situations, but can lead to odd results when
a run has been paused and resumed.

Alternatives
------------

Some alternatives that I found while researching this project:

- https://mattstuehler.com/lab/NikePlus/
- http://nikeplusexporter.rhysmccaig.com
- http://jkili.wordpress.com/2012/08/17/nike-gpx-export/
- http://trailrunnerx.com
- https://gist.github.com/leah/5655437

TODO
----

- Allow Nike authorisation without email/password.
- Syncing of new runs via cron.
- Export of Nike data to .gpx format.

License
-------

Available under an MIT License