DEV Community

loading...
Cover image for PetMinder, An Adventure with Sinatra

PetMinder, An Adventure with Sinatra

saramccombs profile image Sara McCombs (she/her) ・4 min read

Ever need to have your best friend run over to let your dog out or feed your cat? Ever need to try and remember what medicines your pet is on while stressed and panicked at the ER vet? Ever just forget how the heck to feed your pet because it is your spouse’s chore? Yup, me too. That’s why I decided to make PetMinder.

PetMinder is a web app that helps you keep track of your pets' care instructions. These care instructions are easily shared with other PetMinder members and can help family members and/or pet sitters stay up-to-date with everything that goes into your pets' care.

Yay! No more feeling like you’re the worst pet parent ever because your brain simply refuses to recall the information you need. PetMinder to the rescue. (insert dramatic superhero music here)

So, big question...Why?!?

First and foremost, this is one of the many portfolio projects required for Flatiron School. I needed a project to demo my skills but that also met the minimum project requirements.

Secondly, I wanted to make something I would absolutely use. I’m still a new-ish Mom. Mom-brain is a legit real thing and being a Mom to a little one that required a lot of special care meant I became a pro at reminders, Post-It notes, Trello boards, lists, etc… anything to help me keep straight while sleep deprived.

What am I most proud of with this project?

I hate to reuse the same answer as the previous project, but its the truth, I’m very proud of the whole darn thing. This project pushed me to learn the tools needed to bring my ideas to fruition. It pushed me past the lessons that Flatiron taught me and into the unknown of possible features, schema design patterns, the magic of Active Record, database efficiency, and how to properly layout a plan of attack for a project of this variety. There was simply so much personal growth with this project.

What made me bang my head on the desk the most?

My stretch goal of deployment to Heroku. I accomplished it but I spent two days of overthinking my error messages, combing through various stack overflow articles, and just pulling my hair out. I was not a happy camper.

Screenshot of a Tweet that reads: "My brain feels like it wants to explode. Changing my DB in my Sinatra app from SQLite to Postgres in order to deploy to Heroku. It does deploy to Heroku but still doesn’t work. Definitely a knowledge gap that needs addressing here but my brain needs a break." with a picture of a man rubbing his temples in frustration.

Aside from that stretch goal, knowing how to best start the project caused my head to spin for a day or so. I lacked experience developing an MVC app that utilized user accounts and couldn’t visualize which models would be the best place to start. I wanted the ability to start testing my routes as quickly as possible but wasn’t sure where the most logical starting point was that would accomplish that. Thankfully, Flatiron has some great cohort leads that are there to help. (Huge shoutout to Jake who doesn’t shy away from my million questions each week and my desires to constantly push the project requirements to learn as much as possible.)

What did I learn, and what would I do differently?

I learned too many things to begin to outline them individually with any semblance of justice that would at all be pleasurable to read. However, I did learn that it’s always a great idea to start each project with a roadmap or a project board, even if they are “small” like this one. With the holiday and family events that interrupted project weeks, I needed more and more time to “pick up where I left off”. This easily could have been prevented with a simple project board, notes, anything really. I embraced this concept with the first project I created but neglected it with this one. I definitely felt a difference.

What is the next step?

Keep on swimming… well, coding, in this situation. I really want to see this project grow. I have ideas and features that I definitely want to implement and use. I look forward to this project being an on-going adventure of open collaboration and personal growth.

Otherwise, my goals are:

  • I need to DRY my code more.
  • I want to implement an invite system.
  • Explore using the gem Pundit.
  • ACCESSIBILITY!!! (This should be higher up on the list but my knowledge of proper accessibility implementations is pretty poor. So I’m going to learn using this project now that it is much more fleshed out and I’m no longer on a deadline.)

Project Link: PetMinder

Discussion (0)

pic
Editor guide