AboutAirportParking.com - Drupal turns a business opportunity into Reality

Last modified: October 17, 2008 - 07:11

About Airport Parking.comAfter two years in existence, About Airport Parking has had a full Drupal overhaul. We moved from an old 4.7 Flexinode setup that an intern made over a month in 2006, to a custom themed, Drupal 5 installation which relaunched June 2008 and has been extended to the present. Highlighted as a reviewed Mashable.com Startup "About Airport Parking.com helps you find the best place to park at the airport with prices, maps, user reviews and more."

AboutAirportparking.com relaunched with a full parking reservation system, complemented with comment reviews, access controlled editing, searchable aiport and parking pages, Google map integration, realtime flight updates, and e-mail and faxable reservation confirmations. With the custom theme, it doesn't look much like Drupal either.

Drupal really stepped up as a development framework with it FormAPI and great modular platform. We were able to create a reservation system, complete with blackout dates, reservations caps, multiple reservations types and Authorize.net integration (pulling some code from the e-Commerce module). Through the great form altering API, we updated the registration process to be streamlined druing checkout and we created a custom search to help our users find the best reservation possible. Check out a Pittsburgh Parking lot for a keen example of it all coming together.

A Tough Choice

For performance gains we created custom content types programmatically instead of through CCK. This allowed us to create many inter-dependent functions between airport nodes and parking nodes without depending on CCK field interactions. The database table structure is a bit simpler than if CCK was allowed to manage the fields. Also, the theming of custom content types as opposed to CCK is much easier.

This might prompt many to jump in with the CCK versus custom content types argument for advanced developers, which can be a hairy subject. Managing inserts, updates, revisions and deletions of nodes through a module is a lot of code to maintain, but since our developers have had experiences managing custom content types, and the node APIs, we didn't lose much time. Also, once the infrastructure is up, adding a new field is not much harder than creating the new database column, and writing a few formAPI lines to update the node form. It is true that our general manager can't add fields through a web interface like in CCK, but that is fine since we developers never trust them to do it right anyway.

One good thing to remember though is that any custom content type can be augmented by the CCK module, so they are by no means exclusive strategies. Shortly we plan to do just this by adding photo support for parking lots, which will be implemented using the CCK imagefield and imagecache modules.

API highlights

Without trying to list every single API or hook call that we used, here are a few that might interest up and coming developers.

Using the mail_alter API we were able to inject a standard header and footer to all out-going emails. Using the Cron Hook we send out nightly email of the days reservations to lot owners, as well as process some cleanup and billing information.

About Airport Parking.comUsing the Profile Alter Hook we are able to present different profile pages to normal users, which see all the reservation information, and lot owners which see tools and reports to manage their lots. Using the theming callbacks, we create a user dashboard that allows lot owners to edit their information, their lot information, links to set blackout dates and by creating re-usable templates, the reporting filters and be brought into the profile as quickly as include another file in the theme.

Our developers made extensive use of the autocomplete callback abilities built into the Forms API to create reports with autofill fields for reservation nubmers or first name/last name listings.

The last highlight is the use of the Confirm form. A great little helper form/API that we used to make sure people wanted to change or cancel their reservations. Matched with a theme function or template file we added in information regarding the reservations before they made the updates. Really, you should be using this. Don't cancel or delete material from your site without a confirmation from the user.

Module Highlights

Yes, all the typical must have modules have been used to create this site like Views, CCK, Pathauto, Gmap for the airport and lot maps, TinyMCE for wysiwyg editing, XMLSitemap, Global Redirect and Meta Tags for SEO help, and Coder and Devel during development. I also wanted to highlight a few other modules.

Since managing the information on hundreds of lots is not practical for a small team, we want to open up teh parking lot pages to be edited by the lots owners. Since their might be one or more lot owners per parking node, we installed and configured the Nodeaccess module. A prefect fit for granting multiple users editing rights to a node.

Since comments with ratings are open to visitors, we were starting to experience some post re-launch spamming. Gladly, Mollom is up to the task of filtering out our spam.

Page Title is a small module that lets you adjust the page title to be different than the regular node title. A good SEO practice. Remember Me helps with better persistent logins and another module that saved me plenty of coding is the MimeMail module. We needed to attach a PDF to an email for our Fax functionality to work, and MimeMail was a turnkey solution for attachments in emails. Brillant.

Where to go next

There are plenty of opporunities to continue leveraging Drupal as AboutAirportParking.com expands. On the road is the eventually integration of the mailhandler module to solicit and accept comment reviews from users who have used the reservation system.

We are also looking at the development of opening up affiliates to use our reservation system, so the Services module looks compelling, or we may simply utilize Drupal core XMLRPC handing.

Then after that, the business side must really kick in a develop more partnerships and affiliate groups. But there will still be ways for Drupal to chip in.

Conclusion

It is true that AboutAirportParking.com will not be the next world changing website, but is a clear example of how Drupal can bring commercial ideas into reality quickly and efficiently.

 
 

Drupal is a registered trademark of Dries Buytaert.