Sinatra project. Putting it all together with Gems.

Posted by Marcos Rodriguez on June 21, 2020

So far I have been understanding most subjects, for the most part. It seems as if I am getting the hang of most of them, and then the labs help for practice. I can’t help but get nervous a bit though when project week comes around. Not because I haven’t learned anything or I am not ready, but because putting it all together on your own is a bit overwhelming. You don’t know how much you’ve learned until you put your skills to the test with a project. I feel like out of all the lessons and labs, our projects are what allow us to learn key developmental skills.

I was feeling a bit overwhelmed when project week came, because I had not fully finished my labs, therefore meaning I was a bit behind, and the last couple labs I was working on really took me a long time to finish and I needed more help than usual. So as you can imagine, I didn’t feel the most confidence going into a project while behind on schedule, and seemingly feeling like I was in a rush. Luckily we get a nice 2 weeks to get it done. That has been a perfect amount of time for my situation.

It took me about 3-4 days just to come up with a project idea. My problem was, that instead of trying to think of a goal and then work my way to it. I was trying to think of the finish line. I was thinking, “how am I going to do this..”, “how is that model going to work..”, “How is this view going to connect with this..”, “I can’t have that as a controller..”. Then luckily I went back and watched one of our instructor’s videos in which he states, “don’t think of a project-based of the requirements, think of your project goal, vision and then create that vision”. That immediately made me change how I looked at it.

I realized I was overstressing myself and had to do little steps, one by one to get to the goal. The first step was to realize my vision. I wanted to create an app where you can sort of creating a list of your favorite games. I had thought of it before, but I couldn’t start any code because I was to caught up trying to meet the requirements in my head before I even started coding. Not Possible.

So then came step 2, building your foundation. I started building out my file tree, of course, you can’t start your project without any direction. I also had to be sure to install the correct gems to get me started. Can’t do much without your gems!

  • gem “sinatra”
  • gem “activerecord”
  • gem “sinatra-activerecord”
  • gem “rake”
  • gem “sqlite3”
  • gem “bcrypt”
  • gem “shotgun”
  • gem “pry”
  • gem “require_all”

There’s a tone more you can use, but for me, these were the main few I know I needed to get started. Even though there are more steps to building the project, this right here is the point I wanted to make, this is what finally awoke me and allowed me to get started with confidence.

Once I installed these gems I realized, it’s just everything we have been learning put together. Now, I know that sounds like a “duh” moment, but it can be kind of scary trying to take on everything at once.

It became so much easier once my brain wrapped around the idea of just breaking down each one of these gems and building one from one. Using them individually in there own useful way. Each one has it’s own use, like puzzle pieces connecting to make something greater. You are doing the same thing as you were in the labs, lessons, or whatever you read about it, but this time you are doing it all together with all your tools.

You can’t build a house with only a hammer, but you can build it with your toolbox full of supplies for every aspect of the job. A hammer and nails, power drill, screwdriver, saw, level, and a tape measure.

Not sure if this seems to resonate with anyone reading, but for me, once I looked through all the gems, I was able to remind myself how the gems connect and how they help with development, it felt as if I was doing any other lab, just connecting the dots.