Python ile Akıllı Fatura ve Abonelik Takip Sistemi (Bütçe Kontrol Uygulaması)

Python ile Akıllı Fatura ve Abonelik Takip Sistemi (Bütçe Kontrol Uygulaması)

Günümüzde dijital abonelikler, faturalar ve düzenli ödemeler kişisel finans yönetiminin en kritik parçalarından biri haline gelmiştir. Netflix, Spotify, internet faturası, elektrik, su ve benzeri birçok gider kalemi kullanıcıların aylık bütçesini doğrudan etkiler. Bu nedenle Python ile geliştirilen akıllı fatura ve abonelik takip sistemi, kullanıcıların tüm düzenli ödemelerini tek bir yerde yönetmesini sağlar. Bu proje sayesinde kullanıcılar aylık giderlerini kaydedebilir, yaklaşan ödeme tarihlerini görüntüleyebilir ve toplam harcama analizini kolayca yapabilir. Özellikle finans yönetimi ve kişisel bütçe planlamasına önem veren kişiler için bu uygulama oldukça faydalıdır ve portfolyoda güçlü bir proje olarak öne çıkar.

Bu Python tabanlı fatura takip uygulaması geliştirilirken gerçek hayatta kullanılan yazılım mantıkları birebir uygulanmaktadır. Proje içerisinde if-else koşulları, while döngüleri, fonksiyonlar, liste ve sözlük yapıları ile birlikte dosya işlemleri kullanılmaktadır. Ayrıca JSON formatı sayesinde kullanıcı verileri kalıcı olarak saklanır ve uygulama kapansa bile bilgiler kaybolmaz. Tarih yönetimi sayesinde ödeme hatırlatma sistemi simüle edilebilir ve kullanıcıya yaklaşan faturalar gösterilebilir. Bu proje sadece bir veri kaydetme sistemi değil, aynı zamanda temel bir finans yönetim aracıdır. Python’un standart kütüphaneleri kullanılarak geliştirildiği için ek bir framework ihtiyacı olmadan çalışır. Bu da onu başlangıç ve orta seviye geliştiriciler için ideal bir öğrenme projesi haline getirir.


import json
import os
from datetime import datetime

DOSYA_ADI = "faturalar.json"

def verileri_yukle():
    if os.path.exists(DOSYA_ADI):
        with open(DOSYA_ADI, "r", encoding="utf-8") as dosya:
            return json.load(dosya)
    return []

def verileri_kaydet(veriler):
    with open(DOSYA_ADI, "w", encoding="utf-8") as dosya:
        json.dump(veriler, dosya, ensure_ascii=False, indent=4)

def fatura_ekle(veriler):
    isim = input("Fatura/Abonelik adı: ")
    miktar = float(input("Aylık tutar: "))
    tarih = input("Son ödeme tarihi (GG-AA-YYYY): ")

    veriler.append({
        "isim": isim,
        "miktar": miktar,
        "tarih": tarih
    })

    verileri_kaydet(veriler)
    print("Fatura başarıyla eklendi.")

def faturalari_listele(veriler):
    if not veriler:
        print("Kayıtlı fatura bulunmuyor.")
        return

    print("\n--- FATURA & ABONELİK LİSTESİ ---")

    toplam = 0

    for i, f in enumerate(veriler, start=1):
        print(f"{i}. {f['isim']} - {f['miktar']} TL - Son Tarih: {f['tarih']}")
        toplam += f["miktar"]

    print(f"\nToplam Aylık Gider: {toplam} TL")

def yaklasan_faturalar(veriler):
    bugun = datetime.now().date()

    print("\n--- YAKLAŞAN FATURALAR ---")

    bulundu = False

    for f in veriler:
        try:
            tarih = datetime.strptime(f["tarih"], "%d-%m-%Y").date()
            fark = (tarih - bugun).days

            if fark <= 7:
                print(f"{f['isim']} - {f['tarih']} (Kalan gün: {fark})")
                bulundu = True
        except:
            continue

    if not bulundu:
        print("Yaklaşan fatura yok.")

def menu():
    veriler = verileri_yukle()

    while True:
        print("\n--- FATURA TAKİP SİSTEMİ ---")
        print("1. Fatura Ekle")
        print("2. Faturaları Listele")
        print("3. Yaklaşan Faturalar")
        print("4. Çıkış")

        secim = input("Seçiminiz: ")

        if secim == "1":
            fatura_ekle(veriler)

        elif secim == "2":
            faturalari_listele(veriler)

        elif secim == "3":
            yaklasan_faturalar(veriler)

        elif secim == "4":
            print("Program kapatılıyor...")
            break

        else:
            print("Geçersiz seçim.")

menu()
    


Kodun Detaylı Satır Analizi

Kodun kalbi, dosya yönetimini ve kullanıcı etkileşimini sağlayan yapılardır. İşte detaylı inceleme:

  • json.load(dosya): Kayıtlı faturaları JSON dosyasından okuyarak sisteme yükler.
  • veriler.append({...}): Kullanıcının eklediği yeni fatura veya abonelik bilgisini listeye ekler.
  • datetime.strptime(f["tarih"], "%d-%m-%Y"): Fatura tarihini analiz ederek zaman karşılaştırması yapılmasını sağlar.
  • if fark <= 7:: 7 gün içinde ödenecek faturaları filtreleyerek kullanıcıya gösterir.

Bu Proje Sizi Nasıl Geliştirir?

Bu proje sayesinde Python ile gerçek hayatta kullanılan finans yönetim sistemlerinin temel mantığını öğrenmiş olursunuz. Özellikle veri analizi, tarih işlemleri, dosya yönetimi, kullanıcı girişleri ve algoritmik düşünme becerileri ciddi şekilde gelişir. Aynı zamanda kişisel bütçe kontrolü gibi gerçek bir problemi çözdüğü için portfolyonuzda oldukça profesyonel bir proje olarak öne çıkar. Bu sistemi daha ileri taşımak için grafiksel raporlama, aylık otomatik özet, e-posta hatırlatma sistemi veya mobil uyumlu web arayüzü ekleyebilirsiniz. Ayrıca Flask veya Django ile web tabanlı bir finans takip paneli geliştirerek projeyi daha da profesyonel bir seviyeye taşımanız mümkündür. Bu geliştirmeler sayesinde hem Python bilginizi güçlendirir hem de iş başvurularında sizi öne çıkaracak etkileyici bir yazılım portfolyosu oluşturabilirsiniz.

By mvers

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir