Skip to content

aixandrolab/cli-todo-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📋 CLI ToDo Manager v1.0.0

GitHub release (latest by date) GitHub top language GitHub GitHub stars GitHub forks

Modern CLI task manager with priorities, deadlines and desktop notifications

CLI ToDo Manager is a powerful command-line task management application with support for priorities, deadlines, system notifications, and a beautiful colorful interface.

CLI ToDo Manager

✨ Features

  • 🎯 Task Priorities - Low, Medium, Critical with color indicators
  • 📅 Deadlines - Smart color coding (white/yellow/red)
  • 🔔 System Notifications - With sound and app icon
  • 📊 Statistics - Task analytics by priority and status
  • 🎨 Beautiful UI - Color output, ASCII art logo, emojis
  • 🖥️ Desktop Shortcut - Create launcher on your desktop
  • 💾 Local Storage - SQLite database
  • 🚀 High Performance - Database indexes, optimized queries

🚀 Quick Start

Installation

# Clone the repository
git clone https://github.com/aixandrolab/cli-todo-manager.git
cd cli-todo-manager

# Run the application
python app.py

System Requirements

  • Python 3.8+
  • Linux (for full notification functionality)
  • libnotify-bin (for desktop notifications)
  • sound-theme-freedesktop (optional, for sounds)

Install dependencies on Ubuntu/Debian:

sudo apt install python3 libnotify-bin sound-theme-freedesktop

📖 Usage

Main Menu

⚡ MAIN MENU ⚡
────────────────────────────────────────────────────────
   1. 📋 List Tasks       - View active tasks
   2. 📚 All Tasks        - View all tasks (including completed)
   3. ➕ Create Task      - Add new task
   4. ✏️ Edit Task        - Modify existing task
   5. ✅ Complete Task    - Mark task as done
   6. 🗑️ Delete Task      - Remove task
   7. 📊 Statistics       - View task statistics
   8. 🖥️ Create Shortcut  - Create desktop shortcut
   9. ℹ️ About            - Show application information
  10. ❓ Help             - Show help and documentation
  11. 🌐 GitHub           - Open GitHub repository
────────────────────────────────────────────────────────
   0. 🚪 Exit             - Quit application

Creating a Task

When creating a task, you can specify:

  • Name - Supports emojis 🎉
  • Description - Detailed information
  • Priority - Low 🟢, Medium 🟡, Critical 🔴
  • Deadline - Due date and time (optional)
📝 Task name (can include emojis): Complete project 🚀
📄 Description (optional): Finish CLI ToDo Manager by the end of the week

🎯 Select priority:
  1. 🟢 Low
  2. 🟡 Medium
  3. 🔴 Critical
Choice: 3

⏰ Add deadline? (y/n): y
📅 Deadline (YYYY-MM-DD HH:MM): 2026-04-30 10:00

Task Management

  • List Tasks - Shows only active (pending) tasks
  • All Tasks - Shows all tasks, including completed ones
  • Edit Task - Modify any task field
  • Complete Task - Mark as done
  • Delete Task - Permanently remove

🎨 Color Scheme

Color Meaning
🟢 Green Low priority / Completed
🟡 Yellow Medium priority / Deadline soon
🔴 Red Critical priority / Overdue
🔵 Cyan Information / Headers
⚪ White Normal deadline (>1 day left)
🟡 Yellow Deadline ≤ 1 day
🔴 Red Overdue deadline

🔔 Notifications

The application automatically monitors deadlines and sends system notifications:

  • Overdue Tasks - Every 30 minutes (critical priority)
  • Deadline Today - On the due date (critical priority)
  • Deadline Tomorrow - 1 day before (warning priority)
  • Deadline in 2 Days - Reminder (normal priority)

Notifications are grouped by type to prevent sound spam when multiple tasks are due.

📁 Project Structure

cli-todo-manager/
├── core/
│   ├── database/         # Database operations
│   │   └── db_manager.py
│   ├── models/           # Data models
│   │   └── todo.py
│   ├── ui/               # User interface
│   │   ├── ascii_art.py
│   │   ├── colors.py
│   │   └── menu.py
│   └── utils/            # Utilities
│       ├── config.py
│       ├── desktop_entry.py
│       └── notifications.py
├── data/
│   └── icons/            # Application icons
│       └── icon.png
├── app.py               # Entry point
└── README.md             # Documentation

🛠️ Development

Adding an Icon

Place your icon.png file in the data/icons/ directory for use in:

  • Desktop shortcuts
  • System notifications
  • Application menu

Extending Functionality

Main classes for extension:

  • Todo - Task model (core/models/todo.py)
  • DatabaseManager - Database operations (core/database/db_manager.py)
  • Menu - UI and logic (core/ui/menu.py)
  • NotificationManager - Notifications (core/utils/notifications.py)

📝 License

Copyright © 2024-2026, Alexander Suvorov. All rights reserved.

This project is licensed under the BSD 3-Clause License - see the LICENSE file for details.

👤 Author

Alexander Suvorov (aixandrolab)

⭐ Support the Project

If you like this project, please star it on GitHub! It helps the project grow and improve.


Built with ❤️ using Python

About

CLI ToDo Manager is a powerful command-line task management application with support for priorities, deadlines, system notifications, and a beautiful colorful interface.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages