Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/OswalSnow/AR-Barber/llms.txt

Use this file to discover all available pages before exploring further.

AR Barbería is a full-stack barbershop management application built with PHP and Laravel. It serves two audiences: customers who book haircuts and beard trims through a public-facing interface, and barbers who manage their availability, schedules, and portfolio from a protected staff panel. The application enforces real-time slot availability, prevents booking abuse, and integrates WhatsApp as an overflow contact channel when no online slot is available.

User roles

AR Barbería recognizes two roles, each with a distinct experience. Customers interact with the public side of the app. They browse available barbers on the homepage, select a service, pick a date and time slot, and submit a booking — all without creating an account. The system limits each customer to two active appointments at a time to prevent spam and guarantee slot fairness. Staff (barbers) authenticate via Laravel Breeze and gain access to the staff panel. From there they open or close workdays, review their daily appointment schedule, cancel bookings, and manage their public portfolio of work photos.

Key features

Real-time slot availability

Available time slots are fetched dynamically based on the barber’s open workday and existing appointments. Slots are presented as a visual grid; selecting a date updates the grid immediately via a live API call, so customers always see accurate availability without a page reload.

Service selection

Customers choose from three service options when booking:
  • Corte — haircut only
  • Barba — beard trim only
  • Ambos — haircut and beard trim combined
Each service maps to a different appointment duration, which the slot-availability engine uses when calculating free windows in the barber’s schedule.

Anti-spam booking limit

A single customer (identified by name and phone number) may hold at most two active appointments across the whole system at any given time. Submitting a third booking while two are already pending returns a validation error and blocks the reservation.

Staff dashboard

Each authenticated barber has a personal dashboard showing:
  • A date picker to navigate days
  • Controls to open or close the selected workday
  • A chronological list of appointments for that day, including customer name, service, and time
  • One-click cancellation for any appointment

Portfolio management

Barbers can upload photos of their work directly from the staff panel. These images appear on their public profile page and serve as a visual showcase for prospective customers browsing the homepage.

WhatsApp overflow integration

When a barber has no available slots for the selected date, the booking form surfaces a WhatsApp link pre-filled with the customer’s details. This lets the barbershop handle overflow demand without turning customers away entirely.

Tech stack

LayerTechnology
RuntimePHP 8.4+
FrameworkLaravel 12
AuthenticationLaravel Breeze
TemplatingBlade templates
CSS frameworkTailwind CSS
UI componentsBootstrap 5
Date pickerFlatpickr
Build toolingVite (via npm run build)

Next steps

Quickstart

Clone the repo, configure your environment, and run the app locally in five steps.

Book an appointment

Walk through the full customer booking flow from barber selection to confirmation.

Staff panel

Explore the dashboard where barbers manage workdays, schedules, and portfolios.

API endpoints

Reference for the availability and staff JSON endpoints used by the frontend.

Build docs developers (and LLMs) love