How and Why I Built StoryTracker - A Web Application for Fiction Authors to Track Their Stories
My name is Nick Pickering. I am a software developer based in Jacksonville, Fl.
I obtained my Bachelor's Degree in Computer Science at the University of North Florida.
I am a constant learner. I'm currently enrolled in courses at Udacity and Coursera in the fields of Artificial Intelligence and Machine Learning.
I am a proud father of a six-month-old son, and a loving husband.
The Problem I Wanted to Solve
Four years ago, not long after our wedding, my wife began exploring the idea of writing a fiction series. She worked day and night filling notebook after notebook of intense detail about this massive, fantastical world.
At the time, I was studying to obtain my Computer Science degree at the University of North Florida. As she explained her amazing world to me, I began to see relationships. I saw objects — I saw properties, information to be categorized.
I rifled through a few of her notebooks, with her permission of course, and found pockets of information on corners of pages, sometimes upside down, with sketches, dialog, and character traits tossed just about anywhere on the page.
I wanted to develop a project that she could use on her laptop to organize this information. The ability to search and find details quickly would be important, so that when the novel was complete, she could be confident that her characters, her story, and her world were consistent and complete.
What is StoryTracker?
StoryTacker is a web application where fiction authors can sign up to track their stories, characters, and novels.
In StoryTracker, there are three main modules - characters, stories, and worlds.
One of the most complex features includes the Character Relationship Chart, a visual graph of the active and changing relationships between characters throughout a story.
I also developed a feature which allowed you to tag any of the main object types with any of the other objects. For example, Character A could be tagged with World B. Then, the two objects would appear listed under each profiles.
I took advantage of jsPlumb to design an interactive graph chart feature.
The Process of Building StoryTracker
StoryTracker was a massive effort - I started early discussing and prioritizing features, including designing wireframes and early database designs to support the planned pages. As features became tangible, I'd send them to my wife for her thoughts - and she had plenty of them. After a year of reviews and refinements, StoryTracker was ready for prime time.
In hindsight, StoryTracker was very much a Waterfall development effort. There was no strategic planning or schedule. I worked on whatever feature I felt was most interesting or most important at the time.
Because I was in university and working full-time, StoryTracker's development took place early in the morning. I'd get up, finish my workout, and spend at least an hour each day tweaking features and preparing StoryTracker for a global launch.
On the technical side, StoryTracker involved developing a custom PHP module framework that allowed me to contain and later customize individual components in the system. This allowed me to develop StoryTracker as a SPA (single page application).
I launched StoryTracker and began the marketing and promotion process. This involved taking it to Twitter, getting involved with groups like NanoWrimo - a month-long writing competition, and much more.
Challenges I Faced
One of the more complex features of Story Tracker was the visual Character Relationship Chart. This involved implementing a jsPlumb container.
jsPlumb is a library for developing interactive visual graphs. StoryTracker allowed users to add their characters to a graph and then connect them to help visualize romantic, platonic, and antagonistic relationships among each of the characters. All of this data fed back into the characters' profiles.
Getting the user interface and user experience just right was probably the most difficult technical challenge I faced working on this project. Often, when working with third party code, you have to go through a trial-and-error process to determine how the code behaves. Documentation at the time was somewhat lacking. In the end, it took nearly three months to get the feature to where I was proud of it.
I also faced non-technical challenges working on this project. Once the project was completed, I launched and began the marketing and promotion process. It was surprisingly difficult to find users to try my application, even for free!
I developed what I considered to be a vital tool for fiction authors' workflows, but no authors were biting! I saw my wife enjoying and approving of the product - how could others not see the value there as well?
After months of staying involved, our user base slowly grew. We gained a lot of feedback and made tons of improvement based on this feedback. It was a painstaking process for a newbie in the world of marketing.
I learned an unthinkable amount in almost every corner of product development.
I also learned a ton about database normalization, PHP performance analysis, product design, mail servers, user experience, and the list goes on.
Tips and Advice
In order to complete a project, you really have to stay motivated over a long period of time. I recommend building a project that you are truly passionate about — a project that keeps the neurons in your head firing. Without that passion and drive, projects are doomed to stay on the back burner.
Final Thoughts and Next Steps
StoryTracker was a huge turning point in my development career. I grabbed the bull by the horns and let it carry me for miles.
I've decided to discontinue StoryTracker in order to pursue other projects at this time. StoryTracker, at the end of its run, had about 30 regular users.