Early last summer my business partner approached me with a challenge: could I create a program that would allow her to collaborate remotely on a short video storyboard with a client? She’d done some looking and found nothing to suit her needs. I started in, eager to do some full-stack development, and produced a program that would allow creation of a scene-by-scene storyboard, with form inputs for the various pieces of information and an area in which to sketch (that last using wPaint by Websanova, which draws with the HTML5 Canvas element). New scenes can be inserted and existing scenes can be rearranged, deleted, and collapsed.
It was a marvelous challenge. We started with no system for users; we just hid the whole page behind password access. I subsequently added a user-login system which is functional but incomplete in the sense that the only way for two users to share a storyboard is for the sysadmin to manually add permissions to the database. There is, however, an access locking mechanism to keep people from overwriting each others’ changes repeatedly, and an autosave that updates the session to keep accidental reloads from erasing changes.
Except for the drawing area I built it from scratch, learning PDO, password recovery systems, and JSON along the way. It’s far from complete and what’s there could use some refactoring (in particular to get more DRY), but I’m quite proud of it and glad to be putting it into the world: Storyboard on GitHub.