Skip to main content

A console-based task management application

Project description

TaskFolio - Interactive Task Manager

A modern, interactive console-based task management application built with Python and InquirerPy.

PyPI version Python 3.13+ License: MIT

Features

  • Arrow-key navigation - Navigate menus with arrow keys instead of typing numbers
  • Fuzzy search - Type to filter tasks in selection lists
  • Visual feedback - Colored output with status icons
  • Inline validation - Immediate feedback for invalid input
  • Delete confirmation - Prevent accidental deletions

Installation

From PyPI (Recommended)

pip install mesumali-console-task-manager

From Source

  1. Clone the repository:

    git clone <repository-url>
    cd Phase_01
    
  2. Install dependencies with UV:

    uv sync
    

Running the Application

If installed via pip:

mesumali-todo

If installed from source:

uv run python -m src.main

First Run

  1. When prompted, enter your username (alphanumeric):

    Welcome to TaskFolio!
    ? Enter your username: alice
    
  2. The main menu will appear with arrow-key navigation:

    ╔════════════════════════════════════╗
    ║     TaskFolio (alice)              ║
    ╚════════════════════════════════════╝
    
    ? What would you like to do?
    ❯ ➕ Add Task
      📋 View All Tasks
      ✏️ Update Task
      🗑️ Delete Task
      🔄 Change Status
      👋 Exit
    

Keyboard Navigation

Key Action
↑/↓ Move selection
Enter Confirm selection
Type Filter (in fuzzy lists)
Ctrl+C Exit application

Basic Operations

Add a Task

  1. Select ➕ Add Task
  2. Enter task title (required, max 200 chars)
  3. Enter description (optional, press Enter to skip)
  4. See confirmation: ✓ Task 1 created successfully.

View All Tasks

Select 📋 View All Tasks to see:

=== Your Tasks ===
[1] Buy groceries
    Description: Milk, eggs, bread
    Status: ○ incomplete
---
[2] Call mom
    Description: (none)
    Status: ● complete
---

Update a Task

  1. Select ✏️ Update Task
  2. Search/select task from fuzzy list (type to filter)
  3. Enter new title (or press Enter to keep current)
  4. Enter new description (or press Enter to keep current)
  5. See confirmation: ✓ Task 1 updated successfully.

Delete a Task

  1. Select 🗑️ Delete Task
  2. Search/select task from fuzzy list
  3. Confirm deletion: Delete task "Buy groceries"? (y/N)
  4. Press y to confirm or n to cancel

Change Task Status

  1. Select 🔄 Change Status
  2. Search/select task from fuzzy list
  3. Select new status from visual menu:
    ? Select new status:
    ❯ ○ incomplete
      ◐ inProcessing
      ● complete
    
  4. See confirmation: ✓ Task 1 marked as complete.

Status Icons

Icon Status Meaning
incomplete Task not started
inProcessing Task in progress
complete Task finished

Data Storage

Your tasks are stored in db/user_{username}.json. For example:

  • User "alice" -> db/user_alice.json
  • User "bob" -> db/user_bob.json

Tasks persist across sessions. Restart the app and log in with the same username to see your saved tasks.

Troubleshooting

Unicode Icons Not Displaying

Symptom: Status icons show as boxes or question marks

Solution: Use a modern terminal:

  • Windows: Windows Terminal, VS Code terminal
  • macOS: Default Terminal.app, iTerm2
  • Linux: GNOME Terminal, Konsole

Colors Not Showing

Symptom: All text is plain/white

Solution: InquirerPy auto-detects color support. If not working:

  1. Check terminal supports ANSI colors
  2. Set TERM=xterm-256color environment variable

Keyboard Navigation Not Working

Symptom: Arrow keys print characters instead of navigating

Solution: Ensure terminal is in canonical mode. Try:

  • Restart terminal
  • Use stty sane to reset terminal settings

Data file issues

If db/user_{username}.json is corrupted, delete it and restart. A fresh empty task list will be created.

Running Tests

uv run pytest

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

mesumali_console_task_manager-1.0.2.tar.gz (654.1 kB view details)

Uploaded Source

Built Distribution

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

mesumali_console_task_manager-1.0.2-py3-none-any.whl (14.2 kB view details)

Uploaded Python 3

File details

Details for the file mesumali_console_task_manager-1.0.2.tar.gz.

File metadata

File hashes

Hashes for mesumali_console_task_manager-1.0.2.tar.gz
Algorithm Hash digest
SHA256 b690cd8bb5273de5e08c4653eaa9d51e8ee2a65341a8ea6ea6e2c9bcc9fc6d77
MD5 326d349ea215e67cd121ff730b888361
BLAKE2b-256 2db82dc26b605d2ec90efa3d7e3170948c5ed445aecd8b2c22ccccc33566ec99

See more details on using hashes here.

File details

Details for the file mesumali_console_task_manager-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for mesumali_console_task_manager-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a0ea5ececc519266bbe10fd7cd524c64ab3fa688350f4aba603984adb1044b76
MD5 7bd7f322e7202176c4b4c348f41cb76b
BLAKE2b-256 9fa2fff8e3526e1cfe90806c3fa3d61038fff5d88ed3a5cb5262ab1a66e970e4

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