Task Manager CLI Application
Build a complete command-line task management application with persistent storage!
📋 Project Overview
This project combines everything you've learned about functions, data structures, file I/O, and error handling to create a practical task management system. You'll implement features like adding tasks, setting priorities and due dates, searching, and saving data to JSON files.
🎯 Learning Objectives
- Design and implement a data structure for tasks
- Create a menu-driven command-line interface
- Implement CRUD operations (Create, Read, Update, Delete)
- Work with JSON file storage for data persistence
- Handle user input validation and errors
- Implement search and filter functionality
- Generate statistics and reports
✨ Features to Implement
CoreMust-Have Features
- ✓Add new tasks with title and details
- ✓View all tasks in formatted display
- ✓Mark tasks as complete/incomplete
- ✓Delete tasks by ID
- ✓Save and load tasks from JSON file
EnhancedRecommended Features
- ◉Set and display due dates
- ◉Assign priority levels (High, Medium, Low)
- ◉Search tasks by keyword
- ◉View statistics (total, complete, pending)
- ◉Edit existing task details
BonusChallenge Features
- ⭐Add categories or tags to tasks
- ⭐Show overdue tasks with warnings
- ⭐Sort tasks by various criteria
- ⭐Export tasks to CSV format
- ⭐Add color-coded terminal output
🗂️ Data Structure
Example of how to structure your data:
{
"id": 1,
"title": "Complete Python course",
"status": "incomplete",
"priority": "high",
"due_date": "2025-12-31",
"created": "2025-12-12"
}🛠️ Implementation Guide
Set Up Data Storage
30 minCreate functions to load and save tasks from/to JSON file. Handle file not found errors.
💡 Hints
- Use json module for file operations
- Check if file exists before loading
- Return empty list if file doesn't exist
- Use indent=4 for readable JSON
Create Add Task Function
30 minImplement function to add new tasks with user input validation.
💡 Hints
- Get input for title, priority, due date
- Generate unique ID for each task
- Validate priority input
- Add timestamp for when task was created
Create View Tasks Function
30 minDisplay all tasks in a formatted, readable way.
💡 Hints
- Check if tasks list is empty first
- Use formatted strings for alignment
- Add visual indicators (✅, ⭕)
- Show priority with colors or icons
Implement Complete/Delete
30 minAdd functions to mark tasks complete and delete tasks.
💡 Hints
- Find task by ID
- Update status or remove from list
- Save changes to file
- Handle invalid IDs gracefully
Add Search and Filters
45 minImplement search by keyword and filter by priority/status.
💡 Hints
- Use string methods for searching
- Filter using list comprehensions
- Display filtered results
- Handle no results found
Create Main Menu Loop
30 minBuild the main program loop with menu options.
💡 Hints
- Use while True loop
- Display numbered menu options
- Use if-elif for option selection
- Add exit option to break loop
✅ Testing Checklist
Make sure all these work before considering your project complete:
📊 Project Info
Intermediate
4-5 hours
Modules 1-6
💡 Tips for Success
- ✓Start with core features first
- ✓Test each function as you build
- ✓Use meaningful variable names
- ✓Handle errors gracefully
- ✓Add comments for complex logic
- ✓Take breaks when stuck