A simple yet practical To-Do List Manager built with Python. This project demonstrates core programming concepts such as Object-Oriented Programming (OOP), CSV file handling, and basic data management through a command-line interface.
- ✅ Add new tasks
- ❌ Delete existing tasks
- 📋 View all tasks
- 💾 Save tasks to a CSV file
- 📂 Load tasks from a CSV file
- ⚡ Assign priority levels (High, Medium, Low)
This project is designed to practice and demonstrate:
- Object-Oriented Programming (OOP)
- File handling with CSV
- Data persistence
- CLI (Command-Line Interface) design
my_project/
│
├── venv/ # Virtual environment (not included in version control)
├── main.py # Entry point of the application
├── requirements.txt # Project dependencies
├── tasks.csv # Data storage (auto-generated)
└── README.md # Project documentation
Represents a single task.
Attributes:
name– Title of the taskdescription– Details about the taskpriority– Task priority (High, Medium, Low)
Manages the collection of tasks.
Methods:
add_task()– Add a new taskremove_task()– Delete a taskview_tasks()– Display all taskssave_to_csv()– Save tasks to a CSV fileload_from_csv()– Load tasks from a CSV file
python -m venv venvWindows:
venv\Scripts\activatemacOS / Linux:
source venv/bin/activatepip install -r requirements.txtpython main.pyThe program runs in a text-based menu, allowing you to:
- Add a task
- Remove a task
- View all tasks
- Save tasks
- Exit
- Tasks are stored in a file named
tasks.csv - Data is automatically loaded when the program starts (if the file exists)
- Changes can be saved manually or automatically depending on implementation
- The
venv/folder should not be committed to version control - Add the following to your
.gitignorefile:
venv/
__pycache__/
tasks.csv
- Add task deadlines
- Add task completion status
- Build a GUI (e.g., using Tkinter or PyQt)
- Add search and filtering options
This project is open-source and available for learning purposes.
This project is created as a hands-on exercise to improve Python programming skills.