Bir süre önce fark ettim ki, her gün yapacaklarımı kafamda tutmaya çalışıyorum — ders notları, ödevler, küçük yazılım fikirleri... Hepsini aynı anda düşünmeye çalışmak gerçekten yorucu. Telefondaki not uygulamaları çok basit geldi, hazır todo uygulamaları ise fazla şişirilmiş hissettirdi. Sonunda dedim ki: "Bunu kendim yapayım, tam istediğim gibi."
İşte hallil-todo bu yüzden doğdu. Kodlamayı öğrenirken gerçek bir ürün de ortaya koyabilmek istiyordum. React, Node.js, SQLite gibi teknolojileri teoride değil, pratikte öğrenmenin en iyi yolunun bu olduğuna inandım.
Temel bir görev listesinden çok daha fazlası:
- ✅ Görev ekleme, silme, tamamlama
- 🏷️ Her görev için öncelik seviyesi (Düşük / Orta / Yüksek)
- 📁 Kategori seçimi (Kişisel / İş / Okul / Yazılım)
- 🖱️ Sürükle-bırak ile sıralama — en önemli işi en üste al
- ✅ Tamamlananlar ayrı bir bölümde görünsün, karışmasın
- 🌙 Dark / Light Mode — geceleri göz yanmasın
- ⏱️ Pomodoro zamanlayıcısı — 25dk çalış, 5dk mola ver
- 📊 Günlük istatistikler — kaç iş kaldı, kaçını bitirdin
- 💾 Veriler SQLite'ta kalıcı olarak saklıyor, tarayıcı kapansa da kaybolmuyor
| Katman | Teknoloji |
|---|---|
| Frontend | React + Vite |
| Stil | Tailwind CSS |
| Animasyonlar | Framer Motion |
| Drag & Drop | @hello-pangea/dnd |
| İkonlar | Lucide React |
| Backend | Node.js + Express |
| Veritabanı | SQLite (sqlite3) |
git clone https://github.com/kullaniciadin/hallil-todo.git
cd hallil-todocd backend
npm installcd ../frontend
npm install# Proje kök dizininden:
chmod +x start.sh
./start.shTarayıcıda aç: http://localhost:5173
Backend 5000, Frontend 5173 portunu kullanıyor.
hallil-todo/
├── backend/
│ └── src/
│ ├── index.js # Express sunucusu ve DB başlangıcı
│ ├── db/setup.js # SQLite bağlantısı
│ ├── routes/taskRoutes.js # API rotaları
│ └── controllers/
│ └── taskController.js # CRUD işlemleri
├── frontend/
│ └── src/
│ ├── App.jsx # Ana uygulama mantığı
│ └── components/
│ ├── TaskInput.jsx # Görev ekleme formu
│ ├── TaskList.jsx # Sürükle-bırak listesi
│ ├── TaskItem.jsx # Tekil görev kartı
│ ├── Pomodoro.jsx # 25/5 zamanlayıcı
│ ├── Stats.jsx # İstatistik kartları
│ └── ThemeToggle.jsx # Tema değiştiricisi
├── start.sh # Tek komutla başlatma
└── README.md
(Yakında eklenecek)
Sunucu kurmak istemedim, PostgreSQL ya da MongoDB fazla gelirdi bu proje için. SQLite dosya tabanlı çalışıyor — hızlı, kurulumu sıfır, küçük projeler için ideal. Veri kaybolmuyor, her şey database.sqlite dosyasına yazılıyor.
- Görev düzenleme (başlık, öncelik güncelleme)
- Bitiş tarihi ekleme
- Tarayıcı bildirimleri (görev hatırlatıcı)
- Haftalık üretkenlik grafiği
Bu projeyi yaparken React dökümanları, Stack Overflow ve birkaç YouTube videosuyla hayatta kaldım. Umarım başkasına da faydalı olur.
Halil tarafından yapıldı — öğrenmek için.