Berber Randevu Sistemi
Bir kuaför için yazılmış tek bir siteydi. Şimdi kendi alan adında birden fazla işletmeyi taşıyan, web ve mobilde çalışan bir ürün.
- ADRES
- berberrandevu.com
- KURULUMLAR
- kuaforcuneyt.com · kuaformustafa.com · aliguromerpasa.com
- PARÇALAR
- Müşteri arayüzü · işletme paneli · arka yüz · mobil uygulama · otomasyon akışları
- YIĞIN
- React · TypeScript · Tailwind · NestJS · PostgreSQL · Flutter · n8n
- DURUM
- Yayında, gerçek işletmelerde kullanımda
Asıl problem randevu almak değildi
Berberin şikâyeti "telefonla randevu alamıyorum" değildi. Şikâyet, gelmeyen müşteriydi. Saat ayrılmış, koltuk boş kalmış, o saatte gelebilecek başka biri de geri çevrilmişti. Randevu formu yazmak bu problemi çözmez, sadece kaydı dijitalleştirir.
Sistemin ağırlığı bu yüzden üç yere bindi:
- Hatırlatma. Randevudan önce WhatsApp'tan mesaj gidiyor.
- Bekleme listesi. Gün doluysa müşteri sıraya giriyor; bir iptal olduğunda yer açıldığı haberi ona ulaşıyor.
- Gelmeyen takibi. İşletme, gelmeyen müşteriyi işaretleyebiliyor; tekrarlayanlar kara listeye alınabiliyor.
Müşteri akışı: beş adımdan dörde
İlk sürümde akış beş adımdı: hizmet, usta, tarih, saat, bilgiler. Tarih ile saati ayırmak mantıklı görünüyordu ama pratikte fazladan bir ileri-geri yaratıyordu — insan zaten "cumartesi öğleden sonra" diye düşünüyor, iki ayrı karar vermiyor.
İkisini tek ekranda birleştirdik. Masaüstünde takvim solda, o günün saatleri sağda; mobilde gün seçilince saatler kendiliğinden görünür oluyor. Devam düğmesi ikisi de seçilene kadar pasif kalıyor ve seçili gün değişince eski saat seçimi düşüyor — yoksa kapalı bir güne randevu alınabiliyordu.
İşletme paneli: on bir sekme, dört grup
Panel zamanla on bir sekmeye çıktı: günlük ve haftalık randevular, yaklaşan randevular, elle randevu ekleme, çalışma saatleri, izin günleri, hizmet yönetimi, kara liste, engellenen müşteriler, toplu duyuru, takvim senkronu, aylık özet.
On bir sekmeyi yan yana dizmek kullanılabilir bir şey değildi; hepsi ekrana sığmıyor, sığdığında da hangisinin nerede olduğu akılda kalmıyordu. Sekmeleri dört gruba topladık (randevular, takvim, müşteriler, işletme) ve iki katmanlı bir gezinme yaptık. Berberin günlük kullandığı üç ekran artık ilk katmanda.
Aynı veriye üç arayüz
Müşteri sitesi, işletme paneli ve mobil uygulama tek bir NestJS arka yüzüne bağlanıyor. Randevu kuralları — çakışma kontrolü, hizmet süresine göre slot hesabı, çalışma saati ve izin denetimi — sadece arka yüzde duruyor. Bu kuralların bir kopyasını arayüze koymak başlangıçta hızlı gibi görünür; ikinci arayüz eklendiğinde iki yerin farklı davrandığı gün de gelir.
Sessizce yanlış çalışan hatırlatmalar
Hatırlatma akışında bir hata vardı ve hiçbir yerde hata olarak görünmüyordu. Akış ertesi günün randevularını veritabanından çekiyor, mesajı gönderiyor, sonra o randevuyu "hatırlatıldı" diye işaretliyordu. Ama işaretleme adımı, kendinden bir önceki adımın çıktısını — yani mesaj servisinin cevabını — randevu kaydı sanıyordu. Sonuç: mesaj gidiyor, hiçbir kayıt işaretlenmiyor, ertesi gün aynı kişiye tekrar gidiyordu.
Fark edilmesi kolay olmadı, çünkü sistem hata vermiyordu. Ortaya çıkaran şey basit bir sorgu oldu: işaretlenmiş randevu sayısı 975 kaydın sıfırıydı. Düzeltmeden sonraki ilk gün 3, ertesi hafta 27. O günden beri kurduğumuz her akışa "bu adım gerçekten çalıştıysa hangi sayı artmalı?" sorusunun cevabını da yazıyoruz.
Arayüzün elden geçirilmesi
İşleyiş oturduktan sonra arayüz yenilendi. Değerlendirme netti: fonksiyonlar iyiydi ama görünüş ucuzdu ve şablondan çıkmış gibi duruyordu. Emaye tabela dilinde bir kimlik kurduk; renkleri kontrast oranı ölçerek seçtik ve iki temanın (açık/koyu) tamamını taradık.
Bu tarama bir tanesi ciddi olmak üzere birkaç gerçek hata çıkardı: yeşil zemin üstünde koyu mürekkeple yazılmış on sekiz düğme vardı ve kontrastları 1,7:1 civarındaydı — okunmuyordu, üstelik randevuyu tamamlayan son düğme de bunlardan biriydi. Göz kararıyla bakınca "biraz soluk" görünüyordu; ölçünce kırmızı çıktı.
- MÜŞTERİ
- 4 adımlı randevu · telefon doğrulama · bekleme listesi · randevu sorgulama · KVKK akışı
- İŞLETME
- 11 sekme, 4 grup · elle randevu · izin ve çalışma saatleri · kara liste · toplu duyuru · aylık özet
- OTOMASYON
- WhatsApp hatırlatma · yer açıldı bildirimi · Google Takvim senkronu
- MOBİL
- Flutter · iOS + Android · aynı API
Aynısını işletmeniz için kuralım
Kendi alan adınızda, kendi hizmet ve saatlerinizle. Kurulum genelde bir iki hafta sürüyor.