Python ile Akıllı Not Tutma ve Arşivleme Uygulaması Geliştirme
Python ile geliştirilebilecek en kullanışlı ve gerçek hayatta aktif olarak işe yarayan projelerden biri not tutma ve arşivleme uygulamasıdır. Günümüzde öğrenciler, yazılımcılar, içerik üreticileri ve ofis çalışanları sürekli olarak not alma ihtiyacı duymaktadır. Bu nedenle dijital not yönetimi uygulamaları oldukça popüler hale gelmiştir. Bu projede Python programlama dili kullanılarak terminal tabanlı bir not yönetim sistemi geliştirilecektir. Kullanıcılar yeni not ekleyebilecek, kayıtlı notları görüntüleyebilecek ve notlarını kalıcı şekilde saklayabilecektir. Özellikle Python öğrenen geliştiriciler için bu tarz projeler oldukça değerlidir çünkü hem algoritma mantığını geliştirir hem de gerçek kullanıcı problemlerine çözüm üretmeyi öğretir. Aynı zamanda GitHub portfolyosunda yayınlandığında profesyonel bir görüntü oluşturduğu için iş başvurularında ve freelance platformlarda dikkat çekebilir.
Bu Python not yönetim sistemi projesi geliştirilirken birçok temel yazılım teknolojisi kullanılmaktadır. Proje içerisinde fonksiyon yapıları, while döngüleri, if-else koşulları, listeler, sözlük veri yapıları ve dosya işlemleri aktif olarak kullanılmaktadır. Ayrıca kullanıcı notları JSON dosyası içerisinde saklandığı için uygulama kapatılsa bile bilgiler kaybolmaz. Bu durum geliştiricilere gerçek dünya uygulamalarındaki veri yönetimi mantığını öğretir. Kullanıcıdan veri alma, kayıt oluşturma, kayıt listeleme ve hata kontrolü gibi işlemler sayesinde proje yalnızca basit bir eğitim uygulaması olmaktan çıkar ve gerçek hayatta kullanılabilir bir yazılıma dönüşür. Kod yapısının modüler hazırlanması sayesinde ilerleyen süreçte uygulamaya kategori sistemi, arama özelliği, tarih filtreleme veya kullanıcı girişi gibi yeni özellikler kolayca eklenebilir. Özellikle başlangıç ve orta seviye Python geliştiricileri için oldukça öğretici olan bu proje, yazılım geliştirme mantığını güçlendirmek açısından önemli bir çalışmadır.
import json
import os
from datetime import datetime
DOSYA_ADI = "notlar.json"
def notlari_yukle():
if os.path.exists(DOSYA_ADI):
with open(DOSYA_ADI, "r", encoding="utf-8") as dosya:
return json.load(dosya)
return []
def notlari_kaydet(notlar):
with open(DOSYA_ADI, "w", encoding="utf-8") as dosya:
json.dump(notlar, dosya, ensure_ascii=False, indent=4)
def not_ekle(notlar):
baslik = input("Not başlığı: ")
icerik = input("Not içeriği: ")
tarih = datetime.now().strftime("%d-%m-%Y %H:%M")
notlar.append({
"baslik": baslik,
"icerik": icerik,
"tarih": tarih
})
notlari_kaydet(notlar)
print("Not başarıyla kaydedildi.")
def notlari_listele(notlar):
if not notlar:
print("Kayıtlı not bulunmuyor.")
return
print("\n--- KAYITLI NOTLAR ---")
for i, not_verisi in enumerate(notlar, start=1):
print(f"\n{i}. {not_verisi['baslik']}")
print(f"Tarih: {not_verisi['tarih']}")
print(f"İçerik: {not_verisi['icerik']}")
print("-" * 40)
def menu():
notlar = notlari_yukle()
while True:
print("\n--- NOT YÖNETİM SİSTEMİ ---")
print("1. Not Ekle")
print("2. Notları Listele")
print("3. Çıkış")
secim = input("Seçiminiz: ")
if secim == "1":
not_ekle(notlar)
elif secim == "2":
notlari_listele(notlar)
elif secim == "3":
print("Program kapatılıyor...")
break
else:
print("Geçersiz seçim yaptınız.")
menu()
Kodun Detaylı Satır Analizi
Kodun kalbi, dosya yönetimini ve kullanıcı etkileşimini sağlayan yapılardır. İşte detaylı inceleme:
if os.path.exists(DOSYA_ADI):: Notların kayıtlı olduğu JSON dosyasının sistemde mevcut olup olmadığını kontrol eder.datetime.now().strftime("%d-%m-%Y %H:%M"): Kullanıcının oluşturduğu nota otomatik tarih ve saat bilgisi ekler.notlar.append({"baslik": baslik, "icerik": icerik, "tarih": tarih}): Yeni oluşturulan notu listeye ekleyerek veri yapısında saklar.json.dump(notlar, dosya, ensure_ascii=False, indent=4): Tüm notları JSON dosyasına düzenli şekilde kaydederek kalıcı veri saklama işlemi gerçekleştirir.
Bu Proje Sizi Nasıl Geliştirir?
Bu proje sayesinde Python programlama dilinin en önemli temel yapılarını gerçek bir uygulama üzerinde kullanmayı öğrenebilirsiniz. Özellikle veri yönetimi, kullanıcı etkileşimi, dosya işlemleri, tarih yönetimi ve hata kontrolü gibi konularda önemli deneyim kazanırsınız. Aynı zamanda kullanıcı odaklı yazılım geliştirme mantığını öğrenerek daha profesyonel projeler üretmeye başlayabilirsiniz. Bu tarz not yönetim sistemleri gerçek hayatta aktif olarak kullanılan uygulamalara benzediği için GitHub portfolyosunda oldukça profesyonel görünür. Projeyi daha ileri taşımak için not arama sistemi, kategori filtreleme, kullanıcı giriş sistemi, SQLite veritabanı entegrasyonu veya grafik arayüz geliştirme gibi ekstra özellikler ekleyebilirsiniz. Ayrıca Flask veya Django kullanarak bu projeyi web tabanlı bir not yönetim uygulamasına dönüştürmeniz de mümkündür. Bu geliştirmeler sayesinde hem Python becerilerinizi güçlendirebilir hem de yazılım kariyeriniz için etkileyici projeler üretebilirsiniz.
