Paul

Software Developer and Consultant

Hotel Booking App

Hotel Demo App

I developed this Hotel Booking App as an exercise to help me investigate Statamic—a content management system built on Laravel, a highly scalable and popular PHP framework. I previously clocked 1,800 hours working with Laravel on an enterprise app as a backend software developer. At the time, I had a manager who pushed us hard but also drilled into us the importance of testing and optimization. It was a tough job but left me with a great understanding of Laravel's tools and its capabilities in developing not only websites but apps—meaning programs that can send and receive data to mobile apps, the Internet of Things, you name it.


So when I learned about Statamic, which is a content management system for Laravel, I was intrigued by what it was capable of. So I told a friend of mine who has an amazing place he rents in Mexico that I would create an alternative website for him that he could use instead of Wix.


My exploration took three weeks of evenings, and starting from zero knowledge of the Statamic CMS, I was able to produce a Laravel-powered website that allows visitors to view and book a beautiful stay at Cactus Club. Using Statamic is highly advantageous, as all content is dynamic. This means that rental units can be added or removed, or published, and unpublished. In addition, access to the control panel is protected by login system. Once logged in, an authorized user can augment their rental listing by adding an unlimited number of images, which are displayed in a flexible, beautiful, and responsive image carousel.


Why I Don't Use WordPress (or Wix)


Most people (outside the Laravel fan club) usually select WordPress or Wix to build their websites. These content management systems are well-known and fairly easy to use. The problem with these platforms, however, is their vast limitations. Users will quickly outgrow Wix when they start expanding since its feature set is lacking.

WordPress, on the other hand, is also easy and has all the plugins you could ever want—but they come at a big financial cost.


It was quite the task to find and configure an events plugin and booking app while at the same time achieving the design I was after. During my exploration of WordPress, I ended up spending $2,000 CAD on plugins, themes, and subscriptions.

And this, my friends, is what led me to Statamic!


Statamic is a highly customizable content management system based on a solid software framework—Laravel. It includes many of the features regular users need right off the bat when building a website (like a built-in form builder and built-in no-code ways to create dynamic content).


What's more, the backend user interface (control panel) can be fully customized for the client’s needs, so self-maintenance of the website is much easier.

One of the most interesting features of Statamic is that it does not require a database! Instead, everything is stored as files. This facilitates content control, as each document (or group of documents) has a separate revision history.


Eliminating the need for a database has numerous advantages. For example, let's say you are planning to launch a big event in January. Using the automated revisioning system, a total redesign of styles and messaging is possible without affecting the live site. This greatly assists marketing and content planning teams.


Rental Unit Details


Rental Unit Details

If you click on one of the rental units, you will be taken to the Rental Unit Details Page, where you can:


  • Find more information about the rental unit
  • View one or more photo galleries of the unit and amenities
  • View the booked days
  • Submit a Booking Request

Booking Requests


Checking Availability

When users click "Check Availability," they are taken to the Booking Request Page. There, they can view the availability calendar and select an available date. The smart drop-down calendar will block off dates that have already been booked, preventing double bookings. Once the form is submitted, the user will receive an email confirming that the booking request has been received. The site administrator will also receive a booking request notification.


Administration Backend


Backend viewing a Booking Request

Approving a Booking Request


Once the administrator logs into the backend control panel, a custom dashboard is displayed, listing all booking and contact requests. These requests can then be approved or declined. Once approved, the availability calendar will automatically block off those dates.


Approving a Booking Request