The helpful and interesting aspect of each of these portfolio projects is how I continue to learn more about my own thought processes and how I approach problems, as well as how I can improve in those approaches. During my Sinatra Portfolio Project, I learned the importance of preparation and organizing my ideas prior to working. For this project, the overarching theme was about creating realistic goals.
Going into this project, I had a lofty concept in mind: a cookbook dating app. ‘PlateMates’ was supposed to function in one part as a recipe website where you could add your own recipes as well as view and save other recipes that you liked. The website would recommend recipes to you based on similarities with other recipes you hadn’t saved. The other part was that it would recommend other users who shared similar tastes based on recipe categories or ingredients. Admittedly it was kind of a silly idea, but I loved the idea of getting to build something multi-functional, and I thought it would be an awesome test of building connections between models given all the different relationships that would exist (users to messages, users to other users, users to created recipes, users to saved recipes, etc.)
Learning from my time with Sinatra, I spent a good bit of time mapping out all of the models, their relationships, and how I wanted the site to flow. However, the more time I spent in this stage, the more I started to feel completely overwhelmed. There were so many relationships I would need to create and the sheer amount started to make my head swim. Truth be told I got really discouraged, especially when I struggled with even getting the app started.
After a few hours of self-pity, I decided my best strategy would be to create some more simplistic goals. I would build the user system for signing-up and logging in via Devise. Then I’d build the CRUD for recipes. Then I’d build the profile and recommending recipes. Suddenly this once huge concept started to become much more realistic and tangible. Ultimately I learned that we would be returning to this project in the next portfolio project for Javascript and therefore decided to put the “dating” aspect on hold at least until then. But it was still useful to learn from this project that setting small bites of goals to achieve one at a time is a lot more manageable than expecting to create the next Tinder from scratch.