Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📝 Python Todo Manager

A command-line Todo Manager built with Python using Object-Oriented Programming (OOP), modules, and JSON file storage.

The application allows users to add, view, complete, and delete tasks. Tasks are stored in a JSON file so they remain available after restarting the program.

🚀 Features

  • ➕ Add tasks
  • 👀 View all tasks
  • ✅ Mark tasks as completed
  • 🗑️ Delete tasks
  • 💾 Save tasks to JSON
  • 🔄 Load tasks when the program starts
  • 🛡️ Handle invalid input
  • 🚫 Prevent empty tasks
  • 🖥️ Menu-driven command-line interface

🛠️ Technologies Used

  • Python 3
  • JSON
  • File Handling
  • Object-Oriented Programming
  • Python Modules

📚 Concepts Practiced

This project helped practice:

  • Classes and Objects
  • __init__()
  • self
  • Methods
  • Modules
  • import
  • Lists
  • Dictionaries
  • Boolean values
  • append()
  • pop()
  • enumerate()
  • while loops
  • for loops
  • try/except
  • ValueError
  • File handling
  • JSON serialization and deserialization
  • os.path.exists()

📂 Project Structure

python-todo-manager/
├── main.py
├── todo.py
├── tasks.json
└── README.md

🧠 Project Structure

The project separates the application into two Python files.

main.py
   ↓
imports TodoManager
   ↓
todo.py
   ↓
TodoManager
   ↓
tasks.json

todo.py contains the TodoManager class and task-related functionality.

main.py contains the user interface and menu.

▶️ How to Run

Make sure Python 3 is installed.

Run:

python main.py

💻 Menu

==============================
📝 TODO MANAGER
==============================
1. Add Task
2. View Tasks
3. Complete Task
4. Delete Task
5. Exit

💾 Data Storage

Tasks are stored in tasks.json.

Example:

[
    {
        "task": "Complete Python project",
        "completed": true
    },
    {
        "task": "Practice DSA",
        "completed": false
    }
]

The application automatically saves changes when tasks are added, completed, or deleted.

🔮 Future Improvements

  • Edit tasks
  • Add task deadlines
  • Add task priorities
  • Add categories
  • Search tasks
  • Filter completed and pending tasks
  • Add dates and timestamps
  • Create a graphical user interface
  • Database integration

👨‍💻 Author

Ayushman Tiwari

GitHub: https://github.com/ayushman-ece

About

A command-line Todo Manager built with Python using OOP, modules, and JSON file storage.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages