FitBalance
Birlikte geliştirdiğimiz; stüdyo vitrini, içerik yönetimi, KVKK kontrollü etkinlik başvuruları ve eğitmen takvimini aynı üründe buluşturan fitness platformu.
Neden yaptım?
Problem
Bir fitness stüdyosunun yalnızca tanıtım sayfasına değil; güncellenebilir içeriklere, etkinlik başvurularına, ayrı ekip erişimine ve çakışmaları önleyen bir randevu akışına ihtiyacı vardı. Bunların paylaşımlı hosting koşullarında yönetilebilir kalması gerekiyordu.
Yaklaşım
Public site, admin paneli ve eğitmen takvimini tek PHP kod tabanında fakat ayrı sorumluluklarla kurduk. Pazarlama içeriğini JSON’da, kullanıcı hesabı, başvuru, randevu ve audit verisini MySQL’de tuttuk; böylece içerik düzenleme kolaylığını ilişkisel veri güvenliğiyle birleştirdik.
Parçalar değil,
veri akışı.
Her katman tek bir sorumluluğu taşıyor; ürün davranışı sınırların arasında kaybolmuyor.
Zor kısımlar.
İçerik ile işlem verisini ayırmak
Eğitmen, paket ve yazı gibi düzenlenebilir vitrin içeriğini JSON’da; hesap, onay, başvuru ve randevu gibi bütünlük isteyen kayıtları MySQL’de tutarak iki farklı veri ihtiyacını aynı kalıba zorlamadık.
Oturumlu ekranları cache’den korumak
Admin ve ekip alanlarında session/CSRF akışının CDN önbelleğiyle bozulmaması için no-store yanıtları ve host bazlı URL yapılandırması kullandık; public yüzeyi ayrı cache davranışında bıraktık.
Doğru iş için
doğru araç.
Mevcut cPanel altyapısında ek runtime veya ayrı uygulama sunucusu gerektirmeden public, admin ve ekip yüzeylerini işletmek için.
Sık düzenlenen vitrin içeriğini taşınabilir tutarken hesap, onay ve randevu verisinde ilişkisel bütünlüğü korumak için.
Veritabanı erişimini parametrik sorgularla sade ve güvenli tutmak için.
Admin, ekip ve public form işlemlerini ayrı oturum sınırlarında istek sahteciliğine karşı korumak için.
Aynı kodu kopyalamadan public site, panel ve ekip alanını ayrı subdomain’lerden sunmak için.
Public içeriği hızlandırırken oturumlu admin ve ekip HTML’inin önbelleğe alınmasını engellemek için.
Öğrendiklerim.
Paylaşımlı hosting kısıtı, doğru sınırlar kurulduğunda ürün geliştirmeye engel olmak zorunda değil.
Pazarlama içeriğiyle işlem verisinin yaşam döngüsü farklıdır; depolama seçimi bu farkı izlemelidir.
KVKK onayı yalnızca arayüzde bir kutu değil; metin sürümü ve zaman damgasıyla saklanan bir ürün davranışıdır.