Skip to content

abhisheksingh212/TaskManager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 

Repository files navigation

Task Manager - Python Tkinter Application

📋 Project Overview

A simple and efficient desktop Task Manager application built using Python's Tkinter library. This application allows users to create, organize, and manage their tasks with features like importance marking and filtering.

🚀 Features Implemented

Core Functionality

  • Add Tasks: Create new tasks with optional importance marking
  • Remove Tasks: Delete selected tasks from the list
  • Task Filtering: Toggle between viewing "All" tasks or only "Important" tasks
  • Task Organization: Automatic date/time stamping for each task

User Interface

  • Clean Layout: Minimalist design with intuitive controls
  • Responsive Design: Window resizing with proper element scaling
  • Visual Separation: Tasks are displayed with horizontal separators for better readability
  • Compact Input: Space-efficient text area with streamlined controls

🛠️ Technologies Used

Programming Language

  • Python 3.x - Core programming language

GUI Framework

  • Tkinter - Python's standard GUI package
  • ttk - Themed widgets for enhanced appearance

Key Modules

  • tkinter - Main GUI framework
  • tkinter.ttk - Enhanced themed widgets tkinter.font - Font customization
  • datetime - Date and time handling

Widgets Utilized

  • Tk - Main application window
  • Frame - Container for organizing widgets
  • Text - Multi-line text input for tasks
  • Checkbutton - Importance marking toggle
  • Button - Action triggers (Add/Remove)
  • Combobox - Filter dropdown selector
  • Treeview - Tabular display for tasks
  • Label - Text displays and headings

📁 Code Structure

Main Class: TaskManager

Initialization

  • Window setup with dimensions and resizing properties
  • Font configuration for consistent styling
  • UI element creation and layout management

Key Methods

  • init() - Initializes application and UI components
  • add_task() - Handles task creation and validation
  • remove_task() - Manages task deletion with proper indexing
  • refresh_task_list() - Updates task display based on filters

🎯 Key Implementation Details

1. Task Management

  • Tasks stored in a list of dictionaries
  • Automatic timestamp in DD/MM/YYYY format
  • Importance flag for task prioritization

2. UI/UX Design

  • Single-column layout for simplicity
  • Visual separators between tasks
  • Compact input area to maximize task display space
  • Responsive window behavior

3. Filtering System

  • Dynamic task filtering between "All" and "Important"
  • Real-time list updates without page refresh
  • Persistent task data during filter changes

4. Error Handling

  • Empty task validation
  • Proper selection handling for removal
  • Robust indexing for filtered views

🔧 Installation & Usage

Prerequisites

  • Python 3.x installed
  • Tkinter (usually comes with Python installation)

Running the Application

python task_manager.py

How to Use

1.Adding Tasks:

  • Type task in text area
  • Check "Mark Important" if needed
  • Click "Add Task" 2.Viewing Tasks:
  • Use dropdown to filter between "All" or "Important" tasks
  • Tasks display with creation timestamp 3.Removing Tasks:
  • Select a task from the list
  • Click "Remove Task"

📊 Features Breakdown

Input Section

  • Multi-line text area for task description
  • Importance checkbox
  • Add task button

Display Section

  • Filter dropdown (All/Important)
  • Task list with horizontal separators
  • Creation date and time display

Control Section

  • Remove task functionality
  • Visual feedback for user actions

🎨 Design Choices

Why Tkinter?

  • Lightweight and no external dependencies
  • Cross-platform compatibility
  • Simple deployment
  • Built-in with Python

Layout Strategy

  • Pack geometry manager for simplicity
  • Nested frames for organized structure
  • Responsive column widths
  • Consistent padding and spacing

🔄 Future Enhancements

Potential improvements that could be added:

  • Task editing functionality
  • Task categories/tags
  • Due dates and reminders
  • Data persistence (save/load from file)
  • Task completion status
  • Search functionality
  • Export capabilities

📝 Notes

This application demonstrates:

  • Object-oriented programming with Python
  • GUI development with Tkinter
  • Event-driven programming
  • Data management and filtering
  • User interface design principles
  • The code is modular and easily extensible for additional features while maintaining a clean and user-friendly interface.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages