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.1.1.tar.gz (8.2 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.1.1-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: toony_2do-0.1.1.tar.gz
  • Upload date:
  • Size: 8.2 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.1.1.tar.gz
Algorithm Hash digest
SHA256 e55e295f842858e203d42c75d30cc7737190383ba688ea68053a457c278f796a
MD5 3e42a6fbcd20568376033a35214b90fa
BLAKE2b-256 3d5dce1b1f4addbd7ff823048253a8428316f7adbce72c87ac4490ab477673b4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: toony_2do-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 7.9 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.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2b0492ae5642285294f5e84767be4111edb875f26cd539a4836df2b143377d39
MD5 d077161bd9558ef689044e9efde5ae17
BLAKE2b-256 a7ec3ba68cbab05fe839892cbaca24393d7304980de09b498967d01224c6de19

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