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.