Abdelrhman

Qcut Booking and Admin System
0 Views

Qcut Booking and Admin System

Booking backend and admin dashboard for barbershop appointments, accounts, billing, and support.

Project Overview

Qcut is a client booking system for customers, barbers, and the staff who manage them. The project includes the Qcut API and a separate Qcut-admin dashboard. Customers and barbers use the booking flows served by the API; staff use the dashboard to review accounts, appointments, finances, and support requests.

The problem

A booking system must coordinate available time, service capacity, changing appointments, and the financial relationship with each barber. Staff also need a single view of operational work. Keeping these states in separate spreadsheets or message threads would make it harder to act on the same current record.

Key features

  • Barber onboarding records working hours, breaks, and admin approval decisions.
  • Booking logic calculates free slots and checks service capacity.
  • Appointments support on-hold waitlists and proposed time changes.
  • Monthly invoices and cash collection records support barber billing.
  • The dashboard manages barbers, customers, appointments, and content reports.
  • Revenue and profit screens expose financial records and date filters.
  • Support chat uses Socket.IO, with notification delivery through Firebase Cloud Messaging.
  • The dashboard switches between English and Arabic, including right-to-left layout.

Technical architecture

The TypeScript API uses Express, Zod validation, and Mongoose models backed by MongoDB. Redis supports temporary authentication state, rate limits, and queued email work. Scheduled jobs update appointment and invoice state. Socket.IO carries support messages; Firebase handles push notifications and media storage. The React and Vite dashboard calls the API through a shared Axios client. TanStack Query manages server data, while Redux Toolkit holds application state.

Engineering highlights

  • Appointment rules check slot capacity before creating or changing bookings.
  • Monthly invoice upserts and a unique database index prevent duplicate invoices for the same barber and period.
  • Authentication uses verification codes, and the dashboard guards staff routes.
  • The admin interface changes text direction with its selected language.

My role

I built the Qcut backend and its admin dashboard as parts of the same client system. The work spans booking and billing APIs, operational screens, real-time support, and their integration.

Image Gallery

No media available for this project.

Client Reviews

Feedback from people who used or collaborated on this project.

Share your experience with this project