This is a task scheduling application using DSA principles such as AVL tree, priority queue (heap), Json files.
The Task Scheduler Application is a Tkinter-based desktop tool designed to help users manage tasks efficiently.
It allows users to add, update, delete, and search for tasks while providing an intuitive interface to visualize tasks in a tabular format.
Each task includes attributes like name, deadline, and priority, with automatic calculation of days remaining until the deadline.
This application is suitable for personal task tracking and offers a reliable, user-friendly way to stay organized.
2. Includes a "Start" button to transition to the main application.
1. Add Task: Adds a task with a name, deadline, and priority.
2. Update Task: Updates the details (deadline, priority) of an existing task.
3. Delete Task: Removes a task by name.
4. Search Task: Finds a task by name and displays its details.
5. Sort Tasks: Sorts tasks based on priority using a priority queue.
6. Clear Input: Clears all input fields for convenience.
1. Task name must be at least 3 characters long, and it cannot contain special characters.
2. Deadline must not be in the past.
3. Priority must be a valid integer.
Uses a Treeview widget to display tasks in a tabular format, showing:
1. Task Name
2. Deadline
3. Priority
4. Days Remaining
5. Data Persistence:
Tasks are saved in a JSON file (tasks.json) for persistence across sessions.
Tasks are loaded from the file on application start.
The Task class calculates the number of days left until the deadline. Tasks and buttons are displayed dynamically using tk.Canvas, allowing for better positioning and resizing.