Python
60 ~45 dk

Proje: Todo Uygulaması

Todo Uygulaması

import sqlite3
from datetime import datetime

class TodoApp:
    def __init__(self):
        self.conn = sqlite3.connect("todo.db")
        self.cursor = self.conn.cursor()
        self.cursor.execute(\"\"\"
            CREATE TABLE IF NOT EXISTS gorevler (
                id INTEGER PRIMARY KEY AUTOINCREMENT,
                baslik TEXT NOT NULL,
                aciklama TEXT,
                durum TEXT DEFAULT 'bekliyor',
                oncelik TEXT DEFAULT 'normal',
                olusturma TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
                tamamlanma TIMESTAMP
            )
        \"\"\")
        self.conn.commit()
    
    def ekle(self, baslik, aciklama="", oncelik="normal"):
        self.cursor.execute(
            "INSERT INTO gorevler (baslik, aciklama, oncelik) VALUES (?, ?, ?)",
            (baslik, aciklama, oncelik))
        self.conn.commit()
        print(f"✅ '{baslik}' eklendi!")
    
    def listele(self, durum=None):
        if durum:
            self.cursor.execute("SELECT * FROM gorevler WHERE durum = ?", (durum,))
        else:
            self.cursor.execute("SELECT * FROM gorevler ORDER BY CASE oncelik WHEN 'yuksek' THEN 1 WHEN 'normal' THEN 2 ELSE 3 END")
        
        gorevler = self.cursor.fetchall()
        if not gorevler:
            print("📭 Görev bulunamadı.")
            return
        
        for g in gorevler:
            icon = "✅" if g[3] == "tamamlandi" else "⏳" if g[3] == "bekliyor" else "🔄"
            oncelik = "🔴" if g[4] == "yuksek" else "🟡" if g[4] == "normal" else "🟢"
            print(f"  {icon} [{g[0]}] {g[1]} {oncelik}")
    
    def tamamla(self, id):
        self.cursor.execute(
            "UPDATE gorevler SET durum = 'tamamlandi', tamamlanma = ? WHERE id = ?",
            (datetime.now(), id))
        self.conn.commit()
        print("✅ Görev tamamlandı!")

app = TodoApp()

while True:
    print("\n📋 TODO UYGULAMASI")
    print("1. Görev Ekle  2. Listele  3. Tamamla  4. Çıkış")
    secim = input("Seçim: ")
    
    if secim == "1":
        baslik = input("Başlık: ")
        oncelik = input("Öncelik (yuksek/normal/dusuk): ")
        app.ekle(baslik, oncelik=oncelik or "normal")
    elif secim == "2":
        app.listele()
    elif secim == "3":
        app.listele()
        id = int(input("Tamamlanan ID: "))
        app.tamamla(id)
    elif secim == "4":
        break
✅ Bu proje şunları kapsar: SQLite, OOP, datetime, hata yakalama, menü sistemi, CRUD işlemleri.

Yorumlar 0

Giriş yapın — Yorumlarınız hemen yayınlansın
Henüz yorum yapılmamış. İlk yorumu siz yapın!