{"id":51170511,"url":"https://github.com/code-with-zeeshan/remote-work-productivity-analyzer","last_synced_at":"2026-06-27T00:03:26.905Z","repository":{"id":346899848,"uuid":"850608680","full_name":"code-with-zeeshan/remote-work-productivity-analyzer","owner":"code-with-zeeshan","description":"ProductivityAnalyzer v2.0 — A desktop application that tracks and analyzes user activity with smart categorization, focus mode, goal setting, visual reports, AI suggestions, and dark mode. Built with Python, PyQt5, PostgreSQL.","archived":false,"fork":false,"pushed_at":"2026-05-27T07:58:16.000Z","size":118429,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-27T09:23:45.471Z","etag":null,"topics":["activity-tracker","data-visualization","desktop-app","focus-mode","postgresql","productivity","pyqt5","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/code-with-zeeshan.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-09-01T09:17:21.000Z","updated_at":"2026-05-27T07:58:19.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/code-with-zeeshan/remote-work-productivity-analyzer","commit_stats":null,"previous_names":["code-with-zeeshan/remote-work-productivity-analyzer"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/code-with-zeeshan/remote-work-productivity-analyzer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-with-zeeshan%2Fremote-work-productivity-analyzer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-with-zeeshan%2Fremote-work-productivity-analyzer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-with-zeeshan%2Fremote-work-productivity-analyzer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-with-zeeshan%2Fremote-work-productivity-analyzer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/code-with-zeeshan","download_url":"https://codeload.github.com/code-with-zeeshan/remote-work-productivity-analyzer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-with-zeeshan%2Fremote-work-productivity-analyzer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34835785,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-26T02:00:06.560Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["activity-tracker","data-visualization","desktop-app","focus-mode","postgresql","productivity","pyqt5","python"],"created_at":"2026-06-27T00:03:24.413Z","updated_at":"2026-06-27T00:03:26.900Z","avatar_url":"https://github.com/code-with-zeeshan.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# ProductivityAnalyzer v2.0\n\n**A powerful desktop application that tracks and analyzes your work activity to boost productivity.**\n\n[![CI Pipeline](https://github.com/code-with-zeeshan/remote-work-productivity-analyzer/actions/workflows/ci.yml/badge.svg)](https://github.com/code-with-zeeshan/remote-work-productivity-analyzer/actions)\n[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![Linting: Ruff](https://img.shields.io/badge/linting-ruff-261230.svg)](https://github.com/astral-sh/ruff)\n[![Tests: 84 passed](https://img.shields.io/badge/tests-84%20passed-brightgreen.svg)](#testing)\n[![Coverage: 52%](https://img.shields.io/badge/coverage-52%25-green.svg)](#testing)\n\n\u003c/div\u003e\n\n---\n\n## Features\n\n| Feature | Description |\n|---|---|\n| **Smart Dashboard** | Real-time productivity score, trends, and daily summaries |\n| **Focus Mode** | Block distracting apps and websites during work sessions |\n| **Activity Tracking** | Automatic window tracking with intelligent categorization |\n| **Goal Setting** | Set daily/weekly/monthly productivity goals with progress tracking |\n| **Visual Reports** | Pie charts, trend lines (weekly/monthly/quarterly), and activity bar charts |\n| **AI Suggestions** | Smart recommendations, burnout alerts, meeting overload detection |\n| **LLM Summaries** | Optional AI-powered daily summaries via OpenAI (graceful fallback) |\n| **GitHub Integration** | Optional commit analytics to correlate coding output with productivity |\n| **Export Reports** | Export to CSV and PDF formats (configurable output directory) |\n| **Dark Mode** | Professional light and dark themes with one-click toggle |\n| **Notifications** | System tray notifications with break reminders and goal alerts |\n| **Sentry Integration** | Optional error tracking for production monitoring |\n\n---\n\n## Architecture\n\n```\nProductivityAnalyzer/\n├── config/              # Configuration, constants, .env management\n├── database/            # Connection pool, models, repositories, migrations\n│   ├── repositories/    # CRUD operations (activity, goals, focus settings)\n│   └── migrations/      # Schema versioning (001_initial, 002_soft_deletes)\n├── tracking/            # Activity tracker, focus mode, website blocker, categorizer\n├── reporting/           # Report generation, charts (pie, bar, trend), exporters (CSV, PDF)\n├── services/            # Notifications, suggestion engine, LLM, GitHub integration\n│   └── integrations/    # Third-party integrations (GitHub)\n├── ui/                  # PyQt5 main window, 6 page widgets, QSS themes\n│   ├── widgets/         # Dashboard, Activity Log, Focus Mode, Reports, Goals, Settings\n│   └── styles/          # Light theme + Dark theme (style.qss, dark_theme.qss)\n├── utils/               # Logger, scoring, cross-platform helpers, validators\n├── tests/               # 84+ tests (unit + integration + services)\n│   ├── test_database/   # Repository tests\n│   ├── test_tracking/   # Categorizer, website blocker tests\n│   ├── test_reporting/  # Report generator tests\n│   ├── test_services/   # GitHub integration, LLM service, notification tests\n│   ├── test_integration/# Full workflow integration tests\n│   └── test_ui/         # Validator tests + E2E widget tests\n├── docs/adr/            # Architecture Decision Records\n├── .github/workflows/   # CI/CD pipeline (lint, test, security, docker)\n└── main.py              # Application entry point\n```\n\n---\n\n## Quick Start\n\n### Prerequisites\n\n- Python 3.10+\n- PostgreSQL database (local or remote — e.g., Aiven, Supabase, Neon)\n\n### Installation\n\n```bash\n# Clone the repository\ngit clone https://github.com/code-with-zeeshan/remote-work-productivity-analyzer.git\ncd remote-work-productivity-analyzer/ProductivityAnalyzer\n\n# Create virtual environment\npython -m venv venv\n.\\venv\\Scripts\\activate       # Windows\n# source venv/bin/activate    # Linux/Mac\n\n# Install dependencies\npip install -r requirements.txt\n\n# Configure environment\ncp .env.example .env\n# Edit .env with your database credentials\n\n# Create directories\nmkdir assets exports logs      # Linux/Mac\n# On Windows PowerShell:\n# New-Item -ItemType Directory -Force -Path assets, exports, logs\n\n# Run the application\npython main.py\n```\n\n### Optional Integrations\n\n| Integration | Setup |\n|---|---|\n| **GitHub Analytics** | Add `GITHUB_USERNAME` and `GITHUB_TOKEN` to `.env` |\n| **AI Summaries** | Add `OPENAI_API_KEY` to `.env` and `pip install openai` |\n| **Error Tracking** | Add `SENTRY_DSN` to `.env` (get from sentry.io) |\n\n---\n\n## Testing\n\n```bash\n# Install dev dependencies\npip install -r requirements-dev.txt\n\n# Run all tests with coverage\npython -m pytest tests/ -v\n\n# Run specific test suites\npython -m pytest tests/test_database/ -v       # Database repo tests\npython -m pytest tests/test_tracking/ -v        # Tracking \u0026 categorizer tests\npython -m pytest tests/test_reporting/ -v       # Report generation tests\npython -m pytest tests/test_services/ -v        # Service tests (GitHub, LLM, etc.)\npython -m pytest tests/test_integration/ -v     # Integration workflow tests\npython -m pytest tests/test_ui/ -v              # Validator \u0026 widget tests\n\n# Code quality checks\nruff check .              # Linting\nblack --check .           # Format check\nmypy config database tracking reporting services utils --ignore-missing-imports  # Type check\n\n# Security audit\npip-audit --strict\n```\n\n### Test Summary\n\n```\n84 passed, 5 skipped (GUI tests need display)\nCoverage: 52% (non-UI code)\n```\n\n---\n\n## Productivity Score\n\nYour score is calculated based on time spent in categorized activities:\n\n| Grade | Score | Meaning |\n|---|---|---|\n| A+ | 90-100 | Exceptional productivity |\n| A | 80-89 | Great focus |\n| B | 70-79 | Good, room to improve |\n| C | 60-69 | Average |\n| D | 50-59 | Below average |\n| F | 0-49 | Needs improvement |\n\n### How Categories Work\n\n| Category | Examples | Effect on Score |\n|---|---|---|\n| **Productive** | VS Code, PyCharm, GitHub, Terminal | Boosts score |\n| **Unproductive** | YouTube, Facebook, Reddit, Netflix | Lowers score |\n| **Neutral** | Chrome, Slack, Outlook, Zoom | Slight positive |\n| **Idle** | No active window, screen locked | No effect |\n\nYou can customize category rules from **Settings \u003e App Categories**.\n\n---\n\n## Tech Stack\n\n| Layer | Technology |\n|---|---|\n| **Language** | Python 3.13 |\n| **UI Framework** | PyQt5 5.15 |\n| **Database** | PostgreSQL + psycopg2 (connection pooling) |\n| **Charts** | Matplotlib (pie, bar, trend line) |\n| **PDF Export** | ReportLab |\n| **AI (Optional)** | OpenAI GPT-3.5 Turbo |\n| **Error Tracking** | Sentry SDK (optional) |\n| **Testing** | Pytest + pytest-cov + pytest-qt |\n| **Linting** | Ruff |\n| **Formatting** | Black |\n| **Type Checking** | MyPy |\n| **CI/CD** | GitHub Actions (4 jobs: lint, test, security, docker) |\n| **Containerization** | Docker + Docker Compose |\n\n---\n\n## Building Executable\n\n```bash\n# Install PyInstaller\npip install pyinstaller\n\n# Build standalone .exe\npyinstaller build_exe.spec\n\n# Output will be in dist/ProductivityAnalyzer.exe\n```\n\n\u003e **Note:** Place a `icon.ico` file in `assets/` before building, or remove the `icon=` line from `build_exe.spec`.\n\n---\n\n## Project Roadmap\n\n- [x] **v1.0** — Basic activity tracking with PyQt5\n- [x] **v2.0** — Complete rewrite with clean architecture\n  - [x] Repository pattern with PostgreSQL\n  - [x] Intelligent activity categorization\n  - [x] Focus mode with app/website blocking\n  - [x] Goal setting and tracking\n  - [x] Visual reports (pie, bar, trend)\n  - [x] CSV and PDF export (configurable output directory)\n  - [x] AI suggestion engine with burnout detection\n  - [x] Meeting overload detection\n  - [x] Monthly and quarterly trend analysis\n  - [x] Dark mode theme\n  - [x] System tray notifications\n  - [x] GitHub commit analytics integration\n  - [x] LLM-powered summaries (optional)\n  - [x] Soft delete support\n  - [x] CI/CD with GitHub Actions (multi-platform)\n  - [x] Docker support\n  - [x] 84+ automated tests (52% coverage)\n  - [x] Service tests (GitHub, LLM, Notifications)\n  - [x] Migration rollback support\n  - [x] Atomic hosts file writes\n  - [x] Configurable export directory\n- [ ] **v3.0** (Future)\n  - [ ] Google Calendar integration\n  - [ ] Toggl/Clockify integration\n  - [ ] Team features with RBAC\n  - [ ] PyQt6 migration\n\n---\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for development guidelines.\n\n## Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md) for version history.\n\n## Architecture Decisions\n\nSee [docs/adr/](ProductivityAnalyzer/docs/adr/) for Architecture Decision Records.\n\n## License\n\nThis project is licensed under the MIT License. See [LICENSE](LICENSE) for details.\n\n## Contact\n\n**Mohammad Zeeshan** — [LinkedIn](https://www.linkedin.com/in/mohammad-zeeshan-37637a1a5)\n\n---\n\n\u003cdiv align=\"center\"\u003e\nMade with dedication for productivity enthusiasts\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcode-with-zeeshan%2Fremote-work-productivity-analyzer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcode-with-zeeshan%2Fremote-work-productivity-analyzer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcode-with-zeeshan%2Fremote-work-productivity-analyzer/lists"}