I have to start off with the biggest surprise to me: that his project was much more fun than the first one. I think it was because the real-time feedback of using the program as I built and seeing the functionality grow after each controller/validation/CSS change really struck a chord with me. This biggest challenge to finish this project was getting started. My family and I took a two-week vacation to see where we would be moving for her new job and we were so busy during that I couldn’t even turn on my laptop, let alone allocate any brain power to thinking about this project. So, once we got back, and I sat down at my computer, I felt like everything I had learned flew right outside my head. It was a stark lesson for me–no matter what, do not go more than a day without doing some amount of coding.
As I said though, once I warmed up and started going over the requirements for the project, the outline for it fell into place. My first project was a scraping program for online D&D games, so I thought that a way for someone to manage the characters they use for that D&D game would be a logical next step–“D&D Character Repo” was born.
One of the nice things about this module is the logical consistency amongst the programs. With CRUD, Restful Routing, and database management, the outline and schema of a program like this was easy to sketch out. I was able to get most of the functionality together in two days, and the biggest frustrations came from CSS and learning a simple browser cache clear would allow my changes to main.css
to be reflected in the program.
My biggest steps forward in this program though were actually fundamentals. The step-by-step nature and forgiving error messages from Sinatra provided me more opportunities to stretch my own problem-solving techniques in my code than exercising any Google-fu for similar issues.
Altogether, I am excited for this project and already have some ideas for new stretch goals for it if I need a break from Module 3: (1) create a campaign
class with a has_many
relationship with characters
and (2) increase the data for characters
to include things like a background, personality, and essential equipment/spells.
Here’s to the next step in my software engineering career goal.