The Capstone Project

Tristan Hawes
2 min readAug 23, 2021

For my capstone project for Flatiron, I decided to try and create a complex model structure for a Tabletop RPG organization site. The idea seemed fairly simple at first, just create a site were a user could both have a game that they are running, and have a character that could be in a game. This, of course, was far more difficult to implement in actuality. For the longest time I could not figure out how to get a single object to be owned by multiple things, especially if one of the things that it belongs_to also belongs_to the other thing. With the help of my wonderful Cohort Lead, Nancy, however, I was able to figure out how to properly set up such a relationship between my models and objects. It involved creating multiple IDs for each user, but creating them within the other models. My Game objects all belonged to a specific DM_id, where as the Characters all belonged to their own respective Player_id’s. Each game also has_many Characters and is able to display those Characters and their Player_id’s Usernames to the User with the Game’s associated DM_id.

This relationship network allowed for me to have players look at a DM’s game, and then create a character for said game. This part was tricky, as I had originally tried to create the Character object tied only to the User, but due to my model web could not, as a Character requires a Game to be a complete object.

I will admit that I had procrastinated heavily on this project due to a series of rather inconvenient personal issues that I really should not be using as an excuse, and that led to quite a bit of panicking from me and an increase in stress, which led to me delaying even more, as stress tends to make me avoid things, an issue I do plan to fix, now that I have realized it.

Thank you once more for taking the time to read my blog, as poorly written as it is.

Sincerely, Tristan Hawes.

--

--

Tristan Hawes
0 Followers

An up and coming programmer currently still learning the ropes from Flatiron.