In the blog post for my last portfolio project, I wrote a lot about how much fun I had while working on it. Unfortunately, I think I might be singing a slightly different tune for this iteration.
Don’t get me wrong, I still enjoyed getting to build something completely from scratch, and it was awesome to get to put the knowledge I had gained to the test. But to say that this project was a much bigger hurdle is an understatement.
The biggest lesson I learned from this project was the necessity to do plenty of planning beforehand. I had a general idea of how I wanted the app to function and wrote out a few notes before beginning, but I would have benefitted from mapping out each page and relationship a little more meticulously. Instead I found myself on multiple occasions getting worked into a corner because I hadn’t considered how a certain feature was supposed to function, or relate to another aspect.
My project this time around was to build an app to be used by personal trainers in building exercise plans and having a way of communicating those plans to their clients, called “Train-Tracks.” Halfway through building this, I realized that I had ignored a pretty big issue: I had wanted the plans to display exercises per day, and I wanted the exercises to be dynamic in what days they could be performed. This meant that I had to somehow save the days an exercise was performed only when they were assigned to a plan and not as an actual attribute of the exercise, as I had originally set it up. After a lot of brainstorming, it eventually ended with me performing a huge overhaul of the structure of the databases and their relationships, but I finally was able to get it working how I wanted.
Overall, I’m still pretty happy with the result (despite it’s aesthetic presentation. It took a lot of self control to not create some kind of css style-sheet because this thing is not pretty.) I think it’s a pretty cool app, and it’s cool to think that I was able to make all of it on my own!