Nobatyar — Online Appointment Booking System for Clinics & Salons
A multi-business online appointment booking platform for clinics and salons — bookable from the website, the Bale bot, and a Bale mini-app — with online payment, automatic reminders and a full management panel.
About this project
Nobatyar is an online appointment booking system that lets clinics, doctor's offices and salons offer bookings to their patients and customers through three separate channels: a website, a bot on the Bale messenger app, and a Bale mini-app. The system is multi-tenant by design — every clinic or salon gets its own fully isolated space with its own calendar, staff and customers.
The problem before this project
Traditional appointment booking at many clinics and salons still happens by phone or in person: a receptionist has to answer calls, keep a paper log or spreadsheet up to date, and avoid double-booking — all at once. It's slow and error-prone, especially during busy hours when several people call in at the same time. Meanwhile, many patients today would rather book in a few clicks than make a phone call at all. What was needed was a way to run the entire booking flow — choosing a service and provider, reserving a slot, and paying a deposit — online and without the receptionist as a bottleneck, while still guaranteeing no double-bookings or scheduling conflicts.
The solution: a multi-channel booking system
The solution was an atomic booking engine that guarantees two people can never reserve the same time slot, paired with three ways for patients to book:
- Website — booking directly from each clinic's or salon's page
- Bale bot — a step-by-step conversational flow for booking inside the Bale messenger
- Bale mini-app — a full booking application that opens inside Bale, no separate app install needed
Each business (clinic or salon) manages its own calendar, staff, services and multi-shift working hours in its own panel, fully independent from every other business on the platform.
Patient / customer panel
Patients can search for a doctor or salon, book an appointment, reschedule or cancel it if needed, pay a deposit, and join a waitlist on fully-booked days. After each visit, they can leave a rating and review. Their full appointment and payment history is available in the same account.
Doctor / receptionist panel
This panel is the clinic's or salon's daily control room: a calendar and appointment list, multi-shift working hours and holidays, a patient list, waitlist and review management, performance reports, staff management, and subscription status — all in one place.
System admin panel
The platform admin manages every active business, user, payment, discount code, broadcast message and review from this panel, views activity reports, and can log in as a business owner when needed — for fast support, for example.
Payments, reminders and trust
Deposits and subscription payments go through the ZarinPal gateway. The system automatically sends SMS reminders before every appointment, and asks patients for a rating and review after busy days. To build user trust, an Iranian e-trust seal (Enamad) and the business's legal information appear in the site footer and on invoices. A built-in health check (`app:doctor`) verifies the database connection, SMS, payment gateway, Bale integration, cron and backups before every installation goes live, so the system is never activated with a broken piece.
Technologies used
- Laravel 12 — the core server-side framework
- Livewire 4 — for the site and management panel pages, without full reloads
- Vue 3 — for the booking app shared between the website and the Bale mini-app
- Tailwind CSS 4 — UI design
- MySQL 8 — the primary database
- Bale API — the booking bot and mini-app inside the Bale messenger
- ZarinPal — online payment gateway for deposits and subscriptions
- Kavenegar — login and appointment-reminder SMS
- Jalali calendar (morilog/jalali) — every date shown in the Persian calendar
Summary and outcome
Nobatyar shows how traditional, phone-based booking can become a fast, error-free online experience — not by removing the receptionist, but by lightening their workload. Its multi-tenant, multi-channel design (website, Bale, mini-app) makes it usable for any clinic or salon, from a single small practice to a multi-branch chain.
Other projects
Service
Dr. Ezzat Shabani — OB-GYN & Fertility Clinic Website
A complete, trilingual medical website for Dr. Ezzat Shabani in Mashhad — from services and health articles to online booking and payment, an SMS-login patient portal and a full clinic admin panel.
Service
CafeCode — A Coworking Cafe Website That Actually Books Tables
A website for a coworking cafe built for developers. Visitors can pick their exact table on a live floor plan, choose a time slot, and get a booking code — all without the page ever feeling slow. The whole homepage loads in 62 KB.
E-commerce
Mahdiyar Watch — A custom e-commerce platform
A full storefront and admin panel built from scratch: dual payment gateways (ZarinPal and TorobPay buy-now-pay-later), a discount-code engine with Jalali-calendar validity windows, guest checkout, back-in-stock reservations, and a sales reporting dashboard.