BaseMax/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. Offline desktop productivity tracker with analytics and reports. Built using Python, PyQt5, and SQLite.
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.
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
- Clone the repository:
git clone https://github.com/BaseMax/qt-productivity-analyzer.git
cd qt-productivity-analyzer- Install dependencies:
pip install -r requirements.txt- Run the application:
python main.pyUsage
Getting Started
-
Add Categories: Categories are created automatically when you add tasks, or you can add them in the task creation dialog.
-
Create Tasks:
- Click "Add Task" in the Tasks tab
- Fill in task details (name, description, category, priority, estimated hours)
- Click OK to save
-
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
-
View Statistics:
- Navigate to the Statistics tab
- View overview metrics and charts
- Charts update automatically when new data is added
-
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 applicationF5: 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.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - 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:
- Check existing issues on GitHub
- Create a new issue with detailed information
- 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.