To-Do List Manager
Overview
As part of my CS243 coursework at Lake Washington Institute of Technology, I developed a simple command-line To-Do List Manager. This application allows users to manage tasks through an interactive menu, storing data in a plain text file for lightweight and cross-platform compatibility.
Problem & Objectives
- Create a command-line tool for personal task management.
- Implement core CRUD operations for tasks.
- Use file-based storage for simplicity and no external dependencies.
- Practice Git workflow and incremental development.
Technical Implementation
The application is built with Python 3.x using only the standard library. It features an interactive menu system for user input and stores tasks in a text file within the project directory. Key functions include:
- Adding new tasks with descriptions.
- Viewing all tasks with completion status.
- Marking tasks as done or undone.
- Deleting tasks by index.
- Persistent storage using file I/O operations.
The code follows modular design with separate functions for each operation, ensuring readability and maintainability.
Challenges & Solutions
Managing incremental changes with Git was challenging, especially when updating multiple functions. I addressed this by committing minimal changes and using Git to track progress against initial milestones. File handling for persistence required careful error checking to prevent data corruption.
Results & Impact
- Delivered a fully functional command-line task manager.
- Demonstrated proficiency in Python file I/O and user input handling.
- Practiced version control with Git for project development.
- Created a lightweight tool with no external dependencies.
Future Enhancements
- Add a graphical user interface using Tkinter or a web interface.
- Implement task prioritization and due dates.
- Add data export/import functionality.
- Enhance error handling and user validation.