KoderKoder.ai
FiyatlandırmaKurumsalEğitimYatırımcılar için
Giriş YapBaşla

Ürün

FiyatlandırmaKurumsalYatırımcılar için

Kaynaklar

Bize UlaşınDestekEğitimBlog

Yasal

Gizlilik PolitikasıKullanım KoşullarıGüvenlikKabul Edilebilir Kullanım PolitikasıKötüye Kullanımı Bildir

Sosyal

LinkedInTwitter
Koder.ai
Dil

© 2026 Koder.ai. Tüm hakları saklıdır.

Ana Sayfa›Blog›Çoklu Hizmetler İçin Randevu Planlama Mobil Uygulaması Nasıl Oluşturulur
15 Ara 2025·8 dk

Çoklu Hizmetler İçin Randevu Planlama Mobil Uygulaması Nasıl Oluşturulur

Kullanıcıların farklı hizmetler arasında takvimler, ödemeler, hatırlatmalar ve yönetici araçlarıyla randevu ayırtmasını sağlayan bir mobil uygulamanın nasıl planlanıp tasarlanıp inşa edileceğini öğrenin.

Çoklu Hizmetler İçin Randevu Planlama Mobil Uygulaması Nasıl Oluşturulur

Zamanlama Problemini ve Uygulama Modelini Tanımlayın

Bir zamanlama uygulaması, hangi problemi çözdüğünü net gösterdiğinde “basittir”. Bir işletmenin takvimini mi dolduruyorsunuz, yoksa müşterileri farklı hizmet sunucularıyla mı eşleştiriyorsunuz? Bu iki seçim veri modelinizi, kullanıcı akışlarını, fiyatlandırmayı ve hatta “kullanılabilirlik”in ne anlama geldiğini belirler.

Yaygın zamanlama senaryoları (ve neden farklıdırlar)

Randevu rezervasyonu yüzeyde benzer görünse de kurallar sektöre göre değişir:

  • Kuaförler ve spa'lar: personel, koltuk/oda kısıtları, ek hizmetler, walk-in kabulü.
  • Klinikler ve terapi: daha uzun seanslar, gizlilik, tekrar eden ziyaretler, sıkı iptal kuralları.
  • Fitness ve koçluk: 1:1 vs grup dersleri, paketler, tekrarlayan slotlar.
  • Özel ders: uzaktan vs yüz yüze, öğrenciye özel programlar, saat dilimi sorunları.
  • Ev hizmetleri: seyahat süresi, hizmet alanı, değişken iş süresi.

Tek işletme vs. pazaryeri: uygulama modelinizi seçin

Bir tek işletme uygulaması (tek marka, tek personel/konum seti) genellikle daha hızlı geliştirilir ve kontrol etmesi daha kolaydır.

Bir çoklu sağlayıcı pazaryeri ise sağlayıcı işe alımı, listelemeler, arama ve daha karmaşık politikalar ekler—çünkü her sağlayıcının farklı saatleri, hizmetleri ve fiyatları olabilir.

“Çoklu hizmet” ne demek?

“Çoklu hizmet” birden fazla kategori (saç kesimi vs masaj), konum (şubeler veya evde hizmet) ve süre (30/60/90 dakika) içerebilir. Ayrıca bir kişi, bir oda veya bir ekipman gibi farklı kaynak kısıtlamalarını da kapsayabilir.

Başarı metriklerini erken tanımlayın

Etkisini nasıl ölçeceğinize karar verin:

  • Haftada daha fazla tamamlanmış rezervasyon
  • Daha iyi müşteri tutma (tekrar eden müşteriler)
  • Daha az gelinmeme ve geç iptaller
  • Daha yüksek sağlayıcı kullanım oranı (boşta geçen zamanın azalması)

Bu metrikler, özellikler genişledikçe ürün kararlarını zemine oturtur.

Kullanıcı Rolleri ve Temel Rezervasyon Akışlarını Haritalayın

Ekranları tasarlamadan veya özellikleri seçmeden önce uygulamayı kullanacak kişileri ve beklenen “mutlu yol”u haritalayın. Çoğu zamanlama uygulamasında üç rol olur—müşteri, sağlayıcı ve yönetici—ama ayrıntılar saç kesimi, tamir, özel ders veya bir sepette birden çok hizmet olup olmamasına göre çok değişir.

Müşteri akışı: keşiften onaya

Müşterinin zihinsel modeli basittir: “Bir hizmet bul, bir zaman seç, ve onaylandığını bil.” Net bir ana akış şöyle görünür:

  • Hizmetleri tarayın (kategori, fiyat, konum, puanlar ile)
  • Bir sağlayıcı seçin ve ilgiliyse belirli bir personel seçin
  • Mevcut seçeneklerden tarih/saat seçin
  • Detayları gözden geçirin (süre, adres/çevrimiçi bağlantı, fiyat, iptal politikası)
  • Rezervasyon yapın, yeniden planlayın, iptal edin ve gerekiyorsa ödeme yapın

Karar noktalarını açık tutun: hizmet → personel (opsiyonel) → zaman → onay.

Çoklu hizmet rezervasyonunu destekliyorsanız (ör. kesim + boyama), müşterilerin önce bir paket mi oluşturacağını yoksa sağlayıcı seçildikten sonra hizmet ekleyip eklemeyeceklerini belirleyin.

Sağlayıcı akışı: kullanılabilirlik, onaylar ve değişiklik yönetimi

Sağlayıcılar kontrol ve öngörülebilirlik ister. Temel eylemleri genellikle şunlardır:

  • Kullanılabilirliği ayarlamak ve güncellemek (çalışma saatleri, molalar, izinler)
  • Rezervasyonları kabul etmek veya otomatik kabul etmek (politikaya bağlı olarak)
  • İptalleri, yeniden planlamaları ve geç gelenleri yönetmek
  • Günlük/haftalık programı ve müşteri detaylarını görmek

Bir sağlayıcı randevuya gelemiyorsa ne olacağını tanımlayın: yeni bir zaman önerebilir mi, başka bir personele atayabilir mi yoksa iptal etmek zorunda mı?

Yönetici akışı: kurallar, kalite ve istisnalar

Yöneticiler pazaryerinin tutarlılığını korur:

  • Hizmetleri, personel profillerini, fiyatlandırmayı, vergileri ve politikaları yönetmek
  • İhtilaflar, iadeler, chargeback'ler ve müşteri destek vakalarını ele almak
  • Sağlayıcı uyumluluğunu gözden geçirmek (saatler, iptaller, gelinmeme oranları)

Misafir vs. hesap tabanlı rezervasyon (alışverişler)

Misafir rezervasyonu, özellikle ilk kez gelen kullanıcılar için dönüşümü artırabilir. Dezavantajı ise daha zayıf kimlik doğrulama: iade süreçleri zorlaşır, cihazlar arası hatırlatmalar zayıf olur ve dolandırıcılık riski artar.

Yaygın bir uzlaşma “rezervasyon sonrası hesap oluşturma” modelidir: onay ekranında kullanıcılar yeniden planlama, fişler ve gelecekte hızlı rezervasyon için bilgilerini kaydetmeye teşvik edilir.

Hizmet ve Kullanılabilirlik Kurallarınızı Tasarlayın

Ekranları inşa etmeden veya kod yazmadan önce tam olarak nelerin rezerve edilebileceğine ve hangi koşullarda rezerve edilebileceğine karar verin. Net kurallar çift rezervasyonları önler, destek taleplerini azaltır ve fiyatlandırma ile personel yönetimini kolaylaştırır.

Rezervasyon yapılabilir bir hizmet kataloğu tanımlayın

Dağınık bir liste yerine yapılandırılmış bir katalogla başlayın. Her hizmetin uygulamanın süre ve fiyat hesaplayabilmesi için öngörülebilir bir “şekli” olmalıdır.

  • Kategoriler: ör. Saç, Masaj, Ev Temizliği, Özel Ders.
  • Temel hizmetler: isim, standart süre, fiyat (veya “başlangıç” fiyatı), gerekli kaynaklar (bir sağlayıcı, bir oda, ekipman).
  • Eklentiler: ekstra süre/fiyat kalemleri (örn. “deep tissue +15 dk”).
  • Paketler: çok adımlı rezervasyonlar (örn. “kesim + boya”) — toplam süre ve adımların ardışık olup olmadığı.

Pratik ipucu: süre için tek bir “gerçek kaynağı” seçin. Hem sağlayıcıların hem hizmetlerin süreyi serbestçe tanımlamasına izin verirseniz, müşteriler tutarsız slot uzunlukları görür.

Sağlayıcı profillerini bir program şablonu gibi modelleyin

Sağlayıcı profilleri sadece fotoğraf ve biyografiden daha fazlasına ihtiyaç duyar. Kullanılabilirlik ve eşleştirmeyi etkileyen ayrıntıları yakalayın:

  • Beceriler / uygun hizmetler (kim hangi hizmetleri yapabilir)
  • Konumlar (tek şube, birden çok şube veya seyahat yarıçapı)
  • Gün bazında çalışma saatleri, ayrıca molalar ve tekrar eden istisnalar

Çok konumlu rezervasyon planlıyorsanız, sağlayıcının saatlerinin global mi yoksa konum başına mı olduğunu belirleyin.

“Neredeyse mümkün” rezervasyonları önleyen kullanılabilirlik kuralları

Gerçek dünyadaki zamanlama çoğunlukla kenar durumlarla ilgilidir:

  • Randevular arasında buffer zaman (seyahat, hazırlık)
  • Belirli hizmetler için hazırlık/temizlik süresi
  • Aşırı yüklenmeyi önlemek için günlük maksimum rezervasyon veya maksimum hizmet saati

Bu kurallar otomatik olarak rezerve edilebilir slotları ayarlamalıdır—müşterilerin neyin mümkün olduğunu tahmin etmesine gerek olmamalı.

Müşterilerin anlayacağı (ve ekibinizin uygulayabileceği) politikalar

Politikaları serbest metin notlar yerine seçilebilir ayarlar olarak tanımlayın:

  • İptal pencereleri (örn. ücretsiz iptal 24 saate kadar)
  • Bazı hizmetler/sağlayıcılar için depozito zorunluluğu
  • Yeniden planlama limitleri (sayı ve kesme zamanı)

Sade dili rezervasyon akışında gösterin ve hangi politika sürümünün her randevuya uygulandığını kaydedin—ilerideki anlaşmazlıklar için.

Zamanlama İçin Doğru Veri Modelini Seçin

Veri modeliniz, daha fazla hizmet, personel ve konum ekledikçe zamanlamayı basit tutup tutamayacağınızı belirler. İyi bir model "Taylor 15:30'te müsait mi?" veya "Bu rezervasyonda ne değişti ve kim değiştirdi?" sorularını kolayca yanıtlamalıdır.

Randevuyu birinci sınıf kayıt olarak modelleyin

Bir Randevu sadece “başlangıç zamanı + bitiş zamanı” olmamalı. Onu durumların zaman çizgisi ve net meta verilerle ele alın:

  • Durum: talep edildi, onaylandı, check-in yapıldı, tamamlandı, iptal edildi, gelinmedi (ve opsiyonel “yeniden planlandı”).
  • Zaman damgaları: created_at, confirmed_at, canceled_at, updated_at.
  • Saat dilimi: kullanıcıların gördüğü orijinal rezervasyon saat dilimini saklayın ve hesaplamalar için UTC'ye normalize edin.
  • Tekrarlama (destekliyorsanız): haftalık gibi bir tekrar kuralı saklayın ve örneklenen instance'ları tutun, böylece düzenlemeler geçmiş ziyaretleri beklenmedik şekilde değiştirmez.

Ayrıca temel alanları saklayın: customer_id, service_id, location_id, atanmış kaynaklar, fiyat/depozito alanları (ödeme başka yerde işleniyor olsa bile) ve serbest metin notlar.

Hizmetleri kaynaklardan ayırın (ve kapasiteyi destekleyin)

Çoğu zamanlama hatası "ne rezerve edildi" ile "bunu kim/neyapacak" karıştığında oluşur. Aşağıdaki türleri temsil edebilen bir Kaynak modeli kullanın:

  • Personel (1:1 randevular)
  • Odalar (örn. tedavi odası, stüdyo)
  • Ekipman (örn. lazer, araç)
  • Kapasite tabanlı kaynaklar (örn. kapasiteli bir ders: 12 kişi)

Randevular bir veya daha fazla gerekli kaynağa referans vermeli. Böylece bir masaj therapist + bir oda gerektirirken, grup dersi sadece "kapasite" tüketir.

Çoklu konum ve seyahat süresi (gerekirse)

Eğer sağlayıcılar birden çok konumda çalışıyorsa konum takvimleri ekleyin ve kaynakları izin verilen konumlarla ilişkilendirin.

Mobil/evde hizmetler için isteğe bağlı seyahat tamponları ekleyin: mesafeye göre veya sabit kurala dayalı önce/sonra dakikalar. Seyahat süresini sağlayıcı kaynağı üzerinde engellenmiş zaman olarak modelleyin ki arka arkaya rezervasyonları engellesin.

Güvenilir bir denetim izi tutun

Zamanlama sıkça “Bunu kim değiştirdi?” anlarıyla doludur. Bir append-only denetim izi tablosu ekleyin: kim (kullanıcı/ yönetici/sistem), ne değişti (alan farkları), ne zaman ve neden (sebep kodu). Bu destek süreçlerini hızlandırır, anlaşmazlıkları önler ve köşe durumlarını debug etmeyi kolaylaştırır.

Zamanlama Motorunu İnşa Edin (Slotlar, Çakışmalar, Saat Dilimleri)

Zamanlama motorunuz, neyin rezerve edilebilir olduğunun tek gerçek kaynağı olmalı. Güvenilir şekilde cevap vermesi gereken basit soru şudur: bu zaman gerçekten müsait mi? Altında ise hız (hızlı slot listeleri) ile doğruluk (çift rezervasyon yok) arasında denge kurarsınız.

Slot üretimi vs gerçek zamanlı kullanılabilirlik

Çoğu uygulama bir seçenek ızgarası gösterir (“9:00, 9:30, 10:00…”). Bu listeyi iki ana yoldan oluşturabilirsiniz:

  • Önceden oluşturulmuş slotlar: her sağlayıcı/hizmet penceresi için mevcut slotları (örn. önümüzdeki 30 gün) üretin, saklayın ve kurallar değiştiğinde güncelleyin.
  • Gerçek zamanlı sorgular: çalışma saatleri + molalar + mevcut rezervasyonlardan anında slotları oluşturun.

Ön üretim, UI'yi anlık hissettirir ama arka plan işler ve dikkatli güncellemeler gerektirir. Gerçek zamanlı ise bakımını kolaylaştırır ama ölçeklendikçe yavaşlayabilir.

Birçok ekip hibrit kullanır: ilk birkaç günü önbelleğe alıp daha uzun aralıkları talep üzerine hesaplamak.

Çift rezervasyonu önleme (kilitleme + çakışma kontrolleri)

Çift rezervasyon genellikle iki kişinin birkaç saniye içinde “Rezervasyon Yap”a basmasıyla olur. Bunu iki adımlı bir yaklaşımla önleyin:

  1. Çakışma kontrolü: istenen zaman aralığının sağlayıcı, oda veya gereken personelde herhangi bir mevcut randevuyla çakışmadığını doğrulayın.
  2. Kilitleme stratejisi: yalnızca bir rezervasyonun o kaynak/zaman için oluşturulmasını sağlayın.

Yaygın desenler arasında benzersiz bir “slot id” modelleyebiliyorsanız veritabanı işlemleri ile unique constraint'ler (en iyi); sağlayıcının programında row-level kilitler veya kullanıcı ödeme/onaylamazsa süresi dolan kısa ömürlü bir “tutma” bulunur.

Saat dilimleri, yaz saati uygulaması ve görüntü formatları

Zaman damgalarını UTC olarak saklayın, ancak randevulara her zaman bir saat dilimi (çoğunlukla sağlayıcının konumu) iliştirin. Görüntüleme için görüntüleyene göre (müşteri vs sağlayıcı) dönüşüm yapın ve “10:00 AM (London time)” gibi net etiketler gösterin.

Yaz saati (DST) değişiklikleri kaybolan veya tekrar eden saatler gibi karmaşık günler yaratır. Motorunuz şunları yapmalıdır:

  • Slotları yerel saatte üretin ama UTC dönüşümlerine karşı doğrulayın.
  • DST atlama günlerinde var olmayan yerel saatleri sunmaktan kaçının.
  • DST sınırını geçen randevuların süresini kaydırmadan işleyin.

Bekleme listeleri ve overbooking kuralları

Eğer izin verecekseniz, açık kurallar tanımlayın:

  • Bekleme listesi: bir slot doluysa tercih edilen zamanları toplayın ve ilk boşalan slotu otomatik teklif edin.
  • Overbooking: sadece belirli hizmet/sağlayıcılar için sınırlı üst üste binmeye izin verin, sınırlar koyun (örn. “maks 2 eş zamanlı walk-in”) ve iç görünürlük sağlayın ki personel aşırı yüklenmesin.

Önemli olan tutarlılıktır: UI dostça olabilir ama motor sıkı olmalıdır.

Basit Hisseden Bir Rezervasyon UX'i Oluşturun

Prototype Your Scheduling App
Turn your scheduling app spec into a working prototype through chat, then iterate fast.
Try Koder

Bir zamanlama uygulamasının altında güçlü bir motor olsa da kullanıcılar onu ne kadar çabuk bir hizmet bulup zaman seçip hata yapmayacaklarından emin olduklarına göre yargılar. UX kararları azaltmalı, geçersiz seçimleri önlemeli ve maliyeti ödeme öncesi açıkça göstermelidir.

Gerçek niyete uygun arama ve filtreler

Hem “ne” hem de “ne zaman” destekleyen arama ile başlayın. Kullanıcılar çoğunlukla kombinasyonlarla düşünür: “yarın saç kesimi”, “yanımdaki dişçi” veya “100$ altı masaj”.

Filtreleri kolay taranır ve sıfırlanabilir yapın: hizmet tipi, tarih/zaman aralığı, fiyat aralığı, puan ve mesafe. Sonuç sayfasını sabit tutun—her dokunuşta yeniden sıralama yapmayın ki insanlar yerlerini kaybetmesin.

Hata önleyen slot seçme desenleri

İki adımlı bir seçici kullanın: önce tarihi seçin, sonra o tarih için yalnızca geçerli slotları gösterin. Mevcut olmayan zamanları tamamen gizlemek yerine devre dışı bırakın (insanlar hangi zamanların bloke olduğunu gördükçe daha hızlı öğrenir).

Eğer çoklu hizmet rezervasyonu destekliyorsanız, kullanıcı taahhüt etmeden önce toplam süreyi ve bitiş saatini gösterin (“90 dk, 15:30'da biter”).

Onay öncesi açık fiyatlandırma

Erken aşamada basit bir döküm gösterin: temel fiyat, eklentiler, vergiler, ücretler ve depozito. Fiyat personel ya da zamana göre değişebiliyorsa açıkça belirtin (“Akşam ücreti”). Son ekranda toplamı ve şimdi mi sonra mı ödenecek tekrar gösterin.

Erişilebilirlik isteğe bağlı değildir

Yüksek kontrastlı metin, ölçeklenebilir yazı tipleri ve büyük dokunma hedefleri kullanın (özellikle zaman slotları için). Her kontrol—filtreler, takvim günleri, slot düğmeleri—durumu açıklayan ekran okuyucu etiketlerine sahip olmalı (“14:00, kullanılamıyor”). Erişilebilir UX aynı zamanda herkes için rezervasyon hatalarını azaltır.

Bildirimler, Hatırlatmalar ve Gelinmemeyi Azaltma

Bildirimler bir zamanlama uygulamasını ya zahmetsiz hissettirir ya da kullanıcıyı rahatsız eder. Amaç basittir: mümkün olan en az mesajla, herkesin tercih ettiği kanalda bilgi vermek.

Kanalları seçin ve kullanıcılara tercih hakkı verin

Push, SMS ve e-postayı destekleyin ama hepsini zorlamayın.

Müşteriler genellikle hatırlatmalar için push, son dakika değişiklikleri için SMS tercih eder. Sağlayıcılar genellikle e-posta özetleri artı gerçek zamanlı güncellemeler için push ister.

Ayarlar içinde sunun:

  • Mesaj tipi başına (rezervasyon, hatırlatma, değişiklik) kanal tercihleri (push/SMS/e-posta)
  • Sessiz saatler (örn. 21:00'den sonra push gönderme)
  • Dil ve saat dilimi onayı (özellikle seyahat edenler için)

Onay, yeniden planlama ve iptal işleyişini öngörülebilir yapın

Her rezervasyon, her iki tarafa da aynı temel detaylarla anında bir onay tetiklemeli: hizmet, sağlayıcı, konum, başlangıç zamanı, süre, fiyat ve politika.

Yeniden planlama ve iptal akışları bildirimden veya rezervasyon ekranından “tek dokunuşla” yapılabiliyorsa en iyi çalışır. Bir değişiklikten sonra, hangi alanın değiştiğini ve ücret uygulanıp uygulanmadığını açıkça belirten tek bir güncelleme gönderin.

Müşteriler için pratik bir hatırlatma takvimi:

  • Anlık onay
  • 24 saat önce (opsiyonel)
  • 2 saat önce (opsiyonel)

Sağlayıcılar için günlük program özeti ve yeni rezervasyon/iptaller için anlık uyarılar ekleyin.

Ağır davranmadan gelinmemeleri azaltın

Gelinmemeler genellikle unutma, trafik veya bağlılık eksikliğinden olur. Yaygın araçlar:

  • Talep gören hizmetler için depozito veya kart kaydı
  • 12–24 saat önce “Randevunuzu onaylayın” istemi (onaylanmazsa sağlayıcı için işaretleme)
  • İptal pencereleri ve ücretleri ödeme öncesi ve onayda açıkça gösterme

Bekleme listesi varsa, açılan slotları otomatik olarak bir sonraki kişiye teklif edin ve sağlayıcıyı yalnızca slot yeniden rezerve edildiğinde bilgilendirin.

Randevu sonrası takip

Randevu sonrası mesajlar, spam yapmadan tutmayı artırabilir:

Fiş gönderin, bir inceleme isteyin ve aynı hizmet/sağlayıcı için “Tekrar rezerve et” kısayolu sunun. Uygun ise bakımla ilgili talimatlar veya sağlayıcının özet notu ekleyin ve bunları rezervasyon geçmişinde erişilebilir tutun.

Ödemeler, Depozitolar ve İade İşleyişi

Iterate Without Fear
Use snapshots and rollback while you refine time zones, buffers, and reschedule logic.
Test Snapshot

Ödemeler basit bir rezervasyon akışını destek sorununa dönüştürebilir. Bu bölümü hem ürün tasarımı hem de müşteri hizmetleri politikası olarak ele alın: uygulama müşterinin ne kadar borcu olduğunu, ne zaman borçlu olduğunu ve plan değişirse ne olacağını açıkça göstermeli.

Desteklenecek ödeme seçenekleri

Çoğu zamanlama uygulaması üç modu iyi destekler:

  • Şimdi öde: müşteri rezervasyon sırasında tam tutarı öder. Yüksek gelinmeme riskli ve ön ödemeli hizmetler için ideal.
  • Sadece depozito: slotu garanti altına almak için sabit bir tutar veya yüzde alınır, kalan hizmet sırasında veya sonrasında tahsil edilir.
  • Sonra öde: rezervasyonu tutar ama ücretlendirme yapmaz (genellikle daha sıkı iptal kurallarıyla eşleştirilir).

Hangi modu sunarsanız sunun, fiyat dökümünü onaydan önce gösterin: hizmet fiyatı, vergiler/ücretler, depozito ve daha sonra ödenecek tutar.

İadeler ve kısmi iadeler (kuralları açık yapın)

İade mantığını sade dilde tanımlayın ve UI'da gösterin:

  • İptal pencereleri (örn. “24 saatten önce iptal edilirse tam iade”)
  • Depozitonun durumu (iade edilir, iade edilmez veya krediye dönüştürülür)
  • Geç iptaller için kısmi iade (örn. hizmet fiyatı iade, depozito tutulur)
  • Sağlayıcı kaynaklı iptaller (genelde tam iade + otomatik yeniden rezervasyon önerisi)

Kararı mümkün olduğunca otomatikleştirin ki destek manuel istisna hesaplaması yapmak zorunda kalmasın.

Ekstralar: bahşiş, indirimler, promosyon kodları, hediye kartları

Opsiyonel ama değerli:

  • Ödeme sırasında veya sonrasında bahşiş ekleme
  • Edinme ve tutundurma için promosyon kodları
  • İade yerine hediye kartı/mağaza kredisi

Güvenliğin temelleri

Kart bilgilerini tokenize eden ve PCI uyumluluğunu kendi tarafında tutan bir ödeme sağlayıcısı kullanın (örn. hosted payment fields). Uygulama sadece minimum bilgileri saklamalı: ödeme durumu, tutarlar ve sağlayıcı işlem ID'leri—ham kart verileri saklanmamalı.

Takvim Entegrasyonları ve Dış Senkronizasyon

Takvim senkronizasyonu güven oluşturmanın en hızlı yollarından biridir: sağlayıcılar zaten kullandıkları takvimi kullanmaya devam edebilir, uygulamanız da doğru kalır.

Tek yönlü vs çift yönlü senkronizasyon

Tek yönlü senkronizasyon uygulamanızdan dış takvime (Google, Apple, Outlook) randevuları itmek demektir. Daha basit, daha güvenli ve MVP için sıkça yeterlidir.

Çift yönlü senkronizasyon ayrıca dış takvimden meşgul zamanları okur (ve bazen olayları) ve bu da uygulamanızda kullanılabilirliği engeller. Bu daha kullanışlıdır ama özel olaylar, tekrar eden toplantılar ve dışarıda yapılan düzenlemeler gibi köşe durumları ile uğraşmanıza neden olur.

Çoğalmaları önleyin ve dış düzenlemeleri ele alın

Çoğalmalar genellikle her güncellemede yeni bir etkinlik oluşturduğunuzda olur. Kararlı bir tanımlayıcı kullanın:

  • Google/Microsoft tarafından döndürülen dış etkinlik ID'sini (veya bir ICS UID) randevu kaydınıza saklayın.
  • Yeniden planlama/iptalde aynı etkinliği güncelleyin veya silin, yeni bir tane oluşturmayın.

Dış düzenlemeler için kaynak olarak neyi kabul edeceğinize karar verin. Kullanıcı dostu yaygın bir kural:

  • Sağlayıcı dış takvim etkinliğinin saatini değiştirirse, bunu sadece meşgul zaman olarak kabul edin (rezervasyonu otomatik taşımayın).
  • Dışarıda etkinlik silinirse, rezervasyonu tutun ama “takvim bağlantısı koptu” şeklinde işaretleyin ve tek dokunuşla “etkinliği yeniden oluştur” sunun.

ICS davetleri ve kullanıcı beklentileri

Derin entegrasyonlar olmasa bile onay e-postalarında ICS davetleri gönderin ki müşteriler Apple/Google takvimine tek dokunuşla ekleyebilsin.

Yerel Google/Apple takvim bağlantıları sunuyorsanız, kullanıcılar şunları bekler:

  • Uygulamanızdaki değişikliklerin takvimlerine hızlıca yansıması
  • Net saat dilimi davranışı (etkinlik zamanı randevu konumuyla eşleşmeli)
  • Güvenilir hatırlatmalar (uygulamanızdan ve/veya onların takviminden—hangi kaynaktan geldiğini açıklayın)

Sağlayıcı görünürlük kontrolleri

Sağlayıcılar paylaşılan içerik üzerinde kontrol sahibi olmalıdır:

  • Hangi takvimlerin senkronize edileceğini seçme (kişisel vs iş)
  • Dış olayların sadece “meşgul” olarak mı kabul edileceğine karar verme (başlık/detay aktarılmasın)
  • Hangi randevu detaylarının yazılacağını kontrol etme (hizmet adı vs sadece “Meşgul”)

Daha sonra bir yönetici paneli eklerseniz, bu ayarları /settings altında toplayın ki destek elle senkronizasyonla uğraşmak zorunda kalmasın.

Sağlayıcı Araçları ve Yönetici Panosu Gereksinimleri

Bir zamanlama uygulaması müşterinin rezervasyon yaptığı andan sonra yaşananlara bağlıdır. Sağlayıcılar kullanılabilirliği hızlıca güncelleyecek araçlara ihtiyaç duyar, yöneticiler ise dağınıklığın destek biletlerine dönüşmesini önleyecek denetime ihtiyaç duyar.

Sağlayıcı araçları (personelin ihtiyaçları)

En azından, her sağlayıcı kendi çalışma gerçekliğini destekleyecek şekilde aşağıyı yapabilmelidir:

  • Saatleri ve kullanılabilirlik şablonlarını ayarlama (haftalık şablonlar, birden çok konum, hizmet başına farklı saatler)
  • İzinler ve istisnalar (tatiller, hastalık, tek seferlik program değişiklikleri)
  • Molalar ve tamponlar (öğle, seyahat, randevular arası temizlik)
  • Grup hizmetleri için kapasite ayarları ve paylaşılan kaynaklar (örn. “Oda A”)

Hafif günlük operasyon özellikleri ekleyin:

  • Hizmete ve konuma göre filtrelenebilen takvim görünümü (gün/hafta)
  • Sağlayıcının görebileceği müşteri notları (tercihler, alerjiler, erişim talimatları)
  • Durum kontrolleri: onayla, geldi olarak işaretle, tamamlandı, gelinmedi

Yönetici panosu (işletmenin ihtiyaçları)

Yönetici panosu rezervasyon edilebilirliği ve parayı etkileyen her şeyi merkezileştirmeli:

  • Hizmetleri, süreleri, eklentileri, fiyatlandırmayı ve depozitoları yönetin
  • Kullanıcıları, rolleri, izinleri ve sağlayıcı işe alımını yönetin
  • Konumları yapılandırın (saatler, adres detayları, oda/kaynak kuralları)
  • Global rezervasyon kurallarını ayarlayın (lead time, iptal pencereleri, müşteri başına limitler)

Raporlama ve destek araçları

Raporlama zamanlamayı karara dönüştürür:

  • Rezervasyon vs iptaller, gelir, sağlayıcı kullanım oranı, popüler saatler/hizmetler

Destek araçları sürtüşmeyi azaltır:

  • Müşteri adına manuel rezervasyon yapabilme
  • Geçersiz kılma (zorla rezervasyon, depozito muafiyeti, randevu taşıma)
  • Tam rezervasyon zaman çizgisi/denetim kaydı ve destek görüşmeleri için dahili notlar

Eğer farklı katmanlar sunuyorsanız, gelişmiş raporlama ve geçersiz kılmaları yönetici-only bir alanda (/pricing) tutun.

MVP Kapsamı, Teknoloji Yığını ve İnşa Planı

Plan Booking Rules Clearly
Map roles, policies, and edge cases before code so your availability rules stay consistent.
Use Planning Mode

Bir zamanlama uygulaması sonsuza kadar genişleyebilir, bu yüzden ilk sürüm tek bir şeye odaklanmalı: müşterinin doğru sağlayıcıyla güvenilir şekilde zaman ayırtabilmesi.

MVP kapsamı (olmazsa olmaz ekranlar + API'ler)

Çok hizmetli bir rezervasyon MVP'si için sıkı bir ekran seti hedefleyin: hizmet kataloğu (süre/fiyat ile), sağlayıcı seçimi (veya “en uygun”), kullanılabilir zamanların takvim görünümü, rezervasyon detayları + onay ve “Rezervasyonlarım” ile yeniden planlama/iptal.

Backend'de ilk API yüzeyini küçük tutun: hizmetleri/sağlayıcıları listele, kullanılabilirliği getir, rezervasyon oluştur, güncelle/iptal et ve bildirim gönder. Sağlayıcı saatleri ve izinlerini yönetmek için temel yönetici araçları ekleyin—bunlar yoksa destek talebi hızla artar.

Teknoloji seçimleri (mobil + backend + veritabanı)

Native (Swift/Kotlin) iyi performans için harikadır, ama bir MVP için paylaşılan UI'ye daha hızlı ulaşmak adına React Native veya Flutter genelde daha hızlıdır.

Backend için takımınızın teslim edip sürdürebileceği bir şey seçin: Node.js, Django veya Rails hepsi uygundur. Rezervasyonlar ve kullanılabilirlik kuralları için Postgres kullanın, ödeme/kısa süreli tutmalar sırasında çift rezervasyonu önlemek için Redis kullanın.

Hızlı prototipleme ile Koder.ai (opsiyonel, ama pratik)

Rezervasyon akışlarını aylarca custom mühendisliğe başlamadan önce hızlıca doğrulamak istiyorsanız, sohbet tabanlı bir spec ile çekirdek ürünü prototiplemenize yardımcı olabilecek bir vibe-coding platformu olan Koder.ai işinizi kolaylaştırabilir.

Koder.ai React web uygulaması, Go backend ile PostgreSQL ve bir Flutter mobil uygulaması üretebilir; planlama modu, kaynak kodu dışa alma ve snapshot/rollback destekler—zaman dilimleri, tamponlar ve yeniden planlama mantığında iterasyon yaparken geriye dönük hataları önlemek için faydalıdır.

Test kontrol listesi (kullanıcıların gerçekten fark ettiği hatalar)

Test edin:

  • Kullanıcı ve sağlayıcı bazında saat dilimleri
  • Yaz Saati Uygulaması değişiklikleri (kaybolan/tekrarlanan saatler)
  • Eş zamanlı “tap”larda çift rezervasyon
  • Tarih sınırlarını geçen yeniden planlamalar
  • İade ve depozito köşe durumları (kısmi iadeler, iptal pencereleri)

Yayılma planı (beta, geri bildirim, versiyonlama)

Küçük bir beta grubu ile başlayın (5–20 sağlayıcı) ve basit bir geri bildirim döngüsü kurun: uygulama içi “Bir sorun bildir” ve haftalık başarısız rezervasyon/iptal incelemesi.

API'nizi baştan versiyonlayın ki eski uygulama sürümlerini kırmadan iterasyon yapabilesiniz ve dahili operasyonlar ile destek için net bir değişiklik günlüğü yayınlayın.

Güvenlik, Gizlilik ve Güvenilirlik Kontrol Listesi

Zamanlama uygulaması kişisel bilgiler, takvimler ve ödemelerle ilgilenir—küçük güvenlik hataları hızla güven kaybına dönüşür. Bu kontrol listesini MVP'nizi aşırı inşa etmeden güvenli ve güvenilir tutmak için kullanın.

Kullanıcı hesapları, izinler ve veri minimizasyonu

Sadece gerçekten gerekli olanı toplayarak başlayın: isim, iletişim yöntemi, zaman ve hizmet. Hassas notları varsayılan olarak saklamaktan kaçının.

Rol tabanlı erişim kullanın:

  • Müşteriler sadece kendi rezervasyonlarını görüp yönetir.
  • Sağlayıcılar onlara atanmış rezervasyonları ve hizmeti sunmak için gereken müşteri verilerini görür.
  • Yöneticiler sağlayıcıları, hizmetleri, ihtilafları ve iadeleri yönetir.

API'de en az ayrıcalık ilkesini zorlayın, sadece UI ile yetinmeyin.

Parolaları modern hashing ile saklayın (örn. bcrypt/Argon2), sağlayıcılar/yöneticiler için isteğe bağlı 2FA etkinleştirin ve oturumları kısa ömürlü tokenlarla güvenceye alın.

Rezervasyon hataları için logging ve izleme

Rezervasyonu kritik bir işlem olarak ele alın. “Slot zaten alınmış”, ödeme hataları ve takvim senkronizasyon sorunları gibi hataları takip edin.

İzleme için correlation ID'leri kullanın (her rezervasyon denemesi için bir ID) ki olayları servisler arasında izleyebilin. Loglarda hassas veri bulundurmayın (ham kart verisi yok, PII minimum).

Yedekleme ve felaket kurtarma temelleri

Veritabanını düzenli yedekleyin ve geri yüklemeleri periyodik olarak test edin. RPO/RTO hedeflerinizi tanımlayın (ne kadar veri kaybedebilirsiniz ve ne kadar hızla kurtarmanız gerekir).

Basit bir olay müdahale kitabı belgeleyin: kim aranır, rezervasyonu geçici olarak nasıl durdurursunuz ve durum iletişimi nasıl yapılır (örn. /status).

Gizlilik ve uyumluluk dikkatleri

Saklama kurallarını yayımlayın (iptal edilen rezervasyonlar ve kullanıcısı inaktif hesaplar ne zaman silinir). İhracat/silme istekleri sunun.

Düzenlenmiş kategorilere hizmet veriyorsanız gereksinimler değişir:

  • Sağlık: HIPAA (ABD) veya yerel tıbbi gizlilik kuralları.
  • Ödemeler: PCI DSS kapsamı—kartları tokenize eden bir ödeme sağlayıcısı tercih edin.
  • Finans/kimlik: daha güçlü KYC, denetim izleri ve şifreleme gereksinimleri.

Hassas alanlar için aktarımda (TLS) ve saklamada şifreleme kullanın ve üçüncü taraf SDK'ları yayına almadan önce gözden geçirin.

İçindekiler
Zamanlama Problemini ve Uygulama Modelini TanımlayınKullanıcı Rolleri ve Temel Rezervasyon Akışlarını HaritalayınHizmet ve Kullanılabilirlik Kurallarınızı TasarlayınZamanlama İçin Doğru Veri Modelini SeçinZamanlama Motorunu İnşa Edin (Slotlar, Çakışmalar, Saat Dilimleri)Basit Hisseden Bir Rezervasyon UX'i OluşturunBildirimler, Hatırlatmalar ve Gelinmemeyi AzaltmaÖdemeler, Depozitolar ve İade İşleyişiTakvim Entegrasyonları ve Dış SenkronizasyonSağlayıcı Araçları ve Yönetici Panosu GereksinimleriMVP Kapsamı, Teknoloji Yığını ve İnşa PlanıGüvenlik, Gizlilik ve Güvenilirlik Kontrol Listesi
Paylaş
Koder.ai
Build your own app with Koder today!

The best way to understand the power of Koder is to see it for yourself.

Start FreeBook a Demo