Booking operations
Customers can search rooms, create bookings, pay online, and view booking history from one flow.
A multi-role platform for online booking, front-desk operations, billing, payments, room management, and secure access.
Stripe checkout with invoice records.
QuickStay is a PHP and MySQL hotel management system that brings reservations, room availability, billing, and user roles into a single workflow.
Customers can search rooms, create bookings, pay online, and view booking history from one flow.
Clerks and managers can handle room allocation, walk-ins, check-in, checkout, invoices, and reports.
Quick context, ownership, and current build state.
Bookings, room state, payments, and front-desk actions stay inside one shared system.
Reservations, invoices, services, and payments stay linked instead of spreading across separate tools.
UI, PHP booking logic, MySQL structure, and Stripe checkout all belong to the same project build.
Usable today, with webhook verification, notifications, and admin responsiveness as the next polish layer.
Stack grouped by responsibility instead of a flat tech list.
HTML, CSS, and JavaScript shape the portfolio narrative, the customer-facing journey, and the role-based workflow presentation across the page.
Reservation flow, invoice creation, session-based login, and stay lifecycle handling run through PHP.
MySQL keeps rooms, users, reservations, invoices, payments, and company-linked bookings in sync.
Stripe handles payment sessions while prepared statements and CSRF checks protect sensitive requests.
Apache and XAMPP provide the current environment for developing and running the project locally.
Hotels that rely on separate tools for bookings, billing, and staff access create friction at every handoff.
When online requests and front-desk bookings are not synced, staff can accidentally assign the same room twice.
Invoices, services, discounts, taxes, and advance payments are easier to lose when they are handled outside the booking flow.
Managers, clerks, customers, and travel companies need different tools, but the same source of truth.
All booking operations, billing, and staff workflows unified in a single system.
Search, booking, payment, invoice, check-in, checkout, and room status remain linked from the first request to the final bill.
Manager, clerk, customer, and travel company users each land in the correct workspace with the right permissions.
Front desk and online workflows use the same booking records, so staff can see availability, payments, invoices, services, and guest movement without switching systems.
These cards explain the operational improvements the system is designed to create when bookings, billing, and permissions stay connected.
Availability stays tied to the reservation record, so online requests and front-desk actions are less likely to compete for the same room.
Room charges, services, taxes, discounts, and advance payments stay in one invoice path instead of being reconciled manually later.
Managers, clerks, customers, and companies can operate on the same booking data without exposing the same actions to everyone.
Controls rooms, services, reports, staff workflows, billing, and company accounts.
Handles front-desk bookings, check-in, checkout, reservations, services, and billing.
Searches rooms, books online, pays through Stripe, and manages reservation history.
Creates group bookings, assigns guest details, and manages corporate billing.
Grouped capabilities, not a long checklist.
Guests and staff move through the same live record, so booking context does not disappear between the first search and final checkout.
Managers, clerks, customers, and company accounts land in focused workspaces instead of a noisy shared admin.
Date filters, guest count, room type, and room state stay visible inside the booking flow.
Clerks can move from reservation lookup to room assignment, service edits, and checkout without losing the stay record.
Services, tax, discounts, and invoice totals stay linked to the reservation instead of drifting into side notes.
Choose dates, guests, and room type.
Reservation and invoice are recorded together.
Checkout is handled through Stripe.
Search, filter, and review booking records.
Assign room, confirm arrival, and add services.
Finalize invoice and update the room status.
Follow the stay record, then surface the risky edge cases.
That keeps availability, invoice growth, payment status, and room release understandable even when the stay changes after booking.
Guest or company, dates, room choice, and opening status are written once.
Room rate, services, tax, discounts, and advances stay attached to that same record.
Stripe updates the billing path today, with webhook verification as the next trust layer.
Final billing closes the stay and returns room availability for the next reservation.
Check room availability before write time and again before staff assignment.
Abandoned or failed payments should leave the booking pending, not silently confirmed.
Late changes, cancellations, and final billing edits should stay out of customer-facing screens.
Pick a role to open a scrollable set of screens for that workspace.
High-level relationship map only.
Identity starts the booking, rooms supply availability, invoices collect charges, and payments close the stay.
Booking ownership and room assignment remain aligned.
Revenue reporting still points back to the same operational record.
Company bookings and guest assignment extend the core model instead of splitting it.
Security is presented as layered capability instead of a pair of plain cards.
QuickStay separates who can act, how state changes are written, and how sensitive payment paths are trusted so risky actions do not depend on one single safeguard.
Session timeout, HttpOnly cookies, SameSite cookies, and session regeneration help reduce common session abuse risks after login.
Passwords are hashed, SQL writes use prepared statements, and CSRF checks help defend sensitive request paths.
Billing edits, room assignments, and staff-only corrections are meant to stay inside role-limited workspaces rather than customer views.
Solid case-study foundation, a few production gaps remain.
The core workflow works as a case study, but payment trust, guest communication, and secret handling still need stronger delivery infrastructure.
Guests do not receive automatic confirmations, receipts, or reminder messages yet.
Invoice updates should be driven by verified webhook events instead of checkout return flow alone.
Database secrets, API keys, and environment-specific values should move into protected environment variables.
Planned upgrades to move QuickStay from case study to production-grade.
Improve tables, sidebars, action bars, and dashboard density so clerks can use the system comfortably on tablet and mobile screens without losing important booking context.
Send confirmations, receipts, cancellations, and pre-arrival reminders through a proper mail service.
Update invoice state only after trusted Stripe events arrive on the server rather than relying on the return flow alone.
QuickStay now reads less like a visual mock project and more like an actual system case study: clear stack visibility, explicit workflow ownership, cleaner relationship framing, and honest production limitations.
The next credibility jump is external proof: add a project-specific GitHub repository, a live demo or recorded walkthrough, and exported screens from the running application.