Carnival custom module development
June 4th, 2008
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:
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:
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.
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.
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.




Comments
Post new comment