Spaced Repetition tabanlı akıllı öğrenme uygulaması
Basit, hızlı, tamamen tarayıcı tabanlı bir Leitner sistemi uygulaması. Kurulum gerekmez — tüm veriler LocalStorage'da saklanır ve offline çalışır.
- 📦 Leitner kutu sistemi — 1–5 kutu, otomatik tekrar aralıkları
- 🧠 Flip kart öğrenme — Animasyonlu kart çevirme
- 📊 İstatistikler — Gelişim takibi, başarı oranı, kutu dağılımı
- 🎨 Tema seçeneği — Light / Dark mod
- 💾 Veri yönetimi — LocalStorage + JSON backup/restore
- 📱 Responsive tasarım — Mobil/tablet/masaüstü uyumlu
- ⌨️ Klavye kısayolları — Hızlı navigasyon
- 🧪 Test veri yükleyici — Demo veriler
- 🌐 Offline çalışır — Sunucu gerekmez
Leitner sistemi, bilgileri doğru zamanda tekrar etmeyi sağlayan bir flashcard metodudur. Her kart yanıtına göre bir kutu ileri/geri hareket eder.
| Kutu | Tekrar Aralığı | Açıklama |
|---|---|---|
| 1 | 1 gün | Yeni / zor kartlar |
| 2 | 2 gün | Öğrenilmekte olan |
| 3 | 4 gün | Pekiştirme |
| 4 | 7 gün | İleri seviye |
| 5 | 30 gün | Master seviye |
Kutu 1 → Bildim → Kutu 2 → Bildim → Kutu 3 → ... → Kutu 5
Kutu X → Bilemedim → Kutu 1
Sadece index.html dosyasını açman yeterli.
- ✅ Backend yok
- ✅ Sunucu gerekmez
- ✅ Offline çalışır
- ✅ Veriler LocalStorage'da tutulur
- Yeni deste oluştur — Öğrenmek istediğin konuyu seç
- Kart ekle — Soru + Cevap + Kategori gir
- Çalış — Çalış butonuna tıkla
- Cevap ver — Kartı çevir, sonuç seç (Bildim / Bilemedim)
- İlerleme takip et — İstatistiklerden gelişimini gözlemle
Tarayıcı konsolunda (F12):
loadTestData();- Desteler listesi
- Her deste için istatistik gösterimi
- Kutu dağılımı grafiği
- Deste oluştur, düzenle, sil
- Hızlı erişim butonları (Çalış, İstatistikler, Ayarlar)
- Deste içindeki kartları görüntüle
- Kart ekleme (Soru + Cevap + Kategori)
- Kart düzenleme ve silme
- Deste silme (modal onayı ile)
- Ana sayfaya dönüş
- Flip kart — Click/Space ile kartı çevir
- İlerleme göstergesi — X/Y kartından ne kadarını tamamladın
- Cevap butonları — Bilemedim (Kutu 1'e) / Bunu Bildim (Sonraki kutuya)
- Klavye desteği — Hızlı cevapla
- Toplam kartlar
- Master seviyesine ulaşan kartlar
- Başarı oranı (%)
- Bugün çalışılan kartlar
- Kutu dağılımı (tüm desteler)
- Deste bazında istatistikler
- Tema seçimi — Light / Dark mod
- Verileri indir — JSON backup oluştur
- Verileri yükle — Önceki yedeği geri yükle
- Tüm verileri sil — İlk duruma dön (modal onayı)
- Proje bilgileri — Versiyon, teknolojiler
| Tuş | İşlev |
|---|---|
Space |
Kartı çevir |
1 veya ← |
Bilemedim (Kutu 1'e geri) |
2 veya → |
Bunu Bildim (Sonraki kutuya) |
- Tüm desteler ve kartlar tarayıcı belleğinde tutulur
- Otomatik kaydedilir (her işlemden sonra)
- Tarayıcı cache temizlenene kadar korunur
- Ayarlar sayfasına git
- Verileri İndir butonuna tıkla
- JSON dosyası indirilir:
leitner-export-YYYY-MM-DD.json
- Ayarlar sayfasına git
- Verileri Yükle butonuna tıkla
- Daha önce indirilen JSON dosyasını seç
- Tüm veriler geri yüklenir
// Test verilerini yükle
loadTestData();
// Tüm verileri sil
clearAllData();
// Manuel backup
const backup = Storage.exportData();
console.log(backup);
// Manuel restore
Storage.importData(jsonString);Learn with Leitner/
├── index.html (Ana sayfa - 252 satır)
├── deckpage.html (Deste yönetimi - 177 satır)
├── workpage.html (Çalışma ekranı - 182 satır)
├── statistics.html (İstatistikler - 187 satır)
├── settings.html (Ayarlar - 223 satır)
│
├── js/
│ ├── app.js (Ana uygulama - 450 satır)
│ ├── deckpage.js (Deste sayfası - 280 satır)
│ ├── workpage.js (Çalışma sayfası - otomatik yüklenir)
│ ├── statistics.js (İstatistikler - 146 satır)
│ ├── settings.js (Ayarlar - 210 satır)
│ ├── storage.js (Veri saklama - 267 satır)
│ ├── utils.js (Yardımcı fonksiyonlar)
│ └── test-data.js (Test verileri)
│
├── memory-bank/ (Proje dokümantasyonu)
│ ├── projectbrief.md
│ ├── productContext.md
│ ├── systemPatterns.md
│ ├── techContext.md
│ ├── activeContext.md
│ └── progress.md
│
└── README.md
Toplam: ~1500+ satır kod
- HTML5 — Semantic markup
- CSS3 — Tailwind CSS (CDN)
- JavaScript (ES6+) — Vanilla JS, modüler yapı
- Icons — Material Symbols (Google)
- Storage — Browser LocalStorage
- Font — Google Fonts (Inter)
| Tarayıcı | Destek |
|---|---|
| Chrome | ✅ Full |
| Firefox | ✅ Full |
| Safari | ✅ Full |
| Edge | ✅ Full |
| Opera | ✅ Full |
| Mobile Safari (iOS) | ✅ Full |
| Chrome Mobile (Android) | ✅ Full |
Gereklilikler: LocalStorage ve CSS transform desteği
| Gereklilik | Detay |
|---|---|
| Depolama | ~5-10 MB LocalStorage |
| Minimum kartlar | Sınırsız |
| Destekler Browser | Modern tarayıcılar (2019+) |
| Bağlantı | Sadece ilk yükleme için (CDN) |
| Offline Çalışma | Evet, tamamen offline |
- 🔹 Muhtemelen gizli mod/private window kullanıyorsun → Normal modu aç
- 🔹 Cache temizlendi → JSON yedeğinden geri yükle
- 🔹 Farklı tarayıcı → Aynı tarayıcıyı kullan
- 🔹 Eski tarayıcı kullanıyor olabilirsin → Chrome/Firefox güncel sürümüne yükselt
- 🔹 CSS transform desteğini kontrol et
- 🔹 Dosyasının bu uygulama dışa aktarımı olduğundan emin ol
- 🔹 JSON formatında sorun yoksa konsolda
Storage.importData(JSON.stringify(veriler))dene
- Default: Dark mode
- Toggle: Settings sayfasında
- Persistent: Tema seçimi kaydedilir
- Light Mode Colors:
- Background:
#f6f7f8 - Text:
#1f2937 - Cards:
#ffffff
- Background:
- Total Cards: Tüm desteler içindeki kartlar
- Master Level: Box 5'te olan kartlar
- Success Rate: Doğru cevaplanan kartlar / Toplam
- Today Studied: Bugün çalışılan kartlar
- Box Distribution: Kartların kutulara dağılımı
- ✅ Veriler sadece tarayıcında saklanır
- ✅ Sunucuya gönderilmez
- ✅ Tamamen gizlidir
- ✅ Sadece siz erişebilirsiniz
- ✅ İhtiyaca göre JSON ile yedekleyin
- First Load: < 1 saniye
- Card Flip: 60 FPS animasyon
- Statistics: Anlık hesaplama
- Memory Usage: ~ 2-5 MB (kart sayısına bağlı)
- Düzenli çalışın — Her gün 15-30 dakika çalışmak çok etkili
- Hatalı kartları tekrarlayın — Kutu 1'deki kartlara daha sık bakın
- Kategori kullanın — Kartları konulara göre ayırın
- Test verilerini kullanın — Başlamadan önce sistem hakkında fikir edinin
- Yedeğini alın — Düzenli olarak JSON backup oluşturun
İyileştirmeler için:
- Depoyu fork et (GitHub)
- Değişiklik branch'ı oluştur (
git checkout -b feature/IyileştirmE) - Değişiklikleri commit et (
git commit -am 'Yeni özellik ekle') - Branch'ı push et (
git push origin feature/IyileştirmE) - Pull Request gönder
- GitHub Issues: Hataları bildir
- Discussions: Sorularını sor
- GitHub: @ebakc
Leitner sistemi ile etkili öğrenmeyi deneyimle. Hedefine ulaşman dileğiyle! 🚀
Made with ❤️ for learners everywhere
⭐ Bu projeyi beğendiysen, bir yıldız bırakmayı unutma!