Renecades Gameroom: Rails Portfolio Project

Posted by Alex Zdatny on December 2, 2018

Heading into my rails project, I had a much better idea of what I wanted to build compared to Sinatra. I thought about real world apps and how many of which are games that we often play in our downtime throughout the day. Games have always been a great interest of mine so creating an app that would allow users to interact with them fit perfectly with rails. Also, I could challenge myself to go beyond what I had previously done.

So I decided to build a rails app called Renecades Gameroom, which would give users the ability to play games, earn rewards, share their experiences, and climb the leaderboard. Users would navigate to the existing games by searching through the three categories: Board Games, Video Games, or Table Games or create their own custom games to be uploaded to Renecades. I also integrated more of my creative side into the app’s layout and design going back to knowledge and skills I gained from HTML and CSS.

Building out the models, controllers, and views was also much easier than I imagined. This was in credit to outlining each of the files and features I needed as the foundation for Renecades. I started with the migrations and models for users, games, and categories assigning attributes and establishing model relationships. Each user has a username, email, and password as well as a bio, favorite game, number of reward points, and rank associated with their account,

From here, building out the users, sessions, and games controllers became less frustrating as I spent a more significant amount of time working with Rails and studying the docs leading up to the project. However, the moment I tried adding the tokens and achievement features and all of their associated files to the app, I encountered more issues than I anticipated. I became a bit overwhelmed with my app’s structure and over a week or so, coding was a bit chaotic.

I took various approaches to solve this problem, looking back at my notes and the docs and even reaching out to a technical coach. It definitely becomes a challenge when you have more files to keep track of. Even with the smallest mistakes, you need to think of the relationships between each of the models, controllers, and routes. Nested Resources is very much a learning experience because if only one element is missing, it will throw everything off. Adding the OAuth feature was also quite challenging because it wasn’t correcting assigning an id to a user logged in through Facebook properly. I looked back to the Rails lab as a guide to solve this, but in some miracle I successfully solved the issue by modifying the user migrations and cleaning up the sessions controller.

In contrast, creating Renecades Gameroom has been one of the most enjoyable parts of the program so far. I want to thank the technical coaches I’ve worked with over the past few months because it has not only calmed me down significantly, but I’m much more confident in my ability to code and problem solve. I thought about expanding the app even further for users to write game reviews, but I wanted to leave the door open for Javascript.

Renecades Gameroom was not only a lot of fun to build, but the immense hard work I’ve done and skills that I’ve gained over the few months contributed greatly to this app’s success. Moving forward, I want to make sure that I’m not only staying extremely focused, but also taking advantage of all the resources available to me. It’s been quite a long journey, but I’m still going strong. I’m looking forward to Javascript and the many things I’ll create and conquer as I continue to become a web developer.