Seçili işlere dön
Birlikte geliştirilen ürün deneyi · Yan proje

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.

fitbalance.lab
HAFTALIK TAKVİM12 — 18
PZTSALÇARPERCUM
YENİ BAŞVURU18:30Onay bekliyorKVKK ✓
3ayrı ürün yüzeyi
2veri yaşam döngüsü
KVKKsürümlü açık onay
01 / BAĞLAM

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.

02 / MİMARİ

Parçalar değil,
veri akışı.

Her katman tek bir sorumluluğu taşıyor; ürün davranışı sınırların arasında kaybolmuyor.

01Public EMS/Pilates ve içerik sayfaları
02JSON tabanlı pazarlama içeriği
03PHP admin · içerik ve başvuru yönetimi
04PHP ekip alanı · eğitmen takvimi
05PDO + MySQL işlem verisi
06Session · CSRF · rate limit güvenlik katmanı
03 / PROBLEM ÇÖZME

Zor kısımlar.

CHALLENGE 01

İç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.

CHALLENGE 02

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.

04 / STACK

Doğru iş için
doğru araç.

01
Native PHP

Mevcut cPanel altyapısında ek runtime veya ayrı uygulama sunucusu gerektirmeden public, admin ve ekip yüzeylerini işletmek için.

02
JSON + MySQL

Sık düzenlenen vitrin içeriğini taşınabilir tutarken hesap, onay ve randevu verisinde ilişkisel bütünlüğü korumak için.

03
PDO prepared statements

Veritabanı erişimini parametrik sorgularla sade ve güvenli tutmak için.

04
Session + CSRF

Admin, ekip ve public form işlemlerini ayrı oturum sınırlarında istek sahteciliğine karşı korumak için.

05
Host tabanlı URL katmanı

Aynı kodu kopyalamadan public site, panel ve ekip alanını ayrı subdomain’lerden sunmak için.

06
Cloudflare cache ayrımı

Public içeriği hızlandırırken oturumlu admin ve ekip HTML’inin önbelleğe alınmasını engellemek için.

05 / RETROSPECTIVE

Öğrendiklerim.

01

Paylaşımlı hosting kısıtı, doğru sınırlar kurulduğunda ürün geliştirmeye engel olmak zorunda değil.

02

Pazarlama içeriğiyle işlem verisinin yaşam döngüsü farklıdır; depolama seçimi bu farkı izlemelidir.

03

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.

06 / FUTURE PLANS

Bir sonraki sürüm.

Randevu bildirimleriDaha ayrıntılı yetki rolleriOperasyon raporları