Skip to content

A powerful, privacy-focused desktop productivity tracker built with Python and PyQt5. Track your tasks, measure time usage, and gain insights into your productivity with comprehensive analytics and reports. Offline desktop productivity tracker with analytics and reports. Built using Python, PyQt5, and SQLite.

License

Notifications You must be signed in to change notification settings

BaseMax/qt-productivity-analyzer

Repository files navigation

Qt Productivity Analyzer

A powerful, privacy-focused desktop productivity tracker built with Python and PyQt5. Track your tasks, measure time usage, and gain insights into your productivity with comprehensive analytics and reports.

License Python PyQt5

Features

📋 Task Management

  • Create, edit, and delete tasks with detailed descriptions
  • Categorize tasks for better organization
  • Set task priorities (1-5 scale)
  • Estimate time for tasks
  • Track task status (pending, in_progress, completed, cancelled)
  • Filter tasks by status and category
  • Color-coded task display

⏱️ Time Tracking

  • Start/stop timer for any task
  • Automatic duration calculation
  • Add notes to time entries
  • View recent time tracking history
  • Resume interrupted timers

📊 Statistics & Analytics

  • Overview dashboard with key metrics
  • Total tasks, completed tasks, and time tracked
  • Interactive pie chart showing time distribution by category
  • Daily time tracking bar chart (last 7 days)
  • Real-time statistics updates

📈 Reports

  • Generate weekly, monthly, or custom date range reports
  • All-time productivity reports
  • Detailed breakdowns by category
  • Task completion summaries
  • Export reports to HTML or text format

💾 Data Export

  • Export all data to CSV or JSON format
  • Preserve complete task and time entry history
  • Easy data portability

🔒 Privacy & Performance

  • Offline-first: All data stored locally in SQLite database
  • No cloud dependency: Your data stays on your machine
  • Fast performance: Optimized database queries
  • Clean Qt design: Native look and feel

Installation

Prerequisites

  • Python 3.7 or higher
  • pip (Python package manager)

Steps

  1. Clone the repository:
git clone https://github.com/BaseMax/qt-productivity-analyzer.git
cd qt-productivity-analyzer
  1. Install dependencies:
pip install -r requirements.txt
  1. Run the application:
python main.py

Usage

Getting Started

  1. Add Categories: Categories are created automatically when you add tasks, or you can add them in the task creation dialog.

  2. Create Tasks:

    • Click "Add Task" in the Tasks tab
    • Fill in task details (name, description, category, priority, estimated hours)
    • Click OK to save
  3. Track Time:

    • Switch to the Timer tab
    • Select a task from the dropdown
    • Add optional notes
    • Click "Start Timer"
    • Work on your task
    • Click "Stop Timer" when done
  4. View Statistics:

    • Navigate to the Statistics tab
    • View overview metrics and charts
    • Charts update automatically when new data is added
  5. Generate Reports:

    • Go to the Reports tab
    • Select report type (Weekly, Monthly, Custom Range, or All Time)
    • Click "Generate Report"
    • Export to file if needed

Keyboard Shortcuts

  • Ctrl+Q: Quit application
  • F5: Refresh all data

Project Structure

qt-productivity-analyzer/
├── main.py                  # Application entry point
├── main_window.py          # Main window and menu
├── database.py             # SQLite database layer
├── task_widget.py          # Task management UI
├── timer_widget.py         # Time tracking UI
├── statistics_widget.py    # Statistics and charts
├── reports_widget.py       # Report generation
├── requirements.txt        # Python dependencies
└── README.md              # This file

Database Schema

The application uses SQLite with the following tables:

  • tasks: Stores task information (name, description, category, status, priority, etc.)
  • time_entries: Tracks time spent on tasks (start time, end time, duration, notes)
  • categories: Manages task categories (name, color)
  • settings: Application settings (key-value pairs)

Technologies Used

  • PyQt5: GUI framework
  • SQLite: Local database
  • Matplotlib: Charts and visualizations
  • NumPy: Data processing

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Roadmap

Future enhancements planned:

  • Task dependencies and subtasks
  • Pomodoro timer integration
  • Custom productivity goals
  • Enhanced data visualization options
  • Dark theme support
  • Data backup and restore
  • Import data from other tools
  • Custom category colors
  • Task templates
  • Productivity insights and suggestions

Support

If you encounter any issues or have questions:

  1. Check existing issues on GitHub
  2. Create a new issue with detailed information
  3. Include steps to reproduce any bugs

Acknowledgments

Built with ❤️ using open-source tools and libraries.


Note: This is an offline-first application. All your data is stored locally on your computer for maximum privacy and security.

About

A powerful, privacy-focused desktop productivity tracker built with Python and PyQt5. Track your tasks, measure time usage, and gain insights into your productivity with comprehensive analytics and reports. Offline desktop productivity tracker with analytics and reports. Built using Python, PyQt5, and SQLite.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages