Flexible fitness logger that works

2 Likes

wtf, youve sold me…i wasnt aware of vue native :eyes:

ah wait…the project has been deprecated 🥲

I would be a little wary of Vue Native. With React Native, you are already doing wrapping shenanigans and abstractions atop the native environments with Javascript. Vue Native is an abstraction on top of this already pretty fragile abstraction. If you will need to add some native module, you will be in for a fun time, not even talking about all of the random bugs you encounter stemming from React Native itself. It is hard enough to debug those as it is.

In addition, the project seems to be deprecated, which is the first I heard of it, but still a strike in my book. If you are deciding what to use and are not tied into Vue, it would be probably better to use plain React Native.

Have you tried looking around whether you could contribute to an existing project instead of creating another new thing? You mention that the problem has proven quite hard and there were certainly lots of people who were trying their hand at it. You could gather some significant insight from them. It might not be as much fun as a greenfield project, but it might turn out to be a little more worthwhile. At the very least, the findings from searching around and looking at what makes other projects “not right” would be quite useful :slight_smile:

// EDIT: grammar

aye, im probs just going todo a basic vuejs web app and make sure it looks nicely on a phone, maybe have a pwa out of it or wrap it in cordova

1 Like

oh, hmmmmm, that’s strange.

Wow, the deprecation message went up yesterday.

That’s what my plan is for my devember project. Maybe a new native project will come around; if not, oh well.

love my luck haha

you made the post yet? if so link it here too

I’ve actually started up doing something like this a few times myself and never worked up the motivation to actually finish it, so kudos to you on the project. Totally out of the scope of the project but if you ever decide to do workout calorie tracking I highly recommend looking into METS. They seem to be one of the most accurate generic ways to figure up how many calories you’ve burned. Compendium of Physical Activities

Yeah probably not any time soon, but thanks for the idea. will keep it in mind. thanks for the shout

Sorry for being MIA everyone. too busy with line job, etc.
At the moment im aiming to quickly finish the backend then get started on the frontend. I still have a few endpoints to complete. So far the exercise types (creating custom types of exercises) endpoint works fine, need todo the rest.

Update

Backend is mostly finished, just needing to writte a couple of other endpoints.
In terms of the frontend, im using Vuejs and just making a “mobile optimised app” meaning that im writting a webapp designed to be used on mobile, im planning to make that a PWA out of it. It is also in feature parity with the backend.

MVP V1.0

Implemented

  • User custom exercises
    • CRUD operations
  • Workouts
    • Start/Stops
    • Edits/Deletes
  • Exercises (backend only)
    • CURD operations

To be implemented

  • Optimising data flow between client and server
  • Writting the the exercise functionality for the client

Will try to post more updates over the following week.

For those interested in fitness and calories burned, there was a recent study that came out that finally determined which model humans burn extra calories with, it’s compensative.

This means that our normal body energy expenditure costs are lowered when exercising so only a portion of what we think we burn for the day actually gets burned. As a double insult, the more obese you are, the greater you compensate.

People that are at the 10th percentile of the BMI distribution compensate 27.7% of activity calories, whereas people at the 90th percentile compensate 49.2% of activity calories

So Mr. Olympia only burns 72.3% of the extra calories they think they burn (the calories burned on top of what would be their normal daily expenditure if they hadn’t exercised), and Walmart shoppers only burn 50.8% of the extra calories they think the burn when you look at the entire day.

1 Like

Ah, thanks for the tip, but any sort calorie calculation for me is way out of scope atm. This is literally just a notebook to note things down on, then ne able to generate graphs and more

Personally I think for cross platform mobile choices some of the best frameworks would be ionic or flutter (although with flutter you gotta learn dart).

Ionic might be part of the reason why Vue native is deprecated tbh. I don’t know the specifics of the ‘why’. But it seems redundant after ionic added VueJS support. To some degree at least.

Also, never heard of Vue native until just now. And now it’s gone. ^^


Unless you decide a PWA is enough then you can ofc just use vue.


Might be a bit late given that this is after the “1 months later part”. :sweat_smile:

haha you’ve basically guessed what im doing.
so for mvp1 im just making a fairly simple bootstrap vue app meant for the mobile, then when i end up making an mvp 2.0 (after devember) ill re-write it with ionic and vue

UPDATE:

This post is just an update to what I’ve been up to. I know I did not post much, sorry, but thats just because I barely even had enough time to work on the project to begin with.

A full write up about this project, including a basic user guide will follow ASAP.

UI:

Ended up going with vuejs and bootstrap v4.0. This is my first vuejs project and pelase dont judge me too hard, I absolutely hate UI deving and other than learing vuejs (which out of all the UI frameworkds ive tried, I love). Also had to learn things such as state amangement and more.

This is designed for mobile use and not desktop use…just FYI.

As it is the UX I would say its usable (definetly more usable compare to the app I’ve made for my honours project in Uni.) and I’ve even gotten some people on board for some testing.

However, with that said, after the competition is over, using everything I have learned from developing this UI/UX, I will be re-reitting the frontend with Ionic using Vuejs simply because I really want to make it an actual mobile application with actual mobile components, animations and user flow.

Backend:

There really isnt much of an update here, mostly just bug fixes and some more features implemented.

AH! almost forgot

Ive also just deployed the application and if you feel like breaking it, head over to logger.fitness

Logger.Fitness 31/12/2021

This idea originally came to me from my honours project which I had in my last
year of University. The idea was a two-parter, to make a workout logger
application and to make the app in a micro services approach. This proved to be
a bit of a time waste because I did not end up properly finishing the application.
So here I am with my second run at this idea.

The Idea

The idea is simple, make a fuss-free workout logging application which is
customisable in the exercises that you have and the data that you have available.
Then to be able to take logs and create custom historical charts based cross
referencing data that the user wants.

The user would be able to add tags to things such as exercises, or
workouts. Then, the user would be able to create a graph where it would be possible
to pull in data which has that specific tag on it and show progress over time
including or excluding specific tags.

For example, the user could tag a specific workout with tag “super tired”. Then
when compiling a graph the user could exclude that specific tag from the search.
This logic could be extended to include tags, and multiple exercises types.

However, to even think about starting the sort of data and tag magic which has
been described above, a base logger would first have to be made, or an MVP.

v1.0 MVP

This MVP is all about making a functional logger where you would be able to just
simply create custom exercise types, with two types of data (single values and
sets). Then be able to start workouts, log the exercises, log notes and stop the
workouts.

v2.0 UX-boogaloo

The main purpose of this version would be to focus a bit on how the app looks,
the user flow between different pages of the app, and giving the app a bit of
an identity.

Also, historical and analytical features for the app such as simple “1 rep max”
charts, and more will be introduced. This is where the system will also lay the
groundwork’s for the tagging system and the flexible chart system will be
created.

Introducing The Tech Stack

Everything is containerised with docker images, backend consisting of a Golang
with Echo REST framework application and a MongoDB database.

The frontend is served from a separate Nginx container which also forwards all
the API traffic to the backend container. The frontend its self is just a fairly
simple VueJS using Vuex state management, Vue router and Bootstrap for a UI
toolkit.

Everything is sitting behind an Nginx Proxy Manager
simply because of its simplicity and ease of use. This will most likely be
swapped for a manual configuration of Nginx.

Current Progress

  • Login and authentication system. (just works enough for now)
  • Creation, addition and deletion of custom user exercises with either a set data type or a single value data type.
    • Example of a set for reference Set{resistance int, repetitions int}
  • Starting, stopping, editing and deletion of workouts
  • Addition of exercises to the workouts based on the custom exercise types.
  • Addition and deletion of sets to exercises inside workouts.

Next Steps

When it comes to the backend, most of my authentication system will be scrapped
in favour of some OAuth system, at the moment thinking of something like
KeyCloak, ideally I would like to own the database
and not offload it to firebase or anything like that.
A bit or backend cleanup and test coverage would also be needed.

When it comes to the UI, there is a lot of work to be done. This would be done
with Ionic and Vuejs. However, the most important part would be some actual
designs, will possibly contact one of my designer friends for UX and wireframes.
(or I might just swallow my pride and learn to do it myself).

Functionality

Up next in terms of functionality, the addition of workout templates will be
implemented. Meaning when starting a workout the user would be able to chose
from some user defined templates which would just have all the exercises needed
for that workout.

Another crucial piece of functionality is the historical and analytical part of
it. There will be one separate page to show charts for specific exercises, one
for the custom user exercises. And information bits sprinkled thought the
application to show things such as 1 rep maxes.

Another Idea: when adding a set, show the max resistance based on the
repetitions entered.

More of these features will be added.

Conclusion

Compare to where I made it with my honours project, this is already better than
last time. This already looks to be useful for my personal use-case and some
friends already mentioned that this might be useful for them.

This project will 100% be taken further, I hope to be able to make something
useful, and potentially in the future I might even be able to work out some good
way to monetize it and turn it into a simple one man startup.

P.S.

No time to proof read this, really sorry. Im too busy with the holidays, already ignoring people I’m staying with. Will have a look at this tomorrow if its not too late.

Will also write up some documentation and make a demo video for this application.

P. S. Finally got around to record a quick demo vid

Yes ik, the login details appear in the vid… Go nuts :wink: