Objective
Build a console-based To-Do List Manager using Python.
The application should allow users to create, update, delete, search, and mark tasks as completed.
Use Object-Oriented Programming (OOP) and organize your code using classes and functions.
Features
1. Add Task
Allow the user to add a new task.
Each task should contain:
- Task ID
- Task Name
- Priority (High / Medium / Low)
- Due Date
- Status (Pending)
2. View All Tasks
Display all tasks in a formatted table.
Example:
ID Task Priority Due Date Status
---------------------------------------------------------
1 Learn Python High 10-07-2026 Pending
2 Complete Assignment Medium 12-07-2026 Completed
3. Search Task
Search a task by:
4. Update Task
Allow the user to update:
- Task Name
- Priority
- Due Date
5. Mark Task as Completed
Update the task status from:
6. Delete Task
Delete a task using Task ID.
7. View Pending Tasks
Display only tasks whose status is Pending.
8. View Completed Tasks
Display only tasks whose status is Completed.
9. Exit
Exit the application with a thank you message.
Class Design
Class: Task
Attributes
- task_id
- task_name
- priority
- due_date
- status
Methods
- display_task()
- mark_completed()
- update_task()
Class: TodoManager
Methods
- add_task()
- view_tasks()
- search_task()
- update_task()
- delete_task()
- mark_completed()
- pending_tasks()
- completed_tasks()
- menu()
Sample Menu
===== TO-DO LIST =====
1. Add Task
2. View Tasks
3. Search Task
4. Update Task
5. Mark as Completed
6. Delete Task
7. View Pending Tasks
8. View Completed Tasks
9. Exit
Enter your choice:
Sample Data
Task(
task_id=1,
task_name="Learn Python",
priority="High",
due_date="10-07-2026",
status="Pending"
)
Hints
Hint 1
Store all tasks in a list.
Example:
Hint 2
Each task should be an object.
Example:
task = Task(1, "Learn Python", "High", "10-07-2026", "Pending")
tasks.append(task)
Hint 3
Search a task by looping through the task list.
for task in tasks:
if task.task_id == search_id:
return task
Hint 4
Generate Task IDs automatically.
Hint 5
Delete a task using:
or
Hint 6
To display only pending tasks:
for task in tasks:
if task.status == "Pending":
task.display_task()
Hint 7
Keep each function responsible for one task only.
Example:
- add_task()
- search_task()
- delete_task()
- update_task()
- mark_completed()
Python Topics Covered
- Variables
- Data Types
- Strings
- Lists
- Classes
- Objects
- Constructors (
__init__)
- Functions
- Loops
- If-Else
- Searching
- Updating Objects
- Basic OOP
- Menu-Driven Programming
Bonus Challenges (Optional)
- Save tasks to a JSON file.
- Load tasks when the application starts.
- Sort tasks by priority.
- Display overdue tasks.
- Count total, pending, and completed tasks.
- Add task categories (Work, Personal, Study).
Expected Folder Structure
todo_app/
│
├── main.py
├── task.py
├── todo_manager.py
└── README.md
Goal
Build a simple and clean To-Do List Manager using classes, objects, lists, loops, functions, and conditional statements. Focus on writing modular, reusable code with a menu-driven interface.
Objective
Build a console-based To-Do List Manager using Python.
The application should allow users to create, update, delete, search, and mark tasks as completed.
Use Object-Oriented Programming (OOP) and organize your code using classes and functions.
Features
1. Add Task
Allow the user to add a new task.
Each task should contain:
2. View All Tasks
Display all tasks in a formatted table.
Example:
3. Search Task
Search a task by:
4. Update Task
Allow the user to update:
5. Mark Task as Completed
Update the task status from:
6. Delete Task
Delete a task using Task ID.
7. View Pending Tasks
Display only tasks whose status is Pending.
8. View Completed Tasks
Display only tasks whose status is Completed.
9. Exit
Exit the application with a thank you message.
Class Design
Class: Task
Attributes
Methods
Class: TodoManager
Methods
Sample Menu
Sample Data
Hints
Hint 1
Store all tasks in a list.
Example:
Hint 2
Each task should be an object.
Example:
Hint 3
Search a task by looping through the task list.
Hint 4
Generate Task IDs automatically.
Hint 5
Delete a task using:
or
Hint 6
To display only pending tasks:
Hint 7
Keep each function responsible for one task only.
Example:
Python Topics Covered
__init__)Bonus Challenges (Optional)
Expected Folder Structure
Goal
Build a simple and clean To-Do List Manager using classes, objects, lists, loops, functions, and conditional statements. Focus on writing modular, reusable code with a menu-driven interface.