Skip to content

blueisfresh/todo_python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

22 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

βœ… TodoApp (Terminal-Based)

A simple command-line Todo application built in Python.
It allows you to create, edit, delete, and display todos persistently, stored in a JSON file.
Each user has their own todos separated by username.


πŸ“¦ Features

  • ✨ Add new todos with a title and optional due date.
  • πŸ“‹ Display todos in a clean tabular layout.
  • ✏️ Edit existing todos (title, due date, and completion status).
  • πŸ—‘οΈ Delete todos.
  • ⏳ Visual indicator for overdue tasks.
  • πŸ‘€ User-based separation of tasks.
  • πŸ’Ύ Persistent storage with Todo.json.

πŸ› οΈ Installation

  1. Clone the repository:

    git clone https://github.com/your-username/todoapp.git
    cd todoapp
  2. Create and activate a virtual environment (optional but recommended):

    python -m venv venv
    source venv/bin/activate     # On macOS/Linux
    venv\Scripts\activate        # On Windows
  3. Install dependencies:

    pip install -r requirements.txt

    Required packages:

    • simple-term-menu

▢️ Usage

Run the app with:

python todo.py
  1. You will be asked to choose a username (unique per user).
  2. You’ll see a menu like this:
πŸ‘€ Welcome back, mike!
========================================
πŸ“‹ Show todos
βž• Add Todo
✏️  Edit Todo
πŸ—‘οΈ  Delete Todo
πŸ‘‹ Quit
  1. Use arrow keys to navigate and Enter to select.

πŸ“‚ File Structure

.
β”œβ”€β”€ todo.py           # Main application script
β”œβ”€β”€ Todo.json         # Stores your todos persistently
β”œβ”€β”€ requirements.txt  # Python dependencies
└── README.md         # Project description

πŸ“„ Todo.json Example

{
  "todos": [
    {
      "id": 1,
      "title": "Finish project documentation",
      "completed": false,
      "due_date": "2025-09-30",
      "user": "mike"
    },
    {
      "id": 2,
      "title": "Review pull request",
      "completed": true,
      "due_date": "2025-09-20",
      "user": "mike"
    }
  ]
}

πŸ§‘β€πŸ’» Development

  • Code style: use PEP8
  • Dependencies are minimal to keep this lightweight.

About

my first python project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages