FakirYol — "Hayali sanal lüks alışveriş deneyimi"

FakirYol — "Hayali sanal lüks alışveriş deneyimi"

Tüketim kültürünü mizahi bir dille ele alan, uçtan uca geliştirilmiş parodi e-ticaret uygulaması. Go + Vue 3 + PostgreSQL ile sunucu otoriteli oyunlaştırma, güvenli kimlik doğrulama ve konteynerli dağıtım.

GolangVue 3PostgreSQLDockerJWTFull-stackTailwind CSS

🛒 FakirYol

🔗 Canlı Site: fakiryol.com

FakirYol, tüketim kültürünü ve lüks özentisini mizahi bir dille ele alan, uçtan uca geliştirdiğim **parodi bir e-ticaret uygulamasıdır.

Kullanıcılar "Altın Kaplama Lahmacun"dan "Bahçeli Havuzlu Villa"ya kadar absürt derecede pahalı hayali ürünleri sepete ekler, "Baba Parası" veya "Gelecekteki Zengin Halim Ödesin" gibi hayali ödeme yöntemleriyle sipariş verir ve siparişlerini uçan Tofaş'lı animasyonlu bir kargo takip ekranından izler. Gerçek para alınmaz, gerçek ürün gönderilmez — proje tamamen bir simülasyon ve sosyal hicivdir.


✨ Öne Çıkan Özellikler

  • Sunucu otoriteli oyunlaştırma motoru: Günlük "dopamin" ilerlemesi, ardışık gün serileri (streak), gizli koşullu rozetler (örn. gece 02:00–05:00 arası sipariş vermek, maaş gününde 5 sipariş) ve rozetlerden türeyen profil unvanları. Tüm başarımlar backend'de doğrulanır ve geçmiş siparişler için geriye dönük yeniden hesaplanabilir.
  • Animasyonlu kargo takibi: Özel SVG rota interpolasyonu ile çizilmiş hayali İstanbul haritası üzerinde requestAnimationFrame tabanlı uçan Tofaş animasyonu, canlı telemetri günlüğü, teslimat aşamaları ve "pırlanta bahşişi" ile geçici 3.2x turbo modu.
  • Canlı liderlik tablosu: Rozet sayısı ve seri uzunluğuna göre deterministik sıralama, kullanıcıya özel sıra bildirimi ve 10 saniyelik tazelik penceresine sahip, açık invalidasyonlu in-memory önbellek.
  • Anonim → kayıtlı kullanıcı geçişi: Ziyaretçiler anonim oturum token'ı ile başlar, kayıt olduklarında ilerlemeleri güvenli şekilde hesaba taşınır.

🔐 Güvenlik Yaklaşımı

E-posta toplamadan çalışan, gizlilik odaklı bir kimlik sistemi tasarladım:

  • HTTP-only cookie'lerde saklanan HS256 JWT'ler
  • Global oturum iptali için token versiyonlama
  • bcrypt ile parola ve güvenlik sorusu cevabı hashleme
  • Zamanlama saldırılarına karşı dummy bcrypt karşılaştırmaları
  • Hesap numaralandırmayı (account enumeration) önleyen endpoint tasarımı
  • IP bazlı rate limiting
  • Katı CORS ve güvenlik başlıkları (HSTS, frame deny, referrer policy)
  • Prodüksiyonda zayıf JWT secret veya eksik TLS yapılandırması tespit edilirse uygulama açılmayı reddeder

🛠️ Teknoloji Yığını

Backend

  • Go 1.25, chi router, pgx, golang-jwt, bcrypt

Veritabanı

  • PostgreSQL 16 — sipariş kalemleri için JSONB, UUID üretimi için pgcrypto

Frontend

  • Vue 3 (Composition API, <script setup>), Vue Router 4, Vite, Tailwind CSS 4
  • Pinia yerine modül seviyesinde reaktif primitive'lerle hafif bir store
  • Lazy-loaded rotalar; localStorage + cookie + PostgreSQL hibrit kalıcılık modeli

Dağıtım

  • Üç konteynerli Docker Compose mimarisi (Nginx + statik SPA, statik derlenmiş Go binary'si ile minimal Alpine, PostgreSQL)
  • Multi-stage build'ler, nobody kullanıcısıyla çalışan backend, health check'ler
  • Immutable asset önbellekleme, rsync/SSH tabanlı deploy script'leri
  • TLS Cloudflare katmanında sonlanır

📈 Neden Bu Proje?

FakirYol, Her gün maruz kaldığımız "sürekli bir şeyler satın almalıyım" hissini ve lüks özentiliğini tatlı bir mizahla, parodi bir simülasyon üzerinden gösteren bir üründür. İnsanlar siteye girsin, absürt pahalı şeyleri sepete atıp "gelecekteki zengin hallerine" borçlanırken hem eğlensin hem de aslında bu sistemin ne kadar absürt ve komik olduğunu fark etsin istedim. Kısacası; sadece kod yazmış olmak için değil, insanları güldürürken biraz olsun düşündürecek bir alan yaratmak için bu yola çıktım.