SidDB is a project I'm working on in order to facilitate the growth of a live-action role-playing game in which I take part, Sidereus.
Previously, all character updates and "logistics" needed to be processed by hand, and were stored in locally stored Excel spreadsheets. Now, however, this approach has become too slow for the number of players registering for these events. Rather than simply hiring more office help, it has been clear since the game's inception that going completely digital was the only way to go. Until this point, we felt that the game's rules were too complex to completely convert to an online database without setting ourselves up for a complete rewrite every time the major mechanics got tweaked.
Because the game desperately needed this shift, I decided to research my options and to take the plunge; this research led me to Node.js. Having previously only dabbled in Ruby on Rails, I didn't have a good sense of why a true web application couldn't be bult "the old way", in a good old LAMP environment. Certainly, my goal could be achieved with such technologies, but the end result would not be expansible or maintainable the way my Node.js project is.
Node.js with Express, Jade, Locomotive, Passport, and Mongoose is a dream to work in. I feel like I can simply decide that something should work a certain way, and I'm able to go make it happen. New feature? No problem. Need to rearrange my model? No biggie (at least until I get live data in the system). Working with these technologies is freeing; I actually spend my time developing, rather than fighting my platform.
- Interactive character creation
- Character updates - complete with draft functionality
- Character submissions to be approved by admins
- Character properties (traits, flaws, skills)
- Crowdsourced data entry of missing properties (approved by admins)
- Event management - general information, dates, and plot
- Cabin reservations for events
- Character update/plot/crafting/spell submissions associated with an event
- Character spellbook management
- Admin interface for approving character submissions and responding to plot submissions
- Announcements, notifications, messaging
- Much, much more!
While far from being a complete picture of development or the project's current state, I have put the
source code for the prototype version on github: SidDB
Not too shabby for my first crack at Node and MongoDB; my schemas are a lot cleaner now, though.