A lightweight CLI task manager for small teams with cloud database persistence and Slack notifications.
- Python 3.8+
- PostgreSQL database
- Slack workspace (optional, for notifications)
-
Install dependencies:
pip install -r requirements.txt
-
Configure environment variables:
Create a
.envfile 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
.envto version control! -
Set up the database (first time only):
python3 db_connection.py
Launch the main menu:
python3 tasktracker.pyThis provides a menu interface for:
- Creating tasks
- Listing tasks
- Updating status
- Reassigning tasks
- Viewing your tasks
- Team status reports
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| 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 |
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.
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)
psycopg[binary]- PostgreSQL database adapterpython-dotenv- Environment variable managementrequests- HTTP client for Slack webhooks
- Verify
ConnectionURIin.envis correct - Ensure SSL mode is enabled (
sslmode=require) - Check network connectivity to database host
- Verify
SLACK_WEBHOOK_URLis set in.env - Check webhook URL is valid (starts with
https://hooks.slack.com/) - Review console for error messages
- Ensure all dependencies are installed:
pip install -r requirements.txt - Check Python version:
python --version(requires 3.8+)