JavaScript Portfolio Project — Flatiron School Retrospect

Joseph Perez
3 min readJan 19, 2021

I am currently an online student of Flatiron School for Software Engineering in the “self-paced” program. As of today, I just completed the JavaScript module where I learned a lot about JavaScript, JSON, and communicating between frontend and backend. This combined with my knowledge of Rails made this project very fun and challenging. My app is called ‘Fitwit’ which has the purpose of generating workouts for the user. This app allows the user to input their name, their split (muscle group target), and the number of exercises they would like to do. The app then takes in their data and the preexisting database from the Rails database to start filtering workouts. First the app takes all the different Splits that exist within the database and pulls the corresponding Split object. Next the app takes the Split object’s ID and pulls corresponding Exercise objects that have a matching split_id. After that, the app scrambles the list of exercises and then cuts the number of exercises the user requested. This is done so there are no repeat exercises within their list. Finally, the app hides the form and shows the generated workout in a todo list so the user has a structure to their workout. When the user checks all the exercises off the todo list, a button appears that says ‘finish workout’ which will give the user an alert message saying congratulations and resets the app.

Throughout this project, I ran into many obstacles that I was excited to overcome. The big lesson I learned during this experience was that there is always another way to do something. You always want to keep your feet moving and know there is always a way to accomplish what you want. I found myself stuck trying to get my exercises and splits to work within a class in JavaScript, and though it might be possible, it wasn’t the only way to accomplish what I wanted to do with my app. As I got stuck trying to figure out just one way to do something, I started to feel discouraged. Once I decided to give up on making it work that way and look at it a different way, it clicked in my brain that I will find success in software engineering by always moving. I ultimately ended up using an array that I was able to pull from without an issue, but I will always keep that lesson close to me so I never feel stuck and can continue to make progress.

I ran into an issue with generating the user’s workout, I kept coming up with randomized lists that would repeat fairly often, which I didn’t want. I looked up syntax, online references, and even forums to see if I could figure out an answer to my problem. I came up short with every piece of information coming to me, though I was making gradual progress. Ultimately, I was generating a list where each item was randomized, but the previous item pulled was still within the list. I believe there was a way that I saw, but it didn’t seem very clean to use and it looked very over-engineered. I then saw a way to randomize a list by just scrambling, which isn’t what I wanted either. That’s when it clicked to combine different pieces of information that pushed me in the right direction, but never carried me there. I used a scrambler on the list and then sliced it to achieve exactly what I wanted, a randomized list without repetition. One of my proudest moments in this project I would say.

All my other issues were minor and took 10 or so minutes to solve each, mostly just styling or form submissions. This was one of the most rewarding projects for me personally and I’m still not sure if I did it completely right, but I learned so much about moving forward with this project. I also realized how much lectures help me. This module didn’t have any lectures to watch (I believe Flatiron School is updating the lectures and I was just passing the lessons at the wrong time) so I felt a little lost at some points as those visuals and explanations are just great for confirming information I had questions about. Luckily, I did find very great lectures on YouTube that some of the leads posted which helped me out a ton. I also sat in on a lecture as well so I wasn’t completely lost.

Can’t wait to see how my final goes!

--

--

Joseph Perez

I am a software engineer working in EdTech. I have a passion for supporting those working hard to get into the tech industry.