Real-Time Barber Booking Platform Development

Job ID: 40527263

Budget: $10 – $30 USD

Barber Queue Management Website – Technical Specifications

Project Overview

Develop a modern, responsive barber website focused on real-time queue management rather than traditional appointment scheduling.

Customers do not select a date or time. Instead, they join a live queue and receive a queue number. They can then track queue progress and estimated waiting time in real time.

The website must support three languages:

- Tunisian Arabic (Derja)
- French
- English

The system must include both a customer-facing interface and an admin dashboard.

---

Customer Features

Queue Registration

Customers can join the queue by entering:

- Full Name
- Phone Number

Phone numbers must be validated according to Tunisian mobile number standards.

---

Service Selection

Customers must select one of the following services:

- Hair
- Beard
- Hair + Beard

Estimated service durations:

- Beard = 15 minutes
- Hair = 30 minutes
- Hair + Beard = 45 minutes

---

Children Option

Customers must answer:

"Are you accompanying children?"

Options:

- Yes
- No

If Yes:

- Display a selector for number of children.

Each child haircut should be counted as approximately 20 minutes when calculating estimated waiting time.

---

Queue Number Assignment

After successful registration:

- Customer receives a queue number.
- Customer is added to the live queue.
- Queue position is displayed.

Example:

Current number being served: 15

Your queue number: 22

Position in queue: 7

---

Real-Time Queue Tracking

Customers must be able to see:

- Current number being served
- Their queue number
- Their queue position
- Estimated waiting time

Updates should occur in real time without page refresh.

---

Estimated Waiting Time

The system must calculate waiting time dynamically based on:

- Services selected by customers ahead in queue
- Number of accompanying children
- Queue pause state

Example:

Current serving: #12

#13 Hair = 30 min

#14 Beard = 15 min

#15 Hair + Beard = 45 min

Customer #16 sees estimated waiting time of approximately 1 hour 30 minutes.

---

Appointment Cancellation

Customers must be able to cancel their queue entry.

After cancellation:

- Queue updates automatically.
- Waiting times recalculate automatically.

---

Announcements

Customers should be able to view announcements published by the barber.

Examples:

- Shop closed today
- Special offer
- Delayed opening
- Holiday notice

---

Admin Dashboard

Dashboard Access

Protected admin login.

Only authorized staff may access dashboard functions.

---

Queue Management

Admin must be able to:

- View entire queue
- View customer details
- Edit appointments
- Delete appointments
- Cancel appointments
- Reorder queue if necessary
- Manually add customers

---

Current Customer Selection

Admin must be able to select the customer currently being served.

Example:

Now serving #17

This update must immediately appear on customer screens.

---

Queue Pause / Resume

Admin must be able to:

- Pause queue
- Resume queue

While paused:

Customers should see:

"Queue temporarily paused. Waiting times may be delayed."

---

Appointment Availability

Admin must be able to:

- Enable appointments
- Disable appointments

When disabled:

Customers cannot join the queue.

A custom message should be displayed.

---

Opening Hours Management

Admin must be able to:

- Define opening hours
- Modify opening hours
- Set exceptions

Example:

Monday–Friday: 09:00–18:00

Saturday: 09:00–15:00

Sunday: Closed

---

Vacation / Closed Mode

Admin must be able to activate:

- Vacation mode
- Closed mode

When enabled:

Queue registration is disabled and a custom message is shown.

---

Queue Capacity Limit

Admin must be able to define:

Maximum customers accepted per day.

Example:

Maximum queue size = 50 customers.

After reaching the limit:

"Queue is full for today."

---

Phone Number Management

Admin must be able to:

- Ban phone numbers
- Unban phone numbers

Banned numbers cannot register.

---

Device Management

Admin must be able to:

- Ban devices
- Unban devices

Device bans should remain effective even if a different phone number is used.

---

Announcement Management

Admin must be able to:

- Create announcements
- Edit announcements
- Delete announcements
- Schedule announcements

---

Security & Anti-Spam Requirements

Phone Number Restrictions

Each phone number may:

- Create a maximum of 5 appointments per day
- Have only 1 active queue entry at a time

---

Device Restrictions

Each device may:

- Create a maximum of 5 appointments per day

Device identification should use browser/device fingerprinting.

---

IP Rate Limiting

Implement IP-based rate limiting to reduce spam and abuse.

---

CAPTCHA

Implement invisible CAPTCHA protection during registration.

---

Duplicate Prevention

Prevent duplicate active queue entries for the same phone number.

---

Audit Logs

Record all important admin actions:

- Appointment edits
- Appointment deletions
- Queue changes
- Bans
- Opening hour modifications

---

Customer Data

Store:

- Customer Name
- Phone Number
- Device Identifier
- IP Address
- Service Type
- Number of Children
- Queue Number
- Registration Timestamp
- Status (Waiting / Serving / Completed / Cancelled)
- Visit Count
- Cancellation Count
- Ban Status

---

Technical Requirements

Responsive Design

Must work properly on:

- Mobile phones
- Tablets
- Desktop computers

Mobile-first design is preferred.

---

Real-Time Updates

Queue updates must occur in real time without requiring page refresh.

---

Performance

Pages should load quickly and remain responsive under normal business usage.

---

Backup System

Automatic database backups should be implemented.

---

Future Expansion Considerations

Architecture should allow future implementation of:

- SMS notifications
- WhatsApp notifications
- Customer history and analytics
- Loyalty programs
- Multiple barber branches
- Multiple barbers working simultaneously

These features are not required in version 1 but should be considered during development.
Related categories: JavaScript Database Administration API