Otel iş akışı paneli
Çok otelli işletmeler için ön büro, satış, operasyon, misafir yorumları, reklamlar ve muhasebeyi tek panelde birleştiren otel yönetim sistemi.
Otel İş Akışı Paneli, birden fazla oteli olan işletmeler için geliştirdiğim kapsamlı bir otel yönetim panelidir. Makdos için geliştirdiğim bu panel; ön büro, kat hizmetleri, teknik servis, yiyecek-içecek satışları, satın alma, vardiya, misafir ilişkileri ve muhasebe işlerini tek bir uygulamada birleştirir. Bunlara ek olarak dış platformlardaki misafir yorumlarını ve reklam kampanyalarını sürekli izler, tanımlanan kurallara göre uyarı üretir ve verileri analiz etmek için bir sorgu ekranı sunar.
Amaç
Otellerde rezervasyon programı, muhasebe yazılımı, yorum siteleri, reklam panelleri ve mesajlaşma araçları genellikle birbirinden kopuk çalışır. Bir misafirin şikâyeti WhatsApp'tan gelir, aynı misafirin olumsuz yorumu bir yorum sitesine düşer, teknik arıza ise ayrı bir deftere yazılır. Bu paneli, bu dağınık akışları tek bir kayıt düzeninde toplamak ve otel yönetiminin olup biteni tek ekrandan görmesini sağlamak için geliştirdim.
Panelin bir diğer amacı, birden çok oteli olan bir işletmenin tüm otellerini aynı kurulumdan, ama her oteli kendi verisiyle ayrı tutarak yönetebilmesidir. Kullanıcılar otellere bağlanır ve yalnızca yetkili oldukları otellerin verisini görür. Panelin adı, logosu ve rengi kurulum ayarlarından gelir, böylece her müşteri paneli kendi markasıyla kullanır.
Nasıl çalışır
Panelde otelle ilgili her kayıt bir otele bağlıdır ve her istek, kullanıcının o otele erişimi olup olmadığı denetlendikten sonra işlenir. Bir istekte gönderilen oda, misafir, ürün ya da kullanıcı kimliği başka bir otele aitse istek reddedilir. Yetki iki eksende çalışır. Rol ekseninde izleyici okur, düzenleyici ekler ve düzenler, yönetici siler ve onaylar, hesap sahibi ise her şeyi yapabilir. Modül ekseninde ise kullanıcının ön büro, kat hizmetleri, satın alma gibi hangi bölümlere erişebileceği belirlenir.
Ön büro tarafında oda tipleri, odalar, acenteler ve misafirler tanımlanır. Rezervasyonlar bir durum makinesiyle yönetilir; yani bir rezervasyonun hangi durumdan hangi duruma geçebileceği kurallarla sınırlandırılmıştır. Kişi sayısı oda tipinin kapasitesini aşamaz, yeni bir rezervasyonun giriş tarihi geçmişte olamaz ve gelmeyen misafirler için ayrı bir arka plan işi çalışır. Konaklama süresince yapılan satışlar ve iadeler misafirin folyosuna, yani hesap dökümüne işlenir ve tahsilatlar bu folyoya bağlanır.
Arka planda tek bir döngü halinde çalışan bir iş sistemi kurdum. Bu döngü, zamanı gelen dış kaynakları sırayla eşitler; aynı kaynağın iki kez işlenmesini veritabanı kilitleriyle önler, art arda gelen hatalarda bekleme süresini artırır ve eşitleme sürekli başarısız olursa uyarı üretir. Uyarı kuralları yalnızca yeni gelen kayıtlar için değerlendirilir ve aynı uyarı birden fazla kez oluşmaz. Üretilen uyarılar panelde gösterilir, isteğe göre e-posta ya da Telegram ile de gönderilir.
Öne çıkan özellikler
- Ön büro ekranları rezervasyon, giriş ve çıkış işlemleri, ziyaretçi kaydı ve oda durumunu kapsar; misafirin kimlik numarası listelerde ve değişiklik kaydında maskelenir.
- Kat hizmetleri ve teknik servis için arıza, temizlik, şikâyet, talep ve kayıp eşya kayıtları tutulur.
- Ürün ve stok yönetimi kritik stok eşiğini izler ve stok bu eşiğin altına düştüğünde uyarı üretir.
- Satın alma talepleri ve personel vardiyaları panel üzerinden planlanır ve onaylanır.
- Google Business Profile, YouTube, TripAdvisor ve Booking gibi kaynaklardaki misafir yorumları resmî API'ler üzerinden düzenli olarak çekilir; CSV ile ya da elle de yorum eklenebilir.
- Yorumlara yapay zekâ ile yanıt taslağı hazırlanabilir, ancak taslak her zaman bir insanın onayından geçer ve taslakta iade, indirim ya da fiyat sözü verilmesi engellenir.
- Google Ads, Meta ve LinkedIn reklam kampanyalarının günlük metrikleri izlenir; kampanyayı durdurma, başlatma ya da bütçe değiştirme işlemleri önce deneme kipinde sınanır.
- WhatsApp Cloud API ile gelen mesajlar bir gelen kutusunda toplanır, yapay zekâ niyet ve duygu analizi yapar, tanımlanan kurallara göre otomatik yanıt önerir ve gerektiğinde konuşmayı bir çalışana devreder.
- SMS ve e-posta gönderimi yapılabilir; pazarlama amaçlı iletiler yalnızca izin vermiş misafirlere gider ve izinler İYS ile eşitlenir.
- Giderler CSV ya da Excel dosyasından içe aktarılabilir ve Logo, Netsis, Mikro ve Paraşüt gibi muhasebe programlarıyla eşitlenebilir.
- Analiz ekranı, kaynakları, boyutları ve ölçüleri sunucuda izin listesiyle sınırlanmış, serbest SQL yazılmasına izin vermeyen bir sorgu motoruyla çalışır.
- Muhasebe modülünde kasa, çek, banka hareketi ve TCMB kurlarıyla döviz çevirisi bulunur.
Güvenlik
Dış servislere bağlanmak için girilen kimlik bilgilerini veritabanında AES-256-GCM ile şifreleyerek saklarım. Bu bilgiler hiçbir API yanıtında geri dönmez ve hata mesajlarından da ayıklanır. WhatsApp'tan gelen bildirimler imza doğrulaması olmadan kabul edilmez. Dış platformlarla yalnızca resmî API'ler ve kullanıcının kendi kimlik bilgileriyle çalışırım, sayfa kazıma yöntemine başvurmam.
Paneli birden fazla müşteriye satılabilecek biçimde kurdum. Her müşteri bir pakete bağlıdır ve paket açılabilecek otel sayısını sınırlar. Müşteri yetkilisi kendi otellerinin tamamında hesap sahibidir. Makdos aynı panelden kendi bölümüne girer ve orada müşterileri, paketleri, destek taleplerini ve faturaları yönetir, ancak müşterilerin otel, departman, kullanıcı ya da işlem verisini görmez.
Teknik altyapı
- Sunucu tarafını Go ile, yönlendirme için chi kütüphanesini kullanarak yazdım.
- Veritabanı olarak PostgreSQL kullanırım; bağlantılar pgx ile, şema değişiklikleri programa gömülü goose migration'larıyla yapılıyor.
- Para tutarları veritabanında
numerictüründe tutuluyor ve JSON'da metin olarak taşınıyor. - Oturumlar HttpOnly çerezle yönetiliyor, parolalar argon2id ile saklanıyor.
- Arayüzü React 19, Vite, TypeScript ve Tailwind ile geliştirdim; grafikler için recharts kullanırım.
- Panom ekranındaki olay kartları, sunucudan anlık bildirim gönderen SSE bağlantısıyla güncelleniyor.
- Başsız Chrome ile çalışan uçtan uca bir test yazdım; bu test bütün ekranları gezip form alanlarına bilerek hatalı değerler girerek doğrulamaları sınıyor.
- Sunucuda gecelik yedek alınıyor ve haftada bir yedeğin geri yüklenebildiği otomatik olarak deneniyor.
Arayüzde erişilebilirlik konusunda açık ve koyu temada Lighthouse erişilebilirlik puanının tam çıkmasını hedefledim ve ölçtüğüm sayfalarda bu hedefe ulaştım.
Kullanım alanları
- Birden fazla oteli olan zincirler ya da işletme grupları, tüm otellerini tek bir panelden ayrı ayrı yönetebilir.
- Misafir yorumlarını ve sosyal medya geri bildirimlerini tek bir yerden izlemek isteyen satış ve pazarlama ekipleri için uygundur.
- Reklam harcamasını ve kampanya performansını otel bazında görmek isteyen yöneticiler bu paneli kullanabilir.
- Misafir iletişimini WhatsApp, SMS ve e-posta üzerinden izin kurallarına uygun yürütmek isteyen misafir ilişkileri ekipleri için yararlıdır.
Durum
Panelin bütün ekranları test ortamında yayında. Çok müşterili yapı ve Makdos bölümü tamamlandı, otel tablolarında satır düzeyinde güvenlik ile yalıtım üzerinde çalışmaya devam ederim. Dış servis bağlantılarının gerçek hesaplarla canlı doğrulaması da yapılacak işler arasında.
- Kategori
- Kurumsal paneller
- Yıl
- 2026
Teknolojiler
- Go
- PostgreSQL
- React
- Hospitality
- AI