কন্টাক্ট ম্যানেজমেন্ট সিস্টেম

প্র্যাকটিস প্রোজেক্টস - পাইথন প্রোগ্রামিং (Python Programming) - Computer Programming

319

Python-এর Tkinter এবং SQLite ব্যবহার করে একটি সহজ কন্টাক্ট ম্যানেজমেন্ট সিস্টেম তৈরি করা যেতে পারে। এই সিস্টেমের মাধ্যমে ব্যবহারকারীরা তাদের কন্টাক্ট লিস্ট পরিচালনা করতে পারবেন, যেমন নতুন কন্টাক্ট যোগ করা, কন্টাক্ট মুছে ফেলা, এবং কন্টাক্ট তথ্য আপডেট করা।


প্রজেক্ট: কন্টাক্ট ম্যানেজমেন্ট সিস্টেম

বর্ণনা: এই অ্যাপটি ব্যবহারকারীদের কন্টাক্ট তথ্য সংরক্ষণ ও পরিচালনা করতে সাহায্য করবে। এখানে একটি SQLite ডাটাবেস ব্যবহৃত হবে যেখানে প্রতিটি কন্টাক্টের তথ্য (নাম, ফোন নাম্বার, এবং ইমেইল) সংরক্ষণ করা হবে।


ধাপ ১: Tkinter এবং SQLite সেটআপ করা

প্রথমে Tkinter এবং SQLite ব্যবহার করে একটি GUI এবং ডাটাবেস তৈরি করতে হবে। Tkinter GUI উইন্ডো তৈরি করবে এবং SQLite ডাটাবেসের সাথে কন্টাক্ট তথ্য সংরক্ষণ করবে।

import tkinter as tk
from tkinter import messagebox
import sqlite3

ধাপ ২: ডাটাবেস তৈরি করা

ডাটাবেস এবং টেবিল তৈরি করতে নিচের কোড ব্যবহার করা যাবে। যখনই অ্যাপটি চালানো হবে, এটি ডাটাবেসে একটি contacts টেবিল তৈরি করবে (যদি না থাকে)।

# ডাটাবেস এবং টেবিল তৈরি করা
conn = sqlite3.connect("contacts.db")
cursor = conn.cursor()
cursor.execute("""
    CREATE TABLE IF NOT EXISTS contacts (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        name TEXT NOT NULL,
        phone TEXT NOT NULL,
        email TEXT
    )
""")
conn.commit()

ধাপ ৩: ফাংশন তৈরি করা

নতুন কন্টাক্ট যোগ করা, কন্টাক্ট মুছে ফেলা, কন্টাক্ট আপডেট করা, এবং সব কন্টাক্ট দেখানো - এইসব ফাংশন তৈরি করা।

১. নতুন কন্টাক্ট যোগ করা

def add_contact():
    name = name_entry.get()
    phone = phone_entry.get()
    email = email_entry.get()
    if name and phone:
        cursor.execute("INSERT INTO contacts (name, phone, email) VALUES (?, ?, ?)", (name, phone, email))
        conn.commit()
        messagebox.showinfo("Success", "Contact added successfully.")
        clear_entries()
        show_contacts()
    else:
        messagebox.showwarning("Warning", "Name and Phone fields are required.")

২. কন্টাক্ট মুছে ফেলা

def delete_contact():
    selected_contact = contact_listbox.curselection()
    if selected_contact:
        contact_id = contact_listbox.get(selected_contact).split()[0]
        cursor.execute("DELETE FROM contacts WHERE id=?", (contact_id,))
        conn.commit()
        messagebox.showinfo("Success", "Contact deleted successfully.")
        show_contacts()
    else:
        messagebox.showwarning("Warning", "Please select a contact to delete.")

৩. কন্টাক্ট আপডেট করা

def update_contact():
    selected_contact = contact_listbox.curselection()
    if selected_contact:
        contact_id = contact_listbox.get(selected_contact).split()[0]
        name = name_entry.get()
        phone = phone_entry.get()
        email = email_entry.get()
        if name and phone:
            cursor.execute("UPDATE contacts SET name=?, phone=?, email=? WHERE id=?", (name, phone, email, contact_id))
            conn.commit()
            messagebox.showinfo("Success", "Contact updated successfully.")
            clear_entries()
            show_contacts()
        else:
            messagebox.showwarning("Warning", "Name and Phone fields are required.")
    else:
        messagebox.showwarning("Warning", "Please select a contact to update.")

৪. সব কন্টাক্ট দেখানো

def show_contacts():
    contact_listbox.delete(0, tk.END)
    cursor.execute("SELECT * FROM contacts")
    for contact in cursor.fetchall():
        contact_listbox.insert(tk.END, f"{contact[0]} {contact[1]} - {contact[2]} - {contact[3]}")

৫. এন্ট্রি ফিল্ড পরিষ্কার করা

def clear_entries():
    name_entry.delete(0, tk.END)
    phone_entry.delete(0, tk.END)
    email_entry.delete(0, tk.END)

ধাপ ৪: GUI ইন্টারফেস তৈরি করা

Tkinter ব্যবহার করে GUI উইজেট তৈরি করুন। এখানে ইনপুট ফিল্ড এবং বিভিন্ন বাটন থাকবে।

root = tk.Tk()
root.title("Contact Management System")
root.geometry("500x500")

# নাম, ফোন, এবং ইমেইল ইনপুট ফিল্ড
tk.Label(root, text="Name:").pack(pady=5)
name_entry = tk.Entry(root, width=40)
name_entry.pack()

tk.Label(root, text="Phone:").pack(pady=5)
phone_entry = tk.Entry(root, width=40)
phone_entry.pack()

tk.Label(root, text="Email:").pack(pady=5)
email_entry = tk.Entry(root, width=40)
email_entry.pack()

# বাটন ফ্রেম তৈরি
button_frame = tk.Frame(root)
button_frame.pack(pady=10)

add_button = tk.Button(button_frame, text="Add Contact", command=add_contact)
add_button.grid(row=0, column=0, padx=5)

delete_button = tk.Button(button_frame, text="Delete Contact", command=delete_contact)
delete_button.grid(row=0, column=1, padx=5)

update_button = tk.Button(button_frame, text="Update Contact", command=update_contact)
update_button.grid(row=0, column=2, padx=5)

# কন্টাক্ট লিস্টবক্স তৈরি
contact_listbox = tk.Listbox(root, width=50, height=15)
contact_listbox.pack(pady=10)

show_contacts()  # কন্টাক্ট লিস্ট দেখানো

root.mainloop()

সম্পূর্ণ কোড

import tkinter as tk
from tkinter import messagebox
import sqlite3

# ডাটাবেস এবং টেবিল তৈরি করা
conn = sqlite3.connect("contacts.db")
cursor = conn.cursor()
cursor.execute("""
    CREATE TABLE IF NOT EXISTS contacts (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        name TEXT NOT NULL,
        phone TEXT NOT NULL,
        email TEXT
    )
""")
conn.commit()

# ফাংশনগুলি
def add_contact():
    name = name_entry.get()
    phone = phone_entry.get()
    email = email_entry.get()
    if name and phone:
        cursor.execute("INSERT INTO contacts (name, phone, email) VALUES (?, ?, ?)", (name, phone, email))
        conn.commit()
        messagebox.showinfo("Success", "Contact added successfully.")
        clear_entries()
        show_contacts()
    else:
        messagebox.showwarning("Warning", "Name and Phone fields are required.")

def delete_contact():
    selected_contact = contact_listbox.curselection()
    if selected_contact:
        contact_id = contact_listbox.get(selected_contact).split()[0]
        cursor.execute("DELETE FROM contacts WHERE id=?", (contact_id,))
        conn.commit()
        messagebox.showinfo("Success", "Contact deleted successfully.")
        show_contacts()
    else:
        messagebox.showwarning("Warning", "Please select a contact to delete.")

def update_contact():
    selected_contact = contact_listbox.curselection()
    if selected_contact:
        contact_id = contact_listbox.get(selected_contact).split()[0]
        name = name_entry.get()
        phone = phone_entry.get()
        email = email_entry.get()
        if name and phone:
            cursor.execute("UPDATE contacts SET name=?, phone=?, email=? WHERE id=?", (name, phone, email, contact_id))
            conn.commit()
            messagebox.showinfo("Success", "Contact updated successfully.")
            clear_entries()
            show_contacts()
        else:
            messagebox.showwarning("Warning", "Name and Phone fields are required.")
    else:
        messagebox.showwarning("Warning", "Please select a contact to update.")

def show_contacts():
    contact_listbox.delete(0, tk.END)
    cursor.execute("SELECT * FROM contacts")
    for contact in cursor.fetchall():
        contact_listbox.insert(tk.END, f"{contact[0]} {contact[1]} - {contact[2]} - {contact[3]}")

def clear_entries():
    name_entry.delete(0, tk.END)
    phone_entry.delete(0, tk.END)
    email_entry.delete(0, tk.END)

# GUI তৈরি
root = tk.Tk()
root.title("Contact Management System")
root.geometry("500x500")

# ইনপুট ফিল্ড
tk.Label(root, text="Name:").pack(pady=5)
name_entry = tk.Entry(root, width=40)
name_entry.pack()

tk.Label(root, text="Phone:").pack(pady=5)
phone_entry = tk.Entry(root, width=40)
phone_entry.pack()

tk.Label(root, text="Email:").pack(pady=5)
email_entry = tk.Entry(root, width=40)
email_entry.pack()

# বাটন ফ্রেম
button_frame = tk.Frame(root)
button_frame.pack(pady=10)

add_button = tk.Button(button_frame, text="Add Contact", command=add_contact)
add_button.grid(row=0, column=0, padx=5)

delete_button = tk.Button(button_frame, text="Delete Contact", command=delete_contact)
delete_button.grid(row=0, column=1, padx=5)

update_button = tk.Button(button_frame, text="Update Contact", command=update_contact)
update_button.grid(row=0, column=2, padx=5)

# কন্টাক্ট লিস্টবক্স
contact_listbox = tk.Listbox(root, width=50, height=15)
contact_listbox.pack(pady=10)

show_contacts()  # কন্টাক্ট লিস্ট দেখানো

root.mainloop()

উপসংহার

এই কন্টাক্ট ম্যানেজমেন্ট সিস্টেমটি একটি মৌলিক ডেটাবেস-ভিত্তিক অ্যাপ্লিকেশন, যা Tkinter এবং SQLite ব্যবহার করে তৈরি করা হয়েছে। এর মাধ্যমে কন্টাক্ট পরিচালনা করার সব মৌলিক ফিচার যেমন অ্যাড, ডিলিট, আপডেট এবং দেখানো যায়। অ্যাপ্লিকেশনটিকে আরও উন্নত করতে চাইলে সার্চ ফিচার, কন্টাক্ট সেগ্রেগেশন, এবং অ্যাডভান্সড ফিল্টারিং যোগ করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...