update documentation
This commit is contained in:
		| @@ -1,6 +1,14 @@ | ||||
| FitTrackee API documentation | ||||
| ############################ | ||||
| Activities | ||||
| ########## | ||||
|  | ||||
| .. autoflask:: fittrackee_api:create_app() | ||||
|    :endpoints: | ||||
|     activities.get_activities | ||||
|     activities.get_activities, | ||||
|     activities.get_activity, | ||||
|     activities.post_activity, | ||||
|     activities.post_activity_no_gpx, | ||||
|     activities.update_activity, | ||||
|     activities.delete_activity, | ||||
|     activities.get_map, | ||||
|     activities.get_activity_gpx, | ||||
|     activities.get_activity_chart_data | ||||
|   | ||||
							
								
								
									
										12
									
								
								docs/source/api/auth.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								docs/source/api/auth.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | ||||
| Authentication | ||||
| ############## | ||||
|  | ||||
| .. autoflask:: fittrackee_api:create_app() | ||||
|    :endpoints: | ||||
|     auth.register_user, | ||||
|     auth.login_user, | ||||
|     auth.logout_user, | ||||
|     auth.get_user_status, | ||||
|     auth.edit_user, | ||||
|     auth.edit_picture, | ||||
|     auth.del_picture | ||||
							
								
								
									
										13
									
								
								docs/source/api/index.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								docs/source/api/index.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| API documentation | ||||
| ################# | ||||
|  | ||||
| .. toctree:: | ||||
|    :maxdepth: 2 | ||||
|    :caption: Endpoints: | ||||
|  | ||||
|    activities | ||||
|    auth | ||||
|    records | ||||
|    sports | ||||
|    stats | ||||
|    users | ||||
							
								
								
									
										6
									
								
								docs/source/api/records.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								docs/source/api/records.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| Records | ||||
| ####### | ||||
|  | ||||
| .. autoflask:: fittrackee_api:create_app() | ||||
|    :endpoints: | ||||
|     records.get_records | ||||
							
								
								
									
										10
									
								
								docs/source/api/sports.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								docs/source/api/sports.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| Sports | ||||
| ###### | ||||
|  | ||||
| .. autoflask:: fittrackee_api:create_app() | ||||
|    :endpoints: | ||||
|     sports.get_sports, | ||||
|     sports.get_sport, | ||||
|     sports.post_sport, | ||||
|     sports.update_sport, | ||||
|     sports.delete_sport | ||||
							
								
								
									
										7
									
								
								docs/source/api/stats.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								docs/source/api/stats.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| Statistics | ||||
| ########## | ||||
|  | ||||
| .. autoflask:: fittrackee_api:create_app() | ||||
|    :endpoints: | ||||
|     stats.get_activities_by_sport, | ||||
|     stats.get_activities_by_time | ||||
							
								
								
									
										9
									
								
								docs/source/api/users.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								docs/source/api/users.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| Users | ||||
| ##### | ||||
|  | ||||
| .. autoflask:: fittrackee_api:create_app() | ||||
|    :endpoints: | ||||
|     users.get_users, | ||||
|     users.get_single_user, | ||||
|     users.get_picture, | ||||
|     users.ping_pong | ||||
							
								
								
									
										53
									
								
								docs/source/features.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								docs/source/features.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| Features | ||||
| ######## | ||||
|  | ||||
| Features list | ||||
| ~~~~~~~~~~~~~ | ||||
| - Account creation (only standard user, not admin) | ||||
| - 6 sports supported: | ||||
|      - Cycling (Sport) | ||||
|      - Cycling (Transport) | ||||
|      - Hiking | ||||
|      - Montain Biking | ||||
|      - Running | ||||
|      - Walking | ||||
| - Activity creation by uploading a gpx file. An activity can even be created without gpx (the user must enter date, time, duration and distance) | ||||
| - An activity can be displayed with map (if with gpx), weather (if the DarkSky API key is provided) and charts (speed and elevation) | ||||
| - Activity edition and deletion. User can add a note | ||||
| - Dashboard with month calendar displaying activities and record | ||||
| - User statistics | ||||
| - User records by sports: | ||||
|     - average speed | ||||
|     - farest distance | ||||
|     - longest duration | ||||
|     - maximum speed | ||||
| - Activities list and filter | ||||
|  | ||||
| **Notes:** | ||||
| - only activity owner can see his activity | ||||
| - no administration for now | ||||
|  | ||||
|  | ||||
| Dashboard | ||||
| ~~~~~~~~~ | ||||
|  | ||||
| .. figure:: ../../misc/images/fittrackee_screenshot-01.png | ||||
|    :alt: FitTrackee Dashboard | ||||
|  | ||||
|  | ||||
| Activity/workout detail | ||||
| ~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| .. figure:: ../../misc/images/fittrackee_screenshot-02.png | ||||
|    :alt: FitTrackee Activity | ||||
|  | ||||
|  | ||||
| Activities/workouts list | ||||
| ~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| .. figure:: ../../misc/images/fittrackee_screenshot-03.png | ||||
|    :alt: FitTrackee Activities | ||||
|  | ||||
|  | ||||
| Statistics | ||||
| ~~~~~~~~~~ | ||||
| .. figure:: ../../misc/images/fittrackee_screenshot-04.png | ||||
|    :alt: FitTrackee Statistics | ||||
| @@ -1,20 +1,56 @@ | ||||
| .. FitTrackee documentation master file, created by | ||||
|    sphinx-quickstart on Sun Jul 14 14:43:43 2019. | ||||
|    You can adapt this file completely to your liking, but it should at least | ||||
|    contain the root `toctree` directive. | ||||
|  | ||||
| Welcome to FitTrackee's documentation! | ||||
| ====================================== | ||||
|  | ||||
| FitTrackee | ||||
| ========== | ||||
|  | ||||
| | |Python Version| |Flask Version| |React Version| | ||||
| | |Codacy Badge| |Codacy Coverage Badge|\ 1 |Build Status| | ||||
|  | ||||
|  | ||||
| | This web application allows you to track your outdoor activities from | ||||
|   gpx files and keep your data on your own server. | ||||
| | No mobile app is developed yet, but several existing mobile apps can | ||||
|   store workouts data locally and export them into a gpx file. | ||||
| | Examples (for Android): | ||||
| | \* `Runner Up <https://github.com/jonasoreland/runnerup>`__ (GPL v3) | ||||
| | \* `ForRunners <https://gitlab.com/brvier/ForRunners>`__ (GPL v3) | ||||
| | \* `AlpineQuest <https://www.alpinequest.net/>`__ (Proprietary, no | ||||
|   trackers according to `exodus privay | ||||
|   report <https://reports.exodus-privacy.eu.org/reports/2975/>`__) | ||||
|  | ||||
| | Maps are displayed using `Open Street | ||||
|   Map <https://www.openstreetmap.org>`__. | ||||
| | 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>`__ for more information) | ||||
|  | ||||
| .. figure:: ../../misc/images/fittrackee_screenshot-01.png | ||||
|    :alt: FitTrackee Dashboard | ||||
|  | ||||
|  | ||||
| Table of contents | ||||
| ================= | ||||
|  | ||||
| .. toctree:: | ||||
|    :maxdepth: 2 | ||||
|    :caption: Contents: | ||||
|  | ||||
|    api/activities | ||||
|    installation | ||||
|    features | ||||
|    api/index | ||||
|  | ||||
| Indices and tables | ||||
| ================== | ||||
|  | ||||
| * :ref:`genindex` | ||||
| * :ref:`modindex` | ||||
| * :ref:`search` | ||||
| .. |Python Version| image:: https://img.shields.io/badge/python-3.7-brightgreen.svg | ||||
|    :target: https://python.org | ||||
| .. |Flask Version| image:: https://img.shields.io/badge/flask-1.1-brightgreen.svg | ||||
|    :target: http://flask.pocoo.org/ | ||||
| .. |React Version| image:: https://img.shields.io/badge/react-16.8-brightgreen.svg | ||||
|    :target: https://reactjs.org/ | ||||
| .. |Codacy Badge| image:: https://api.codacy.com/project/badge/Grade/290a285f22e94132904dc13b4dd19d1d | ||||
|    :target: https://www.codacy.com/app/SamR1/FitTrackee | ||||
| .. |Codacy Coverage Badge| image:: https://api.codacy.com/project/badge/Coverage/290a285f22e94132904dc13b4dd19d1d | ||||
|    :target: https://www.codacy.com/app/SamR1/FitTrackee | ||||
| .. |Build Status| image:: https://travis-ci.org/SamR1/FitTrackee.svg?branch=master | ||||
|    :target: https://travis-ci.org/SamR1/FitTrackee | ||||
|   | ||||
							
								
								
									
										112
									
								
								docs/source/installation.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										112
									
								
								docs/source/installation.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,112 @@ | ||||
| Installation | ||||
| ############ | ||||
|  | ||||
| This application is written in Python (API) and Javascript (client): | ||||
|  | ||||
| - API: | ||||
|     - Flask | ||||
|     - `gpxpy <https://github.com/tkrajina/gpxpy>`__ to parse gpx files | ||||
|     - `staticmap <https://github.com/komoot/staticmap>`__ to generate a static map image from gpx coordinates | ||||
|     - `python-forecast.io <https://github.com/ZeevG/python-forecast.io>`__ to fetch weather data from `Dark Sky <https://darksky.net>`__ (former forecast.io) | ||||
| - Client: | ||||
|     - React/Redux | ||||
|     - `Leaflet <https://leafletjs.com/>`__ to display map | ||||
|     - `Recharts <https://github.com/recharts/recharts>`__ to display charts with elevation and speed | ||||
|  | ||||
| Sports and weather icons are made by Freepik from www.flaticon.com. | ||||
|  | ||||
| Prerequisites | ||||
| ~~~~~~~~~~~~~ | ||||
|  | ||||
| -  PostgreSQL database (10+) | ||||
| -  Python 3.7+ | ||||
| -  `Yarn <https://yarnpkg.com>`__ and | ||||
|    `serve <https://github.com/zeit/serve>`__ | ||||
| -  API key from `ThunderForest <http://thunderforest.com>`__ | ||||
| -  API key from `Dark Sky <https://darksky.net/dev>`__ [not mandatory] | ||||
|  | ||||
|  | ||||
| Installation | ||||
| ~~~~~~~~~~~~ | ||||
|  | ||||
| | The following steps describe an installation on Linux systems (tested | ||||
|   on Debian and Arch). | ||||
| | On other OS, some issues can be encountered and adaptations may be | ||||
|   necessary. | ||||
|  | ||||
| Dev environment | ||||
| ^^^^^^^^^^^^^^^ | ||||
|  | ||||
| -  Clone this repo: | ||||
|  | ||||
| .. code:: bash | ||||
|  | ||||
|    $ git clone https://github.com/SamR1/FitTrackee.git | ||||
|    $ cd FitTrackee | ||||
|  | ||||
| -  Update **Makefile.config** file if needed and copy/paste the | ||||
|    **ThunderForest** and **Dark Sky** API keys value in | ||||
|    **Makefile.custom.config** file (see example) | ||||
|  | ||||
| -  Install Python virtualenv, React and all related packages and | ||||
|    initialize the database: | ||||
|  | ||||
| .. code:: bash | ||||
|  | ||||
|    $ make install-dev | ||||
|    $ make install-db | ||||
|  | ||||
| -  Start the server and the client: | ||||
|  | ||||
| .. code:: bash | ||||
|  | ||||
|    $ make serve | ||||
|  | ||||
| Open http://localhost:3000 and login (the email is ``admin@example.com`` | ||||
| and the password ``mpwoadmin``) or register | ||||
|  | ||||
| Prod environment | ||||
| ^^^^^^^^^^^^^^^^ | ||||
|  | ||||
| -  Download the last release (for now it is the beta release v0.2.1): | ||||
|  | ||||
| .. code:: bash | ||||
|  | ||||
|    $ wget https://github.com/SamR1/FitTrackee/archive/v0.2.1-beta.tar.gz | ||||
|    $ tar -xzf v0.1.1-beta.tar.gz | ||||
|    $ mv FitTrackee-0.1.1-beta FitTrackee | ||||
|    $ cd FitTrackee | ||||
|  | ||||
| -  Update **Makefile.config** file if needed and copy/paste the | ||||
|    **ThunderForest** and **Dark Sky** API keys value in | ||||
|    **Makefile.custom.config** file (see example) | ||||
|  | ||||
| -  Install Python virtualenv, React and all related packages and | ||||
|    initialize the database: | ||||
|  | ||||
| .. code:: bash | ||||
|  | ||||
|    $ make install | ||||
|    $ make install-db | ||||
|  | ||||
| -  Build the client: | ||||
|  | ||||
| .. code:: bash | ||||
|  | ||||
|    $ make build-client | ||||
|  | ||||
| -  Start the server and the client: | ||||
|  | ||||
| .. code:: bash | ||||
|  | ||||
|    $ make run | ||||
|  | ||||
| Open http://localhost:3000, log in as admin (the email is | ||||
| ``admin@example.com`` and the password ``mpwoadmin``) and change the | ||||
| password | ||||
|  | ||||
| Upgrade | ||||
| ~~~~~~~ | ||||
|  | ||||
| ``TODO`` | ||||
|  | ||||
| @@ -38,7 +38,7 @@ def get_activities(auth_user_id): | ||||
|  | ||||
|     .. sourcecode:: http | ||||
|  | ||||
|       GET /api/activities?&page=1&per_page=10&from=2019-07-02&to=2019-07-31&sport_id=1  HTTP/1.1 | ||||
|       GET /api/activities?from=2019-07-02&to=2019-07-31&sport_id=1  HTTP/1.1 | ||||
|  | ||||
|     **Example responses**: | ||||
|  | ||||
| @@ -140,7 +140,7 @@ def get_activities(auth_user_id): | ||||
|     :param integer auth_user_id: authenticate user id | ||||
|  | ||||
|     :query integer page: page if using pagination (default: 1) | ||||
|     :query integer per_page: number of activities returned per page (default: 5) | ||||
|     :query integer per_page: number of activities per page (default: 5) | ||||
|     :query integer sport_id: sport id | ||||
|     :query string from: start date (format: `%Y-%m-%d`) | ||||
|     :query string to: end date (format: `%Y-%m-%d`) | ||||
| @@ -152,7 +152,7 @@ def get_activities(auth_user_id): | ||||
|     :query float ave_speed_to: maximal average speed | ||||
|     :query float max_speed_from: minimal max. speed | ||||
|     :query float max_speed_to: maximal max. speed | ||||
|     :query string order: sorting order (default: 'desc') | ||||
|     :query string order: sorting order (default: `desc`) | ||||
|  | ||||
|     :reqheader Authorization: OAuth 2.0 Bearer Token | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user