FEZA innovation – Ana Sayfa
Güzellik salonu yazılımının takvim ekranı ve tanıtım görseli
Web Çözümleri2026Yayında

Güzellik Salonu Yönetim Sistemi

Randevudan tahsilata, paket seansından stoğa kadar salonun tamamı tek ekranda.

Tüm projeleri gör
Yıl
2026
Platform
Web
Durum
Yayında

Teknolojiler

  • Next.js
  • TypeScript
  • PostgreSQL
  • Prisma
  • Auth.js
  • Tailwind CSS

Bir randevunun peşindeki dağınık kayıtlar

Salonda bir randevu açıldığında yalnız saat ayırmış olmuyorsunuz. Müşterinin paket hakkı, hizmeti verecek uzman, kullanılacak kabin ve hizmet sonrası ödeme aynı işin parçaları. Projenin çıkış noktası bu bilgilerin defter, ayrı tahsilat kâğıdı ve hatırlanan seans sayıları arasında dağılmasıydı. Biz çalışma düzenini randevudan başlayıp gün sonuna uzanan bir kayıt zinciri olarak ele aldık. Böylece panelin tasarımını ekran sayısından önce günlük işin sırası belirledi.

Bir müşteri aradığında resepsiyonun takvime bakması, uzmanın geçmişi incelemesi ve tahsilatı alan kişinin kalan borcu görmesi gerekiyor. Ortak müşteri kaydını bu geçişlerin merkezine koyduk. Ziyaret, paket ve ödeme birbirine bağlanırken çalışanların görev kapsamlarını da ayrı tuttuk. Boş saatlerin ve takip gerektiren kayıtların günlük panelde görünmesi, kayıt tutma ile sonraki işi seçme arasında bağlantı kurdu. Siz günü planlarken aynı müşteri hakkında farklı listelerden bilgi toplamak yerine ilişkili kayıtlarla ilerliyorsunuz.

Başlangıçtaki ihtiyaç

  • Randevu ve tahsilat ayrı yerlerde tutuluyor.
  • Paket kullanımı hizmetten sonra ayrıca takip ediliyor.

Geliştirme odağı

  • Randevu, müşteri ve ödeme arasında ilişki kurmak.
  • Günlük işi görev kapsamına göre görünür kılmak.

Tek panelin içinde ayrı sorumluluklar

Tek panel kararını bütün çalışanların aynı işlemleri yapması şeklinde uygulamadık. Rol izinleri, kullanıcıya özel izin ekleri ve kaldırmaları ile firmanın etkin özellikleri birlikte değerlendiriliyor. Resepsiyonun randevu açmasıyla muhasebenin ödeme iptalini incelemesi farklı sorumluluklar. Biz bu ayrımı hem gezinmeye hem sunucu eylemlerine taşıdık. Yetki ve firma durumu istek sırasında veritabanından tazeleniyor; ekranda görünen seçenekler çalışan göreviyle ilişkilendiriliyor.

Paket ve kasa için de ayrı kayıt modelleri seçtik. Paket hakkının değişmesi seans defterinde hareket oluşturuyor. Nakdin hesabı ise yalnız tarihe bakılarak değil, açık kasa oturumuna bağlı hareketlerle kuruluyor. Bu kararlar aynı panelde farklı işlerin kendi kurallarını korumasını sağlıyor. Bir ödemeyi incelerken kasa bağını, bir paket kullanımını incelerken randevu bağını görebiliyorsunuz. Geçmişi düzeltmek için ters hareket kullanılması da geliştirmede ortak bir yaklaşım oldu.

Görev kapsamı

Rol ve kullanıcı
Varsayılan izinlere kişisel ekler ve kaldırmalar uygulanır; etkin firma özellikleri erişim kapsamına katılır.

Hizmet hakkı

Seans defteri
Kullanım ve iade ayrı hareketlerdir. Ekran sayacı defterle birlikte güncellenir.

Nakit sorumluluğu

Kasa oturumu
Nakit hareketleri açık oturuma bağlanır; şube başına tek açık kasa veritabanında korunur.

Firma bağlamını veritabanına kadar taşımak

Uygulamanın teknik temelini Next.js, TypeScript, PostgreSQL ve Prisma oluşturuyor. Auth.js oturum tarafında yer alıyor. Biz salonlar arası ayrımı yalnız ekran filtresine bırakmak yerine PostgreSQL satır güvenliği politikalarıyla uygulama kontrollerini birlikte kullandık. Firma bağlamı işlem içinde yerel olarak kuruluyor; bağlantı havuzundaki sonraki isteğe taşınmıyor. Portal sorgularında bu kapsam müşteri kimliğiyle daha da daraltılıyor. Kullanıcı tablosundaki firma kapsamı ise uygulama filtresi üzerinden yönetiliyor.

Değişiklik yapan sunucu eylemleri girdi şemasını, oturumu, izni ve firma durumunu kontrol ediyor. Denetim kaydı değişiklikle aynı veritabanı işlemi içinde yazılıyor. Bu yapı bir kaydın yeni değeri kadar onu kimin değiştirdiğini de incelemeye imkân veriyor. Geliştirme kaynaklarında firma izolasyonunu sınayan testler bulunuyor. Satış defteri testlerinde stok yetersizliğinin satışı reddetmesi gibi iş senaryoları da yer alıyor. Böylece mimariyi salon kapsamı ve iş kuralı üzerinden ayrı ayrı değerlendirebiliyoruz.

Satır güvenliği

PostgreSQL RLS politikaları firma kapsamını uygular; uygulama işlemleri de firma bağlamını kontrol eder.

İşlem izi

Mutasyon ve denetim kaydı aynı transaction içindedir. Randevu geçmişi, seans ve stok hareketleri ayrıca tutulur.

İşlem kayıtlarında randevu, satış ve kasa kapanışının kullanıcı ve zaman bilgileri

Saat seçimini bir uygunluk hesabına çevirmek

Randevu geliştirmesinde zor kısım boş görünen bir saatin gerçekten uygun olup olmadığını belirlemekti. Uzmanın mesaisi, molası ve izni; hizmet yetkinliği; kabin ve cihaz gereksinimi aynı karara katılıyor. Hizmet süresiyle hazırlık payı da hesapta yer alıyor. Biz takvimdeki personel sütunlarını bu uygunluk hesabının görünür yüzü olarak tasarladık. Kaynak uygunluğu ekranda ayrı sütun göstermeden de randevu motorunun girdisi oluyor.

Çakışma kontrolü sunucu akışında yapılırken eşzamanlı rezervasyon veritabanı kısıtıyla da korunuyor. Çakışan seçimden sonra kullanıcıya en fazla beş uygun alternatif sunuluyor. Liste uygun saat bulunmasına bağlı; öneriler tıklanarak seçilebiliyor. Buradaki tasarım kararı hata mesajından sonra yeni bir yol göstermekti. Siz saat değiştirdiğinizde personel ve kaynak koşullarını yeniden birlikte değerlendiren akışla ilerliyorsunuz. Birden fazla hizmetin ardışık planlanması da aynı uygunluk yaklaşımına katılıyor; her hizmetin gereksinimi hesapta kendi yerini koruyor.

  • Mesai, yetkinlik ve kaynak koşulları birlikte değerlendirilir.
  • Çakışmada en fazla beş uygun alternatif gösterilir.
Günlük takvimde uzman sütunları, renkli randevular ve hafta şeridi

Hizmet tamamlanınca başlayan kayıt zinciri

Paket hakkının randevu açılır açılmaz azalması, planlanan işle yapılan işi birbirine karıştırırdı. Biz kullanımı tamamlanma olayına bağladık. Randevu tamamlandığında seans defterine kullanım hareketi yazılıyor; tamamlanma geri alınırsa iade hareketi oluşuyor. Eski kullanımın silinmemesi, hakkın neden değiştiğini geçmişte izlemeyi sağlıyor. Ekranlarda kullanılan seans sayacı da bu defterle eşzamanlı güncelleniyor. Satılan paketin adı ve seans değerleri satış anındaki hâliyle saklanıyor.

Tahsilat tarafında aynı randevunun ikinci kez ücretlendirilmesi engelleniyor ve paketten karşılanan hizmet tekrar ücretlendirilmiyor. Nakit açık kasa oturumuna bağlanıyor; kart ve havale çekmecedeki nakde eklenmiyor. Kapanış diyaloğunda sayım girildikten sonra beklenen tutar ve fark gösteriliyor. Mutlak fark 50 ₺ veya üzerindeyse açıklama gerekiyor. Beklenen tutarın, sayımın ve farkın kapanışta dondurulması, gün sonunu sonradan yeniden hesaplanan bir toplamdan ayrı bir kayıt hâline getiriyor.

  1. 01

    Gerçekleşen hizmet

    Tamamlanma seans kullanımını doğurur; geri alma ters hareketle hakkı iade eder.

  2. 02

    Tahsilatın bağı

    Ödeme hizmetle ilişkilendirilir. İptal sebebi ve ters hesap hareketi kaydedilir.

  3. 03

    Sayım ve açıklama

    Kapanış değerleri saklanır; mutlak 50 ₺ ve üzeri farkta açıklama zorunludur.

Açık kasa özetinde tahsilat, giderler ve geçmiş gün sonlarının farkları

Dar ekranda günlük görevin sırasını korumak

Telefon tasarımında masaüstü takvimini küçültmek yerine ajanda görünümünü kullandık. Masaüstünde uzman sütunlarıyla okunan gün, telefonda saat sırasıyla izleniyor. Alt menü yeni randevuya erişim sağlıyor; tam menü çekmecesi diğer alanları açıyor. Form düzenleri ve kartlar dar ekrana uyarlanıyor. Dokunmatik taşıma davranışında basılı tutma gecikmesi, yanlış sürüklemeyi azaltmak için yer alıyor. Böylece telefonda bir kaydı açmak ve randevuyu taşımak farklı hareketlerle ele alınıyor.

Uzmanın günlük görünümünü personel kaydıyla eşleştirdik. Varsayılan kapsamda kendi randevularını izleyip durumlarını ilerletebiliyor; rol ve kişisel izinler işlem kapsamını belirliyor. Siz hizmet odasına geçerken sıradaki kaydı tarayıcıdan açabiliyorsunuz. Ayrı uygulama indirmeden kullanılan bu düzenin odağı, randevu durumu ile müşteri bilgisini günlük işin içinde erişilebilir tutmak. Ekranlar örnek verilerle çekilmiştir. Aşağıdaki görüntüler ajanda ve uzman günü kararlarının arayüzdeki karşılığını gösteriyor.

Telefon takviminde randevuların saat sırasıyla ajanda görünümü
Telefonda uzmanın kendi randevuları, tamamladığı işlemler ve satışları

Taşıma kararını satır satır görünür kılmak

Veri geçişinde temel müşteri bilgileri için CSV önizlemesini kullandık. Excel listesinin CSV UTF-8 biçiminde kaydedilmesi, aktarımın belirli bir dosya biçimi üzerinden ilerlemesini sağlıyor. Akış en fazla 5.000 satırı destekliyor. Önizlemede dosya içindeki tekrarlar, mevcut telefonlar, hatalı satırlar ve eklenecek kayıtlar ayrı gösteriliyor. Şube seçimi bu değerlendirmenin parçası. Siz aktarmadan önce hangi satırın nasıl ele alınacağını inceleyebiliyorsunuz; aktarım sırasında veri yeniden kontrol ediliyor.

Bu yaklaşımda müşteri listesini içeri almakla çalışma düzenini kurmak ayrı adımlar. Hizmet süreleri, gereken kaynaklar, personel yetkinliği ve mesai tanımları uygun saat hesabını besliyor. Biz başlangıç değerlendirmesini bir müşteri kaydından randevuya, tamamlanmadan tahsilata ve kasa kapanışına uzanan örnek akışla ilişkilendirdik. Eski randevu, finans ve seans geçmişinin geçiş kapsamı ayrıca görüşülüyor. Temel müşteri aktarımının önizlemesi, bu görüşmede hangi kayıtların hazır olduğunu ve hangi alanların ayrıca ele alınacağını somutlaştırıyor.

  1. 01

    Dosyayı hazırlamak

    Temel müşteri listesi CSV UTF-8 olarak kaydedilir; hedef şube seçilir.

  2. 02

    Satırları değerlendirmek

    Tekrarlar ve hatalar önizlemede ayrılır; aktarım veriyi yeniden kontrol eder.

CSV önizlemesinde aktarılacak, tekrar eden ve hatalı müşteri satırları

Canlı üründen sonraki geliştirme kararlarına

Güzellik Salonu Yönetim Sistemi canlı kullanımda. Bu vaka çalışmasında geliştirme yaklaşımını randevu uygunluğu, seans hareketi, kasa oturumu ve firma kapsamı üzerinden anlattık. Günlük panelde kalan paket hakkı, geciken ziyaret ve bekleyen online talep gibi kayıtların yapılacak işlere dönüşmesi de aynı yaklaşımın devamı. Takip satırı kullanıcıya neden ilgilenmesi gerektiğini gösteriyor; görüşmenin sonucu panelde işaretleniyor. Hazır mesaj dış uygulamada açıldığında kontrol ve gönderim sizde kalıyor.

Sonraki kapsamı salonun günlük görevleri üzerinden birlikte değerlendirebiliriz. Etkin firma özellikleri hangi alanların kullanılacağını belirliyor; ekip rolleri ve şube düzeni bu seçime yön veriyor. Biz yeni bir ihtiyacı konuşurken ilgili kaydın nerede oluştuğuna, hangi işlemle değiştiğine ve geçmişinin nasıl izleneceğine bakıyoruz. Ürün sayfasında ekranları ve kullanım kapsamını daha ayrıntılı inceleyebilirsiniz. Görüşmede kendi randevu, paket ve kapanış akışınızı paylaşmanız, sonraki geliştirme kararını somut bir çalışma senaryosuna bağlamamıza yardımcı olur.

01 // Sonuçlar

  • Canlı kullanımda; temel müşteri bilgileri CSV (UTF-8) ile önizlemeli aktarılabilir. Excel listesini bu biçimde kaydetmek gerekir; en fazla 5.000 satır desteklenir.
  • Salon verileri veritabanı satır güvenliğiyle (RLS) ayrılır; izolasyon testleri vardır.
  • İptal ve yetki değişimi kayıt altında; müşteri, personel, hizmet ve ürün arşivlenir. Ödemeler silinmez; sebebiyle iptal edilir ve ters hesap hareketi kaydedilir.

02 // Galeri

Takvim ekranı: personel sütunları ve günün randevuları (örnek veri)
Takvim ekranı: personel sütunları ve günün randevuları (örnek veri)
Günün randevuları ve “Bugün aranacaklar” kartı
Günün randevuları ve “Bugün aranacaklar” kartı

03 // Sık sorulan sorular

Neden randevu, paket ve ödeme aynı panelde ele alındı?

Biz bu kayıtları aynı hizmetin farklı adımları olarak ele aldık. Ortak müşteri kaydı üzerinden bağlantı kuruldu; randevu planlaması, gerçekleşen seans ve tahsilat kendi kurallarını korudu.

Salon kapsamı teknik olarak nasıl kuruldu?

Firma bağlamı veritabanı işlemi içinde yerel kurulur. PostgreSQL satır güvenliği ve uygulama kontrolleri birlikte kullanılır; portal sorguları ayrıca müşteri kimliğiyle daraltılır.

Seans defteri tasarımında hangi karar öne çıktı?

Kullanımı tamamlanan randevuya bağladık. Geri alma eski hareketi silmek yerine iade hareketi üretir. Ekranlarda kullanılan sayaç defterle birlikte güncellenir.

Çakışma mesajından sonra kullanıcı nasıl ilerler?

Akış en fazla beş uygun alternatif üretir. Kullanıcı öneriyi seçebilir; uygun saat bulunmadığında liste boş kalır. Personel ve kaynak koşulları uygunluk hesabına birlikte katılır.

Kasa neden takvim günü yerine oturum üzerinden hesaplanıyor?

Nakit hareketinin hangi açık kasaya ait olduğunu izlemek için oturum modeli kullanıldı. Kapanışta sayım, beklenen tutar ve fark saklanır; mutlak 50 ₺ ve üzeri fark açıklama ister.

CSV önizlemesi geçişte neyi görünür kılıyor?

Temel müşteri listesindeki tekrarları, mevcut telefonları, hatalı ve eklenecek satırları gösterir. Siz aktarım öncesi değerlendirebilirsiniz; veri aktarım sırasında tekrar kontrol edilir.

Benzer Projeler

Kendi çalışma akışınızı birlikte tasarlayalım

Randevu, seans ve tahsilat arasındaki kayıt ihtiyaçlarınızı paylaşın; sonraki geliştirme kararını günlük işleriniz üzerinden konuşalım.

Projeni Başlat