You are here

HotelFoo.com

hotelfoo's picture

From Idea to Launch in 13 Days with Drupal

HotelFoo is a community
website for traveler reviews of hotels in China. It contains reviews
for hotels in addition to contact information, maps, photos, and room
reservations. Our aim is to be the best place to find information
about accommodation in China. We picked Drupal because Drupal solves
several difficult problems.

Website Development Express

We launched HotelFoo 13 days after coming up with the idea for the
site. Drupal made this possible with its wealth of built-in features
including user accounts, site search, form generator,
easily-customizable UI theme system, and content management features.
Third-party add-ons written by the vibrant community of Drupal
contributors satisfied most of the remaining requirements. For
example, it was not necessary for us to write our own hotel rating
system because there is already a
pair of high-quality
contributed add-on module projects which implemented the functionality
we wanted out of the box.

Ride the Tiger (or Peace of Mind Through Open Source)

"Given enough eyeballs, all bugs are shallow." —Eric S. Raymond

Drupal's large community, robust security process, continuing
support of existing releases, and automated minor version upgrades
allow us to focus on the specific requirements of our site, knowing
that the more general components are already under the watch of "many
eyeballs". One day after we started development on HotelFoo, a new upgrade to Drupal 6 became
available, fixing a critical security vulnerability. We switched
to the upgraded Drupal version and work continued without any hiccups.
Since that time there have been two more security patch releases, and
both upgrades have also been fast and painless.

Scalability with Vertical Partitioning

Drupal's strong support for standards like XMLRPC and RSS make it easy to architect a
distributed application, with different functionality partitioned
logically onto different machines or even different programming
languages. We initially launched the site on an inexpensive shared
hosting plan, which was made possible by Drupal not requiring any
non-standard long running server processes. However, this required
that our aggregation service run on a different computer. Drupal's
XMLRPC server made this easy. We have since switched to a VPS for
other reasons -- read more about the issues that caused this change
below -- the vertically partitioned division of server load should
help us scale up to higher loads in the future.

Nuts and Bolts

HotelFoo launched with these core modules: Comment, Content
Translation, Database Logging, Locale, Menu, Path, Upload, Search. We
started with these contributed modules: Comment RSS, Fivestar, Voting API and Forward. We developed our own
custom modules to implement the rest of the functionality on the site,
and designed our own custom theme.

Performance and Hosting

As mentioned above, we launched HotelFoo on an inexpensive shared
hosting plan. Two requirements forced us to upgrade to a VPS. The first was
having a dedicated IP address which is not blocked in China. The second was
faster search result pages. Drupal's core search module has some known performance issues. The
most commonly suggested solution is to switch to a dedicated full text
indexing search engine like sphinx or solr. We chose to go with sphinx, which was easy with the
contributed Sphinx search
module. These search engines are not allowed on most shared hosting
plans. We ended up migrating HotelFoo to FsckVPS which we have been
satisfied with so far.

Want to know more?

You can follow us and stay in touch on the official HotelFoo blog, where
we will continue to share our experiences.

Taxonomy upgrade extras: