Creating the Tome - My Final Project for Flatiron's Software Engineering Bootcamp
Published: 2019-11-22 23:33:02

I graduated from Flatiron's Software Engineering Immersive just a few weeks ago, at the end of October. I thought I'd lay out my process behind choosing and implementing my final project - The World Builder's Tome, or just Tome for short.

We were encouraged to start thinking up app ideas from week one, and I tossed a couple around in my brain.

I knew I wanted to create something related to my own passions, that I personally found interesting, and that I would actually use. I figured if I would use it, there's at least a market of one out there!

I love to crochet, so I thought I could maybe make something related to that, but really couldn't come up with any concrete ideas. A shame, since crochet and knitting share a lot with coding, believe it or not! A topic for another time.

For a while I was sure I had it - I wanted to make a social media app specifically for your pets. I still think this one is a fantastic idea and I would totally use it - like Instagram but only for animals. You make accounts for all your pets and people can follow your pets. You'd end up with a feed full of curated animals being cute all the time, and you can share your animals being their animal selves as often as you want. But I digress. I decided against this, since I would essentially be making an Instagram clone - the only difference really would be in the content.

The last area I was dabbling in was Dungeons & Dragons (DnD). I play and I also DM (For those not in the know, DM stands for Dungeon Master, the person who runs the game for the group), and am always on the look out for handy or interesting tools to help with gameplay, on either side of the DM screen. I had already created a sort of character sheet application for an earlier project, albeit tied to a specific adaptation of DnD, so I wasn't particularly interested in just creating a character sheet app. DnD Beyond has that pretty well covered, and I didn't feel I had the time to refine a creation of my own to the point where I would start addressing the improvements I think DnD Beyond needs. In the end I shifted away from the player's perspective and towards the Dungeon Master's. 

So I thought to myself, what tools do I wish I had for creating stories and running sessions? I immediately thought of my notes. I have struggled long and hard with just how to organize my notes on creating my home-brewed world. There are notes on the world itself, notes on characters, notes on events, notes on the adventure arcs I will bring my characters through. The closest I have come to having a satisfactory system is using Microsoft OneNote. Even there though, the system is fairly limited for my purposes. I want something specifically geared towards world and story creation, that will allow me categorize notes as particular things and connect them in specific ways. And so, The World Builder's Tome was born.

While I have ideas of expanding the model in the future, here is how it currently stands. A user can create "Worlds," which serve to represent an RPG campaign, or if you were to use this for something like novel writing instead, it would represent a novel. 

Below that are "Stories," which represent campaign arcs or novel chapters. Attached to each Story are "Notes" which are where the real meat of story creation would take place. If I'm planning out an adventure, the Notes are where I will brainstorm for what might happen next, take notes on what happened each session, etc.

The key part though, comes with Characters and Locations. Within each World, you can create as many Characters and Locations as you want. Each has a description and a collection of images attached. And then, you can attach these Characters and Locations to the stories. So while Characters A-F might exist in the World, I can make a cast for the story I am working on with only Characters C, D, and F. 

I want to add the option of attaching Notes to just about every model, to expand the room for creating content. I have also considered including one higher level of organization, in case someone wants to use the tool for multiple novels in a series, or multiple campaigns in the same setting. 

Below is the model as it currently exists. As you can see, in order to get the Characters and Locations to relate to Stories and Worlds both in the way I wanted, I had to make a couple of join tables.

![a diagram showing the models used for this project](https://res.cloudinary.com/dwfqeeh5f/image/upload/v1574452808/Blog%20Images/tome_models.jpg)

In a future post I hope to lay out some of the first steps of creation and the tools I learned along the way, so stay tuned!