The Task Manager is a desktop application built with Python and Tkinter that helps users organize and manage their tasks efficiently. It provides features for adding, editing, deleting, and marking tasks as complete, with additional functionality for searching and sorting tasks.
-
Task Management:
- Add new tasks with title, description, priority, and deadline
- Edit existing tasks
- Delete tasks with confirmation
- Mark tasks as complete/incomplete
-
Task Organization:
- Tasks are automatically sorted by priority (High > Medium > Low) and deadline
- Completed tasks are displayed with strikethrough text
- Search functionality to quickly find tasks
-
Database Integration:
- All tasks are stored in an SQLite database (
task_manager.db
) - Data persists between application sessions
- All tasks are stored in an SQLite database (
- Python 3.x
- Tkinter (usually included with Python)
- Additional packages:
tkcalendar
(install withpip install tkcalendar
)
- Ensure you have Python 3.x installed
- Install the required package:
pip install tkcalendar
- Download or clone the repository containing
main.py
- Run the application:
python main.py
- The main window will appear with the following components:
- Task list showing ID, Title, Priority, Deadline, and Completion status
- Control buttons (Add, Edit, Delete, Mark Complete)
- Search bar for filtering tasks
- Click the "Add Task" button
- Fill in the task details:
- Title (required)
- Description (optional)
- Priority (Low, Medium, High)
- Deadline (select from calendar)
- Click "Add Task" to save or "Cancel" to discard
- Select a task from the list
- Click the "Edit Task" button
- Modify the task details as needed
- Click "Update Task" to save changes or "Cancel" to discard
- Select a task from the list
- Click the "Delete Task" button
- Confirm the deletion when prompted
- Select a task from the list
- Click the "Mark Complete" or "Mark Incomplete" button (text changes based on current status)
- Type in the search box to filter tasks
- The list will update in real-time as you type
The application uses SQLite to store tasks in a local database file named task_manager.db
. The database is automatically created when the application first runs and contains a single table:
CREATE TABLE tasks (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL,
description TEXT,
priority TEXT NOT NULL,
deadline TEXT,
completed INTEGER DEFAULT 0,
created_at TEXT DEFAULT CURRENT_TIMESTAMP
)
This project is open-source and available for free use and modification.
- Add task categories or tags
- Implement task reminders/notifications
- Add export/import functionality
- Support for multiple user accounts
- Dark mode/theme support