Visbodypoint
Visbody Point haritası
Visbody müşteri merkezlerini (Point) Türkiye haritasında tek bir güvenilir vitrinde buluşturan platform.
“Ayinesi iştir kişininlafa bakılmaz”
Bu yüzden sözü, Visbody’yi her gün kullanan uzmanlara bırakıyoruz.
Sözü sahadaki uzmanlara bırakıyoruz
Aktif Visbody müşterilerini tek bir vitrinde göstermek
Visbodypoint, Visbody müşterilerini ilan eden ve bu işletmelerin aktif Visbody müşterisi olduğunu gösteren bir vitrin ve dizin sitesidir.
- Point listesi eski CRM ucuna (crm.hhp.com.tr) bağlı; uç Bearer token ile erişilebilir.
- Eski CRM verisinin kirli veya eksik olma riski.
- Müşteriliği biten bir Point'in önbellekte görünür kalma riski.
- Kişisel verilerin konumu ve saklama sürelerinin netleştirilmesi ihtiyacı.
- Bağımsız platform; eski CRM'e çalışma zamanı bağımlılığı yok. Eski uç kapatılır, sayfalar 301 ile devredilir.
- CSV içe aktarımında dry-run, manuel karar listesi ve mutabakat.
- Arşivde senkron yayılım: ilk ziyaretçi bile eski içeriği görmez; profil 410 döner.
- Tüm veri Türkiye'de; tanımlı saklama ve imha süreleri.
Doğrulanmış müşteriler
Yalnız aktif müşteri doğrulama kaydı bulunan Point yayına alınır. Müşteriliği sona eren Point arşivlenir ve public yüzeyden kalkar.
Yalın vitrin
Ücret, komisyon, ücretli rozet ve lead toplama yoktur. Ziyaretçi, Point'e doğrudan telefon veya web sitesi üzerinden ulaşır.
Türkiye'de, KVKK uyumlu
Uygulama, veritabanı, medya, yedek ve loglar Türkiye'de barındırılır. Public sitede çerez ve analitik yoktur.
Doğrulanan veri, yayınlanan vitrin
Faz 1'de veriyi yalnız Admin girer ve günceller. Her yayın, doğrulama kaydına bağlıdır.
Veri girişi
Admin, Point'i panelden ekler veya CSV ile içe aktarır. CSV'den açılan Point taslak durumunda başlar.
Doğrulama
"Aktif Visbody müşterisi" doğrulama kaydı girilir. Kayıt yoksa Yayınla düğmesi pasiftir.
Yayın
Durum akışı: taslak → incelemede → yayında. Harita, liste, profil ve sitemap birlikte güncellenir.
Keşif ve iletişim
Ziyaretçi Point'i bulur; "Ara" veya "Web sitesi" ile doğrudan ulaşır. Talep kaydı tutulmaz.
Bul, incele, ulaş
Harita ve liste birlikte çalışır. Ziyaretçi il/ilçe veya cihaz modeline göre arar, Point profilini inceler ve doğrudan iletişime geçer.
Harita
Türkiye haritası ve senkron liste. Düşük yakınlaştırmada kümeleme.
Arama
İl/ilçe araması ve cihaz modeli filtresi. Türkçe karakter duyarsız.
Bana en yakın
Konum yalnız tarayıcıda işlenir; sunucuya koordinat gitmez.
Profil
/[il]/[slug] sayfası: adres, cihaz modeli, çalışma saatleri, fotoğraflar.
İletişim
"Ara" (tel:) ve "Web sitesi". Form ve talep kaydı yok.
Harita sayfası
Ön izleme / temsili tasarımPoint profili ve İletişim
Ön izleme / temsili tasarımİletişim butonu kuralları
- Varsayılan olarak açıktır.
- Public telefon veya web bilgisi varsa görünür; ikisi de yoksa gizlenir.
- "Ara" tel: bağlantısıdır; "Web sitesi" yeni sekmede açılır.
- Form yoktur, talep kaydı tutulmaz.
Arşivlenen Point
Konum izni verilmezse harita Türkiye geneline açılır; liste önce il, sonra ada göre sıralanır.
Erişilebilirlik: WCAG 2.2 AA, klavyeyle marker gezinme, hareketi azaltma tercihine uyum.
Performans (mobil 4G): LCP ≤ 2,5 sn · INP ≤ 200 ms · CLS ≤ 0,1.
Kontrollü, izlenebilir yönetim
Admin paneli ayrı alt alan adında çalışır: admin.visbodypoint.visbody.tr. Giriş Argon2id parola ve zorunlu TOTP ile yapılır.
Point listesi · doğrulama yoksa Yayınla pasif
Ön izleme / temsili tasarım| Point | İl / İlçe | Durum | Son doğrulama | İşlem |
|---|---|---|---|---|
| Örnek Point — İstanbul | İstanbul / Kadıköy | yayında | Var · satış kaydı | Arşivle |
| Örnek Point — Ankara | Ankara / Çankaya | incelemede | Var · fatura | Yayınla |
| Örnek Point — İzmir | İzmir / Karşıyaka | incelemede | Yok | Yayınla ⚠ Son doğrulama kaydı yok — Yayınla pasif |
| Örnek Point — Antalya | Antalya / Muratpaşa | taslak | — | Düzenle |
| Örnek Point — Trabzon | Trabzon / Ortahisar | arşiv | Var · sözleşme | 410 · yeni doğrulama ile yayın |
Ekran durumları · boş, dolu ve hata
Ön izleme / temsili tasarımSüzgeci değiştirin veya tüm Türkiye'yi görüntüleyin.
Geri alma: her CSV batch'i öncesinde otomatik geri yükleme CSV'si saklanır.
Gözden geçir listesi: doğrulaması bir yılı aşan Point Admin'e bildirilir; otomatik arşiv yoktur.
Audit log: her yazma işlemi kim, ne, ne zaman, önce/sonra bilgisiyle kayda alınır.
Sade yığın, net sınırlar
Tek build, tek dağıtım. Public ve admin yüzeyleri aynı uygulamada, ayrı route gruplarında ve ayrı veritabanı rolleriyle çalışır.
Ziyaretçi
Harita, liste, profil · hesap yok · çerez yok
Admin
Parola + TOTP · ayrı alt alan adı
Ters vekil / TLS
443 yalnız burada · public host'ta /admin* → 404 · x-middleware-subrequest silinir
Next.js uygulaması
Tek build, tek dağıtım · standalone · 127.0.0.1
public route grubu
SSR/ISR · harita, liste, profil, sitemap · MapLibre + self-host PMTiles · nonce'suz CSP
admin route grubu
Her handler ve server action'da requireAdmin · nonce'lu strict CSP · audit log
pg-boss işçisi
Medya türevi ve CSV işleme · başarısız işler listesi
PostgreSQL 18
app_public · yalnız SELECT, public görünüm
app_rw · Admin yazma
Drizzle · btree_gist · unaccent
Nesne depolama
public media. alanı · özel alan (imzalı, kısa ömürlü URL)
Operasyon
JSON log · uptime · TR yönetici e-postası uyarısı · şifreli yedek + WAL
Katmanlı güvenlik, varsayılan olarak gizlilik
Güvenlik kuralları test edilebilir biçimde tanımlanmıştır; kişisel veri en az düzeyde işlenir ve tüm veri Türkiye'de tutulur.
Parola + zorunlu TOTP
- Argon2id (m=19456, t=2, p=1)
- TOTP tohumu AES-256-GCM ile şifreli
- Kurtarma kodları yalnız hash
- 15 dakikada 5 hatalı denemede kilit
Her işlemde doğrulama
- Yetki proxy.ts katmanına bağlı değil
- Her handler'da requireAdmin
- Host'a göre iki DB havuzu
- Public taraf yazma yetkisi taşımaz
Başlıklar ve içerik
- Sayfa türüne göre CSP
- HSTS, Referrer-Policy, nosniff
- Yükleme: sharp, 8 MB, SVG yok
- Audit log yalnız ekleme
Kimliği doğrulanmış OWASP ZAP taraması · bağımlılık taraması · OWASP ASVS L1 tabanlı manuel test listesi · arşiv yayılım testi. Kritik bulgu varken canlıya çıkılmaz; yüksek bulgu yalnız Ürün Sahibinin (Ö-1) yazılı gerekçesiyle kapatılır.
Veri minimizasyonu
- Public sitede çerez yok; analitik Faz 1'de kapalı.
- Ziyaretçi konumu sunucuya gitmez; sıralama tarayıcıda.
- Vergi numarası ve yasal unvan yalnız Admin'de.
- Kişi adı/fotoğrafı yalnız kayıtlı gösterim onayıyla.
Şeffaflık
- /aydinlatma sayfası footer'dan erişilir; yayında olması G1 kanıtıdır.
- Hukuki dayanak tablosu onaylanmadan canlıya çıkılmaz.
Saklama ve imha
| İşletme vitrin kaydı | Silinmez, arşivlenir |
| Kişi fotoğrafı (özel bayt) | Onay iptalinden 30 gün sonra |
| Uygulama logu | 90 gün |
| IP içeren erişim logu | 1 yıl |
| Şifreli yedek | 90 gün |
| CSV dosya baytları | 90 gün; batch özeti kalır |
| Onay satırı | İspat kaydı olarak kalır |
Veri sorumlusu: Enteksis Teknoloji Sistemleri Tic. Ltd. Şti.
Fazlar ve canlıya çıkış kapısı
Sistem adım adım canlıya alınır; her adımda çalışan sistem müşteriye gösterilir.
Faz 0 · Hazırlık
- Sağlayıcı seçimi ve topoloji
- Repo, CI/CD, boş dağıtım hattı
- Eski CRM alan ve URL envanteri
- Ara çözüm ve eski uç kapatma
- Ekran listesi, emanet prosedürü
Faz 1 · Vitrin + Admin
- Public harita, liste, profil
- Admin CRUD, CSV, doğrulama
- Yayın/arşiv, senkron yayılım
- TOTP, audit log, CSP
- Saklama/imha, aydınlatma
Canlı
Tüm G1 maddeleri kanıtlandığında MVP canlıya çıkar.
Faz 2 · Self-servis
Opsiyonel; Proje Sahibinin ayrı kararıyla açılır.
- Point daveti ve Point rolü
- HMAC imzalı RLS
- Taslak/onay, base_version
Bağımsız değerlendirme puanları
Yol haritası, geliştirme sürecinden bağımsız yapay zekâ değerlendiricileri tarafından 100 puan üzerinden değerlendirilmiştir; onay eşiği 95 puandır. Parantez içinde değerlendirilen taslak sürümü belirtilmiştir.
Ölçek 80–100 aralığında gösterilmiştir. Mavi: eşik karşılandı · Gri: eşiğin altında.
| Mimari | 20/20 |
| Güvenlik | 19/20 |
| KVKK | 19/20 |
| UX | 19/20 |
| Uygulanabilirlik | 20/20 |
G1: tüm maddeler zorunlu
G1 maddelerinin tamamı zorunludur; herhangi biri kanıtlanmadan canlıya çıkılmaz.
Yedekten geri yükleme
Başarılı tatbikat tutanağı
Eski CRM uçları kapalı
Harici tarama kanıtı (401/404)
301 devri
Eski sayfalar yeni slug'lara yönlenir
Güvenlik test paketi
Kritik bulgu yok; yüksek bulgu Ö-1 gerekçesiyle
Anahtar emanet kaydı
Geri yükleme emanetteki anahtarlarla
Hata uyarı e-postası
Test bildirimi ulaşmış
Aydınlatma sayfası
/aydinlatma yayında, 200 döner
Hukuki dayanak tablosu
Onay satırı dolu
KVKK belgeleri
VERBİS cevabı, DPA, m.11 posta kutusu
ZAP yüksek bulgusu
Varsa Ö-1 tarafından yazılı gerekçeyle kapatılmış
İlerleme planı
Kararlar
Karar bekleyen kalemlerin Proje Sahibi tarafından belirlenmesi; Ö-1 ve Ö-2 ön koşullarının sağlanması.
Faz 0
Sağlayıcı seçimi, repo ve CI/CD, çalışan standalone boş dağıtım hattı, eski CRM envanteri.
Faz 1 adımları
ADR-048 sırasıyla geliştirme; her adım bağımsız değerlendirilir ve müşteriye canlı gösterilir.
G1 ve canlı
G1 kanıt paketi tamamlanır; eski sayfalar 301 ile devredilir; MVP canlıya çıkar.
Karar kapıları kod yazımını durdurmaz; ilgili madde varsayılanıyla ilerler, G1 ise kalem kanıtlanmadan kapanmaz.
- Ürün Sahibinin (Ö-1) belirlenmesiG1-4, G1-10
- Eski CRM ve visbody.com.tr yazma erişiminin sahibi (Ö-2)G1-2, G1-3
- Türkiye barındırma sağlayıcısıFaz 0.1
- İki emanet sorumlusunun belirlenmesiG1-5
- Hukuki dayanak tablosu onay satırı ve tarihiG1-8
- VERBİS yazılı cevabı (Enteksis hukuk danışmanı)G1-9
- Barındırıcı veri işleyen sözleşmesi (DPA)G1-9
- m.11 posta kutusunun adresiG1-9
- Doğrulama kaynağının hangi Enteksis iç kaydı olduğuYayın kapısı · varsayılan: diger
Ayrıntılı gereksinimler, kabul testleri ve mimari karar kayıtları Visbodypoint Proje Yol Haritası (Versiyon 1.0, kurumsal) belgesinde yer alır.
Faz 1 geliştirmesi için teklif
Proje kapsamı, mimari, güvenlik gereksinimleri ve yol haritası bu sayfanın önceki bölümlerinde yer almaktadır. Bu aşamada Faz 1 · Vitrin + Admin geliştirmesi için teklif beklenmektedir. Geliştirme, yapay zekâ destekli bir çalışma modeliyle ilerler; teslim yaklaşımınızı bu çalışma modelini dikkate alarak hazırlamanız beklenir.
Teklifiniz alındı
Teklifiniz başarıyla iletilmiş ve değerlendirmeye alınmıştır.



