I've created a wiki for the specifications: http://groups.drupal.org/node/20933
Let's keep the discussion going here.
I'm trying to get some feed back from the community so that we can develop a solid event registration system for churches. What are your event registration needs? Below is a brain dump of specifications that I have come up with. Comments? Suggestions? Other requirements? Do you want to highlight the most important/least important things from the list for your church?
Please don't start talking about or debating solutions yet. I just want to get our needs figured out first.
Event Registration/Ticket Sales System Specifications
*Registrations with Cost and No Cost
We should have a similar process (on admin and end user side) for event registration for events that have costs associated with them and those that don't.
*All Events need to record some common data.
Such as: Name, email address, address, phone, number attending, special requests. Anything else? Anything less? (Some events may want a lighter interface - such as just name and email.)
*Each event may need to record specific data.
Such as: The Church Retreat registration needs to know if you will take the bus or drive on your own. The Tech conference needs to know if you are taking the programming or theming track of classes. The Daycare needs to know the ages of the children and if they have any food allergies. Etc.
*Options selected effect price/product/quantity
The options/attributes selected will effect the price and/or product and/or quantity.
Such as: Choosing a different seating section (orchestra, balcony, etc.) for tickets effect price. Buying two tickets needs to effect quantity (which will effect price). Selecting this weeks show or next weeks could change to an entirely different product.
*Multiple person registration
Optionally need to be able to register multiple people: yourself and your spouse. Your entire youth group.
*Quantity/stock tracking
Need to be able to automatically close registrations/ticket sales based on number of tickets sold. Need to be able to manually adjust stock in case tickets are sold or given away in other ways.
*Admin register without paying
An admin needs to be able to enter data for those who filled out paper registration and paid by cash/check.
*Optionally allow a "will pay later by check/at door" option, where registration can be completed and saved without paying.
*Discounts for certain people. Special code for friends and family to get 20% off. OR For a congregant in financial need, the church will often cover most/all of the costs to attend some event. (Perhaps the same as "will pay at door" option.)
*Discounts based on time of registration (early bird) and number of registrants
*Need to manage status of ticket/registration.
Status: Not Registered. Not Paid. User began a registration... but did not pay. (Should these records be deleted?)
Status: Registered/Paid. Once credit card processed, system needs to update status to paid.
Status: Registered/Unpaid
*Saving and Reusing Registration Data
If the user is a registered user on the web site, we should store basic registration information (address, phone, email, etc.) to make registering again at a later date a much easier process. Should that information be stored in their user profile? Could the info from their profile populate/be the default for the registration page? How would that work with registering multiple people?
*Conference Admin - Reports
List of Names of people to attend with status and other attributes. Other reports?
*Confirmation Emails
User gets an email confirmation containing all registration information and unique event information ("Thanks for registering for this conference. Be sure to pack your pillows this year because...")
*Additional reminder emails
Admins can send out reminder or alert emails to all who have registered.
*Optionally Conference Admin gets emailed notifying of each registrant.
*Question: Should we force users to be a website/Drupal Registered User to register for events? Anonymous users register?
*Event Description
Need to include a lot of information (many fields and taxonomy) to describe event such as general description (Body), begin and end dates, image field, PDF attachment of schedule, etc. Taxonomy/categories for group/dept/ministry to which event is related, topic, etc.
- Simple as possible process for end user to register
*The easier to create a new event the better.
I'm worried that most clients won't be able to create a custom content type with custom fields, then create a product with certain attributes, then go into another module and link the two together... and have to repeat this process for every event! Also I'm concerned about accumulating too many custom content types and/or products, if we need new ones for each event.
*Tickets - Print online. Print confirmation page. Option to mail? (This isn't necessary for any of my clients (so far) but it may be important for others.)
*Sign up for certain roles at an event - Not as common of a requirement, but some events need people to sign up for roles such as: One leader, One host, Two setup/cleanup, and at least 10 attendees to have an event.