Skip to main content

A beautiful, interactive terminal todo application with TUI and CLI interfaces

Project description

Toony 2do - Modern Terminal Todo Application

A beautiful, interactive terminal todo application built with Python, featuring a stunning Text User Interface (TUI) with ASCII art branding.

Features

  • Interactive TUI - Full-featured text-based user interface with keyboard navigation
  • ASCII Art Banner - Beautiful pyfiglet-powered "Toony 2do" branding
  • Rich Formatting - Colorful output with rich tables and formatting
  • Keyboard Shortcuts - Efficient navigation and task management
  • Task Statistics - Real-time progress tracking
  • Easy to Use - Just run toony-2do and start managing tasks!

Installation

pip install toony-2do

Usage

Simply run the command to launch the interactive interface:

toony-2do

Keyboard Shortcuts:

  • a - Add new task
  • e - Edit selected task
  • d - Delete selected task
  • space - Toggle task completion
  • q - Quit application
  • Arrow keys - Navigate tasks

Features in Detail

Text User Interface (TUI)

The TUI provides a rich, interactive experience with:

  • ASCII Art Header - Eye-catching "Toony 2do" banner
  • Live Statistics Panel - Shows total, pending, completed tasks and progress percentage
  • Data Table - Clean display of all tasks with status indicators
  • Modal Dialogs - User-friendly forms for adding and editing tasks
  • Confirmation Dialogs - Safe deletion with confirmation prompts

Task Management

  • Task Properties: ID, title, description, completion status, creation timestamp
  • Validation: Prevents empty task titles
  • Statistics: Automatic calculation of totals, pending, completed, and progress percentage

Technology Stack

  • Textual - Modern TUI framework for rich terminal interfaces
  • Rich - Rich text and beautiful formatting in the terminal
  • Pyfiglet - ASCII art text generation
  • Pydantic - Data validation and settings management

Architecture

The application follows clean architecture principles:

  • Data Models - Business logic decoupled from UI (Task, TaskManager)
  • UI Components - Reusable screens and dialogs (AddTaskScreen, EditTaskScreen, ConfirmDialog)
  • CLI Commands - Separate Typer commands for command-line operations
  • Main Application - Textual app with reactive UI updates

Development

Setup Development Environment

# Clone the repository
git clone <repository-url>
cd phase-1-cli

# Install dependencies with uv (recommended)
uv sync

# Or with pip
pip install -e ".[dev]"

Project Structure

phase-1-cli/
├── src/
│   └── phase_1_cli/
│       └── main.py          # Main application code
├── pyproject.toml           # Project configuration
└── README.md                # This file

Requirements

  • Python >= 3.11
  • Dependencies:
    • pydantic >= 2.12.5
    • pyfiglet >= 1.0.2
    • rich >= 14.2.0
    • textual >= 6.11.0
    • typer >= 0.15.1

License

This project is licensed under the MIT License.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Author

Marjan Ahmed

Changelog

Version 0.1.0 (Initial Release)

  • Interactive TUI with full keyboard navigation
  • CLI commands for quick task management
  • ASCII art banners with pyfiglet
  • Rich table formatting for task lists
  • Task statistics and progress tracking
  • Add, edit, delete, and toggle tasks
  • Confirmation dialogs for destructive actions
  • Demo tasks for first-time users

Roadmap

Future enhancements planned:

  • Task persistence (JSON/SQLite storage)
  • Task priorities and categories
  • Due dates and reminders
  • Search and filter functionality
  • Export tasks to various formats
  • Task notes and attachments
  • Multi-user support
  • Configuration file support
  • Themes and customization

Support

For bug reports and feature requests, please use the GitHub issue tracker.


Made with Python and love for the terminal.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

toony_2do-0.2.0.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

toony_2do-0.2.0-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

Details for the file toony_2do-0.2.0.tar.gz.

File metadata

  • Download URL: toony_2do-0.2.0.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for toony_2do-0.2.0.tar.gz
Algorithm Hash digest
SHA256 94e5b6c07b840f94a36f41dbf46f340ec6266fab1d0bb208899e1cb8bea2971f
MD5 9cb11fc627045ac5be05a658b156b247
BLAKE2b-256 e89c64a7cebd80d67e4a7022277601fc56d6903a583b6b41c73dd69a6c7c319f

See more details on using hashes here.

File details

Details for the file toony_2do-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: toony_2do-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 8.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for toony_2do-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5adce78e7899f63c624841eb98ed9db0b582f14a93846e3d338d5f5d512d2bd7
MD5 f7948707423217ed1dd2c5a0f4a341d8
BLAKE2b-256 5d5b60e516f35ecf2ac51c2ea19913ec3b21b271d5a086dae45c69de71d39246

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page