Carnival custom module development

A few years ago, when I was very new to the web development scene, I created a static site for Elston Family Church.  Approximately one year ago I re-launched the site using Drupal 5, complete with many of the well-known modules and a custom theme.  The site has worked quite well for the church thus far.  However, they have an upcoming carnival for which they needed some custom module development.

They need several features:
  • Evite system: church members can invite their friends to the carnival

  • Registration system: where carnival attendees can enter contact information (either before attending the carnival or at the welcome booth)

  • Guessing competition: registered users can enter guesses for a competition (the person with the closest guess wins a prize)

All of these features need to be available to anonymous users, while still maintaining security.  This is how we went about meeting the church's needs:

E-vite system

The e-vite system was designed so that church members can send an HTML email to their friends directly from the site.  The e-vite includes some basic information about the carnival, a graphic to entice the friends to attend and an optional message from the sender.  The evite page is built using Drupal 5's powerful Form API.  Church members visit the e-vite form and enter the following information:
  • Their name
  • Their email address
  • Name and email addresses of up to 20 friends
  • An optional message to include in the evite

Lastly, the church members must answer a simple question to verify that they are indeed involved with the church.  This is to prevent use of the e-vite by spammers.  The form validation checks for valid email addresses and a correct answer to the "spam prevention" question.  After validation is complete, the form is submitted.  A personalized email is sent to each specified receiver, complete with text, graphics and optional personal messages.  Lastly, an email is sent to the site administrator to let them know that the e-vite form was used.  No information is added or removed from the database for the e-vites.

Registration system

All carnival attendees must register with the church.  They can do so before attending the event ("pre-registration") or they can register at the carnival welcome booth.  Again, the Form API was utilized to build a custom registration form.  Attendees enter the following information:
  • Name
  • Age

  • E-mail

  • Address
  • Phone number
  • Family members in attendance

The form validation was designed to check for valid email addresses, properly configured phone numbers, numeric zip codes, etc.  Once validation succeeds, the information is entered into the MySQL database into a carnival-specific table.  Thus the church can have a complete record of carnival attendees.  Additionally, personalized emails and letters can be sent to attendees soon after the event is completed.

Guessing Competition

At the carnival welcome table, attendees will have the option of participating in a competition to guess the number of Skittles inside a large jar.  So a custom multi-step form was developed for this purpose.  The first step of the form asks for the registered name and email address of the family.  Once this information is submitted, the second step of the form provides input fields in which each child can enter their guesses.  Finally, the guesses are entered into the carnival database table.  It is then very easy for the church to determine who had the closest guess.












Comments

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options