🛒 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
requestAnimationFrametabanlı 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,
nobodykullanı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.

