ساخت برنامه مدیریت وظایف با پایتون: پروژه‌ای خلاقانه و کاربردی

ساخت برنامه مدیریت وظایف با پایتون: پروژه‌ای خلاقانه و کاربردی

در دنیای پرشتاب امروز، مدیریت وظایف به یک مهارت ضروری تبدیل شده است. برنامه‌های مدیریت وظایف به ما کمک می‌کنند تا وظایف خود را سازماندهی کنیم، اولویت‌بندی کنیم و به موقع به پایان برسانیم. در این مقاله، به شما آموزش می‌دهیم که چگونه یک برنامه مدیریت وظایف ساده اما کاربردی را با استفاده از زبان برنامه‌نویسی پایتون بسازید. این پروژه نه تنها مهارت‌های برنامه‌نویسی شما را تقویت می‌کند، بلکه یک ابزار مفید برای استفاده شخصی یا حتی ارائه به دیگران خواهد بود.

پیش‌نیازها

قبل از شروع، مطمئن شوید که موارد زیر را در اختیار دارید:

  • نصب پایتون: اگر پایتون را نصب ندارید، می‌توانید آن را از وب‌سایت رسمی پایتون (https://www.python.org) دانلود و نصب کنید.
  • یک ویرایشگر کد: می‌توانید از هر ویرایشگر کدی که با آن راحت هستید استفاده کنید، مانند VS Code، PyCharm، Sublime Text یا Atom.
  • آشنایی اولیه با پایتون: داشتن دانش پایه‌ای از مفاهیم پایتون مانند متغیرها، حلقه‌ها، شرط‌ها و توابع ضروری است.

طراحی برنامه

برنامه مدیریت وظایف ما دارای ویژگی‌های زیر خواهد بود:

  • اضافه کردن وظیفه جدید
  • مشاهده لیست وظایف
  • علامت‌گذاری وظیفه به عنوان انجام شده
  • حذف وظیفه
  • ذخیره و بارگیری وظایف از یک فایل

برای پیاده‌سازی این ویژگی‌ها، از یک لیست پایتون برای ذخیره وظایف استفاده خواهیم کرد. هر وظیفه به صورت یک دیکشنری با کلیدهای ‘task’ (شرح وظیفه) و ‘completed’ (وضعیت انجام شده) ذخیره می‌شود.

پیاده‌سازی برنامه

۱. ساختار کلی برنامه

ابتدا، ساختار کلی برنامه را ایجاد می‌کنیم:

def add_task(tasks, task):
    tasks.append({'task': task, 'completed': False})

def view_tasks(tasks):
    if not tasks:
        print("هیچ وظیفه‌ای وجود ندارد.")
        return

    for i, task in enumerate(tasks):
        status = "انجام شده" if task['completed'] else "در حال انجام"
        print(f"{i+1}. {task['task']} - {status}")

def complete_task(tasks, task_index):
    if 0 <= task_index < len(tasks):
        tasks[task_index]['completed'] = True
        print("وظیفه علامت‌گذاری شد.")
    else:
        print("شماره وظیفه نامعتبر است.")

def delete_task(tasks, task_index):
    if 0 <= task_index < len(tasks):
        del tasks[task_index]
        print("وظیفه حذف شد.")
    else:
        print("شماره وظیفه نامعتبر است.")

def save_tasks(tasks, filename):
    import json
    with open(filename, 'w') as f:
        json.dump(tasks, f)

def load_tasks(filename):
    import json
    try:
        with open(filename, 'r') as f:
            return json.load(f)
    except FileNotFoundError:
        return []

def main():
    filename = "tasks.json"
    tasks = load_tasks(filename)

    while True:
        print("nبرنامه مدیریت وظایف")
        print("1. اضافه کردن وظیفه")
        print("2. مشاهده وظایف")
        print("3. علامت‌گذاری وظیفه به عنوان انجام شده")
        print("4. حذف وظیفه")
        print("5. خروج")

        choice = input("انتخاب کنید: ")

        if choice == '1':
            task = input("وظیفه جدید را وارد کنید: ")
            add_task(tasks, task)
        elif choice == '2':
            view_tasks(tasks)
        elif choice == '3':
            try:
                task_index = int(input("شماره وظیفه‌ای که می‌خواهید علامت‌گذاری کنید را وارد کنید: ")) - 1
                complete_task(tasks, task_index)
            except ValueError:
                print("لطفاً یک عدد معتبر وارد کنید.")
        elif choice == '4':
            try:
                task_index = int(input("شماره وظیفه‌ای که می‌خواهید حذف کنید را وارد کنید: ")) - 1
                delete_task(tasks, task_index)
            except ValueError:
                print("لطفاً یک عدد معتبر وارد کنید.")
        elif choice == '5':
            break
        else:
            print("انتخاب نامعتبر است.")

    save_tasks(tasks, filename)
    print("وظایف ذخیره شدند.")

if __name__ == "__main__":
    main()

۲. توضیح کد

* **`add_task(tasks, task)`:** این تابع یک وظیفه جدید را به لیست وظایف اضافه می‌کند. وظیفه جدید به صورت یک دیکشنری با وضعیت ‘completed’ برابر با `False` به لیست اضافه می‌شود.
* **`view_tasks(tasks)`:** این تابع لیست وظایف را نمایش می‌دهد. برای هر وظیفه، شماره، شرح وظیفه و وضعیت آن (انجام شده یا در حال انجام) را چاپ می‌کند.
* **`complete_task(tasks, task_index)`:** این تابع وضعیت یک وظیفه را به ‘انجام شده’ تغییر می‌دهد.
* **`delete_task(tasks, task_index)`:** این تابع یک وظیفه را از لیست حذف می‌کند.
* **`save_tasks(tasks, filename)`:** این تابع لیست وظایف را در یک فایل JSON ذخیره می‌کند. از ماژول `json` برای تبدیل لیست پایتون به فرمت JSON استفاده می‌شود.
* **`load_tasks(filename)`:** این تابع لیست وظایف را از یک فایل JSON بارگیری می‌کند. اگر فایل وجود نداشته باشد، یک لیست خالی برگردانده می‌شود.
* **`main()`:** این تابع اصلی برنامه است. این تابع یک حلقه بی‌نهایت ایجاد می‌کند که به کاربر امکان می‌دهد تا یکی از گزینه‌های موجود را انتخاب کند.

۳. ذخیره و بارگیری وظایف

برای ذخیره و بارگیری وظایف، از فایل‌های JSON استفاده می‌کنیم. فایل JSON یک فرمت متنی است که برای ذخیره داده‌ها به صورت ساختاریافته استفاده می‌شود. ماژول `json` در پایتون به ما امکان می‌دهد تا به راحتی داده‌ها را به فرمت JSON تبدیل کنیم و از آن خارج کنیم.

تابع `save_tasks` لیست وظایف را به یک فایل JSON با نام `tasks.json` ذخیره می‌کند. تابع `load_tasks` سعی می‌کند فایل `tasks.json` را بارگیری کند. اگر فایل وجود نداشته باشد، یک لیست خالی برگردانده می‌شود.

اجرای برنامه

برای اجرای برنامه، فایل پایتون را با استفاده از دستور `python your_file_name.py` در ترمینال یا خط فرمان اجرا کنید. برنامه یک منوی تعاملی را نمایش می‌دهد که به شما امکان می‌دهد تا وظایف خود را مدیریت کنید.

بهبود برنامه

برنامه مدیریت وظایف ما یک برنامه ساده است، اما می‌توان آن را با افزودن ویژگی‌های بیشتر بهبود بخشید. برخی از ایده‌ها برای بهبود برنامه عبارتند از:

  • اضافه کردن تاریخ سررسید به وظایف
  • اولویت‌بندی وظایف
  • اضافه کردن دسته‌بندی به وظایف
  • استفاده از یک رابط کاربری گرافیکی (GUI) به جای رابط خط فرمان
  • امکان همگام‌سازی وظایف با یک سرویس ابری

نتیجه‌گیری

در این مقاله، به شما آموزش دادیم که چگونه یک برنامه مدیریت وظایف ساده اما کاربردی را با استفاده از زبان برنامه‌نویسی پایتون بسازید. این پروژه یک تمرین عالی برای تقویت مهارت‌های برنامه‌نویسی شما و همچنین ایجاد یک ابزار مفید برای استفاده شخصی است. با افزودن ویژگی‌های بیشتر، می‌توانید این برنامه را به یک ابزار مدیریت وظایف قدرتمندتر تبدیل کنید.

بدون دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *