A Python CLI application for tracking tasks, time management, and productivity analysis with visual reports.
- Task Management: Add, edit, delete, and search tasks
- Time Tracking: Flexible duration input (e.g., "2h 30m", "150m", "2.5h")
- Focus Scoring: Rate focus level (1-10) for each task
- Categories: Organize tasks by custom categories
- Reports & Charts: Daily/weekly summaries with matplotlib visualizations
- Search & Filter: Find tasks by date, category, focus score, or notes
- SQLite Database: Reliable local storage
# Clone the repository
git clone https://github.com/debugfest/productivity-tracker.git
cd productivity-tracker
# Create virtual environment (optional)
python -m venv venv
# Windows: venv\Scripts\activate
# macOS/Linux: source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Run the application
python main.pypython demo.pyMain Menu Options:
- Add, edit, delete, and list tasks
- View daily/weekly summaries
- Generate reports and charts
- Search and filter tasks
Adding a Task: Enter task name, category, duration (e.g., "2h 30m"), focus score (1-10), and optional notes.
Reports: Generate various charts including weekly time distribution, category breakdowns, focus trends, and productivity heatmaps.
├── main.py # CLI entry point and user interface
├── tracker.py # Task data model and database operations
├── report.py # Report generation and matplotlib visualizations
├── utils.py # Utility functions, validation, and formatting
├── demo.py # Demo script with sample data
├── requirements.txt # Python dependencies
├── data/time_log.db # SQLite database (auto-created)
└── reports/ # Generated reports and charts
Common Issues:
- Database errors: Ensure write permissions in the project directory
- Matplotlib issues: Install
matplotlib[all]or runpip install -r requirements.txt - Import errors: Verify Python version is 3.8+
Duration Format Examples:
- "2h 30m", "150m", "2.5h" are all valid
- Focus score must be between 1-10
- Task name cannot be empty
We welcome contributions! See CONTRIBUTING.md for guidelines.
Quick Start:
- Fork the repository
- Create a feature branch
- Commit your changes
- Push and open a Pull Request
Acknowledgments: Matplotlib and SQLite
Made with ❤️ for productivity optimization ⏰📊