Written in plain PHP on purpose. Every query, every session check and every redirect is in front of you, which makes it the best thing to read if you want to understand what a framework is doing for you.

The customer side searches availability by date and room type, takes a booking and confirms it by email. The staff side manages rooms, rates, bookings, check-in and check-out, and reports on occupancy. Availability is calculated properly, overlapping date ranges, not a boolean flag on the room.