So, let’s talk about technology.
Unfortunately, I don’t control the server I’m using (I have a home linux server, but I want this on a more robust site than my home Internet). That puts node.js out of my reach for now, but I’ll leave it as an option. So instead of learning something new, I’ll go with something I’m comfortable with on the server, and that’s LAMP. Since I don’t want this to be a big drain on my time, I’m also going to use CakePHP since it’s what I’m using at work, and getting more familiar with it just makes me better at work.
I don’t have any illusions that PHP is the best web programming language, or that Cake is necessarily the best library to use (or that I really need something as hefty as Cake for this project). But what I do know is, that when I look at the skills of the programmers (aka: me), this is what they know the best. I’ll be more productive this way, and until there’s some technology requirement to do something different, I’ll keep with it. I suspect we may refactor away from cake at some point (and perhaps away from PHP), but for this beginning bit, I’m sticking with this as the backend.
For JS, I’ll be using the jQuery library. They’ve already got a lot of the animations, drag and drop functionality and other bits that will make this pretty easy. I looked at a project called fabric.js which is a really nice canvas toolkit. It has some bugs with it’s event system, mainly for things that are stacked on top of each other. It’s fixable (I’ve looked at it and think I might be able to do it.)
On the other hand, jQuery uses the dom to move things around, and I’m familiar with that already. Again, this may be a temporary decision, and I may borrow some techniques from fabric as they’re needed. The goal here is largely OSS while running a service, so I’ll release anything I make — so I figure a little borrowing is okay.
I’ve also got a html framework that works with html5, incorporates a good clearfix and tools which bring all the different browsers in line. If I was going to support ie6, it’d work too. I need to make sure that I’ve got links to it in my template, and clean the templates up a bit for this project, but it’s also freely available.
So that’s the technology we’re going to start with. I need to get a todo list updated on the site, but on Monday we’ll start looking into how we’re going to handle users. By this time next week, people should be able to log in. In two weeks, there should be some basic VTT functionality as we work on phase 2. That’s the plan anyway (and since I need it in two weeks, I better keep to the plan.)