Flexible fitness logger that works

Hi,
I’m a fresh CS graduate from the uni of Dundee (Scotland). At the moment working remotely as a GO developer (still in training).

So my Devember2021 project idea is actually the same idea I had for my honours project at uni (final year project). However, that project failed because I tried to implement it with micro-services at a time when I did not have any real world skills in this topic (plus add on top the fact that I had to also learn other topics, and other uni subjects that were going on at the same time). So here is me coming back almost making it (almost) from scratch.
The only parts that were re-used were just some authentication code.

The actual project itself is a fitness (or workout) logger that ultimately would be able to be setup by each individual to track the data that they want.
The reason why this can be a challenge is simply because every individual would want to log their workouts differently in their own way (which is why 95% of people would use notepad and pen, and I did too). The reason why I want an electronic solution is so that eventually this would be able to plot the data on charts and graphs.


Tech

  • Golang
  • Mongo
  • Some basic webapp tech (React or Vue…you can tell that im not too thrilled about writing frontend)

MVP v1.0

Input

  • Repetitions
  • Sets of repetitions
  • Changing weight mindset (dropsets)
  • Notes
  • Custom exercise types and other custom data points

Output

  • Historical view of different kinds of data (a table)
  • CSV (maybe?)

Extended MVP v2.0

  • Tags (which would be able to be added ideally on any data, when searched by it)
  • Trends
  • Graphs

Repo link

1 Like

I’ll throw my 2c in here, react is almost as much of a pain as angular, so I highly recommend vue.

1 Like

Was thinking that would be the case ye. But the reason why I was debating React was because of react native. If this is to be done properly, an actual phone app would be needed. But since i hate frontend so much and already am very familiar with js and ts, thought I might as well do Vue because I keep hearing its very easy to pick up.
Alternatively , I could use angular. Actually used it professionally before, but its been like 1 /1.5 years since then and I swear you need to relearn that framework every half a year lol

1 Like
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