- ✅ JWT tabanlı kullanıcı kaydı ve girişi
- ✅ Çoktan seçmeli quiz oluşturma (A, B, C, D seçenekleri ile)
- ✅ Canlı oturum başlatma ve PIN (sessionId) ile oyuncu katılımı
- ✅ Gerçek zamanlı Socket.io iletişimi
- ✅ Her soru için geri sayım ve cevap gönderme
- ✅ Doğru cevaba göre puanlama ve skor tablosu
- ✅ Mobil ve masaüstü uyumlu EJS arayüzleri
- Eğitmen giriş yapar ve quiz oluşturur.
- “Quiz List” sayfasından bir quiz seçip oturum başlatır.
- Oyuncular
/joinsayfasından session ID (PIN) girerek katılır. - Eğitmen oyunu başlatınca sorular sırayla gönderilir.
- Oyuncular cevap verir, süre sonunda skor tablosu görüntülenir.
- Son soru bitince quiz tamamlanır.
| Alan | Teknoloji |
|---|---|
| Backend | Node.js, Express.js |
| Gerçek Zaman | Socket.io |
| Veritabanı | MongoDB + Mongoose |
| Kimlik | JWT + Cookie-Parser |
| Arayüz | EJS (Server-rendered) |
| Stil | Basit HTML/CSS |
├── models/ # Mongoose şemaları (User, Quiz)
├── routes/ # Express yönlendirmeleri
├── controllers/ # İş mantığı
├── socketHandlers/ # Socket.io olayları (host & player)
├── views/ # EJS şablonları
├── sessionStore.js # Oturum verileri (memory)
├── app.js # Ana uygulama dosyası
├── .env # Gizli bilgiler (JWT_KEY vb.)
/register→ yeni kullanıcı oluştur/login→ giriş yap/api/createQuiz→ quiz oluştur/api/quizList→ quiz seç ve başlat/join→ oyuncu girişi
- Zaman bazlı puanlama
- Quiz geçmişi görüntüleme
- Admin dashboard
- Gerçek zamanlı sıralama animasyonları
Bu proje eğitim amaçlıdır. İstenirse MIT lisansı ile paylaşılabilir.