Open Source Python İle Kişisel Finans Hesaplama Uygulaması

Rhanta

discord.gg/valohell2025
Efsane Üye
Katılım
7 Haz 2024
Mesajlar
1,135
Beğeniler
402
Yaş
20
İletişim
Merhaba Ben Rhanta
Bu Gün Size Kendim Kodlamış Olduğum Kişisel Finans Hesaplama Uygulamasını Göstericem
Biliyorum Boş Konu Ama Forumda Daha Önce Eşi Benzeri Paylaşılmamış Konuları Paylaşmak İstiyorum
O Yüzden Paylaşıyorum Sizlerde Daha Çok Konu Paylaşmamı İsterseniz Konumu Beğenebilirsiniz

Öncelikle Burdan @BlackPlague Ye Selam Olsun

Uygulamayı Sizler Geliştirebilirsiniz Yok Çaldınız , Hırsızsınız , Kod Benim Gibi Telafuzlar Kullanmam
Çünkü Halka Açık Paylaşıyorum iyi Kullanmalar.


Uygulamayı Kullanmanız İçin İndirmeniz Gereken Kütüphaneler : matplotlib , pandas
Kütüphaneleri Tek Seferde Kurmak İçin Kod : pip install matplotlib pandas

Kullanımı : Öncelikle Uygulamayı Açın Önce Gelirlerinizi Yazın Kategori ve Kazancınızı
Ardından Yukardaki Gider Bölümünden Giderlerinizi Yazın Sonra Aşağıdan Hesaplaya Basın
Daha Sonrasında Otomatik Hesaplicak Sizin Yerinize

Uygulamaya Ait Fotoğraf :


Python:
import tkinter as tk
from tkinter import messagebox, ttk
import sqlite3
import pandas as pd
import matplotlib.pyplot as plt

def create_database():
    conn = sqlite3.connect('finance.db')
    cursor = conn.cursor()
    cursor.execute('''
        CREATE TABLE IF NOT EXISTS transactions (
            id INTEGER PRIMARY KEY AUTOINCREMENT,
            type TEXT,
            category TEXT,
            amount REAL,
            description TEXT
        )
    ''')
    conn.commit()
    conn.close()

create_database()

def add_transaction():
    type = transaction_type.get()
    category = category_entry.get()
    amount = amount_entry.get()
    description = description_entry.get()
   
    if not amount:
        messagebox.showwarning("Girdi Hatası", "Lütfen bir miktar girin.")
        return
   
    try:
        amount = float(amount)
    except ValueError:
        messagebox.showwarning("Girdi Hatası", "Lütfen geçerli bir miktar girin.")
        return

    conn = sqlite3.connect('finance.db')
    cursor = conn.cursor()
    cursor.execute('INSERT INTO transactions (type, category, amount, description) VALUES (?, ?, ?, ?)',
                   (type, category, amount, description))
    conn.commit()
    conn.close()

    amount_entry.delete(0, tk.END)
    description_entry.delete(0, tk.END)
    category_entry.delete(0, tk.END)
    update_transaction_list()
    update_budget()

def update_transaction_list():
    for widget in transaction_list_frame.winfo_children():
        widget.destroy()

    conn = sqlite3.connect('finance.db')
    cursor = conn.cursor()
    cursor.execute('SELECT * FROM transactions')
    transactions = cursor.fetchall()
    conn.close()

    for transaction in transactions:
        transaction_label = tk.Label(transaction_list_frame,
                                      text=f"{transaction[1]} | Kategori: {transaction[2]} | Miktar: {transaction[3]} TL | Açıklama: {transaction[4]}")
        transaction_label.pack()

def update_budget():
    conn = sqlite3.connect('finance.db')
    cursor = conn.cursor()
    cursor.execute('SELECT SUM(amount) FROM transactions WHERE type="Gelir"')
    total_income = cursor.fetchone()[0] or 0
    cursor.execute('SELECT SUM(amount) FROM transactions WHERE type="Gider"')
    total_expense = cursor.fetchone()[0] or 0
    conn.close()

    budget_label.config(text=f"GELİR: {total_income} TL | GİDER: {total_expense} TL | BÜTÇE: {total_income - total_expense} TL")

def plot_data():
    conn = sqlite3.connect('finance.db')
    df = pd.read_sql_query('SELECT type, SUM(amount) as total FROM transactions GROUP BY type', conn)
    conn.close()

    df.plot(kind='bar', x='type', y='total', title='Gelir/Gider Dağılımı')
    plt.ylabel('Toplam Miktar (TL)')
    plt.show()

app = tk.Tk()
app.title("Kişisel Finans Takip Uygulaması")

transaction_type = tk.StringVar(value="Gelir")
transaction_type_frame = tk.Frame(app)
transaction_type_frame.pack()

gelir_radio = tk.Radiobutton(transaction_type_frame, text="Gelir", variable=transaction_type, value="Gelir")
gelir_radio.pack(side=tk.LEFT)

gider_radio = tk.Radiobutton(transaction_type_frame, text="Gider", variable=transaction_type, value="Gider")
gider_radio.pack(side=tk.LEFT)

category_label = tk.Label(app, text="Kategori:")
category_label.pack()
category_entry = tk.Entry(app)
category_entry.pack()

amount_label = tk.Label(app, text="Miktar (TL):")
amount_label.pack()
amount_entry = tk.Entry(app)
amount_entry.pack()

description_label = tk.Label(app, text="Açıklama:")
description_label.pack()
description_entry = tk.Entry(app)
description_entry.pack()

add_button = tk.Button(app, text="Ekle", command=add_transaction)
add_button.pack()

transaction_list_frame = tk.Frame(app)
transaction_list_frame.pack()

budget_label = tk.Label(app, text="GELİR: 0 TL | GİDER: 0 TL | BÜTÇE: 0 TL", font=('Helvetica', 12, 'bold'))
budget_label.pack()

plot_button = tk.Button(app, text="Grafik Göster", command=plot_data)
plot_button.pack()

update_transaction_list()

app.mainloop()
 
Eline sağlık ticaretle uğraşan insanların işine yarayabilir. Gui geliştirilip güzel bir uygulamaya dönüştürülebilir görsel anlamda.
 
Eline sağlık ticaretle uğraşan insanların işine yarayabilir. Gui geliştirilip güzel bir uygulamaya dönüştürülebilir görsel anlamda.
zaten çok zorlamadım 20 dakikada falan Yaptım Üzerine Çok Düşsem Gui yi Çok iyi yapardım Fakat Uğraşmadım
 
Chatgptye fikir önerip mi yaptın bunu ? böyle bir fikir öneriyordu sanırsam.Eline sağlık.
 
Dünde Sanki Başka bir uygulama yapmiştiniz sizin uygulamalarınız kullanmasamda gayet düzgün ve ihtiyac duyulacak bir uygulama üretiyorsunuz elinize sağlık başarılarınız devamını dilerim
 
Dünde Sanki Başka bir uygulama yapmiştiniz sizin uygulamalarınız kullanmasamda gayet düzgün ve ihtiyac duyulacak bir uygulama üretiyorsunuz elinize sağlık başarılarınız devamını dilerim
teşekkürler fakat ben dün herhangi bir paylaşım yapmadım iyi Günler
 

  Şuanda konuyu görüntüleyen kullanıcılar


Üst Alt