src="http://drupal.org/files/issues/hotelfoo-screenshot-400x300-shadow.png"
alt="Screenshot of HotelFoo.com Front Page" />
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.
Comments
The site looks nice. Thank
The site looks nice. Thank you for sharing here and on your blog.
Your website is showing blank
Your website is showing blank page. http://www.hotelfoo.com/