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.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.
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
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
| Layer | Technology |
|---|---|
| Runtime | PHP 8.4+ |
| Framework | Laravel 12 |
| Authentication | Laravel Breeze |
| Templating | Blade templates |
| CSS framework | Tailwind CSS |
| UI components | Bootstrap 5 |
| Date picker | Flatpickr |
| Build tooling | Vite (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.