How to Build a Registration System with Drupal
An overview of badcamp07.org
Tao Starbow
CITRIS
The Center for Information Technology Research in the Interest of Society
UC Berkeley
Why build custom reg system for BADCamp?
- Eat your own dog food
- wiki on groups.drupal.org doesn't cut it
- It puts hair on your chest
- Conference install profile didn't exist yet
My goals for badcamp07.org
- Allow people to register for BADCamp
- Have attendees propose sessions
- Have attendees vote on sessions
- Make the registration process simple
- Facilitate collaboration by organizers
My goals for badcamp07.org (cont)
- Create space for community discussion and boot-strapping
- Demonstrate simplicity, keeping to core Drupal and existing modules
- Show off :)
- Design for growth and future events
- Have Fun (and not spend too much time)
Allow people to register for BADCamp
- Great!
- Over 200 registrations
Have attendees propose sessions
Have attendees vote on sessions
- Mixed
- Only ~25% of people voted
- Ratings not useful
- Enough to get the idea
Make the registration process simple
- You tell me
- Probably the biggest challenge
- Required a couple iterations, custom coding and theming
- Initially ~20% incompletes
- Users are tricky (testing)
Facilitate collaboration by organizers
- Poor
- Ended up using Google Docs and email
- Couldn't generate schedule
Space for community discussion
- Mixed
- Some posts and comments
- Was bar too high?
Use off the shelf parts
- Nope
- Lots of custom programming
- Including patching Signup and tweaking Craqbox
- Simplifying flow (and some showing off)
Show off
- Good
- Popups - hacked Craqbox (not jQUI Dialog)
- Tablesorter - jQuery UI
- Test platform for jQuery UI Backport
- Not universally liked
- "This site is way broken"
Design for growth and future events
- Pretty Good
- Initial design is extendable
- Some parts won't scale
- All doable - but http://drupal.org/project/cod
Have Fun (and not spend too much time)
Standard Modules
- Content Construction Kit (CCK)
- Imagecache
- Google Analytics
- Mycap & Form Store
Standard Modules (cont)
- Organic Groups
- Textile
- Views
- XML Sitemap
Delopment/Administation Modules
- Devel
- Masquerade
- Pathauto & Token
- Poormanscron
- SimpleMenu
- Update status
Registration Modules
- Automatic Nodetitles
- Bio
- Fivestar & Voting API
- Signup!
Signup module wants to be your friend
- Friendly "Signup/Cancel" buttons
- Shows list all signed up
- Can broadcast to everyone
- Custom confirmation email
Signup module needs love
- Needed patching just to run (bad Tao)
- Too many steps for new users
- No way to add users after event closes
- No waiting list
- Inconsistant counting
- Broadcast is questionable
- Can't change questions per event
badcamp.module
- Filling in signup gaps
- Add users after event is closed
- Added custom views
- hook_nodeapi to redo reg flow
- Semi-theme level tweaks
- Screamer block
badcamp_theme
- Note: Don't use identical names for modules and themes
- Mostly colored garland
- badcamp.css & node-session.tlp.php
- Hacked up craqbox.js and css
Lessons Learned
- You can make a friendly, usable reg system with Drupal
- with some work :)
- Leave time for voting
- Apply js effects narrowly
- Email could have been clearer
Lessons Learned (cont)
- Phrasing is important
- Users will make every mistake possible
- There is no such thing as too obvious
- Lots of people want reg systems
Thank You
This work funded by CITRIS - The Center for Information Technology Research in the Interest of Society
Check us out at: http://www.citris-uc.org