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.3.tar.gz (8.6 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.3-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: toony_2do-0.2.3.tar.gz
  • Upload date:
  • Size: 8.6 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.3.tar.gz
Algorithm Hash digest
SHA256 cbe93763e5b2169f92e264284808939cbf2d4842443b623078c4f28c2d2d2ff9
MD5 56fee45f444efff8b6d6d2b719e21409
BLAKE2b-256 127beae51feccdcc92d9b724862d433d9abf67e48fc4c6fd92a6e97bdf4b2493

See more details on using hashes here.

File details

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

File metadata

  • Download URL: toony_2do-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 8.4 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 3d68ca0245de6e7638da6691c52493a5f70de22cf344e4432141cbc11ce220f4
MD5 a2cc5877792fd81bf1279dfda97dc19a
BLAKE2b-256 b098d3b82f4360147db2a566457fdc76dbdae13e4a3165b66571b27cf8839330

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