API & Client - use flask to serve js files
5
Makefile
@ -79,10 +79,7 @@ recalculate:
|
||||
$(FLASK) recalculate
|
||||
|
||||
run:
|
||||
$(MAKE) P="run-server run-workers run-client" make-p
|
||||
|
||||
run-client:
|
||||
serve -s fittrackee_client/build -l 3000 >> serve.log 2>&1
|
||||
$(MAKE) P="run-server run-workers" make-p
|
||||
|
||||
run-server:
|
||||
cd fittrackee_api && $(GUNICORN) -b 127.0.0.1:5000 "fittrackee_api:create_app()" --error-logfile ../gunicorn.log
|
||||
|
@ -5,7 +5,8 @@ CLIENT_PORT = 3000
|
||||
export FLASK_APP = $(PWD)/fittrackee_api/server.py
|
||||
export APP_SETTINGS=fittrackee_api.config.DevelopmentConfig
|
||||
export FLASK_ENV=development
|
||||
export TEST_URL = http://$(HOST):$(CLIENT_PORT)
|
||||
export TEST_URL = http://$(HOST):$(API_PORT)
|
||||
export TEST_CLIENT_URL = http://$(HOST):$(CLIENT_PORT)
|
||||
export DATABASE_URL = postgres://fittrackee:fittrackee@$(HOST):5432/fittrackee
|
||||
export DATABASE_TEST_URL = postgres://fittrackee:fittrackee@$(HOST):5432/fittrackee_test
|
||||
export MIGRATIONS = $(PWD)/fittrackee_api/migrations
|
||||
|
26
fittrackee_api/dist/asset-manifest.json
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
{
|
||||
"files": {
|
||||
"main.css": "/static/css/main.9eb63bc2.chunk.css",
|
||||
"main.js": "/static/js/main.e589eaf8.chunk.js",
|
||||
"main.js.map": "/static/js/main.e589eaf8.chunk.js.map",
|
||||
"runtime-main.js": "/static/js/runtime-main.2d7c76f9.js",
|
||||
"runtime-main.js.map": "/static/js/runtime-main.2d7c76f9.js.map",
|
||||
"static/js/2.8ad7236a.chunk.js": "/static/js/2.8ad7236a.chunk.js",
|
||||
"static/js/2.8ad7236a.chunk.js.map": "/static/js/2.8ad7236a.chunk.js.map",
|
||||
"index.html": "/index.html",
|
||||
"precache-manifest.5c6aeed76c2cb8cfc6f5407698470a91.js": "/precache-manifest.5c6aeed76c2cb8cfc6f5407698470a91.js",
|
||||
"service-worker.js": "/service-worker.js",
|
||||
"static/css/main.9eb63bc2.chunk.css.map": "/static/css/main.9eb63bc2.chunk.css.map",
|
||||
"static/js/2.8ad7236a.chunk.js.LICENSE.txt": "/static/js/2.8ad7236a.chunk.js.LICENSE.txt",
|
||||
"static/media/en.501888db.svg": "/static/media/en.501888db.svg",
|
||||
"static/media/fr.b75cd962.svg": "/static/media/fr.b75cd962.svg",
|
||||
"static/media/mail-send.66b8d739.svg": "/static/media/mail-send.66b8d739.svg",
|
||||
"static/media/password.488f5f4c.svg": "/static/media/password.488f5f4c.svg"
|
||||
},
|
||||
"entrypoints": [
|
||||
"static/js/runtime-main.2d7c76f9.js",
|
||||
"static/js/2.8ad7236a.chunk.js",
|
||||
"static/css/main.9eb63bc2.chunk.css",
|
||||
"static/js/main.e589eaf8.chunk.js"
|
||||
]
|
||||
}
|
BIN
fittrackee_api/dist/favicon.ico
vendored
Normal file
After Width: | Height: | Size: 318 B |
BIN
fittrackee_api/dist/img/photo.png
vendored
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
fittrackee_api/dist/img/sports/cycling-sport.png
vendored
Normal file
After Width: | Height: | Size: 5.4 KiB |
BIN
fittrackee_api/dist/img/sports/cycling-transport.png
vendored
Normal file
After Width: | Height: | Size: 5.5 KiB |
BIN
fittrackee_api/dist/img/sports/hiking.png
vendored
Normal file
After Width: | Height: | Size: 3.0 KiB |
BIN
fittrackee_api/dist/img/sports/mountain-biking.png
vendored
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
fittrackee_api/dist/img/sports/running.png
vendored
Normal file
After Width: | Height: | Size: 3.0 KiB |
BIN
fittrackee_api/dist/img/sports/walking.png
vendored
Normal file
After Width: | Height: | Size: 3.5 KiB |
BIN
fittrackee_api/dist/img/weather/breeze.png
vendored
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
fittrackee_api/dist/img/weather/clear-day.png
vendored
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
fittrackee_api/dist/img/weather/clear-night.png
vendored
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
fittrackee_api/dist/img/weather/cloudy.png
vendored
Normal file
After Width: | Height: | Size: 2.0 KiB |
BIN
fittrackee_api/dist/img/weather/fog.png
vendored
Normal file
After Width: | Height: | Size: 1012 B |
BIN
fittrackee_api/dist/img/weather/partly-cloudy-day.png
vendored
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
fittrackee_api/dist/img/weather/partly-cloudy-night.png
vendored
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
fittrackee_api/dist/img/weather/pour-rain.png
vendored
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
fittrackee_api/dist/img/weather/rain.png
vendored
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
fittrackee_api/dist/img/weather/sleet.png
vendored
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
fittrackee_api/dist/img/weather/snow.png
vendored
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
fittrackee_api/dist/img/weather/temperature.png
vendored
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
fittrackee_api/dist/img/weather/wind.png
vendored
Normal file
After Width: | Height: | Size: 2.5 KiB |
1
fittrackee_api/dist/index.html
vendored
Normal file
@ -0,0 +1 @@
|
||||
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name="theme-color" content="#000000"><link rel="manifest" href="/manifest.json"><link rel="shortcut icon" href="/favicon.ico"><link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/fork-awesome@1.1.7/css/fork-awesome.min.css" integrity="sha256-gsmEoJAws/Kd3CjuOQzLie5Q3yshhvmo7YNtBG7aaEY=" crossorigin="anonymous"><link rel="stylesheet" href="https://cdn.jsdelivr.net/foundation-icons/3.0/foundation-icons.min.css"><link rel="stylesheet" href="https://unpkg.com/leaflet@1.6.0/dist/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin=""><title>FitTrackee</title><link href="/static/css/main.9eb63bc2.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script><script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script><script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script><script type="text/javascript">$(document).ready((function(){$("li.nav-item").click((function(){$("button.navbar-toggler").toggleClass("collapsed"),$("#navbarSupportedContent").toggleClass("show")}))}))</script><script>!function(e){function t(t){for(var n,i,l=t[0],f=t[1],a=t[2],p=0,s=[];p<l.length;p++)i=l[p],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&s.push(o[i][0]),o[i]=0;for(n in f)Object.prototype.hasOwnProperty.call(f,n)&&(e[n]=f[n]);for(c&&c(t);s.length;)s.shift()();return u.push.apply(u,a||[]),r()}function r(){for(var e,t=0;t<u.length;t++){for(var r=u[t],n=!0,l=1;l<r.length;l++){var f=r[l];0!==o[f]&&(n=!1)}n&&(u.splice(t--,1),e=i(i.s=r[0]))}return e}var n={},o={1:0},u=[];function i(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.m=e,i.c=n,i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)i.d(r,n,function(t){return e[t]}.bind(null,n));return r},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/";var l=this.webpackJsonpfittrackee_client=this.webpackJsonpfittrackee_client||[],f=l.push.bind(l);l.push=t,l=l.slice();for(var a=0;a<l.length;a++)t(l[a]);var c=f;r()}([])</script><script src="/static/js/2.8ad7236a.chunk.js"></script><script src="/static/js/main.e589eaf8.chunk.js"></script></body></html>
|
16
fittrackee_api/dist/manifest.json
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"short_name": "FitTrackee",
|
||||
"name": "Self hosted workout/activity tracker",
|
||||
"icons": [
|
||||
{
|
||||
"src": "favicon.ico",
|
||||
"sizes": "64x64 32x32 24x24 16x16",
|
||||
"type": "image/x-icon"
|
||||
}
|
||||
],
|
||||
"start_url": "./index.html",
|
||||
"display": "standalone",
|
||||
"theme_color": "#000000",
|
||||
"background_color": "#ffffff",
|
||||
"version": "0.2.0-beta"
|
||||
}
|
42
fittrackee_api/dist/precache-manifest.5c6aeed76c2cb8cfc6f5407698470a91.js
vendored
Normal file
@ -0,0 +1,42 @@
|
||||
self.__precacheManifest = (self.__precacheManifest || []).concat([
|
||||
{
|
||||
"revision": "ce27ec4197f51699274b624e1dd24806",
|
||||
"url": "/index.html"
|
||||
},
|
||||
{
|
||||
"revision": "18e9a261449a30132350",
|
||||
"url": "/static/css/main.9eb63bc2.chunk.css"
|
||||
},
|
||||
{
|
||||
"revision": "4fea69143e8c947ba6e0",
|
||||
"url": "/static/js/2.8ad7236a.chunk.js"
|
||||
},
|
||||
{
|
||||
"revision": "92427c76d8e49274b27c017747c41b82",
|
||||
"url": "/static/js/2.8ad7236a.chunk.js.LICENSE.txt"
|
||||
},
|
||||
{
|
||||
"revision": "18e9a261449a30132350",
|
||||
"url": "/static/js/main.e589eaf8.chunk.js"
|
||||
},
|
||||
{
|
||||
"revision": "c25e4b04867fdd1a7bb1",
|
||||
"url": "/static/js/runtime-main.2d7c76f9.js"
|
||||
},
|
||||
{
|
||||
"revision": "501888db26f05ed93528eae579c09ce9",
|
||||
"url": "/static/media/en.501888db.svg"
|
||||
},
|
||||
{
|
||||
"revision": "b75cd9624fb6c184c40c24f5bc035610",
|
||||
"url": "/static/media/fr.b75cd962.svg"
|
||||
},
|
||||
{
|
||||
"revision": "66b8d739b7190f68ea99314d55e1f53d",
|
||||
"url": "/static/media/mail-send.66b8d739.svg"
|
||||
},
|
||||
{
|
||||
"revision": "488f5f4cd9648db1147b97d8f1357e24",
|
||||
"url": "/static/media/password.488f5f4c.svg"
|
||||
}
|
||||
]);
|
39
fittrackee_api/dist/service-worker.js
vendored
Normal file
@ -0,0 +1,39 @@
|
||||
/**
|
||||
* Welcome to your Workbox-powered service worker!
|
||||
*
|
||||
* You'll need to register this file in your web app and you should
|
||||
* disable HTTP caching for this file too.
|
||||
* See https://goo.gl/nhQhGp
|
||||
*
|
||||
* The rest of the code is auto-generated. Please don't update this file
|
||||
* directly; instead, make changes to your Workbox build configuration
|
||||
* and re-run your build process.
|
||||
* See https://goo.gl/2aRDsh
|
||||
*/
|
||||
|
||||
importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js");
|
||||
|
||||
importScripts(
|
||||
"/precache-manifest.5c6aeed76c2cb8cfc6f5407698470a91.js"
|
||||
);
|
||||
|
||||
self.addEventListener('message', (event) => {
|
||||
if (event.data && event.data.type === 'SKIP_WAITING') {
|
||||
self.skipWaiting();
|
||||
}
|
||||
});
|
||||
|
||||
workbox.core.clientsClaim();
|
||||
|
||||
/**
|
||||
* The workboxSW.precacheAndRoute() method efficiently caches and responds to
|
||||
* requests for URLs in the manifest.
|
||||
* See https://goo.gl/S9QRab
|
||||
*/
|
||||
self.__precacheManifest = [].concat(self.__precacheManifest || []);
|
||||
workbox.precaching.precacheAndRoute(self.__precacheManifest, {});
|
||||
|
||||
workbox.routing.registerNavigationRoute(workbox.precaching.getCacheKeyForURL("/index.html"), {
|
||||
|
||||
blacklist: [/^\/_/,/\/[^/?]+\.[^/]+$/],
|
||||
});
|
2
fittrackee_api/dist/static/css/main.9eb63bc2.chunk.css
vendored
Normal file
1
fittrackee_api/dist/static/css/main.9eb63bc2.chunk.css.map
vendored
Normal file
3
fittrackee_api/dist/static/js/2.8ad7236a.chunk.js
vendored
Normal file
54
fittrackee_api/dist/static/js/2.8ad7236a.chunk.js.LICENSE.txt
vendored
Normal file
@ -0,0 +1,54 @@
|
||||
/*
|
||||
object-assign
|
||||
(c) Sindre Sorhus
|
||||
@license MIT
|
||||
*/
|
||||
|
||||
/* @preserve
|
||||
* Leaflet 1.7.1, a JS library for interactive maps. http://leafletjs.com
|
||||
* (c) 2010-2019 Vladimir Agafonkin, (c) 2010-2011 CloudMade
|
||||
*/
|
||||
|
||||
/*!
|
||||
Copyright (c) 2017 Jed Watson.
|
||||
Licensed under the MIT License (MIT), see
|
||||
http://jedwatson.github.io/classnames
|
||||
*/
|
||||
|
||||
/*! decimal.js-light v2.5.0 https://github.com/MikeMcl/decimal.js-light/LICENCE */
|
||||
|
||||
/** @license React v0.19.1
|
||||
* scheduler.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/** @license React v16.13.1
|
||||
* react-dom.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/** @license React v16.13.1
|
||||
* react-is.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/** @license React v16.13.1
|
||||
* react.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
1
fittrackee_api/dist/static/js/2.8ad7236a.chunk.js.map
vendored
Normal file
2
fittrackee_api/dist/static/js/main.e589eaf8.chunk.js
vendored
Normal file
1
fittrackee_api/dist/static/js/main.e589eaf8.chunk.js.map
vendored
Normal file
2
fittrackee_api/dist/static/js/runtime-main.2d7c76f9.js
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
!function(e){function t(t){for(var n,i,l=t[0],f=t[1],a=t[2],p=0,s=[];p<l.length;p++)i=l[p],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&s.push(o[i][0]),o[i]=0;for(n in f)Object.prototype.hasOwnProperty.call(f,n)&&(e[n]=f[n]);for(c&&c(t);s.length;)s.shift()();return u.push.apply(u,a||[]),r()}function r(){for(var e,t=0;t<u.length;t++){for(var r=u[t],n=!0,l=1;l<r.length;l++){var f=r[l];0!==o[f]&&(n=!1)}n&&(u.splice(t--,1),e=i(i.s=r[0]))}return e}var n={},o={1:0},u=[];function i(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.m=e,i.c=n,i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},i.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)i.d(r,n,function(t){return e[t]}.bind(null,n));return r},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/";var l=this.webpackJsonpfittrackee_client=this.webpackJsonpfittrackee_client||[],f=l.push.bind(l);l.push=t,l=l.slice();for(var a=0;a<l.length;a++)t(l[a]);var c=f;r()}([]);
|
||||
//# sourceMappingURL=runtime-main.2d7c76f9.js.map
|
1
fittrackee_api/dist/static/js/runtime-main.2d7c76f9.js.map
vendored
Normal file
27
fittrackee_api/dist/static/media/en.501888db.svg
vendored
Normal file
@ -0,0 +1,27 @@
|
||||
<svg id="Capa_1" enable-background="new 0 0 512 512" height="512"
|
||||
viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m466.916 27.803h-421.832c-24.859 0-45.084 20.225-45.084 45.084v366.226c0 24.859 20.225 45.084 45.084 45.084h421.832c24.859 0 45.084-20.225 45.084-45.084v-366.226c0-24.859-20.225-45.084-45.084-45.084z"
|
||||
fill="#f0f9ff"/>
|
||||
<path d="m198.58 188.334-181.344-150.862c-7.75 6.107-13.456 14.691-15.905 24.554l164.142 136.551h33.102z"
|
||||
fill="#f40055"/>
|
||||
<path d="m313.425 198.576h33.93l163.447-135.973c-2.325-9.923-7.93-18.592-15.613-24.796l-181.764 151.211z"
|
||||
fill="#c20044"/>
|
||||
<path d="m165.472 313.425-164.141 136.549c2.449 9.863 8.155 18.447 15.905 24.553l181.344-150.861-.005-10.241z"
|
||||
fill="#f40055"/>
|
||||
<path d="m313.425 313.425v9.557l181.765 151.211c7.683-6.204 13.288-14.874 15.613-24.796l-163.446-135.971z"
|
||||
fill="#c20044"/>
|
||||
<path d="m53.273 27.803 145.302 120.879v-120.879z" fill="#406bd4"/>
|
||||
<path d="m313.425 150.571v-122.768h148.082z" fill="#3257b0"/>
|
||||
<path d="m394.732 198.575 117.268-97.556v97.556z" fill="#3257b0"/>
|
||||
<g fill="#406bd4">
|
||||
<path d="m0 99.317v99.258h119.313z"/>
|
||||
<path d="m0 313.425v97.699l117.44-97.699z"/>
|
||||
<path d="m50.49 484.197 148.085-122.676v122.676z"/>
|
||||
</g>
|
||||
<path d="m313.425 484.197v-124.139l149.221 124.139z" fill="#3257b0"/>
|
||||
<path d="m512 409.423-115.395-95.998h115.395z" fill="#3257b0"/>
|
||||
<path d="m512 222.142h-222.142v-194.339h-67.716v194.339h-222.142v67.716h222.142v194.339h67.716v-194.339h222.142z"
|
||||
fill="#f40055"/>
|
||||
<path d="m289.858 222.142v-194.339h-33.858v456.394h33.858v-194.339h222.142v-67.716z"
|
||||
fill="#c20044"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.7 KiB |
1
fittrackee_api/dist/static/media/fr.b75cd962.svg
vendored
Normal file
@ -0,0 +1 @@
|
||||
<svg id="Capa_1" enable-background="new 0 0 512 512" height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg"><path d="m173.899 31.804h-8.707l-4.397-4h-115.711c-24.859-.001-45.084 20.224-45.084 45.083v366.226c0 24.859 20.225 45.084 45.084 45.084h115.711l6.348-4h6.755v-448.393z" fill="#406bd4"/><path d="m466.916 27.803h-115.711l-4.523 4h-5.141v448.393h4.141l5.523 4h115.711c24.859 0 45.084-20.225 45.084-45.084v-366.225c0-24.859-20.225-45.084-45.084-45.084z" fill="#c20044"/><path d="m160.795 27.803h190.409v456.394h-190.409z" fill="#f0f9ff"/><path d="m256 27.803h95.205v456.394h-95.205z" fill="#cee5f5"/></svg>
|
After Width: | Height: | Size: 637 B |
42
fittrackee_api/dist/static/media/mail-send.66b8d739.svg
vendored
Normal file
@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 345.834 345.834" style="enable-background:new 0 0 345.834 345.834;" xml:space="preserve">
|
||||
<g>
|
||||
<path d="M339.798,260.429c0.13-0.026,0.257-0.061,0.385-0.094c0.109-0.028,0.219-0.051,0.326-0.084
|
||||
c0.125-0.038,0.247-0.085,0.369-0.129c0.108-0.039,0.217-0.074,0.324-0.119c0.115-0.048,0.226-0.104,0.338-0.157
|
||||
c0.109-0.052,0.22-0.1,0.327-0.158c0.107-0.057,0.208-0.122,0.312-0.184c0.107-0.064,0.215-0.124,0.319-0.194
|
||||
c0.111-0.074,0.214-0.156,0.321-0.236c0.09-0.067,0.182-0.13,0.27-0.202c0.162-0.133,0.316-0.275,0.466-0.421
|
||||
c0.027-0.026,0.056-0.048,0.083-0.075c0.028-0.028,0.052-0.059,0.079-0.088c0.144-0.148,0.284-0.3,0.416-0.46
|
||||
c0.077-0.094,0.144-0.192,0.216-0.289c0.074-0.1,0.152-0.197,0.221-0.301c0.074-0.111,0.139-0.226,0.207-0.34
|
||||
c0.057-0.096,0.118-0.19,0.171-0.289c0.062-0.115,0.114-0.234,0.169-0.351c0.049-0.104,0.101-0.207,0.146-0.314
|
||||
c0.048-0.115,0.086-0.232,0.128-0.349c0.041-0.114,0.085-0.227,0.12-0.343c0.036-0.118,0.062-0.238,0.092-0.358
|
||||
c0.029-0.118,0.063-0.234,0.086-0.353c0.028-0.141,0.045-0.283,0.065-0.425c0.014-0.1,0.033-0.199,0.043-0.3
|
||||
c0.025-0.249,0.038-0.498,0.038-0.748V92.76c0-4.143-3.357-7.5-7.5-7.5h-236.25c-0.066,0-0.13,0.008-0.196,0.01
|
||||
c-0.143,0.004-0.285,0.01-0.427,0.022c-0.113,0.009-0.225,0.022-0.337,0.037c-0.128,0.016-0.255,0.035-0.382,0.058
|
||||
c-0.119,0.021-0.237,0.046-0.354,0.073c-0.119,0.028-0.238,0.058-0.356,0.092c-0.117,0.033-0.232,0.069-0.346,0.107
|
||||
c-0.117,0.04-0.234,0.082-0.349,0.128c-0.109,0.043-0.216,0.087-0.322,0.135c-0.118,0.053-0.235,0.11-0.351,0.169
|
||||
c-0.099,0.051-0.196,0.103-0.292,0.158c-0.116,0.066-0.23,0.136-0.343,0.208c-0.093,0.06-0.184,0.122-0.274,0.185
|
||||
c-0.106,0.075-0.211,0.153-0.314,0.235c-0.094,0.075-0.186,0.152-0.277,0.231c-0.09,0.079-0.179,0.158-0.266,0.242
|
||||
c-0.099,0.095-0.194,0.194-0.288,0.294c-0.047,0.05-0.097,0.094-0.142,0.145c-0.027,0.03-0.048,0.063-0.074,0.093
|
||||
c-0.094,0.109-0.182,0.223-0.27,0.338c-0.064,0.084-0.13,0.168-0.19,0.254c-0.078,0.112-0.15,0.227-0.222,0.343
|
||||
c-0.059,0.095-0.12,0.189-0.174,0.286c-0.063,0.112-0.118,0.227-0.175,0.342c-0.052,0.105-0.106,0.21-0.153,0.317
|
||||
c-0.049,0.113-0.092,0.23-0.135,0.345c-0.043,0.113-0.087,0.225-0.124,0.339c-0.037,0.115-0.067,0.232-0.099,0.349
|
||||
c-0.032,0.12-0.066,0.239-0.093,0.36c-0.025,0.113-0.042,0.228-0.062,0.342c-0.022,0.13-0.044,0.26-0.06,0.39
|
||||
c-0.013,0.108-0.019,0.218-0.027,0.328c-0.01,0.14-0.019,0.28-0.021,0.421c-0.001,0.041-0.006,0.081-0.006,0.122v46.252
|
||||
c0,4.143,3.357,7.5,7.5,7.5s7.5-3.357,7.5-7.5v-29.595l66.681,59.037c-0.348,0.245-0.683,0.516-0.995,0.827l-65.687,65.687v-49.288
|
||||
c0-4.143-3.357-7.5-7.5-7.5s-7.5,3.357-7.5,7.5v9.164h-38.75c-4.143,0-7.5,3.357-7.5,7.5s3.357,7.5,7.5,7.5h38.75v43.231
|
||||
c0,4.143,3.357,7.5,7.5,7.5h236.25c0.247,0,0.494-0.013,0.74-0.037c0.115-0.011,0.226-0.033,0.339-0.049
|
||||
C339.542,260.469,339.67,260.454,339.798,260.429z M330.834,234.967l-65.688-65.687c-0.042-0.042-0.087-0.077-0.13-0.117
|
||||
l49.383-41.897c3.158-2.68,3.546-7.412,0.866-10.571c-2.678-3.157-7.41-3.547-10.571-0.866l-84.381,71.59l-98.444-87.158h208.965
|
||||
V234.967z M185.878,179.888c0.535-0.535,0.969-1.131,1.308-1.765l28.051,24.835c1.418,1.255,3.194,1.885,4.972,1.885
|
||||
c1.726,0,3.451-0.593,4.853-1.781l28.587-24.254c0.26,0.38,0.553,0.743,0.89,1.08l65.687,65.687H120.191L185.878,179.888z"/>
|
||||
<path d="M7.5,170.676h126.667c4.143,0,7.5-3.357,7.5-7.5s-3.357-7.5-7.5-7.5H7.5c-4.143,0-7.5,3.357-7.5,7.5
|
||||
S3.357,170.676,7.5,170.676z"/>
|
||||
<path d="M20.625,129.345H77.5c4.143,0,7.5-3.357,7.5-7.5s-3.357-7.5-7.5-7.5H20.625c-4.143,0-7.5,3.357-7.5,7.5
|
||||
S16.482,129.345,20.625,129.345z"/>
|
||||
<path d="M62.5,226.51h-55c-4.143,0-7.5,3.357-7.5,7.5s3.357,7.5,7.5,7.5h55c4.143,0,7.5-3.357,7.5-7.5S66.643,226.51,62.5,226.51z"
|
||||
/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 4.0 KiB |
65
fittrackee_api/dist/static/media/password.488f5f4c.svg
vendored
Normal file
@ -0,0 +1,65 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 512.001 512.001" style="enable-background:new 0 0 512.001 512.001;" xml:space="preserve">
|
||||
<g>
|
||||
<g>
|
||||
<path d="M468.683,287.265h-69.07c-4.147,0-7.508,3.361-7.508,7.508c0,4.147,3.361,7.508,7.508,7.508h69.07
|
||||
c4.147,0,7.508-3.361,7.508-7.508C476.191,290.626,472.83,287.265,468.683,287.265z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path d="M105.012,268.377L85.781,256l19.231-12.376c3.487-2.243,4.495-6.888,2.251-10.376c-2.244-3.486-6.888-4.497-10.376-2.25
|
||||
l-17.471,11.243v-20.776c0-4.147-3.361-7.508-7.508-7.508c-4.147,0-7.508,3.361-7.508,7.508v20.775l-17.47-11.243
|
||||
c-3.486-2.245-8.132-1.238-10.376,2.25c-2.245,3.487-1.237,8.133,2.25,10.376L58.034,256l-19.231,12.376
|
||||
c-3.487,2.244-4.495,6.889-2.25,10.376c1.435,2.23,3.852,3.446,6.32,3.446c1.391,0,2.799-0.386,4.056-1.196l17.47-11.243v20.775
|
||||
c0,4.147,3.361,7.508,7.508,7.508c4.147,0,7.508-3.361,7.508-7.508V269.76l17.471,11.243c1.257,0.809,2.664,1.196,4.056,1.196
|
||||
c2.467,0,4.885-1.216,6.32-3.446C109.507,275.266,108.499,270.62,105.012,268.377z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path d="M194.441,268.377L175.21,256l19.231-12.376c3.487-2.244,4.495-6.889,2.25-10.376c-2.245-3.486-6.888-4.497-10.376-2.25
|
||||
l-17.47,11.243v-20.775c0-4.147-3.361-7.508-7.508-7.508c-4.147,0-7.508,3.361-7.508,7.508v20.776l-17.471-11.243
|
||||
c-3.487-2.245-8.133-1.238-10.376,2.25c-2.245,3.487-1.237,8.133,2.25,10.376L147.463,256l-19.231,12.376
|
||||
c-3.487,2.244-4.495,6.889-2.25,10.376c1.435,2.23,3.852,3.446,6.32,3.446c1.391,0,2.799-0.386,4.056-1.196l17.471-11.243v20.776
|
||||
c0,4.147,3.361,7.508,7.508,7.508c4.147,0,7.508-3.361,7.508-7.508V269.76l17.47,11.243c1.257,0.809,2.664,1.196,4.056,1.196
|
||||
c2.467,0,4.885-1.216,6.32-3.446C198.936,275.266,197.928,270.62,194.441,268.377z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path d="M283.871,268.377L264.64,256l19.231-12.376c3.487-2.243,4.495-6.888,2.251-10.376c-2.245-3.486-6.888-4.497-10.376-2.25
|
||||
l-17.471,11.243v-20.775c0-4.147-3.361-7.508-7.508-7.508c-4.147,0-7.508,3.361-7.508,7.508v20.775l-17.471-11.243
|
||||
c-3.486-2.245-8.134-1.238-10.376,2.25c-2.245,3.487-1.237,8.133,2.25,10.376L236.892,256l-19.231,12.376
|
||||
c-3.487,2.244-4.495,6.889-2.25,10.376c1.435,2.23,3.852,3.446,6.32,3.446c1.391,0,2.799-0.386,4.056-1.196l17.471-11.243v20.775
|
||||
c0,4.147,3.361,7.508,7.508,7.508c4.147,0,7.508-3.361,7.508-7.508V269.76l17.471,11.243c1.257,0.809,2.664,1.196,4.056,1.196
|
||||
c2.467,0,4.886-1.216,6.32-3.446C288.366,275.266,287.358,270.62,283.871,268.377z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path d="M373.3,268.377L354.069,256l19.231-12.376c3.487-2.244,4.495-6.889,2.25-10.376c-2.244-3.486-6.888-4.497-10.376-2.25
|
||||
l-17.471,11.243v-20.776c0-4.147-3.361-7.508-7.508-7.508c-4.147,0-7.508,3.361-7.508,7.508v20.775l-17.47-11.243
|
||||
c-3.486-2.245-8.132-1.238-10.376,2.25c-2.245,3.487-1.237,8.133,2.25,10.376L326.322,256l-19.231,12.376
|
||||
c-3.487,2.244-4.495,6.889-2.25,10.376c1.435,2.23,3.852,3.446,6.32,3.446c1.391,0,2.799-0.386,4.056-1.196l17.47-11.243v20.776
|
||||
c0,4.147,3.361,7.508,7.508,7.508c4.147,0,7.508-3.361,7.508-7.508V269.76l17.471,11.243c1.257,0.809,2.664,1.196,4.056,1.196
|
||||
c2.467,0,4.885-1.216,6.32-3.446C377.795,275.266,376.787,270.62,373.3,268.377z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path d="M271.792,330.359H15.016V181.642h93.1c4.147,0,7.508-3.361,7.508-7.508c0-4.147-3.361-7.508-7.508-7.508H12.513
|
||||
C5.613,166.626,0,172.24,0,179.14v153.722c0,6.9,5.613,12.513,12.513,12.513h259.278c4.147,0,7.508-3.361,7.508-7.508
|
||||
C279.299,333.72,275.939,330.359,271.792,330.359z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path d="M499.487,166.626H162.174c-4.147,0-7.508,3.361-7.508,7.508c0,4.147,3.361,7.508,7.508,7.508h334.811v148.716H323.848
|
||||
c-4.147,0-7.508,3.361-7.508,7.508c0,4.147,3.361,7.508,7.508,7.508h175.64c6.9,0,12.513-5.613,12.513-12.513V179.14
|
||||
C512.001,172.24,506.387,166.626,499.487,166.626z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 4.0 KiB |
@ -2,7 +2,7 @@ import logging
|
||||
import os
|
||||
from importlib import import_module, reload
|
||||
|
||||
from flask import Flask
|
||||
from flask import Flask, render_template
|
||||
from flask_bcrypt import Bcrypt
|
||||
from flask_dramatiq import Dramatiq
|
||||
from flask_migrate import Migrate
|
||||
@ -20,7 +20,9 @@ appLog = logging.getLogger('fittrackee_api')
|
||||
|
||||
def create_app():
|
||||
# instantiate the app
|
||||
app = Flask(__name__)
|
||||
app = Flask(
|
||||
__name__, static_folder='../dist/static', template_folder='../dist'
|
||||
)
|
||||
|
||||
# set config
|
||||
with app.app_context():
|
||||
@ -91,4 +93,9 @@ def create_app():
|
||||
)
|
||||
return response
|
||||
|
||||
@app.route('/', defaults={'path': ''})
|
||||
@app.route('/<path:path>')
|
||||
def catch_all(path):
|
||||
return render_template('index.html')
|
||||
|
||||
return app
|
||||
|
@ -18,7 +18,10 @@ export const getFileSizeInMB = fileSize => {
|
||||
}
|
||||
|
||||
export const version = '0.3.0-beta' // version stored in 'utils' for now
|
||||
export const apiUrl = `${process.env.REACT_APP_API_URL}/api/`
|
||||
export const apiUrl =
|
||||
process.env.NODE_ENV === 'production'
|
||||
? '/api/'
|
||||
: `${process.env.REACT_APP_API_URL}/api/`
|
||||
|
||||
export const userFilters = [
|
||||
{ key: 'activities_count', label: 'activities count' },
|
||||
|
@ -28,7 +28,7 @@
|
||||
},
|
||||
"scripts": {
|
||||
"start": "cd fittrackee_client && react-scripts start",
|
||||
"build": "cd fittrackee_client && react-scripts build",
|
||||
"build": "NODE_ENV=production cd fittrackee_client && react-scripts build && rm -rf ../fittrackee_api/dist/* && cp -a build/. ../fittrackee_api/dist",
|
||||
"test": "cd fittrackee_client && testcafe firefox e2e",
|
||||
"eject": "cd fittrackee_client && react-scripts eject",
|
||||
"lint": "eslint --cache --ext .jsx --ext .js fittrackee_client/src",
|
||||
|