Giter VIP home page Giter VIP logo

samr1 / fittrackee Goto Github PK

View Code? Open in Web Editor NEW
580.0 580.0 36.0 191.03 MB

Self-hosted outdoor activity tracker :bicyclist:

Home Page: https://samr1.github.io/FitTrackee

License: GNU Affero General Public License v3.0

Python 59.31% HTML 0.72% CSS 0.68% JavaScript 0.04% Makefile 0.41% Shell 0.04% Mako 0.02% Batchfile 0.04% Dockerfile 0.05% Vue 22.95% TypeScript 14.83% SCSS 0.92%
activity-tracker chartjs flask gpx gpxpy leaflet outdoor-activities python self-hosted vue3 workout-tracker workouts

fittrackee's People

Contributors

astridx avatar bjornclauw avatar codacy-badger avatar comradekingu avatar dependabot[bot] avatar dkm avatar dperruso avatar erral avatar fmstrat avatar gorgobacka avatar jat255 avatar luzpaz avatar qwerty287 avatar samr1 avatar skylan0916 avatar thovi98 avatar traxys avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fittrackee's Issues

Disable user registration

Awaiting the release of administration (#15), adding the deactivation of registration with an environment variable

Use moving duration for stats

Total, moving and pause duration are correctly calculated (see #29).
The current version use moving duration to calculate 'duration' record.

โžก๏ธ align all 'duration' data in the application:

  • use moving duration in stats chart
  • display moving duration on Activity card (dashboard)

Detailed statistics

Displayed more statistics on a dedicated page:

  • display statistics based on a period of time
  • display statistics based on selected sports
  • start and end dates can be updated

Better UI

FitTrackee has a minimal interface (using on Bootstrap4), which hasn't changed since the first version.

As a first step:

UI

  • better responsive and mobile support
  • add some placeholders and loaders
  • add missing translations

Technical

  • switch from React to Vue3 + Typescript (for learning purposes)
  • remove Bootstrap and use only Flexbox (to remove external library)
  • better style files organization + SCSS (to add new themes in the future?)
  • remove calls to public CDNs
  • add tests for utils functions
  • update to Vue 3.2 (to use <script setup>)
  • update docker-compose-dev.yml

PR to port


Progress

  • User
    • login / register / logout
    • profile display =>
      • ๐Ÿ†• split user info and preferences in 2 tabs
    • profile edition
      • ๐Ÿ†• split user info, picture and preferences in 3 tabs
      • impact on API => new endpoint /auth/profile/edit/preferences
    • password reset
    • timezone dropdown in preferences edition
  • Dashboard
    • user statistics cards
    • calendar
    • chart w/ month activity
    • records
      • impact on API => update User serializer to get records w/ profile
    • timeline w/ workouts
  • Workouts
    • add workout (w/ and w/o gpx file)
    • workout detail with maps
    • update/delete a workout
    • workouts list
  • Admin
    • application
    • sports
    • users
  • Common
    • NavBar
    • Footer
  • Improvements/fix
    • error messages from API and translations
    • improve workouts filtering on workouts lists
    • handle username and email case on login and register

Some screenshots:

(not final versions)

  • desktop
dashboard workout
fittrackee_screenshot-01 fittrackee_screenshot-02
workouts stats
fittrackee_screenshot-03 fittrackee_screenshot-04
admin sports
fittrackee_screenshot-05 fittrackee_screenshot-06
  • dashboard on mobile
month activity calendar timeline record
Screen Shot 2021-11-03 at 11 57 47 Screen Shot 2021-11-03 at 11 57 52 Screen Shot 2021-11-03 at 11 57 59 Screen Shot 2021-11-03 at 11 58 05

Get weather data using an alternative API

Since DarkSky joins Apple (see blog post), new registrations are no longer accepted and the API will be deprecated by the end of 2021 support for the Dark Sky API will end on March 31st, 2023.


Features provided by DarkSky used by FitTrackee:

  • 1,000 free calls per day (no credit card)
  • Following weather data:
    • temperature
    • humidity
    • wind (speed and direction)
    • icon label
  • Historical data (it's possible to get data for dates in the past)

2 calls are made for a workout (at start and end gpx points)


Some alternatives:
(not exhaustive)

DarkSky Meteostat OpenWeather (One Call API 3.0) Open-Meteo Visual Crossing
Free calls 1,000/day 500/month 1,000/day fair use 1,000/day
Temperature โœ”๏ธ โœ”๏ธ โœ”๏ธ โœ”๏ธ โœ”๏ธ
Humidity โœ”๏ธ โœ”๏ธ โœ”๏ธ โœ”๏ธ โœ”๏ธ
Wind (speed & direction) โœ”๏ธ โœ”๏ธ โœ”๏ธ โœ”๏ธ โœ”๏ธ
Icon label โœ”๏ธ โŒ โœ”๏ธ โŒ โœ”๏ธ
Historical data by a timestamp โœ”๏ธ โŒ โœ”๏ธ โŒ โœ… (on hour period)
Data Licence CC BY-NC 4.0 CC BY-NC 4.0 CC BY-NC 4.0
Misc EOL : March 2023 Historical data only on hourly period Matches parameters of Dark Sky API.
Payment info required.
Matches parameters of Dark Sky API.
No credit card required.

Links:

Other API to be considered:

Complete the administration

  • Sports
    • enable or disable a sport (a sport can be disabled even if activity with this sport exists)
  • Users
    • display users list
    • display user detail
    • edit a user to add/remove admin rights
    • delete a user
  • Application
    • Active users limit (if 0, registration is enabled (no limit defined))
    • Max size of uploaded files
    • Max size of zip archive
    • Max files of zip archive

User statistics are incorrect

When there is more than one registered user, the user statistics displayed on the top of the dashboard are incorrect (it displays all users statistics).

Translate documentation

  • #377
  • add link to translated documentation in FitTrackee application
  • add documentation translation on Weblate:
    • to the current project. Translation status will include application and documentation. (it's not possible for now to get status for a list of components)
    • or create a new project (needs new subscription, the current plan allows only one project)
  • add others languages

Gpx data can be edited

2018-05-30_23-08-26
Some gpx points are not correct, it would be interesting to be able to delete them by clicking on the chart (and allow user to export the new version).

Error on uploading gpx file

Uploading gpx file fails with [Errno 2] No such file or directory: '$HOME/FitTrackee/fittrackee_api/fittrackee_api/uploads/activities/1/tmp/2018-12-21T1743.gpx' -> '$HOME/FitTrackee/fittrackee_api/fittrackee_api/uploads/activities/1/.private/$USER/2018-12-21 16:50:57_Cycling (Transport)_cyimaxnh.gpx'

If I create '$HOME/FitTrackee/fittrackee_api/fittrackee_api/uploads/activities/1/.private/$USER/ and move inside the gpx file, it works though !

Weather is not displayed anymore

since 0.2.0, datetime from gpx file are not naive, which can lead to incorrect time and errors before obtaining weather data.

Improve speed display (chart vs max speed)

Max speed is calculated by gpxpy, which removes GPS errors by excluding extreme values.

Chart displays data from gpx without any cleaning, so some points exceed calculated max speed.
Example:
snapshot

Note:
FitTrackee uses an old version of gpxpy (1.3.4, see #35).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.