Python To-Do List Manager
A console-based to-do list manager built entirely with Core Python, add, view, complete, and delete tasks from a clean, menu-driven terminal interface, with input validation that keeps the program from ever crashing on bad input. Built as Project 1 for the DecodeLabs Python Programming Internship.
Why I Built This
This was built as Project 1 during the DecodeLabs Python Programming Internship; the brief was a task manager, but I used it as a chance to practice writing genuinely clean, PEP8-conventional Python rather than just making something that technically works.
Keeping it to Core Python only, with zero external libraries, was a deliberate constraint; it forced every feature (validation, formatting, the menu loop) to be built from first principles instead of leaning on a package.
Technical Challenges
The real constraint was scope discipline, not technical difficulty: staying limited to core language features (lists, functions, loops, conditionals) while still producing something that felt like a complete, polished tool rather than a bare-minimum script.
Key Decisions
No external libraries or frameworks were used anywhere in the project; the task list is a plain Python list, and every operation on it (append, pop, enumerate) is a built-in method, by design.
A duplicate-completion guard was added so marking an already-completed task as complete again is explicitly handled rather than silently allowed, which mattered more than it might seem for a project meant to demonstrate careful input handling.
What I Learned
Writing input validation that never crashes the program (for both invalid menu choices and invalid task numbers) took more careful thought than the feature itself, since every single user action needed a graceful failure path.
Structuring even a small CLI project cleanly (a dedicated PROJECT_STRUCTURE.md, a clear README, real screenshots of actual runs) made a noticeable difference in how it reads as a portfolio piece versus just a working script.