Metadata-Version: 2.1
Name: django-for-runners
Version: 0.2.0
Summary: UNKNOWN
Home-page: https://github.com/jedie/django-for-runners
Author: Jens Diemer
Author-email: django-for-runners@jensdiemer.de
License: GNU General Public License v3.0 or above
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Framework :: Django
Classifier: Framework :: Django :: 1.11
Classifier: Topic :: Internet
Requires-Python: >=3.5
Requires-Dist: django (<2.0)
Requires-Dist: django-cms (<3.5)

==================
django-for-runners
==================

Store your GPX tracks of your running (or other sports activity) in django.

It's currently experimental ... Pre-Alpha state...

+-----------------------------------+--------------------------------------------------------+
| |Build Status on travis-ci.org|   | `travis-ci.org/jedie/django-for-runners`_              |
+-----------------------------------+--------------------------------------------------------+
| |Coverage Status on codecov.io|   | `codecov.io/gh/jedie/django-tools`_                    |
+-----------------------------------+--------------------------------------------------------+
| |Coverage Status on coveralls.io| | `coveralls.io/r/jedie/django-for-runners`_             |
+-----------------------------------+--------------------------------------------------------+
| |Status on landscape.io|          | `landscape.io/github/jedie/django-for-runners/master`_ |
+-----------------------------------+--------------------------------------------------------+

.. |Build Status on travis-ci.org| image:: https://travis-ci.org/jedie/django-for-runners.svg
.. _travis-ci.org/jedie/django-for-runners: https://travis-ci.org/jedie/django-for-runners/
.. |Coverage Status on codecov.io| image:: https://codecov.io/gh/jedie/django-for-runners/branch/master/graph/badge.svg
.. _codecov.io/gh/jedie/django-tools: https://codecov.io/gh/jedie/django-for-runners
.. |Coverage Status on coveralls.io| image:: https://coveralls.io/repos/jedie/django-for-runners/badge.svg
.. _coveralls.io/r/jedie/django-for-runners: https://coveralls.io/r/jedie/django-for-runners
.. |Status on landscape.io| image:: https://landscape.io/github/jedie/django-for-runners/master/landscape.svg
.. _landscape.io/github/jedie/django-for-runners/master: https://landscape.io/github/jedie/django-for-runners/master

-----------
Screenshots
-----------

-------------------------------------------------
for-runners v0.2.0 2018-6-21 Change GPX Track.png
-------------------------------------------------

|for-runners v0.2.0 2018-6-21 Change GPX Track.png|

.. |for-runners v0.2.0 2018-6-21 Change GPX Track.png| image:: https://raw.githubusercontent.com/jedie/jedie.github.io/master/screenshots/django-for-runners/for-runners v0.2.0 2018-6-21 Change GPX Track.png

----------------
v0.0.1 2018-5-30
----------------

|for-runners v0.0.1 2018-5-30 change list.png|

.. |for-runners v0.0.1 2018-5-30 change list.png| image:: https://raw.githubusercontent.com/jedie/jedie.github.io/master/screenshots/django-for-runners/for-runners v0.0.1 2018-5-30 change list.png

-------
try-out
-------

e.g.:

::

    # create a python virtualenv:
    ~$ python3 -Im venv DjangoForRunnersEnv

    # activate the created virtualenv:
    ~$ cd DjangoForRunnersEnv/
    ~/DjangoForRunnersEnv$ source bin/activate

    # Upgrate pip:
    (DjangoForRunnersEnv) ~/DjangoForRunnersEnv$ pip3 install --upgrade pip

    # install django-for-runners:
    (DjangoForRunnersEnv) ~/DjangoForRunnersEnv$ pip3 install -e git+https://github.com/jedie/django-for-runners.git@master#egg=django_for_runners

    # install dependencies:
    (DjangoForRunnersEnv) ~/DjangoForRunnersEnv$ cd src/django-for-runners/
    (DjangoForRunnersEnv) ~/DjangoForRunnersEnv/src/django-for-runners$ pip install -r requirements/tests.txt

start the development server, e.g.:

::

    # activate the virtualenv:
    ~$ cd DjangoForRunnersEnv/
    ~/DjangoForRunnersEnv$ source bin/activate

    # start server:
    (DjangoForRunnersEnv) ~/DjangoForRunnersEnv$ cd src/django-for-runners/
    (DjangoForRunnersEnv) ~/DjangoForRunnersEnv/src/django-for-runners$ ./run_test_project_dev_server.sh

import GPX files, e.g.:

::

    # activate the virtualenv:
    ~$ cd DjangoForRunnersEnv/
    ~/DjangoForRunnersEnv$ source bin/activate

    # import:
    (DjangoForRunnersEnv) ~/DjangoForRunnersEnv$ cd src/django-for-runners/
    (DjangoForRunnersEnv) ~/DjangoForRunnersEnv/src/django-for-runners$ ./manage.py import_gpx --username <username> ~/backups/gpx_files

---------
run tests
---------

::

    # activate the virtualenv:
    ~$ cd DjangoForRunnersEnv/
    ~/DjangoForRunnersEnv$ source bin/activate

    # import:
    (DjangoForRunnersEnv) ~/DjangoForRunnersEnv$ cd src/django-for-runners/
    (DjangoForRunnersEnv) ~/DjangoForRunnersEnv/src/django-for-runners$ ./setup.py test

**Note:**

To run all tests, you need:

* **Chromium Browser WebDriver** e.g.: ``apt install chromium-chromedriver``

* **Firefox Browser WebDriver** aka **geckodriver**

install **geckodriver** e.g.:

::

    ~$ cd /tmp
    /tmp$ wget https://github.com/mozilla/geckodriver/releases/download/v0.20.1/geckodriver-v0.20.1-linux64.tar.gz -O geckodriver.tar.gz
    /tmp$ sudo sh -c 'tar -x geckodriver -zf geckodriver.tar.gz -O > /usr/bin/geckodriver'
    /tmp$ sudo chmod +x /usr/bin/geckodriver
    /tmp$ rm geckodriver.tar.gz
    /tmp$ geckodriver --version
    geckodriver 0.20.1
    ...

----------
some notes
----------

GPX storage
===========

Currently we store the unchanged GPX data in a TextField.

Precision of coordinates
========================

GPX files from Garmin (can) contain:

* latitude with 29 decimal places

* longitude with 28 decimal places

* elevation with 19 decimal places

The route on OpenStreetMap does not look more detailed, with more than 5 decimal places.

See also: `https://wiki.openstreetmap.org/wiki/Precision_of_coordinates <https://wiki.openstreetmap.org/wiki/Precision_of_coordinates>`_

--------------------
Django compatibility
--------------------

+--------------------+------------+----------------+----------+
| django-for-runners | Django CMS | django version | python   |
+====================+============+================+==========+
| v0.x.x             | 3.4.x TLS  | 1.11 TLS       | 3.5, 3.6 |
+--------------------+------------+----------------+----------+

(See also combinations in `.travis.yml <https://github.com/jedie/django-for-runners/blob/master/.travis.yml>`_ and `tox.ini <https://github.com/jedie/django-for-runners/blob/master/tox.ini>`_)

**Note:** Maps can't generated with Python 3.5 (`Geotiler needs Python 3.6 or later <https://github.com/wrobell/geotiler/issues/20>`_)

-----
TODO:
-----

* Add real tests

* Support Django CMS v3.5 and run tests against these versions.

* Support Django v2.0 and run tests against these versions.

-------
history
-------

* `compare v0.2.0...master <https://github.com/jedie/django-for-runners/compare/v0.2.0...master>`_ **dev**

* `21.06.2018 - v0.2.0 <https://github.com/jedie/django-for-runners/compare/v0.1.1...v0.2.0>`_:

    * Display elevations, heart_rates and cadence_values if available

    * Add kilometer markers to OpenStreetMap

* `15.06.2018 - v0.1.1 <https://github.com/jedie/django-for-runners/compare/v0.1.0...v0.1.1>`_:

    * a few bugfixes

* `15.06.2018 - v0.1.0 <https://github.com/jedie/django-for-runners/compare/v0.0.4...v0.1.0>`_:

    * Render interactive OpenStreetMap track map with Leaflet JS

* `12.06.2018 - v0.0.4 <https://github.com/jedie/django-for-runners/compare/v0.0.3...v0.0.4>`_:

    * Better Events model

    * GPX error handling

    * more tests

    * Bugfix for Python 3.5 (Geotiler needs Python 3.6 or later)

* `12.06.2018 - v0.0.3 <https://github.com/jedie/django-for-runners/compare/v0.0.2...v0.0.3>`_:

    * display min/average/max heart rate

    * use autotask to generate the MAP in background

* `31.05.2018 - v0.0.2 <https://github.com/jedie/django-for-runners/compare/v0.0.1...v0.0.2>`_:

    * generate SVG 'icon' from GPX track

* v0.0.1 - 30.05.2018

    * Just create a pre-alpha release to save the PyPi package name ;)

-----
links
-----

+----------+-------------------------------------------------+
| Homepage | `http://github.com/jedie/django-for-runners`_   |
+----------+-------------------------------------------------+
| PyPi     | `https://pypi.org/project/django-for-runners/`_ |
+----------+-------------------------------------------------+

.. _http://github.com/jedie/django-for-runners: http://github.com/jedie/django-for-runners
.. _https://pypi.org/project/django-for-runners/: https://pypi.org/project/django-for-runners/

alternatives (OpenSource only)
==============================

* `https://github.com/pytrainer/pytrainer <https://github.com/pytrainer/pytrainer>`_ (Desktop Program)

* `https://github.com/GoldenCheetah/GoldenCheetah/ <https://github.com/GoldenCheetah/GoldenCheetah/>`_ (Desktop Program)

Online tools:

* `https://www.gpsies.com <https://www.gpsies.com>`_

* `https://www.j-berkemeier.de/ShowGPX.html <https://www.j-berkemeier.de/ShowGPX.html>`_ (de)

-------
credits
-------

The whole thing is based on many excellent projects. Especially the following:

* `gpxpy <https://pypi.org/project/gpxpy/>`_ GPX file parser

* `Leaflet JS <http://leafletjs.com>`_ A JS library for interactive maps used to render the track on `OpenStreetMap <https://openstreetmap.org/>`_

* `geotiler <https://pypi.org/project/geotiler/>`_ Generate streetmap images

* `geopy <https://pypi.org/project/geopy/>`_ Get geo location names of the GPX track start/end point

* `matplotlib <https://pypi.org/project/matplotlib/>`_ plotting 2D graphics

* `autotask <https://pypi.org/project/autotask/>`_ schedule background jobs

* `svgwrite <https://pypi.org/project/svgwrite/>`_ Generating SVG file

--------
donation
--------

* `paypal.me/JensDiemer <https://www.paypal.me/JensDiemer>`_

* `Flattr This! <https://flattr.com/submit/auto?uid=jedie&url=https%3A%2F%2Fgithub.com%2Fjedie%2Fdjango-for-runners%2F>`_

* Send `Bitcoins <http://www.bitcoin.org/>`_ to `1823RZ5Md1Q2X5aSXRC5LRPcYdveCiVX6F <https://blockexplorer.com/address/1823RZ5Md1Q2X5aSXRC5LRPcYdveCiVX6F>`_

