Problem
Bir otel bugün aynı odayı birden fazla kanaldan satıyor: kendi sitesi, acenteler, çevrimiçi rezervasyon platformları, telefon. Her kanal kendi takvimini tutuyorsa, çifte rezervasyon zaman meselesidir.
İkinci sorun operasyonda. Resepsiyon, kat hizmetleri ve muhasebe farklı defterler tutar. Odanın temizlenip temizlenmediği telefonla sorulur, folio elle toplanır, gün sonu mutabakatı akşam yapılır.
Üçüncüsü raporlama. Doluluk oranı, ortalama oda geliri ve kanal bazlı performans sorulduğunda cevap ancak elle hazırlanan bir tablodan gelir, ve o tablo her zaman geç gelir.
Yaklaşım
Tek takvim, tek gerçek
Sistemin merkezinde tek bir müsaitlik takvimi var. Bütün kanallar bu takvimi okur ve bu takvime yazar. Kanal başına ayrı stok tutmak yerine merkezi kontenjan yönetimi kurgulandı; bir kanaldan satılan oda, diğerlerinde anında kapanır.
Çifte rezervasyon riskini teknik olarak imkânsıza yaklaştıran şey burada verilen karardır: müsaitlik tek yerde, kilitlemeyle yönetilir.
Kat hizmetleri akışı
Oda durumu (kirli, temizleniyor, hazır, arızalı) telefonla değil sistem üzerinden ilerler. Kat görevlisi kendi cihazından durumu günceller, resepsiyon anında görür. Check-in sırasında “oda hazır mı” sorusunun cevabı ekranda durur.
Folio ve gün sonu
Konuğun hesabına işlenen her kalem, konaklama, ekstra, restoran, spa, tek folioda toplanır. Gün sonu kapanışı elle toplama yerine sistemden alınır ve muhasebeye entegrasyon katmanı üzerinden aktarılır.
Rol bazlı yetki
Resepsiyon, kat hizmetleri, muhasebe ve yönetim aynı sistemi farklı ekranlarla kullanır. Bir kullanıcının göremediği veri, o kullanıcının yanlışlıkla bozamayacağı veridir. Otelcilikte personel devir hızı yüksek olduğu için bu, güvenlik kadar operasyonel istikrar meselesidir.
Teknik kurgu
- Panel: Vue.js + TypeScript, rol bazlı arayüz
- Sunucu: Node.js servisleri
- Veri: PostgreSQL, rezervasyon ve folio kayıtlarında işlem bütünlüğü
- Eşzamanlılık: Redis üzerinde kilit yönetimi, aynı odanın iki kanaldan aynı anda satılmasını engeller
- Entegrasyon: kanal bağlantıları ve muhasebeye aktarım, hata kuyruğu ve tekrar deneme ile
Öğrenilenler
Eşzamanlılık bu işin kalbi. Otel yazılımında ekranlar kolay, doğru olan zor kısım aynı anda gelen iki rezervasyonun doğru sırayla işlenmesidir. Kilit stratejisi baştan doğru kurulmazsa sistem sezon yoğunluğunda hata verir, yani tam da en pahalı anda.
Operasyon personeli en sert testtir. Sezonda çalışan bir kat görevlisi, eğitim videosu izlemez. Ekran kendini anlatmıyorsa kullanılmaz.
Kanal entegrasyonları sessizce bozulur. Bu yüzden izleme paneli ve bildirim, entegrasyonun kendisi kadar önemli. Bozulduğunu ertesi gün müşteriden öğrenmek kabul edilebilir değil.
Bu vaka analizi, sistemin kurgusunu ve alınan teknik kararları anlatır. Proje bazlı ölçülmüş sonuçlar ve müşteri referansları için doğrudan iletişime geçebilirsiniz.
Kullanılan teknolojiler
- Vue.js
- Node.js
- PostgreSQL
- Redis