synergia-web/
├── app/
│ ├── page.tsx ← Ana sayfa (oyun başlat / katıl)
│ ├── host/[code]/ ← Host (oyun yöneticisi) ekranı
│ ├── join/[code]/ ← QR okuyunca açılan katılım sayfası
│ └── room/[code]/ ← Oyuncu oyun ekranı (sıralama, bekleme)
├── components/
│ ├── QRDisplay.tsx ← QR kodu canvas bileşeni
│ └── Avatar.tsx ← Renkli avatar bileşeni
├── lib/
│ ├── firebase.ts ← Firebase başlatma
│ ├── db.ts ← Realtime DB okuma/yazma
│ └── gameEngine.ts ← Puanlama algoritması (Java'dan port)
└── .env.local.example ← Ortam değişkenleri şablonu
- https://console.firebase.google.com → "Add project"
- Proje adı:
synergia(istediğin herhangi bir şey) - Realtime Database → "Create database" → "Start in test mode"
- Project Settings → "Web" uygulaması ekle → Config değerlerini kopyala
cp .env.local.example .env.local
# Ardından .env.local içindeki değerleri Firebase'den yapıştırnpm install
npm run dev
# → http://localhost:3000Firebase Console → Realtime Database → Rules:
{
"rules": {
"sessions": {
"$code": {
".read": true,
".write": true
}
}
}
}Production'da auth ekle, bu kurallar sadece geliştirme içindir.
npm install -g vercel
vercel
# Vercel sana .env değerlerini sorar, Firebase'den kopyala yapıştırDeploy sonrası vercel.app URL'ini al, arkadaşlarına gönder!
Host → Ana sayfa → "Oyun başlat"
→ /host/ABC123 (QR gösterilir)
Oyuncu → QR okut → /join/ABC123
→ İsim gir → /room/ABC123
Host → Tema seç → "Turu başlat"
→ Oyuncular sıralar → "Turu bitir"
→ Sonuçlar + Adjacency Matrix
(Yeni tur veya oyunu bitir)
5 oyunculu bir oyunda sıralayan kişi:
-
- sıraya koyduğuna → 4 puan
-
- sıraya koyduğuna → 3 puan
-
- sıraya koyduğuna → 2 puan
-
- (son) sıraya koyduğuna → 1 puan
lib/gameEngine.tsiçine yeni puanlama stratejisi ekle- Firebase Auth ile gerçek kimlik doğrulama
- D3.js ile Adjacency Matrix → Network Graph görselleştirmesi
- Özel tema ekleme (host kendi tema listesini girebilsin)