Monday, June 21, 2010 | 2:24 AM
Back in April, we ran a challenge together with Mashable, asking developers to make fun and useful extensions. We saw a lot of great extensions come out of it, like WaveTube, Poker, Wave Transformer, and more. Now, I want to take some time out to explain how an open-sourced Wave robot made it possible to run the contest entirely in Wave, from the submission to the voting.
1) Submission Wave
The process is all kicked off by the creation of a new submission wave.
To submit an entry, developers would install the Mashable Submitty extension. They then clicked 'New extension submission' in the New Wave menu, and watched a robot populate the new wave with a submission template. The robot does this by responding to the WaveletSelfAdded event, and appending text, form elements, and a gadget. The text describes the submission process, the form input elements let the developers give the robot information in a structured way, and the gadget manages the flow of submission.
2) Installer Checking
The robot helps automate some of the more tedious aspects of the review process, like checking an installer is valid.
When the developer is filling in the wave, they specify the URL of the installer XML in one of the input elements. When the robot sees a URL in that field, it grabs the XML, and parses it to look for all the required fields. If there are any errors, it reports them in an inline blip, and if not, it inserts the installer element inside that blip. By doing this, the reviewers can easily install the extension from inside the wave.
3) Workflow Gadget
The workflow gadget helps manage the sequence of steps, and let some participants move the sequence forward.
4) Gallery Waves
The robot automates the process of creating individual waves that are rich in content, and of creating one central table of contents wave.
After the extension is approved, the robot starts by creating an individual wave about the extension - inserting the title, description, installer, a ratings gadget, and a sharing gadget. Since gadgets don't have access to the wave content around them, the robot injects the extension name into the state of the sharing gadget so users can easily tweet about it (e.g. "Checking out Requesty- http://www..."). Next, the robot fetches the table of contents wave using the Active API and appends an image and links for the new extension.
All in all, the Submitty extension helps automate a multi-step process in Wave while still allowing for freeform discussion. In the submission waves, we would often go back and forth with the submitter when trying out the extension and start up private replies to discuss the status of the extension with just the reviewers. In the gallery waves, wave users would report bugs and request features, and on the discussion wave for the most popular extension, Mr. Ray, they even got into a passionate discussion about the future of wave.
If you're interested in running a contest in wave or employing a similar workflow for your own use, check out the code for Mashable Submitty from the samples gallery. Let us know in the forum if you have any questions.