Skip to content

shishenin/TaskManager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 

Repository files navigation

Task-Manager

Описание проекта

Проект представляет собой менеджер задач с графическим интерфейсом на основе библиотеки tkinter. Программа позволяет пользователям создавать, редактировать, удалять и сортировать задачи. Также реализована возможность сохранения задач в файл для их последующего восстановления при перезапуске программы.

Реализуемый функционал

  • Создание задачи: Пользователь может создать новую задачу, указав название, описание, дедлайн, время и статус выполнения.
  • Редактирование задачи: Пользователь может редактировать существующую задачу.
  • Удаление задачи: Пользователь может удалить задачу.
  • Сортировка задач: Пользователь может сортировать задачи по выполнению, названию и дедлайну.
  • Сохранение задач: Задачи сохраняются в файл и восстанавливаются при перезапуске программы.
  • Отсутствие дедлайна: Возможность указать, что у задачи нет дедлайна.

Архитектура

Классы

  • TaskManagerUI

    • Атрибуты:
      • root: корневой элемент tkinter.
      • task_list: объект класса TaskList.
      • update_task_list_callback: функция обратного вызова для обновления списка задач.
    • Методы:
      • __init__(self, root, task_list, update_task_list_callback): инициализация пользовательского интерфейса.
      • setup_ui(self): настройка пользовательского интерфейса.
      • add_task(self): добавление новой задачи.
      • edit_task(self, event): редактирование выбранной задачи.
      • delete_task(self, event=None): удаление выбранной задачи.
      • toggle_task_completion(self, event): переключение статуса выполнения задачи.
      • update_task_list(self): обновление списка задач в интерфейсе.
      • sort_tasks(self, key): сортировка задач по указанному ключу.
  • TaskList

    • Атрибуты:
      • tasks: список задач.
    • Методы:
      • __init__(self): инициализация списка задач и загрузка задач из файла.
      • add_task(self, task): добавление задачи в список.
      • save_tasks(self): сохранение задач в файл.
      • load_tasks(self): загрузка задач из файла.
  • Task

    • Атрибуты:
      • title: название задачи.
      • description: описание задачи.
      • deadline: дедлайн задачи.
      • completed: статус выполнения задачи.
    • Методы:
      • __init__(self, title, description, deadline, completed): инициализация задачи.
      • to_dict(self): преобразование задачи в словарь.
      • from_dict(cls, data): создание задачи из словаря.
  • TaskDialog

    • Атрибуты:
      • parent: родительский элемент tkinter.
      • task_list: объект класса TaskList.
      • callback: функция обратного вызова для обновления списка задач.
      • task: редактируемая задача (если есть).
    • Методы:
      • __init__(self, parent, task_list, callback, task=None): инициализация диалогового окна.
      • toggle_deadline(self): включение/выключение полей ввода даты и времени.
      • save_task(self): сохранение задачи.
      • delete_task(self): удаление задачи.

Инструкции по запуску

  1. Установите зависимости:

    pip install -r requirements.txt
  2. Запустите приложение:

    python main.py

Список зависимостей

  • tkinter
  • tkcalendar

Изменения в архитектуре

Если в процессе реализации возникнет необходимость изменить архитектуру, это будет отражено в данном разделе с указанием причин и обоснований.


requirements.txt

tkinter
tkcalendar

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published