In The Beginning...

I've worked on a number of different projects in my career. Many have been school projects with students during my time at RIT. Some have been projects during my tenure as Webmaster/Chief Engineer at WITR. Countless projects for my employers.

But a lot has changed since I built that first website so long ago. I've grown both as a person and a developer. Amazing new tools have come out in recent years to streamline the development process. New paradigms in web development have take the community by storm. And I have personally learned so much in the past few years from testing to architecture to design and everything in between, that I still can't figure out how I've managed to cram all of it into my brain!

And the learning doesn't stop! Which is why I decided to write this post. There are so many new technologies and tools that I want to explore, that I want something to bring them all together. I want to understand how to fit all the pieces together. How to take a Rails app, integrate it with Backbone, design using Sass/Compass, create extensive tests, architect RESTful APIs, manage everything using Grunt, and run it all under Vagrant provisioned by Chef. There seems to be so much that can go into developing a full web application that it almost takes the wind out of you! But I want to give it a shot.

The Project

I have decided that I really want to learn all of these things. Not only would it make me a well rounded developer, but it will be fun!

And so, with the new year, I decided, for the first time in my life, to give myself a New Year's Resolution. I'm not only going to learn how to use these tools, but build an app that proves I can develop with them.

The project itself is something that I feel can be complex enough to really challenge me, useful for not only me, but others, and is interesting enough to keep me engaged. And being the nerdy guy I am, I thought, what's better than a Dungeons & Dragons Web App which I have dubbed the Forge.

History

The idea first started in an iOS development class I took at RIT. I created a character sheet app for D&D Next, since that's what my friends and I were playing at the time. I thought it would be fun and useful. In the final questionaire for the app project, there was a question that intrigued me: "Hypothetically, what features would you add to your app in the next version?"

I think the question was geared toward a new app feature, like adding notifications or something. But I took it to an entirely different level. I thought about having a central website manage all the content, so that you could access your characters from the web, Android, iOS, Windows Phone, whatever. It's not a stretch, people build Web APIs all the time. I haven't until recently, and it wasn't very extensive.

Every since then, it was something in the back of my mind. A project I always wanted to do, but never committed to doing. Now, I will.

Moving Forward

So why write about this? Well, mostly it's just for me. This is a way for me to express my thoughts about this project I plan on undertaking, as well as keep track of them. But hey, if other people find what I write of some importance, who am I to deny them? I mean, you're reading this, aren't you?

Every step of the way, I plan on documenting my ideas, decisions, and progress, keep a developer journal of sorts. A post of why I might choose Marionette.js over Ember or Knockout. Something about a new feature I discover in Laravel. Whatever. If I found it useful, someone might too. Plus it allows me to solidify my understanding of whatever I happen to have done.

I'm excited to get started, and share my journey along the way.

Until next time...