Skip to content

Jaiv24/taskTracker

Repository files navigation

TaskTracker

A lightweight CLI task manager for small teams with cloud database persistence and Slack notifications.

Requirements

  • Python 3.8+
  • PostgreSQL database
  • Slack workspace (optional, for notifications)

Installation

  1. Install dependencies:

    pip install -r requirements.txt
  2. Configure environment variables:

    Create a .env file in the project root:

    # PostgreSQL connection string
    ConnectionURI=postgresql://user:password@host:port/database?sslmode=require
    
    # Slack webhook URL (optional)
    SLACK_WEBHOOK_URL=https://hooks.slack.com/services/YOUR/WEBHOOK/URL

    Important: Never commit .env to version control!

  3. Set up the database (first time only):

    python3 db_connection.py

Usage

Interactive Menu (Recommended)

Launch the main menu:

python3 tasktracker.py

This provides a menu interface for:

  • Creating tasks
  • Listing tasks
  • Updating status
  • Reassigning tasks
  • Viewing your tasks
  • Team status reports

Individual Scripts

Run specific scripts directly:

# Create a new task
python3 scripts/create_task.py

# List all tasks
python3 scripts/list_tasks.py

# Update task status
python3 scripts/update_status.py

# Reassign a task
python3 scripts/reassign_task.py

# View your tasks
python3 scripts/view_my_tasks.py

# Check team status
python3 scripts/team_status.py

# Delete a task
python3 scripts/delete_task.py

# Delete all tasks
python3 scripts/delete_all_tasks.py

# Create demo tasks
python3 scripts/create_demo_tasks.py

Available Scripts

Script Description
create_task.py Create a new task with name, description, assignee, and due date
list_tasks.py List all tasks with optional filtering
update_status.py Update task status (pending, in-progress, completed)
reassign_task.py Reassign a task to a different team member
view_my_tasks.py View tasks assigned to you
team_status.py View team progress and workload distribution
delete_task.py Delete a specific task
delete_all_tasks.py Delete all tasks from the database
create_demo_tasks.py Create sample tasks for testing

Slack Integration

TaskTracker sends notifications to Slack for:

  • Task creation
  • Status updates
  • Task reassignment

Configure SLACK_WEBHOOK_URL in .env to enable notifications. Slack integration is optional and will be skipped if not configured.

Project Structure

TaskTracker/
├── tasktracker.py        # Main menu launcher
├── scripts/              # Individual operation scripts
│   ├── create_task.py
│   ├── list_tasks.py
│   ├── update_status.py
│   ├── reassign_task.py
│   ├── delete_task.py
│   ├── delete_all_tasks.py
│   ├── view_my_tasks.py
│   ├── team_status.py
│   └── create_demo_tasks.py
├── db_connection.py      # Database setup
├── slack_notifier.py     # Slack integration
├── slack_demo.py         # Slack demo
├── requirements.txt      # Dependencies
└── .env                  # Environment variables (not in git)

Dependencies

  • psycopg[binary] - PostgreSQL database adapter
  • python-dotenv - Environment variable management
  • requests - HTTP client for Slack webhooks

Troubleshooting

Database Connection Issues

  • Verify ConnectionURI in .env is correct
  • Ensure SSL mode is enabled (sslmode=require)
  • Check network connectivity to database host

Slack Notifications Not Working

  • Verify SLACK_WEBHOOK_URL is set in .env
  • Check webhook URL is valid (starts with https://hooks.slack.com/)
  • Review console for error messages

Import Errors

  • Ensure all dependencies are installed: pip install -r requirements.txt
  • Check Python version: python --version (requires 3.8+)

About

A lightweight CLI task manager for small teams with cloud database persistence and Slack notifications.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages