Merge branch 'master' into v0.3.0
Conflicts: docs/objects.inv docs/searchindex.js fittrackee_api/poetry.lock fittrackee_api/pyproject.toml fittrackee_client/src/actions/index.js fittrackee_client/src/components/App.jsx fittrackee_client/src/utils/index.js
							
								
								
									
										12
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						@@ -1,5 +1,17 @@
 | 
			
		||||
# Change log
 | 
			
		||||
 | 
			
		||||
## Version 0.2.5 - Fix and improvements (2020/01/31)
 | 
			
		||||
 | 
			
		||||
### Misc
 | 
			
		||||
 | 
			
		||||
This version contains minor fix and improvements on client side:
 | 
			
		||||
* [4c3fc34](https://github.com/SamR1/FitTrackee/commit/4c3fc343d51b9c27d3ebab71df648bcf7d7bae59) - empty user data on logout
 | 
			
		||||
* [34614d5](https://github.com/SamR1/FitTrackee/commit/34614d5a6c29f4911d92db33d36fe95721b39f33) - add spinner on loading activities
 | 
			
		||||
* [b862a77](https://github.com/SamR1/FitTrackee/commit/b862a77344abbb07d98fe3ce8b157b5cef0e8d1c), 
 | 
			
		||||
[2e1ee2c](https://github.com/SamR1/FitTrackee/commit/2e1ee2c7a1456eb2fe0c0255959c695cc7908975) -
 | 
			
		||||
add URL interceptors to simplify routes definition
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Version 0.2.4 - Minor fix (2020/01/30)
 | 
			
		||||
 | 
			
		||||
### Issues Closed
 | 
			
		||||
 
 | 
			
		||||
@@ -25,7 +25,7 @@ It is also possible to add a workout without a gpx file.
 | 
			
		||||
**Still under development (not ready for production).**  
 | 
			
		||||
(see [issues](https://github.com/SamR1/FitTrackee/issues) and [documentation](https://samr1.github.io/FitTrackee) for more information)  
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
# Sphinx build info version 1
 | 
			
		||||
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
 | 
			
		||||
config: 1fcfb69d27cc89d68586df68df16169a
 | 
			
		||||
config: 8aafab39ba1d615e5c19bca92be62585
 | 
			
		||||
tags: 645f666f9bcd5a90fca523b33c5a78b7
 | 
			
		||||
 
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 599 KiB After Width: | Height: | Size: 599 KiB  | 
| 
		 Before Width: | Height: | Size: 539 KiB After Width: | Height: | Size: 539 KiB  | 
| 
		 Before Width: | Height: | Size: 205 KiB After Width: | Height: | Size: 205 KiB  | 
| 
		 Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 63 KiB  | 
@@ -1,5 +1,17 @@
 | 
			
		||||
# Change log
 | 
			
		||||
 | 
			
		||||
## Version 0.2.5 - Fix and improvements (2020/01/31)
 | 
			
		||||
 | 
			
		||||
### Misc
 | 
			
		||||
 | 
			
		||||
This version contains minor fix and improvements on client side:
 | 
			
		||||
* [4c3fc34](https://github.com/SamR1/FitTrackee/commit/4c3fc343d51b9c27d3ebab71df648bcf7d7bae59) - empty user data on logout
 | 
			
		||||
* [34614d5](https://github.com/SamR1/FitTrackee/commit/34614d5a6c29f4911d92db33d36fe95721b39f33) - add spinner on loading activities
 | 
			
		||||
* [b862a77](https://github.com/SamR1/FitTrackee/commit/b862a77344abbb07d98fe3ce8b157b5cef0e8d1c), 
 | 
			
		||||
[2e1ee2c](https://github.com/SamR1/FitTrackee/commit/2e1ee2c7a1456eb2fe0c0255959c695cc7908975) -
 | 
			
		||||
add URL interceptors to simplify routes definition
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Version 0.2.4 - Minor fix (2020/01/30)
 | 
			
		||||
 | 
			
		||||
### Issues Closed
 | 
			
		||||
 
 | 
			
		||||
@@ -43,23 +43,23 @@ FitTrackee is available in English and French (which can be saved in the user se
 | 
			
		||||
Dashboard
 | 
			
		||||
~~~~~~~~~
 | 
			
		||||
 | 
			
		||||
.. figure:: ../../misc/images/fittrackee_screenshot-01.png
 | 
			
		||||
.. figure:: _images/fittrackee_screenshot-01.png
 | 
			
		||||
   :alt: FitTrackee Dashboard
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Activity/workout detail
 | 
			
		||||
~~~~~~~~~~~~~~~~~~~~~~~
 | 
			
		||||
.. figure:: ../../misc/images/fittrackee_screenshot-02.png
 | 
			
		||||
.. figure:: _images/fittrackee_screenshot-02.png
 | 
			
		||||
   :alt: FitTrackee Activity
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Activities/workouts list
 | 
			
		||||
~~~~~~~~~~~~~~~~~~~~~~~~
 | 
			
		||||
.. figure:: ../../misc/images/fittrackee_screenshot-03.png
 | 
			
		||||
.. figure:: _images/fittrackee_screenshot-03.png
 | 
			
		||||
   :alt: FitTrackee Activities
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Statistics
 | 
			
		||||
~~~~~~~~~~
 | 
			
		||||
.. figure:: ../../misc/images/fittrackee_screenshot-04.png
 | 
			
		||||
.. figure:: _images/fittrackee_screenshot-04.png
 | 
			
		||||
   :alt: FitTrackee Statistics
 | 
			
		||||
 
 | 
			
		||||
@@ -23,7 +23,7 @@ FitTrackee
 | 
			
		||||
| **Still under development (not ready for production).**
 | 
			
		||||
| (see `issues <https://github.com/SamR1/FitTrackee/issues>`__ for more information)
 | 
			
		||||
 | 
			
		||||
.. figure:: ../../misc/images/fittrackee_screenshot-01.png
 | 
			
		||||
.. figure:: _images/fittrackee_screenshot-01.png
 | 
			
		||||
   :alt: FitTrackee Dashboard
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -87,12 +87,12 @@ Prod environment
 | 
			
		||||
.. warning::
 | 
			
		||||
    Note that FitTrackee is not production-ready yet
 | 
			
		||||
 | 
			
		||||
-  Download the last release (for now, it is the beta release v0.2.3):
 | 
			
		||||
-  Download the last release (for now, it is the beta release v0.2.5):
 | 
			
		||||
 | 
			
		||||
.. code:: bash
 | 
			
		||||
 | 
			
		||||
   $ wget https://github.com/SamR1/FitTrackee/archive/v0.2.3-beta.tar.gz
 | 
			
		||||
   $ tar -xzf v0.2.3-beta.tar.gz
 | 
			
		||||
   $ wget https://github.com/SamR1/FitTrackee/archive/v0.2.5-beta.tar.gz
 | 
			
		||||
   $ tar -xzf v0.2.5-beta.tar.gz
 | 
			
		||||
   $ mv FitTrackee-0.2.3-beta FitTrackee
 | 
			
		||||
   $ cd FitTrackee
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								docs/_static/documentation_options.js
									
									
									
									
										vendored
									
									
								
							
							
						
						@@ -1,6 +1,6 @@
 | 
			
		||||
var DOCUMENTATION_OPTIONS = {
 | 
			
		||||
    URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
 | 
			
		||||
    VERSION: '0.2.4-beta',
 | 
			
		||||
    VERSION: '0.2.5-beta',
 | 
			
		||||
    LANGUAGE: 'None',
 | 
			
		||||
    COLLAPSE_INDEX: false,
 | 
			
		||||
    BUILDER: 'html',
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml">
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta charset="utf-8" />
 | 
			
		||||
    <title>Activities — FitTrackee 0.2.4-beta
 | 
			
		||||
    <title>Activities — FitTrackee 0.2.5-beta
 | 
			
		||||
 documentation</title>
 | 
			
		||||
    <link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
 | 
			
		||||
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
 | 
			
		||||
@@ -39,7 +39,7 @@
 | 
			
		||||
        </button>
 | 
			
		||||
        <a class="navbar-brand" href="../index.html">
 | 
			
		||||
          FitTrackee</a>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
        <div class="collapse navbar-collapse nav-collapse">
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml">
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta charset="utf-8" />
 | 
			
		||||
    <title>Authentication — FitTrackee 0.2.4-beta
 | 
			
		||||
    <title>Authentication — FitTrackee 0.2.5-beta
 | 
			
		||||
 documentation</title>
 | 
			
		||||
    <link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
 | 
			
		||||
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
 | 
			
		||||
@@ -39,7 +39,7 @@
 | 
			
		||||
        </button>
 | 
			
		||||
        <a class="navbar-brand" href="../index.html">
 | 
			
		||||
          FitTrackee</a>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
        <div class="collapse navbar-collapse nav-collapse">
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml">
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta charset="utf-8" />
 | 
			
		||||
    <title>Configuration — FitTrackee 0.2.4-beta
 | 
			
		||||
    <title>Configuration — FitTrackee 0.2.5-beta
 | 
			
		||||
 documentation</title>
 | 
			
		||||
    <link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
 | 
			
		||||
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
 | 
			
		||||
@@ -39,7 +39,7 @@
 | 
			
		||||
        </button>
 | 
			
		||||
        <a class="navbar-brand" href="../index.html">
 | 
			
		||||
          FitTrackee</a>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
        <div class="collapse navbar-collapse nav-collapse">
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml">
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta charset="utf-8" />
 | 
			
		||||
    <title>API documentation — FitTrackee 0.2.4-beta
 | 
			
		||||
    <title>API documentation — FitTrackee 0.2.5-beta
 | 
			
		||||
 documentation</title>
 | 
			
		||||
    <link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
 | 
			
		||||
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
 | 
			
		||||
@@ -39,7 +39,7 @@
 | 
			
		||||
        </button>
 | 
			
		||||
        <a class="navbar-brand" href="../index.html">
 | 
			
		||||
          FitTrackee</a>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
        <div class="collapse navbar-collapse nav-collapse">
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml">
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta charset="utf-8" />
 | 
			
		||||
    <title>Records — FitTrackee 0.2.4-beta
 | 
			
		||||
    <title>Records — FitTrackee 0.2.5-beta
 | 
			
		||||
 documentation</title>
 | 
			
		||||
    <link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
 | 
			
		||||
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
 | 
			
		||||
@@ -39,7 +39,7 @@
 | 
			
		||||
        </button>
 | 
			
		||||
        <a class="navbar-brand" href="../index.html">
 | 
			
		||||
          FitTrackee</a>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
        <div class="collapse navbar-collapse nav-collapse">
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml">
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta charset="utf-8" />
 | 
			
		||||
    <title>Sports — FitTrackee 0.2.4-beta
 | 
			
		||||
    <title>Sports — FitTrackee 0.2.5-beta
 | 
			
		||||
 documentation</title>
 | 
			
		||||
    <link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
 | 
			
		||||
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
 | 
			
		||||
@@ -39,7 +39,7 @@
 | 
			
		||||
        </button>
 | 
			
		||||
        <a class="navbar-brand" href="../index.html">
 | 
			
		||||
          FitTrackee</a>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
        <div class="collapse navbar-collapse nav-collapse">
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml">
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta charset="utf-8" />
 | 
			
		||||
    <title>Statistics — FitTrackee 0.2.4-beta
 | 
			
		||||
    <title>Statistics — FitTrackee 0.2.5-beta
 | 
			
		||||
 documentation</title>
 | 
			
		||||
    <link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
 | 
			
		||||
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
 | 
			
		||||
@@ -39,7 +39,7 @@
 | 
			
		||||
        </button>
 | 
			
		||||
        <a class="navbar-brand" href="../index.html">
 | 
			
		||||
          FitTrackee</a>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
        <div class="collapse navbar-collapse nav-collapse">
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml">
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta charset="utf-8" />
 | 
			
		||||
    <title>Users — FitTrackee 0.2.4-beta
 | 
			
		||||
    <title>Users — FitTrackee 0.2.5-beta
 | 
			
		||||
 documentation</title>
 | 
			
		||||
    <link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
 | 
			
		||||
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
 | 
			
		||||
@@ -39,7 +39,7 @@
 | 
			
		||||
        </button>
 | 
			
		||||
        <a class="navbar-brand" href="../index.html">
 | 
			
		||||
          FitTrackee</a>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
        <div class="collapse navbar-collapse nav-collapse">
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml">
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta charset="utf-8" />
 | 
			
		||||
    <title>Change log — FitTrackee 0.2.4-beta
 | 
			
		||||
    <title>Change log — FitTrackee 0.2.5-beta
 | 
			
		||||
 documentation</title>
 | 
			
		||||
    <link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
 | 
			
		||||
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
 | 
			
		||||
@@ -38,7 +38,7 @@
 | 
			
		||||
        </button>
 | 
			
		||||
        <a class="navbar-brand" href="index.html">
 | 
			
		||||
          FitTrackee</a>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
        <div class="collapse navbar-collapse nav-collapse">
 | 
			
		||||
@@ -75,6 +75,10 @@
 | 
			
		||||
      role="menu"
 | 
			
		||||
      aria-labelledby="dLabelLocalToc"><ul>
 | 
			
		||||
<li><a class="reference internal" href="#">Change log</a><ul>
 | 
			
		||||
<li><a class="reference internal" href="#version-0-2-5-fix-and-improvements-2020-01-31">Version 0.2.5 - Fix and improvements (2020/01/31)</a><ul>
 | 
			
		||||
<li><a class="reference internal" href="#misc">Misc</a></li>
 | 
			
		||||
</ul>
 | 
			
		||||
</li>
 | 
			
		||||
<li><a class="reference internal" href="#version-0-2-4-minor-fix-2020-01-30">Version 0.2.4 - Minor fix (2020/01/30)</a><ul>
 | 
			
		||||
<li><a class="reference internal" href="#issues-closed">Issues Closed</a><ul>
 | 
			
		||||
<li><a class="reference internal" href="#bugs-fixed">Bugs Fixed</a></li>
 | 
			
		||||
@@ -103,28 +107,28 @@
 | 
			
		||||
<li><a class="reference internal" href="#id7">Bugs Fixed</a></li>
 | 
			
		||||
</ul>
 | 
			
		||||
</li>
 | 
			
		||||
<li><a class="reference internal" href="#misc">Misc</a></li>
 | 
			
		||||
<li><a class="reference internal" href="#id8">Misc</a></li>
 | 
			
		||||
</ul>
 | 
			
		||||
</li>
 | 
			
		||||
<li><a class="reference internal" href="#version-0-2-0-statistics-2019-07-07">Version 0.2.0 - Statistics (2019/07/07)</a><ul>
 | 
			
		||||
<li><a class="reference internal" href="#id8">Issues Closed</a><ul>
 | 
			
		||||
<li><a class="reference internal" href="#id9">New Features</a></li>
 | 
			
		||||
<li><a class="reference internal" href="#id9">Issues Closed</a><ul>
 | 
			
		||||
<li><a class="reference internal" href="#id10">New Features</a></li>
 | 
			
		||||
</ul>
 | 
			
		||||
</li>
 | 
			
		||||
<li><a class="reference internal" href="#id10">Misc</a></li>
 | 
			
		||||
<li><a class="reference internal" href="#id11">Misc</a></li>
 | 
			
		||||
</ul>
 | 
			
		||||
</li>
 | 
			
		||||
<li><a class="reference internal" href="#version-0-1-1-fix-and-improvements-2019-02-07">Version 0.1.1 - Fix and improvements (2019/02/07)</a><ul>
 | 
			
		||||
<li><a class="reference internal" href="#id11">Issues Closed</a><ul>
 | 
			
		||||
<li><a class="reference internal" href="#id12">New Features</a></li>
 | 
			
		||||
<li><a class="reference internal" href="#id13">Bugs Fixed</a></li>
 | 
			
		||||
<li><a class="reference internal" href="#id12">Issues Closed</a><ul>
 | 
			
		||||
<li><a class="reference internal" href="#id13">New Features</a></li>
 | 
			
		||||
<li><a class="reference internal" href="#id14">Bugs Fixed</a></li>
 | 
			
		||||
</ul>
 | 
			
		||||
</li>
 | 
			
		||||
</ul>
 | 
			
		||||
</li>
 | 
			
		||||
<li><a class="reference internal" href="#version-0-1-0-first-release-2018-07-04">Version 0.1.0 - First release 🎉 (2018-07-04)</a><ul>
 | 
			
		||||
<li><a class="reference internal" href="#id14">Issues Closed</a><ul>
 | 
			
		||||
<li><a class="reference internal" href="#id15">New Features</a></li>
 | 
			
		||||
<li><a class="reference internal" href="#id15">Issues Closed</a><ul>
 | 
			
		||||
<li><a class="reference internal" href="#id16">New Features</a></li>
 | 
			
		||||
</ul>
 | 
			
		||||
</li>
 | 
			
		||||
</ul>
 | 
			
		||||
@@ -176,6 +180,20 @@
 | 
			
		||||
      
 | 
			
		||||
  <div class="section" id="change-log">
 | 
			
		||||
<h1>Change log<a class="headerlink" href="#change-log" title="Permalink to this headline">¶</a></h1>
 | 
			
		||||
<div class="section" id="version-0-2-5-fix-and-improvements-2020-01-31">
 | 
			
		||||
<h2>Version 0.2.5 - Fix and improvements (2020/01/31)<a class="headerlink" href="#version-0-2-5-fix-and-improvements-2020-01-31" title="Permalink to this headline">¶</a></h2>
 | 
			
		||||
<div class="section" id="misc">
 | 
			
		||||
<h3>Misc<a class="headerlink" href="#misc" title="Permalink to this headline">¶</a></h3>
 | 
			
		||||
<p>This version contains minor fix and improvements on client side:</p>
 | 
			
		||||
<ul class="simple">
 | 
			
		||||
<li><p><a class="reference external" href="https://github.com/SamR1/FitTrackee/commit/4c3fc343d51b9c27d3ebab71df648bcf7d7bae59">4c3fc34</a> - empty user data on logout</p></li>
 | 
			
		||||
<li><p><a class="reference external" href="https://github.com/SamR1/FitTrackee/commit/34614d5a6c29f4911d92db33d36fe95721b39f33">34614d5</a> - add spinner on loading activities</p></li>
 | 
			
		||||
<li><p><a class="reference external" href="https://github.com/SamR1/FitTrackee/commit/b862a77344abbb07d98fe3ce8b157b5cef0e8d1c">b862a77</a>,
 | 
			
		||||
<a class="reference external" href="https://github.com/SamR1/FitTrackee/commit/2e1ee2c7a1456eb2fe0c0255959c695cc7908975">2e1ee2c</a> -
 | 
			
		||||
add URL interceptors to simplify routes definition</p></li>
 | 
			
		||||
</ul>
 | 
			
		||||
</div>
 | 
			
		||||
</div>
 | 
			
		||||
<div class="section" id="version-0-2-4-minor-fix-2020-01-30">
 | 
			
		||||
<h2>Version 0.2.4 - Minor fix (2020/01/30)<a class="headerlink" href="#version-0-2-4-minor-fix-2020-01-30" title="Permalink to this headline">¶</a></h2>
 | 
			
		||||
<div class="section" id="issues-closed">
 | 
			
		||||
@@ -246,8 +264,8 @@
 | 
			
		||||
</ul>
 | 
			
		||||
</div>
 | 
			
		||||
</div>
 | 
			
		||||
<div class="section" id="misc">
 | 
			
		||||
<h3>Misc<a class="headerlink" href="#misc" title="Permalink to this headline">¶</a></h3>
 | 
			
		||||
<div class="section" id="id8">
 | 
			
		||||
<h3>Misc<a class="headerlink" href="#id8" title="Permalink to this headline">¶</a></h3>
 | 
			
		||||
<ul class="simple">
 | 
			
		||||
<li><p><strong><a class="reference external" href="https://poetry.eustace.io/">Poetry</a></strong> replaces <strong><a class="reference external" href="https://docs.pipenv.org">pipenv</a></strong> for Python packages management</p></li>
 | 
			
		||||
</ul>
 | 
			
		||||
@@ -256,17 +274,17 @@
 | 
			
		||||
</div>
 | 
			
		||||
<div class="section" id="version-0-2-0-statistics-2019-07-07">
 | 
			
		||||
<h2>Version 0.2.0 - Statistics (2019/07/07)<a class="headerlink" href="#version-0-2-0-statistics-2019-07-07" title="Permalink to this headline">¶</a></h2>
 | 
			
		||||
<div class="section" id="id8">
 | 
			
		||||
<h3>Issues Closed<a class="headerlink" href="#id8" title="Permalink to this headline">¶</a></h3>
 | 
			
		||||
<div class="section" id="id9">
 | 
			
		||||
<h4>New Features<a class="headerlink" href="#id9" title="Permalink to this headline">¶</a></h4>
 | 
			
		||||
<h3>Issues Closed<a class="headerlink" href="#id9" title="Permalink to this headline">¶</a></h3>
 | 
			
		||||
<div class="section" id="id10">
 | 
			
		||||
<h4>New Features<a class="headerlink" href="#id10" title="Permalink to this headline">¶</a></h4>
 | 
			
		||||
<ul class="simple">
 | 
			
		||||
<li><p><a class="reference external" href="https://github.com/SamR1/Fittrackee/issues/13">#13</a> - Detailed statistics</p></li>
 | 
			
		||||
</ul>
 | 
			
		||||
</div>
 | 
			
		||||
</div>
 | 
			
		||||
<div class="section" id="id10">
 | 
			
		||||
<h3>Misc<a class="headerlink" href="#id10" title="Permalink to this headline">¶</a></h3>
 | 
			
		||||
<div class="section" id="id11">
 | 
			
		||||
<h3>Misc<a class="headerlink" href="#id11" title="Permalink to this headline">¶</a></h3>
 | 
			
		||||
<ul class="simple">
 | 
			
		||||
<li><p>Update dependencies</p></li>
 | 
			
		||||
</ul>
 | 
			
		||||
@@ -275,17 +293,17 @@
 | 
			
		||||
</div>
 | 
			
		||||
<div class="section" id="version-0-1-1-fix-and-improvements-2019-02-07">
 | 
			
		||||
<h2>Version 0.1.1 - Fix and improvements (2019/02/07)<a class="headerlink" href="#version-0-1-1-fix-and-improvements-2019-02-07" title="Permalink to this headline">¶</a></h2>
 | 
			
		||||
<div class="section" id="id11">
 | 
			
		||||
<h3>Issues Closed<a class="headerlink" href="#id11" title="Permalink to this headline">¶</a></h3>
 | 
			
		||||
<div class="section" id="id12">
 | 
			
		||||
<h4>New Features<a class="headerlink" href="#id12" title="Permalink to this headline">¶</a></h4>
 | 
			
		||||
<h3>Issues Closed<a class="headerlink" href="#id12" title="Permalink to this headline">¶</a></h3>
 | 
			
		||||
<div class="section" id="id13">
 | 
			
		||||
<h4>New Features<a class="headerlink" href="#id13" title="Permalink to this headline">¶</a></h4>
 | 
			
		||||
<ul class="simple">
 | 
			
		||||
<li><p><a class="reference external" href="https://github.com/SamR1/FitTrackee/issues/25">#25</a> - Display records on calendar</p></li>
 | 
			
		||||
<li><p><a class="reference external" href="https://github.com/SamR1/FitTrackee/issues/22">#22</a> - Add a total on current month statistics</p></li>
 | 
			
		||||
</ul>
 | 
			
		||||
</div>
 | 
			
		||||
<div class="section" id="id13">
 | 
			
		||||
<h4>Bugs Fixed<a class="headerlink" href="#id13" title="Permalink to this headline">¶</a></h4>
 | 
			
		||||
<div class="section" id="id14">
 | 
			
		||||
<h4>Bugs Fixed<a class="headerlink" href="#id14" title="Permalink to this headline">¶</a></h4>
 | 
			
		||||
<ul class="simple">
 | 
			
		||||
<li><p><a class="reference external" href="https://github.com/SamR1/FitTrackee/issues/31">#31</a> - Use moving duration for stats</p></li>
 | 
			
		||||
<li><p><a class="reference external" href="https://github.com/SamR1/FitTrackee/issues/29">#29</a> - Pause duration calculation with segments</p></li>
 | 
			
		||||
@@ -334,10 +352,10 @@
 | 
			
		||||
<li><p>no administration for now</p></li>
 | 
			
		||||
</ul>
 | 
			
		||||
<p>➡️ more informations: see <a class="reference external" href="https://github.com/SamR1/mpwo/wiki">wiki</a>  and <a class="reference external" href="https://github.com/SamR1/mpwo/issues">current issues</a></p>
 | 
			
		||||
<div class="section" id="id14">
 | 
			
		||||
<h3>Issues Closed<a class="headerlink" href="#id14" title="Permalink to this headline">¶</a></h3>
 | 
			
		||||
<div class="section" id="id15">
 | 
			
		||||
<h4>New Features<a class="headerlink" href="#id15" title="Permalink to this headline">¶</a></h4>
 | 
			
		||||
<h3>Issues Closed<a class="headerlink" href="#id15" title="Permalink to this headline">¶</a></h3>
 | 
			
		||||
<div class="section" id="id16">
 | 
			
		||||
<h4>New Features<a class="headerlink" href="#id16" title="Permalink to this headline">¶</a></h4>
 | 
			
		||||
<ul class="simple">
 | 
			
		||||
<li><p><a class="reference external" href="https://github.com/SamR1/FitTrackee/issues/11">#11</a> - Timezone support</p></li>
 | 
			
		||||
<li><p><a class="reference external" href="https://github.com/SamR1/FitTrackee/issues/10">#10</a> - Add a note to an activity</p></li>
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml">
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta charset="utf-8" />
 | 
			
		||||
    <title>Features — FitTrackee 0.2.4-beta
 | 
			
		||||
    <title>Features — FitTrackee 0.2.5-beta
 | 
			
		||||
 documentation</title>
 | 
			
		||||
    <link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
 | 
			
		||||
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
 | 
			
		||||
@@ -39,7 +39,7 @@
 | 
			
		||||
        </button>
 | 
			
		||||
        <a class="navbar-brand" href="index.html">
 | 
			
		||||
          FitTrackee</a>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
        <div class="collapse navbar-collapse nav-collapse">
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml">
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta charset="utf-8" />
 | 
			
		||||
    <title>Index — FitTrackee 0.2.4-beta
 | 
			
		||||
    <title>Index — FitTrackee 0.2.5-beta
 | 
			
		||||
 documentation</title>
 | 
			
		||||
    <link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
 | 
			
		||||
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
 | 
			
		||||
@@ -38,7 +38,7 @@
 | 
			
		||||
        </button>
 | 
			
		||||
        <a class="navbar-brand" href="index.html">
 | 
			
		||||
          FitTrackee</a>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
        <div class="collapse navbar-collapse nav-collapse">
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml">
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta charset="utf-8" />
 | 
			
		||||
    <title>HTTP Routing Table — FitTrackee 0.2.4-beta
 | 
			
		||||
    <title>HTTP Routing Table — FitTrackee 0.2.5-beta
 | 
			
		||||
 documentation</title>
 | 
			
		||||
    <link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
 | 
			
		||||
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
 | 
			
		||||
@@ -44,7 +44,7 @@
 | 
			
		||||
        </button>
 | 
			
		||||
        <a class="navbar-brand" href="index.html">
 | 
			
		||||
          FitTrackee</a>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
        <div class="collapse navbar-collapse nav-collapse">
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml">
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta charset="utf-8" />
 | 
			
		||||
    <title>FitTrackee — FitTrackee 0.2.4-beta
 | 
			
		||||
    <title>FitTrackee — FitTrackee 0.2.5-beta
 | 
			
		||||
 documentation</title>
 | 
			
		||||
    <link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
 | 
			
		||||
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
 | 
			
		||||
@@ -38,7 +38,7 @@
 | 
			
		||||
        </button>
 | 
			
		||||
        <a class="navbar-brand" href="#">
 | 
			
		||||
          FitTrackee</a>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
        <div class="collapse navbar-collapse nav-collapse">
 | 
			
		||||
@@ -181,6 +181,7 @@ Map</a>.</div>
 | 
			
		||||
</ul>
 | 
			
		||||
</li>
 | 
			
		||||
<li class="toctree-l1"><a class="reference internal" href="changelog.html">Change log</a><ul>
 | 
			
		||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#version-0-2-5-fix-and-improvements-2020-01-31">Version 0.2.5 - Fix and improvements (2020/01/31)</a></li>
 | 
			
		||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#version-0-2-4-minor-fix-2020-01-30">Version 0.2.4 - Minor fix (2020/01/30)</a></li>
 | 
			
		||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#version-0-2-3-fittrackee-available-in-french-2019-12-29">Version 0.2.3 - FitTrackee available in French (2019/12/29)</a></li>
 | 
			
		||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#version-0-2-2-statistics-fix-2019-09-23">Version 0.2.2 - Statistics fix (2019/09/23)</a></li>
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml">
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta charset="utf-8" />
 | 
			
		||||
    <title>Installation — FitTrackee 0.2.4-beta
 | 
			
		||||
    <title>Installation — FitTrackee 0.2.5-beta
 | 
			
		||||
 documentation</title>
 | 
			
		||||
    <link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
 | 
			
		||||
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
 | 
			
		||||
@@ -39,7 +39,7 @@
 | 
			
		||||
        </button>
 | 
			
		||||
        <a class="navbar-brand" href="index.html">
 | 
			
		||||
          FitTrackee</a>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
        <div class="collapse navbar-collapse nav-collapse">
 | 
			
		||||
@@ -231,10 +231,10 @@ and the password <code class="docutils literal notranslate"><span class="pre">mp
 | 
			
		||||
<p>Note that FitTrackee is not production-ready yet</p>
 | 
			
		||||
</div>
 | 
			
		||||
<ul class="simple">
 | 
			
		||||
<li><p>Download the last release (for now, it is the beta release v0.2.3):</p></li>
 | 
			
		||||
<li><p>Download the last release (for now, it is the beta release v0.2.5):</p></li>
 | 
			
		||||
</ul>
 | 
			
		||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ wget https://github.com/SamR1/FitTrackee/archive/v0.2.3-beta.tar.gz
 | 
			
		||||
$ tar -xzf v0.2.3-beta.tar.gz
 | 
			
		||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ wget https://github.com/SamR1/FitTrackee/archive/v0.2.5-beta.tar.gz
 | 
			
		||||
$ tar -xzf v0.2.5-beta.tar.gz
 | 
			
		||||
$ mv FitTrackee-0.2.3-beta FitTrackee
 | 
			
		||||
$ <span class="nb">cd</span> FitTrackee
 | 
			
		||||
</pre></div>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								docs/objects.inv
									
									
									
									
									
								
							
							
						
						@@ -3,7 +3,7 @@
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml">
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta charset="utf-8" />
 | 
			
		||||
    <title>Search — FitTrackee 0.2.4-beta
 | 
			
		||||
    <title>Search — FitTrackee 0.2.5-beta
 | 
			
		||||
 documentation</title>
 | 
			
		||||
    <link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
 | 
			
		||||
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
 | 
			
		||||
@@ -43,7 +43,7 @@
 | 
			
		||||
        </button>
 | 
			
		||||
        <a class="navbar-brand" href="index.html">
 | 
			
		||||
          FitTrackee</a>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
        <div class="collapse navbar-collapse nav-collapse">
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml">
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta charset="utf-8" />
 | 
			
		||||
    <title>Administrator — FitTrackee 0.2.4-beta
 | 
			
		||||
    <title>Administrator — FitTrackee 0.2.5-beta
 | 
			
		||||
 documentation</title>
 | 
			
		||||
    <link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
 | 
			
		||||
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
 | 
			
		||||
@@ -39,7 +39,7 @@
 | 
			
		||||
        </button>
 | 
			
		||||
        <a class="navbar-brand" href="../index.html">
 | 
			
		||||
          FitTrackee</a>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
        <div class="collapse navbar-collapse nav-collapse">
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml">
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta charset="utf-8" />
 | 
			
		||||
    <title>Troubleshooting — FitTrackee 0.2.4-beta
 | 
			
		||||
    <title>Troubleshooting — FitTrackee 0.2.5-beta
 | 
			
		||||
 documentation</title>
 | 
			
		||||
    <link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
 | 
			
		||||
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
 | 
			
		||||
@@ -39,7 +39,7 @@
 | 
			
		||||
        </button>
 | 
			
		||||
        <a class="navbar-brand" href="../index.html">
 | 
			
		||||
          FitTrackee</a>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
        <div class="collapse navbar-collapse nav-collapse">
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml">
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta charset="utf-8" />
 | 
			
		||||
    <title>User — FitTrackee 0.2.4-beta
 | 
			
		||||
    <title>User — FitTrackee 0.2.5-beta
 | 
			
		||||
 documentation</title>
 | 
			
		||||
    <link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
 | 
			
		||||
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
 | 
			
		||||
@@ -39,7 +39,7 @@
 | 
			
		||||
        </button>
 | 
			
		||||
        <a class="navbar-brand" href="../index.html">
 | 
			
		||||
          FitTrackee</a>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
 | 
			
		||||
        <span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
        <div class="collapse navbar-collapse nav-collapse">
 | 
			
		||||
 
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 599 KiB After Width: | Height: | Size: 599 KiB  | 
| 
		 Before Width: | Height: | Size: 539 KiB After Width: | Height: | Size: 539 KiB  | 
| 
		 Before Width: | Height: | Size: 205 KiB After Width: | Height: | Size: 205 KiB  | 
| 
		 Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 63 KiB  | 
@@ -43,23 +43,23 @@ FitTrackee is available in English and French (which can be saved in the user se
 | 
			
		||||
Dashboard
 | 
			
		||||
~~~~~~~~~
 | 
			
		||||
 | 
			
		||||
.. figure:: ../../misc/images/fittrackee_screenshot-01.png
 | 
			
		||||
.. figure:: _images/fittrackee_screenshot-01.png
 | 
			
		||||
   :alt: FitTrackee Dashboard
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Activity/workout detail
 | 
			
		||||
~~~~~~~~~~~~~~~~~~~~~~~
 | 
			
		||||
.. figure:: ../../misc/images/fittrackee_screenshot-02.png
 | 
			
		||||
.. figure:: _images/fittrackee_screenshot-02.png
 | 
			
		||||
   :alt: FitTrackee Activity
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Activities/workouts list
 | 
			
		||||
~~~~~~~~~~~~~~~~~~~~~~~~
 | 
			
		||||
.. figure:: ../../misc/images/fittrackee_screenshot-03.png
 | 
			
		||||
.. figure:: _images/fittrackee_screenshot-03.png
 | 
			
		||||
   :alt: FitTrackee Activities
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Statistics
 | 
			
		||||
~~~~~~~~~~
 | 
			
		||||
.. figure:: ../../misc/images/fittrackee_screenshot-04.png
 | 
			
		||||
.. figure:: _images/fittrackee_screenshot-04.png
 | 
			
		||||
   :alt: FitTrackee Statistics
 | 
			
		||||
 
 | 
			
		||||
@@ -23,7 +23,7 @@ FitTrackee
 | 
			
		||||
| **Still under development (not ready for production).**
 | 
			
		||||
| (see `issues <https://github.com/SamR1/FitTrackee/issues>`__ for more information)
 | 
			
		||||
 | 
			
		||||
.. figure:: ../../misc/images/fittrackee_screenshot-01.png
 | 
			
		||||
.. figure:: _images/fittrackee_screenshot-01.png
 | 
			
		||||
   :alt: FitTrackee Dashboard
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -87,12 +87,12 @@ Prod environment
 | 
			
		||||
.. warning::
 | 
			
		||||
    Note that FitTrackee is not production-ready yet
 | 
			
		||||
 | 
			
		||||
-  Download the last release (for now, it is the beta release v0.2.3):
 | 
			
		||||
-  Download the last release (for now, it is the beta release v0.2.5):
 | 
			
		||||
 | 
			
		||||
.. code:: bash
 | 
			
		||||
 | 
			
		||||
   $ wget https://github.com/SamR1/FitTrackee/archive/v0.2.3-beta.tar.gz
 | 
			
		||||
   $ tar -xzf v0.2.3-beta.tar.gz
 | 
			
		||||
   $ wget https://github.com/SamR1/FitTrackee/archive/v0.2.5-beta.tar.gz
 | 
			
		||||
   $ tar -xzf v0.2.5-beta.tar.gz
 | 
			
		||||
   $ mv FitTrackee-0.2.3-beta FitTrackee
 | 
			
		||||
   $ cd FitTrackee
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								fittrackee_api/poetry.lock
									
									
									
										generated
									
									
									
								
							
							
						
						@@ -948,7 +948,7 @@ docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
 | 
			
		||||
testing = ["jaraco.itertools"]
 | 
			
		||||
 | 
			
		||||
[metadata]
 | 
			
		||||
content-hash = "0f0ae50dc4d547533e9da81603a39cd9863fc018057ed1f04f1ae41c0e62d3f3"
 | 
			
		||||
content-hash = "08f65db08252eef68c675d114006f74eefe78d8b287d9a93b9063716b03397bd"
 | 
			
		||||
python-versions = "^3.7"
 | 
			
		||||
 | 
			
		||||
[metadata.files]
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
[tool.poetry]
 | 
			
		||||
name = "fittrackee_api"
 | 
			
		||||
version = "0.3.0-beta"
 | 
			
		||||
version = "0.2.5-beta"
 | 
			
		||||
description = ""
 | 
			
		||||
authors = ["Your Name <you@example.com>"]
 | 
			
		||||
license = "GPL-3.0"
 | 
			
		||||
 
 | 
			
		||||
@@ -52,7 +52,10 @@ export const addActivity = form => dispatch =>
 | 
			
		||||
      }
 | 
			
		||||
      dispatch(setLoading(false))
 | 
			
		||||
    })
 | 
			
		||||
    .catch(error => dispatch(setError(`activities|${error}`)))
 | 
			
		||||
    .catch(error => {
 | 
			
		||||
      dispatch(setLoading(false))
 | 
			
		||||
      dispatch(setError(`activities|${error}`))
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
export const addActivityWithoutGpx = form => dispatch =>
 | 
			
		||||
  FitTrackeeGenericApi.addData('activities/no_gpx', form)
 | 
			
		||||
@@ -154,7 +157,10 @@ export const editActivity = form => dispatch =>
 | 
			
		||||
      }
 | 
			
		||||
      dispatch(setLoading(false))
 | 
			
		||||
    })
 | 
			
		||||
    .catch(error => dispatch(setError(`activities|${error}`)))
 | 
			
		||||
    .catch(error => {
 | 
			
		||||
      dispatch(setLoading(false))
 | 
			
		||||
      dispatch(setError(`activities|${error}`))
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
export const getMoreActivities = params => dispatch =>
 | 
			
		||||
  FitTrackeeGenericApi.getData('activities', params)
 | 
			
		||||
 
 | 
			
		||||
@@ -28,14 +28,15 @@ export const updateSportsData = data => ({
 | 
			
		||||
  type: 'UPDATE_SPORT_DATA',
 | 
			
		||||
  data,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
export const getOrUpdateData = (
 | 
			
		||||
  action,
 | 
			
		||||
  target,
 | 
			
		||||
  data,
 | 
			
		||||
  canDispatch = true
 | 
			
		||||
) => dispatch => {
 | 
			
		||||
  dispatch(setLoading(true))
 | 
			
		||||
  if (data && data.id && isNaN(data.id)) {
 | 
			
		||||
    dispatch(setLoading(false))
 | 
			
		||||
    return dispatch(setError(`${target}|Incorrect id`))
 | 
			
		||||
  }
 | 
			
		||||
  dispatch(setError(''))
 | 
			
		||||
@@ -50,8 +51,12 @@ export const getOrUpdateData = (
 | 
			
		||||
      } else {
 | 
			
		||||
        dispatch(setError(`${target}|${ret.message || ret.status}`))
 | 
			
		||||
      }
 | 
			
		||||
      dispatch(setLoading(false))
 | 
			
		||||
    })
 | 
			
		||||
    .catch(error => {
 | 
			
		||||
      dispatch(setLoading(false))
 | 
			
		||||
      dispatch(setError(`${target}|${error}`))
 | 
			
		||||
    })
 | 
			
		||||
    .catch(error => dispatch(setError(`${target}|${error}`)))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export const addData = (target, data) => dispatch =>
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@ import { getDateWithTZ } from '../../utils'
 | 
			
		||||
 | 
			
		||||
export default class ActivitiesList extends React.PureComponent {
 | 
			
		||||
  render() {
 | 
			
		||||
    const { activities, sports, t, user } = this.props
 | 
			
		||||
    const { activities, loading, sports, t, user } = this.props
 | 
			
		||||
    return (
 | 
			
		||||
      <div className="card  activity-card">
 | 
			
		||||
        <div className="card-body">
 | 
			
		||||
@@ -24,7 +24,8 @@ export default class ActivitiesList extends React.PureComponent {
 | 
			
		||||
              </tr>
 | 
			
		||||
            </thead>
 | 
			
		||||
            <tbody>
 | 
			
		||||
              {sports &&
 | 
			
		||||
              {!loading &&
 | 
			
		||||
                sports &&
 | 
			
		||||
                activities.map((activity, idx) => (
 | 
			
		||||
                  // eslint-disable-next-line react/no-array-index-key
 | 
			
		||||
                  <tr key={idx}>
 | 
			
		||||
@@ -61,6 +62,7 @@ export default class ActivitiesList extends React.PureComponent {
 | 
			
		||||
                ))}
 | 
			
		||||
            </tbody>
 | 
			
		||||
          </table>
 | 
			
		||||
          {loading && <div className="loader" />}
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    )
 | 
			
		||||
 
 | 
			
		||||
@@ -38,6 +38,7 @@ class Activities extends React.Component {
 | 
			
		||||
  render() {
 | 
			
		||||
    const {
 | 
			
		||||
      activities,
 | 
			
		||||
      loading,
 | 
			
		||||
      loadActivities,
 | 
			
		||||
      loadMoreActivities,
 | 
			
		||||
      message,
 | 
			
		||||
@@ -71,6 +72,7 @@ class Activities extends React.Component {
 | 
			
		||||
              <div className="col-md-9 activities-result">
 | 
			
		||||
                <ActivitiesList
 | 
			
		||||
                  activities={activities}
 | 
			
		||||
                  loading={loading}
 | 
			
		||||
                  sports={sports}
 | 
			
		||||
                  t={t}
 | 
			
		||||
                  user={user}
 | 
			
		||||
@@ -101,6 +103,7 @@ export default withTranslation()(
 | 
			
		||||
  connect(
 | 
			
		||||
    state => ({
 | 
			
		||||
      activities: state.activities.data,
 | 
			
		||||
      loading: state.loading,
 | 
			
		||||
      message: state.message,
 | 
			
		||||
      sports: state.sports.data,
 | 
			
		||||
      user: state.user,
 | 
			
		||||
 
 | 
			
		||||
@@ -364,12 +364,12 @@ label {
 | 
			
		||||
 | 
			
		||||
.loader {
 | 
			
		||||
  animation: spin 2s linear infinite;
 | 
			
		||||
  border: 16px solid #f3f3f3;
 | 
			
		||||
  border-top: 16px solid #3498db;
 | 
			
		||||
  border: 8px solid #f3f3f3;
 | 
			
		||||
  border-top: 8px solid #3498db;
 | 
			
		||||
  border-radius: 50%;
 | 
			
		||||
  height: 120px;
 | 
			
		||||
  height: 60px;
 | 
			
		||||
  margin-left: 41%;
 | 
			
		||||
  width: 120px;
 | 
			
		||||
  width: 60px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@keyframes spin {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
import React from 'react'
 | 
			
		||||
import { connect } from 'react-redux'
 | 
			
		||||
import { Redirect, Route, Switch } from 'react-router-dom'
 | 
			
		||||
import { Route, Switch } from 'react-router-dom'
 | 
			
		||||
 | 
			
		||||
import './App.css'
 | 
			
		||||
import Admin from './Admin'
 | 
			
		||||
@@ -16,7 +16,6 @@ import ProfileEdit from './User/ProfileEdit'
 | 
			
		||||
import Statistics from './Statistics'
 | 
			
		||||
import UserForm from './User/UserForm'
 | 
			
		||||
import { getAppData } from '../actions/application'
 | 
			
		||||
import { isLoggedIn } from '../utils'
 | 
			
		||||
 | 
			
		||||
class App extends React.Component {
 | 
			
		||||
  constructor(props) {
 | 
			
		||||
@@ -32,59 +31,24 @@ class App extends React.Component {
 | 
			
		||||
      <div className="App">
 | 
			
		||||
        <NavBar />
 | 
			
		||||
        <Switch>
 | 
			
		||||
          <Route
 | 
			
		||||
            exact
 | 
			
		||||
            path="/"
 | 
			
		||||
            render={() =>
 | 
			
		||||
              isLoggedIn() ? <Dashboard /> : <Redirect to="/login" />
 | 
			
		||||
            }
 | 
			
		||||
          />
 | 
			
		||||
          <Route exact path="/" component={Dashboard} />
 | 
			
		||||
          <Route
 | 
			
		||||
            exact
 | 
			
		||||
            path="/register"
 | 
			
		||||
            render={() =>
 | 
			
		||||
              isLoggedIn() ? (
 | 
			
		||||
                <Redirect to="/" />
 | 
			
		||||
              ) : (
 | 
			
		||||
                <UserForm formType={'register'} />
 | 
			
		||||
              )
 | 
			
		||||
            }
 | 
			
		||||
            render={() => <UserForm formType={'register'} />}
 | 
			
		||||
          />
 | 
			
		||||
          <Route
 | 
			
		||||
            exact
 | 
			
		||||
            path="/login"
 | 
			
		||||
            render={() =>
 | 
			
		||||
              isLoggedIn() ? (
 | 
			
		||||
                <Redirect to="/" />
 | 
			
		||||
              ) : (
 | 
			
		||||
                <UserForm formType={'login'} />
 | 
			
		||||
              )
 | 
			
		||||
            }
 | 
			
		||||
            render={() => <UserForm formType={'login'} />}
 | 
			
		||||
          />
 | 
			
		||||
          <Route exact path="/logout" component={Logout} />
 | 
			
		||||
          <Route
 | 
			
		||||
            exact
 | 
			
		||||
            path="/profile/edit"
 | 
			
		||||
            render={() =>
 | 
			
		||||
              isLoggedIn() ? <ProfileEdit /> : <UserForm formType={'login'} />
 | 
			
		||||
            }
 | 
			
		||||
          />
 | 
			
		||||
          <Route
 | 
			
		||||
            exact
 | 
			
		||||
            path="/profile"
 | 
			
		||||
            render={() =>
 | 
			
		||||
              isLoggedIn() ? <Profile /> : <UserForm formType={'login'} />
 | 
			
		||||
            }
 | 
			
		||||
          />
 | 
			
		||||
          <Route exact path="/profile/edit" component={ProfileEdit} />
 | 
			
		||||
          <Route exact path="/profile" component={Profile} />
 | 
			
		||||
          <Route exact path="/activities/history" component={Activities} />
 | 
			
		||||
          <Route exact path="/activities/statistics" component={Statistics} />
 | 
			
		||||
          <Route path="/activities" component={Activity} />
 | 
			
		||||
          <Route
 | 
			
		||||
            path="/admin"
 | 
			
		||||
            render={() =>
 | 
			
		||||
              isLoggedIn() ? <Admin /> : <UserForm formType={'login'} />
 | 
			
		||||
            }
 | 
			
		||||
          />
 | 
			
		||||
          <Route path="/admin" component={Admin} />
 | 
			
		||||
          <Route component={NotFound} />
 | 
			
		||||
        </Switch>
 | 
			
		||||
        <Footer />
 | 
			
		||||
 
 | 
			
		||||
@@ -13,8 +13,9 @@ import Root from './components/Root'
 | 
			
		||||
import registerServiceWorker from './registerServiceWorker'
 | 
			
		||||
import createRootReducer from './reducers'
 | 
			
		||||
import { loadProfile } from './actions/user'
 | 
			
		||||
import { historyEnhancer } from './utils/history'
 | 
			
		||||
 | 
			
		||||
export const history = createBrowserHistory()
 | 
			
		||||
export const history = historyEnhancer(createBrowserHistory())
 | 
			
		||||
 | 
			
		||||
history.listen(() => {
 | 
			
		||||
  window.scrollTo(0, 0)
 | 
			
		||||
 
 | 
			
		||||
@@ -18,6 +18,8 @@ const handleDataAndError = (state, type, action) => {
 | 
			
		||||
 | 
			
		||||
const activities = (state = initial.activities, action) => {
 | 
			
		||||
  switch (action.type) {
 | 
			
		||||
    case 'LOGOUT':
 | 
			
		||||
      return initial.activities
 | 
			
		||||
    case 'PUSH_ACTIVITIES':
 | 
			
		||||
      return {
 | 
			
		||||
        ...state,
 | 
			
		||||
@@ -50,13 +52,17 @@ const application = (state = initial.application, action) => {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const calendarActivities = (state = initial.calendarActivities, action) => {
 | 
			
		||||
  if (action.type === 'UPDATE_CALENDAR') {
 | 
			
		||||
  switch (action.type) {
 | 
			
		||||
    case 'LOGOUT':
 | 
			
		||||
      return initial.calendarActivities
 | 
			
		||||
    case 'UPDATE_CALENDAR':
 | 
			
		||||
      return {
 | 
			
		||||
        ...state,
 | 
			
		||||
        data: action.activities,
 | 
			
		||||
      }
 | 
			
		||||
  }
 | 
			
		||||
    default:
 | 
			
		||||
      return handleDataAndError(state, 'calendarActivities', action)
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const chartData = (state = initial.chartData, action) => {
 | 
			
		||||
@@ -118,8 +124,12 @@ const messages = (state = initial.messages, action) => {
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const records = (state = initial.records, action) =>
 | 
			
		||||
  handleDataAndError(state, 'records', action)
 | 
			
		||||
const records = (state = initial.records, action) => {
 | 
			
		||||
  if (action.type === 'LOGOUT') {
 | 
			
		||||
    return initial.records
 | 
			
		||||
  }
 | 
			
		||||
  return handleDataAndError(state, 'records', action)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const sports = (state = initial.sports, action) => {
 | 
			
		||||
  if (action.type === 'UPDATE_SPORT_DATA') {
 | 
			
		||||
@@ -150,8 +160,12 @@ const user = (state = initial.user, action) => {
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const statistics = (state = initial.statistics, action) =>
 | 
			
		||||
  handleDataAndError(state, 'statistics', action)
 | 
			
		||||
const statistics = (state = initial.statistics, action) => {
 | 
			
		||||
  if (action.type === 'LOGOUT') {
 | 
			
		||||
    return initial.statistics
 | 
			
		||||
  }
 | 
			
		||||
  return handleDataAndError(state, 'statistics', action)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export default history =>
 | 
			
		||||
  combineReducers({
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										35
									
								
								fittrackee_client/src/utils/history.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,35 @@
 | 
			
		||||
const updatePath = (toPath, newPath) => {
 | 
			
		||||
  if (typeof toPath === 'string' || toPath instanceof String) {
 | 
			
		||||
    toPath = newPath
 | 
			
		||||
  } else {
 | 
			
		||||
    toPath.pathname = newPath
 | 
			
		||||
  }
 | 
			
		||||
  return toPath
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const pathInterceptor = toPath => {
 | 
			
		||||
  if (
 | 
			
		||||
    !window.localStorage.authToken &&
 | 
			
		||||
    !['/login', '/register'].includes(toPath.pathname)
 | 
			
		||||
  ) {
 | 
			
		||||
    toPath = updatePath(toPath, '/login')
 | 
			
		||||
  }
 | 
			
		||||
  if (
 | 
			
		||||
    window.localStorage.authToken &&
 | 
			
		||||
    ['/login', '/register'].includes(toPath.pathname)
 | 
			
		||||
  ) {
 | 
			
		||||
    toPath = updatePath(toPath, '/')
 | 
			
		||||
  }
 | 
			
		||||
  return toPath
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export const historyEnhancer = originalHistory => {
 | 
			
		||||
  originalHistory.location = pathInterceptor(originalHistory.location)
 | 
			
		||||
  return {
 | 
			
		||||
    ...originalHistory,
 | 
			
		||||
    push: (path, ...args) =>
 | 
			
		||||
      originalHistory.push(pathInterceptor(path), ...args),
 | 
			
		||||
    replace: (path, ...args) =>
 | 
			
		||||
      originalHistory.replace(pathInterceptor(path), ...args),
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -15,7 +15,7 @@ export const getFileSizeInMB = fileSize => {
 | 
			
		||||
  return (!fileSize && 0) || +value.toFixed(2)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export const version = '0.2.4-beta' // version stored in 'utils' for now
 | 
			
		||||
export const version = '0.2.5-beta' // version stored in 'utils' for now
 | 
			
		||||
export const apiUrl = `${process.env.REACT_APP_API_URL}/api/`
 | 
			
		||||
/* prettier-ignore */
 | 
			
		||||
export const thunderforestApiKey = `${
 | 
			
		||||
 
 | 
			
		||||
@@ -1,202 +0,0 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 | 
			
		||||
<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:java="http://www.yworks.com/xml/yfiles-common/1.0/java" xmlns:sys="http://www.yworks.com/xml/yfiles-common/markup/primitives/2.0" xmlns:x="http://www.yworks.com/xml/yfiles-common/markup/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:y="http://www.yworks.com/xml/graphml" xmlns:yed="http://www.yworks.com/xml/yed/3" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://www.yworks.com/xml/schema/graphml/1.1/ygraphml.xsd">
 | 
			
		||||
  <!--Created by yEd 3.17-->
 | 
			
		||||
  <key attr.name="Description" attr.type="string" for="graph" id="d0"/>
 | 
			
		||||
  <key for="port" id="d1" yfiles.type="portgraphics"/>
 | 
			
		||||
  <key for="port" id="d2" yfiles.type="portgeometry"/>
 | 
			
		||||
  <key for="port" id="d3" yfiles.type="portuserdata"/>
 | 
			
		||||
  <key attr.name="url" attr.type="string" for="node" id="d4"/>
 | 
			
		||||
  <key attr.name="description" attr.type="string" for="node" id="d5"/>
 | 
			
		||||
  <key for="node" id="d6" yfiles.type="nodegraphics"/>
 | 
			
		||||
  <key for="graphml" id="d7" yfiles.type="resources"/>
 | 
			
		||||
  <key attr.name="url" attr.type="string" for="edge" id="d8"/>
 | 
			
		||||
  <key attr.name="description" attr.type="string" for="edge" id="d9"/>
 | 
			
		||||
  <key for="edge" id="d10" yfiles.type="edgegraphics"/>
 | 
			
		||||
  <graph edgedefault="directed" id="G">
 | 
			
		||||
    <data key="d0"/>
 | 
			
		||||
    <node id="n0">
 | 
			
		||||
      <data key="d6">
 | 
			
		||||
        <y:GenericNode configuration="com.yworks.entityRelationship.big_entity">
 | 
			
		||||
          <y:Geometry height="143.0" width="107.0" x="821.44" y="96.0"/>
 | 
			
		||||
          <y:Fill color="#E8EEF7" color2="#B7C9E3" transparent="false"/>
 | 
			
		||||
          <y:BorderStyle color="#000000" type="line" width="1.0"/>
 | 
			
		||||
          <y:NodeLabel alignment="center" autoSizePolicy="content" backgroundColor="#B7C9E3" configuration="com.yworks.entityRelationship.label.name" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="36.42578125" x="35.287109375" y="4.0">users</y:NodeLabel>
 | 
			
		||||
          <y:NodeLabel alignment="left" autoSizePolicy="content" configuration="com.yworks.entityRelationship.label.attributes" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="101.78125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="top" visible="true" width="67.48046875" x="2.0" y="29.96875">id
 | 
			
		||||
username
 | 
			
		||||
pwd
 | 
			
		||||
first_name
 | 
			
		||||
last_name
 | 
			
		||||
birthday
 | 
			
		||||
photo
 | 
			
		||||
<y:LabelModel>
 | 
			
		||||
              <y:ErdAttributesNodeLabelModel/>
 | 
			
		||||
            </y:LabelModel>
 | 
			
		||||
            <y:ModelParameter>
 | 
			
		||||
              <y:ErdAttributesNodeLabelModelParameter/>
 | 
			
		||||
            </y:ModelParameter>
 | 
			
		||||
          </y:NodeLabel>
 | 
			
		||||
          <y:StyleProperties>
 | 
			
		||||
            <y:Property class="java.lang.Boolean" name="y.view.ShadowNodePainter.SHADOW_PAINTING" value="true"/>
 | 
			
		||||
          </y:StyleProperties>
 | 
			
		||||
        </y:GenericNode>
 | 
			
		||||
      </data>
 | 
			
		||||
    </node>
 | 
			
		||||
    <node id="n1">
 | 
			
		||||
      <data key="d6">
 | 
			
		||||
        <y:GenericNode configuration="com.yworks.entityRelationship.big_entity">
 | 
			
		||||
          <y:Geometry height="253.0" width="206.0" x="769.44" y="274.28"/>
 | 
			
		||||
          <y:Fill color="#E8EEF7" color2="#B7C9E3" transparent="false"/>
 | 
			
		||||
          <y:BorderStyle color="#000000" type="line" width="1.0"/>
 | 
			
		||||
          <y:NodeLabel alignment="center" autoSizePolicy="content" backgroundColor="#B7C9E3" configuration="com.yworks.entityRelationship.label.name" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="58.099609375" x="73.9501953125" y="4.0">activities</y:NodeLabel>
 | 
			
		||||
          <y:NodeLabel alignment="left" autoSizePolicy="content" configuration="com.yworks.entityRelationship.label.attributes" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="199.5625" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="top" visible="true" width="81.291015625" x="2.0" y="29.96875">id
 | 
			
		||||
user_id
 | 
			
		||||
sport_id
 | 
			
		||||
gpx_id
 | 
			
		||||
activity_date
 | 
			
		||||
duration
 | 
			
		||||
pauses
 | 
			
		||||
distance
 | 
			
		||||
min_alt
 | 
			
		||||
max_alt
 | 
			
		||||
descent
 | 
			
		||||
ascent
 | 
			
		||||
max_speed
 | 
			
		||||
ave_speed<y:LabelModel>
 | 
			
		||||
              <y:ErdAttributesNodeLabelModel/>
 | 
			
		||||
            </y:LabelModel>
 | 
			
		||||
            <y:ModelParameter>
 | 
			
		||||
              <y:ErdAttributesNodeLabelModelParameter/>
 | 
			
		||||
            </y:ModelParameter>
 | 
			
		||||
          </y:NodeLabel>
 | 
			
		||||
          <y:StyleProperties>
 | 
			
		||||
            <y:Property class="java.lang.Boolean" name="y.view.ShadowNodePainter.SHADOW_PAINTING" value="true"/>
 | 
			
		||||
          </y:StyleProperties>
 | 
			
		||||
        </y:GenericNode>
 | 
			
		||||
      </data>
 | 
			
		||||
    </node>
 | 
			
		||||
    <node id="n2">
 | 
			
		||||
      <data key="d6">
 | 
			
		||||
        <y:GenericNode configuration="com.yworks.entityRelationship.big_entity">
 | 
			
		||||
          <y:Geometry height="90.0" width="80.0" x="1060.28" y="355.78"/>
 | 
			
		||||
          <y:Fill color="#E8EEF7" color2="#B7C9E3" transparent="false"/>
 | 
			
		||||
          <y:BorderStyle color="#000000" type="line" width="1.0"/>
 | 
			
		||||
          <y:NodeLabel alignment="center" autoSizePolicy="content" backgroundColor="#B7C9E3" configuration="com.yworks.entityRelationship.label.name" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="41.1015625" x="19.44921875" y="4.0">sports</y:NodeLabel>
 | 
			
		||||
          <y:NodeLabel alignment="left" autoSizePolicy="content" configuration="com.yworks.entityRelationship.label.attributes" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="31.9375" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="top" visible="true" width="33.021484375" x="2.0" y="29.96875">id
 | 
			
		||||
label<y:LabelModel>
 | 
			
		||||
              <y:ErdAttributesNodeLabelModel/>
 | 
			
		||||
            </y:LabelModel>
 | 
			
		||||
            <y:ModelParameter>
 | 
			
		||||
              <y:ErdAttributesNodeLabelModelParameter/>
 | 
			
		||||
            </y:ModelParameter>
 | 
			
		||||
          </y:NodeLabel>
 | 
			
		||||
          <y:StyleProperties>
 | 
			
		||||
            <y:Property class="java.lang.Boolean" name="y.view.ShadowNodePainter.SHADOW_PAINTING" value="true"/>
 | 
			
		||||
          </y:StyleProperties>
 | 
			
		||||
        </y:GenericNode>
 | 
			
		||||
      </data>
 | 
			
		||||
    </node>
 | 
			
		||||
    <node id="n3">
 | 
			
		||||
      <data key="d6">
 | 
			
		||||
        <y:GenericNode configuration="com.yworks.entityRelationship.big_entity">
 | 
			
		||||
          <y:Geometry height="90.0" width="80.0" x="832.44" y="598.56"/>
 | 
			
		||||
          <y:Fill color="#E8EEF7" color2="#B7C9E3" transparent="false"/>
 | 
			
		||||
          <y:BorderStyle color="#000000" type="line" width="1.0"/>
 | 
			
		||||
          <y:NodeLabel alignment="center" autoSizePolicy="content" backgroundColor="#B7C9E3" configuration="com.yworks.entityRelationship.label.name" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.3359375" x="26.83203125" y="4.0">gpx</y:NodeLabel>
 | 
			
		||||
          <y:NodeLabel alignment="left" autoSizePolicy="content" configuration="com.yworks.entityRelationship.label.attributes" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="31.9375" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="top" visible="true" width="22.275390625" x="2.0" y="29.96875">id
 | 
			
		||||
file<y:LabelModel>
 | 
			
		||||
              <y:ErdAttributesNodeLabelModel/>
 | 
			
		||||
            </y:LabelModel>
 | 
			
		||||
            <y:ModelParameter>
 | 
			
		||||
              <y:ErdAttributesNodeLabelModelParameter/>
 | 
			
		||||
            </y:ModelParameter>
 | 
			
		||||
          </y:NodeLabel>
 | 
			
		||||
          <y:StyleProperties>
 | 
			
		||||
            <y:Property class="java.lang.Boolean" name="y.view.ShadowNodePainter.SHADOW_PAINTING" value="true"/>
 | 
			
		||||
          </y:StyleProperties>
 | 
			
		||||
        </y:GenericNode>
 | 
			
		||||
      </data>
 | 
			
		||||
    </node>
 | 
			
		||||
    <node id="n4">
 | 
			
		||||
      <data key="d6">
 | 
			
		||||
        <y:GenericNode configuration="com.yworks.entityRelationship.big_entity">
 | 
			
		||||
          <y:Geometry height="112.0" width="138.0" x="546.6000000000001" y="344.78"/>
 | 
			
		||||
          <y:Fill color="#E8EEF7" color2="#B7C9E3" transparent="false"/>
 | 
			
		||||
          <y:BorderStyle color="#000000" type="line" width="1.0"/>
 | 
			
		||||
          <y:NodeLabel alignment="center" autoSizePolicy="content" backgroundColor="#B7C9E3" configuration="com.yworks.entityRelationship.label.name" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="104.283203125" x="16.8583984375" y="4.0">personalRecords</y:NodeLabel>
 | 
			
		||||
          <y:NodeLabel alignment="left" autoSizePolicy="content" configuration="com.yworks.entityRelationship.label.attributes" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="59.875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="top" visible="true" width="75.61328125" x="2.0" y="29.96875">id
 | 
			
		||||
activity_id
 | 
			
		||||
record_type
 | 
			
		||||
value<y:LabelModel>
 | 
			
		||||
              <y:ErdAttributesNodeLabelModel/>
 | 
			
		||||
            </y:LabelModel>
 | 
			
		||||
            <y:ModelParameter>
 | 
			
		||||
              <y:ErdAttributesNodeLabelModelParameter/>
 | 
			
		||||
            </y:ModelParameter>
 | 
			
		||||
          </y:NodeLabel>
 | 
			
		||||
          <y:StyleProperties>
 | 
			
		||||
            <y:Property class="java.lang.Boolean" name="y.view.ShadowNodePainter.SHADOW_PAINTING" value="true"/>
 | 
			
		||||
          </y:StyleProperties>
 | 
			
		||||
        </y:GenericNode>
 | 
			
		||||
      </data>
 | 
			
		||||
    </node>
 | 
			
		||||
    <edge id="e0" source="n1" target="n3">
 | 
			
		||||
      <data key="d10">
 | 
			
		||||
        <y:PolyLineEdge>
 | 
			
		||||
          <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
 | 
			
		||||
          <y:LineStyle color="#000000" type="line" width="1.0"/>
 | 
			
		||||
          <y:Arrows source="none" target="none"/>
 | 
			
		||||
          <y:BendStyle smoothed="false"/>
 | 
			
		||||
        </y:PolyLineEdge>
 | 
			
		||||
      </data>
 | 
			
		||||
    </edge>
 | 
			
		||||
    <edge id="e1" source="n1" target="n0">
 | 
			
		||||
      <data key="d10">
 | 
			
		||||
        <y:PolyLineEdge>
 | 
			
		||||
          <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
 | 
			
		||||
          <y:LineStyle color="#000000" type="line" width="1.0"/>
 | 
			
		||||
          <y:Arrows source="crows_foot_many" target="none"/>
 | 
			
		||||
          <y:BendStyle smoothed="false"/>
 | 
			
		||||
        </y:PolyLineEdge>
 | 
			
		||||
      </data>
 | 
			
		||||
    </edge>
 | 
			
		||||
    <edge id="e2" source="n4" target="n0">
 | 
			
		||||
      <data key="d10">
 | 
			
		||||
        <y:PolyLineEdge>
 | 
			
		||||
          <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
 | 
			
		||||
            <y:Point x="615.6000000000001" y="167.5"/>
 | 
			
		||||
          </y:Path>
 | 
			
		||||
          <y:LineStyle color="#000000" type="line" width="1.0"/>
 | 
			
		||||
          <y:Arrows source="crows_foot_many" target="none"/>
 | 
			
		||||
          <y:BendStyle smoothed="false"/>
 | 
			
		||||
        </y:PolyLineEdge>
 | 
			
		||||
      </data>
 | 
			
		||||
    </edge>
 | 
			
		||||
    <edge id="e3" source="n2" target="n1">
 | 
			
		||||
      <data key="d10">
 | 
			
		||||
        <y:GenericEdge configuration="com.yworks.bpmn.Connection">
 | 
			
		||||
          <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
 | 
			
		||||
          <y:LineStyle color="#000000" type="line" width="1.0"/>
 | 
			
		||||
          <y:Arrows source="none" target="crows_foot_many"/>
 | 
			
		||||
          <y:StyleProperties>
 | 
			
		||||
            <y:Property class="com.yworks.yfiles.bpmn.view.BPMNTypeEnum" name="com.yworks.bpmn.type" value="CONNECTION_TYPE_FORKED_CONVERSATION_LINK"/>
 | 
			
		||||
          </y:StyleProperties>
 | 
			
		||||
        </y:GenericEdge>
 | 
			
		||||
      </data>
 | 
			
		||||
    </edge>
 | 
			
		||||
    <edge id="e4" source="n1" target="n4">
 | 
			
		||||
      <data key="d10">
 | 
			
		||||
        <y:GenericEdge configuration="com.yworks.bpmn.Connection">
 | 
			
		||||
          <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
 | 
			
		||||
          <y:LineStyle color="#000000" type="line" width="1.0"/>
 | 
			
		||||
          <y:Arrows source="none" target="crows_foot_many"/>
 | 
			
		||||
          <y:StyleProperties>
 | 
			
		||||
            <y:Property class="com.yworks.yfiles.bpmn.view.BPMNTypeEnum" name="com.yworks.bpmn.type" value="CONNECTION_TYPE_FORKED_CONVERSATION_LINK"/>
 | 
			
		||||
          </y:StyleProperties>
 | 
			
		||||
        </y:GenericEdge>
 | 
			
		||||
      </data>
 | 
			
		||||
    </edge>
 | 
			
		||||
  </graph>
 | 
			
		||||
  <data key="d7">
 | 
			
		||||
    <y:Resources/>
 | 
			
		||||
  </data>
 | 
			
		||||
</graphml>
 | 
			
		||||
@@ -20,7 +20,7 @@
 | 
			
		||||
    "react-leaflet": "^2.6.1",
 | 
			
		||||
    "react-redux": "^7.1.3",
 | 
			
		||||
    "react-router-dom": "^5.1.2",
 | 
			
		||||
    "react-scripts": "^3.3.0",
 | 
			
		||||
    "react-scripts": "^3.3.1",
 | 
			
		||||
    "react-timezone": "^2.4.0",
 | 
			
		||||
    "recharts": "^1.8.5",
 | 
			
		||||
    "redux": "^4.0.5",
 | 
			
		||||
 
 | 
			
		||||