Mevcut Durum
Basit Anlatım
Şu anda nerede tutuluyor?
Tasarım şablonlarına verdiğiniz puanlar, kategori, marka ve notlar tarayıcınızın hafızasında (localStorage) saklanıyor.
Problem nedir?
- Başka tarayıcıdan bakınca görünmüyor
- Farklı bilgisayardan erişilemiyor
- Tarayıcı temizlenince kayboluyor
- Ekip arkadaşlarınız göremez, herkes kendi notunu tutar
Yani: Veriler kişisel ve geçici durumda!
Teknik Detaylar
Dosya:
public/design/templates/index.php
Saklama Mekanizması:
localStorage.setItem('designData', JSON.stringify(designData))
Veri Yapısı:
{
"kurumsal-anasayfa/v1": {
"favorite": true,
"rating": 5,
"note": "Mükemmel tasarım",
"kategori": "saglik",
"marka": "Acme Corp"
}
}
Sorun:
- Browser-only (client-side)
- Kalıcı değil (cache clear = kayıp)
- Paylaşılamaz (user-specific)
- Yedekleme yok
Çözüm Seçenekleri
Merkezi JSON Dosyası
Basit, hızlı, kalıcı çözüm
Nasıl Çalışır?
- Tek bir JSON dosyası oluşturulur
- Tüm tasarımların bilgileri burada tutulur
- Puan verdiğinizde → dosyaya kaydedilir
- Herkes aynı dosyayı okur → ortak veri
Teknik Yapı
public/design/templates/metadata.json
template-metadata.php → POST
AJAX fetch → metadata.json
Artılar:
- Basit, hızlı kurulum
- Tüm kullanıcılar ortak veri görür
- Yedekleme kolay (1 dosya)
- Version control ile takip edilebilir
- Database'e gerek yok
Dikkat Edilmesi Gerekenler:
- Dosya izinleri (tuufi.com_:psaserv, 644)
- Aynı anda kayıt çakışma riski (race condition)
- Çok büyük veri olursa yavaşlayabilir (şimdilik sorun değil)
MySQL Database
Daha kapsamlı, profesyonel çözüm
Nasıl Çalışır?
- Veritabanında tablo oluşturulur
- Her tasarım için ayrı satır
- SQL ile sorgulama yapılır
- Güçlü, ölçeklenebilir
Teknik Yapı
design_template_metadata
template_id (VARCHAR)
rating (INT)
kategori (VARCHAR)
marka (VARCHAR)
note (TEXT)
is_favorite (BOOLEAN)
Artılar:
- Çok veri olsa da performanslı
- Gelişmiş sorgulama (en çok puanlanan, vb.)
- Eşzamanlı yazma sorunu yok
- İstatistik raporları kolay
Neden Şimdi Değil?
- Daha karmaşık kurulum
- Migration, model, controller gerekli
- Şu anda over-engineering olur
- JSON çözümü yeterli (30-40 tasarım için)
Not: İleride 500+ tasarım olursa bu çözüme geçilebilir.
Önerilen Çözüm: JSON Metadata Sistemi
Ne Yapılacak? (Basit Anlatım)
-
1
JSON dosyası oluşturulacak
Tüm tasarımların puanları, kategorileri bu dosyada tutulacak
-
2
Kaydetme sistemi kurulacak
Puan verince → otomatik kaydedilecek
-
3
Sayfa açılışta yüklenecek
Templates sayfası → JSON'dan veriyi çekecek
-
4
Herkes aynı veriyi görecek
Tüm bilgisayarlardan, tarayıcılardan ortak erişim
Nasıl Yapılacak? (Teknik)
public/design/templates/metadata.json
template-metadata.php
POST ile metadata.json'a yaz
- • Sayfa açılışta: fetch metadata.json
- • Puan ver: AJAX POST → metadata.php
- • localStorage siliniyor (artık gereksiz)
chown tuufi.com_:psaserv metadata.json
chmod 644 metadata.json
Dosya Yapısı
Klasör Yapısı:
public/design/templates/
├── index.php (mevcut)
├── template-action.php (mevcut - silme)
├── template-metadata.php (YENİ - kaydetme)
├── metadata.json (YENİ - veri)
├── kurumsal-anasayfa/
├── madencilik/
└── ...
metadata.json Örnek:
{
"kurumsal-anasayfa/v1": {
"rating": 5,
"favorite": true,
"kategori": "saglik",
"marka": "Koc Holding",
"note": "Müthiş tasarım"
},
"madencilik/v2": {
"rating": 4,
"kategori": "madencilik",
"marka": "Unimad"
}
}
Neden JSON? (Diğer Seçenekler Neden Değil?)
TXT Dosyası
Düz metin dosyası
Neden değil?
- Parse etmek zor
- Yapılandırılmış veri yok
- JavaScript ile okuma zorlu
CSV Dosyası
Excel gibi tablo
Neden değil?
- İç içe veri zor
- Array/object desteği yok
- Virgül sorunları
JSON Dosyası
Modern veri formatı
Neden en iyi?
- JavaScript native
- Yapılandırılmış veri
- Oku/yaz basit
- İnsan okunabilir
Sonraki Adımlar (Uygulama)
metadata.json oluştur
Boş JSON dosyası, izinleri ayarla
template-metadata.php yaz
POST ile JSON'a kaydetme API'si
index.php güncelle
localStorage → JSON fetch sistemine çevir
Mevcut localStorage verilerini taşı
Var olan puanları JSON'a aktar (migration)
Test et
Farklı tarayıcılardan dene, ortak veri kontrolü