Modern, tam özellikli bir To-Do / Görev Yönetim uygulaması. PHP + MySQL backend, saf JavaScript frontend ile geliştirilmiştir.
- Kayıt ve giriş (bcrypt şifreleme)
- PHP Session ile güvenli oturum yönetimi
- Oturum açmadan hiçbir sayfaya erişilemez
- Görev ekleme, düzenleme, silme (AJAX, sayfa yenilemesiz)
- Tek tıkla tamamlama (checkbox)
- Durum değiştirme: Bekliyor → Devam Ediyor → Tamamlandı
- Öncelik seviyeleri: Düşük / Orta / Yüksek
- Opsiyonel son tarih ve açıklama
- Özel kategoriler oluşturma (renk seçimiyle)
- 12 preset renk seçeneği
- Kategori düzenleme ve silme
- Kayıt olunca 4 varsayılan kategori otomatik oluşur: Genel, İş, Kişisel, Acil
- Duruma, kategoriye ve önceliğe göre filtrele
- 5 farklı sıralama seçeneği (en yeni, en eski, öncelik, son tarih, alfabetik)
- Canlı arama (başlık ve açıklama)
- Toplam / Bekleyen / Devam Eden / Tamamlanan / Gecikmiş sayıları
- Renk kodlu istatistik kartları
- Aydınlık / Karanlık tema (localStorage'da kaydedilir)
- Tam responsive tasarım (mobil hamburger menü)
- CSS animasyonları ve geçişler
- Toast bildirimleri
- Loading spinner
- SQL Injection koruması (PDO Prepared Statements)
- XSS koruması (htmlspecialchars)
- CSRF token koruması
- Session güvenliği (session_regenerate_id)
- Şifre minimum 6 karakter, bcrypt hash
| Katman | Teknoloji |
|---|---|
| Backend | PHP 8+, PDO |
| Veritabanı | MySQL 8+ |
| Frontend | HTML5, CSS3, Vanilla JS |
| Kimlik Doğrulama | PHP Sessions |
| Stil | BEM metodolojisi, CSS Vars |
- PHP 8.0+
- MySQL 8.0+
- Web sunucusu (Apache / Nginx) veya PHP built-in server
1. Repoyu klonla
git clone https://github.com/emirhangokay/task-manager.git
cd task-manager2. MySQL'de veritabanı oluştur
CREATE DATABASE task_manager CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;3. database.sql dosyasını import et
mysql -u root -p task_manager < database.sql4. Veritabanı bağlantısını yapılandır
config/database.php dosyasını kendi bilgilerinizle güncelleyin:
define('DB_HOST', 'localhost');
define('DB_NAME', 'task_manager');
define('DB_USER', 'root'); // MySQL kullanıcı adınız
define('DB_PASS', ''); // MySQL şifreniz5. PHP geliştirme sunucusunu başlat
php -S localhost:8000Not: Proje kök dizininden çalıştırın. URL'ler
/index.phpgibi kök göreceli olarak yazılmıştır.
6. Tarayıcıda açın
http://localhost:8000
Kayıt olun → Giriş yapın → Görev eklemeye başlayın! 🎉
users
├── id (PK, AUTO_INCREMENT)
├── username (UNIQUE)
├── email (UNIQUE)
├── password (bcrypt)
└── created_at
categories
├── id (PK)
├── user_id (FK → users.id)
├── name
└── color (HEX, ör. #4F46E5)
tasks
├── id (PK)
├── user_id (FK → users.id)
├── category_id (FK → categories.id, NULL olabilir)
├── title
├── description (NULL olabilir)
├── priority ENUM(low, medium, high)
├── status ENUM(pending, in_progress, completed)
├── due_date (NULL olabilir)
├── created_at
└── updated_at
task-manager/
├── config/
│ └── database.php # PDO bağlantısı
├── includes/
│ ├── auth.php # Session, login/register
│ ├── functions.php # Yardımcı fonksiyonlar
│ └── header.php # Ortak HTML head
├── api/
│ ├── tasks.php # Görev CRUD (AJAX)
│ ├── categories.php # Kategori CRUD (AJAX)
│ └── auth.php # Auth API (AJAX)
├── assets/
│ ├── css/style.css # Tüm stiller (BEM)
│ └── js/app.js # Tüm JavaScript
├── database.sql # Veritabanı şeması
├── index.php # Ana sayfa
├── login.php # Giriş
├── register.php # Kayıt
├── logout.php # Çıkış
└── README.md
MIT License — özgürce kullanabilir, değiştirebilir ve dağıtabilirsiniz.