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-2doand 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 taske- Edit selected taskd- Delete selected taskspace- Toggle task completionq- 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
- Email: marjan.ahmed08@yahoo.com
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
94e5b6c07b840f94a36f41dbf46f340ec6266fab1d0bb208899e1cb8bea2971f
|
|
| MD5 |
9cb11fc627045ac5be05a658b156b247
|
|
| BLAKE2b-256 |
e89c64a7cebd80d67e4a7022277601fc56d6903a583b6b41c73dd69a6c7c319f
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5adce78e7899f63c624841eb98ed9db0b582f14a93846e3d338d5f5d512d2bd7
|
|
| MD5 |
f7948707423217ed1dd2c5a0f4a341d8
|
|
| BLAKE2b-256 |
5d5b60e516f35ecf2ac51c2ea19913ec3b21b271d5a086dae45c69de71d39246
|