A complete operating system for a barber shop chain on a single database: a seventeen-section dashboard, a website, and a customer app. Every pound collected has an invoice, every invoice is bound to a drawer opened under a named person, and the closing breaks down across all four payment methods. Five roles with permissions enforced inside the database itself, sixteen permissions editable from the screen without a developer, and new branches opened by adding a row with no technical setup.
Three interfaces on one database: a seventeen-section dashboard, a website, and a customer mobile app.
The money chain is sealed from opening to closing: reception opens the drawer under their name, every invoice binds to the open drawer automatically — and if the drawer is closed, the system refuses to issue the invoice at all.
One branch means exactly one open drawer; duplication is impossible.
The closing is stamped with who closed it, the shift duration, and a net total split across cash, card, InstaPay, and Vodafone Cash.
Refunds are logged under the requester and held "pending review" until an admin approves, then deducted from net — no verbal refunds.
Net profit is computed by a formula enforced in the system: revenue minus barber commissions minus branch expenses minus approved refunds.
Each barber's commission accrues automatically from their actual invoices at their recorded rate, and each barber sees only their own.
The accounting day follows the shift — 8pm to 4am counts as one day, not two.
Schedule a full month of shifts at once, with actual attendance compared to the schedule: present, late by the minute, absent — aggregated monthly per barber.
Live queue management: start service, finish, cancel, mark no-show, and instant booking for a walk-in.
Five roles — chain owner, manager, reception, barber, customer — each seeing only their own slice.
Permissions are enforced at row level in the database rather than the interface, so data outside your scope never reaches you even via a direct link.
Sixteen permissions stored in a table and edited from the permissions screen — no code, no redeployment.
Every screen is branch-aware by design, so a new branch goes live the same day without a second copy of the system.
Star ratings and comments after service, with each barber's rating updating automatically from customer reviews.
Each chain is a fully independent instance with its own data and storage, fully Arabic with RTL across all three parts.
What you gain
Revenue closes to the pound: no invoice is issued while the drawer is shut, and no amount moves without a name on it — so any gap between drawer and book has a traceable source instead of vanishing.
You see net, not gross: revenue is a deceptive number, and the system subtracts commissions, expenses, and approved refunds to give you the real figure daily, monthly, and yearly.
Month-end commission arguments end: each barber's rate is recorded, commission accrues from their invoices in real time, and the barber sees their own number.
Pay is computed on reality, not claims: scheduled shifts are compared against actual attendance to the minute, so lateness and absence are documented.
A shift running past midnight is not split across two days in the books — the accounting day extends with it, preventing wrong numbers in reports.
Refunds stop being a loophole: they require admin approval, record who asked and who decided, and are deducted from net.
A new branch is a row in a table: open it and run it the same day with no second copy of the system and no setup from scratch — expansion no longer waits on a developer.
Permissions are edited on screen: grant or revoke for any role without waiting for a code change or a deployment.
Staff see only their slice: protection lives in the database, so even a direct link will not surface data outside their scope.
A real customer base that belongs to you: numbers, visit history, and ratings — not scattered WhatsApp threads.
Ratings reach you directly, so you know which barber brings customers back and which needs attention — instead of discovering the problem when the customer disappears.