Fit Tracker
Fit Tracker was built for my wife and I to track our food. We would get some inspiration and decide to eat healthy and get fit. Our original method was a Google sheet. This was good for tracking our measurements as we only used that once a week but our food we looked for every day. To make life easier I made a Laravel web app.
Body measurements
The app has 2 main sections. The first part I built was to track body measurements. We would weigh and measure ourselves each Sunday. We could look back on our previous measurements like the Google sheet but I also added a little graph to visualise the results.
Food Tracking
The other part of the app was to plan our meals. The initial way we would do this, on the Google sheet, was to have a shared sheet that we both had access to add dinners we might like to cook. The app started out a little different.
I made the app as a single person logging in to add meals. It wasn't until later that I realised I had missed the sharing aspect. The first build had a "Food Plan" for meals and their calories could be added. My aim was to mimic the Google sheet with a calorie goal for the day.
I then moved on and thought I would like to reuse these meals instead of re-writing them every time. I made a "Recipe" section that would hold that information. I made the recipes hold more information just like a recipe book so I could add food from around the internet without having to look them up again.
Next, it was the sharing of meal plans that I had to tackle having not thought about it until this point. Team functionality was included so meals could be sent to another user on the same team. The meal would appear in the other users plan. This made life a lot easier as my wife and I could think of something to make and add to the plan for both of us.
The last step for now was "Templates". If we came up with a 2 week plan filled with breakfast, lunch and snacks we wanted to be able to replicate this to be used any time we wanted. I made templates to make this happen and again it made life a lot easier as we did not have to start fresh every week
What did I learn from this?
I did not plan this project correctly. I started out in the construction stage as I just wanted to build.
I use Excalidraw to plan out most of my project's basic wireframes. I did use this for Fit Tracker but started with the ui then when I went to add functionality like the sharing of meals I had to re-build some sections.
The database structure was a last-minute thing at the end. I had to go back and fix the migrations as I had changed some field names and types here and there. This would not have been much of an issue but I went to change some ID types to Ulid's and the wheels fell off.
I learnt to plan out better. I am glad I came up against this issue. I am usually great at planning, I have plans for everything, but the database and data structures must come first. After Fit Tracker I started on Trip Log and designed the database first. It made for a smoother experience.
Final thoughts
This app was created to make life easier for myself and my wife. I started out full of excitement to play with the new thing but have since fallen off the fitness bandwagon. I keep telling myself to start again and maybe starting with the meal plan in this app would be a way to start that.
I always try to build things with someone in mind. This happened to be my wife and I so the customer was easier to understand.
I had a lot of fun and learnt some new techniques while building Fit Tracker. I encourage fellow developers to build solutions for issues they are having.