Skip to main content

A comprehensive PC activity tracking and productivity analysis system

Project description

Trackify

A comprehensive activity tracking system that monitors your computer usage, categorizes your activities, and provides detailed analytics about your productivity.

Overview

Trackify consists of three main components:

  1. Activity Tracker - Background service that monitors active windows and logs activity
  2. Backend API - FastAPI server providing analytics endpoints
  3. Frontend Dashboard - React-based web interface for visualizing your activity data

Quick Start

Prerequisites

  • Python 3.8+ (with virtual environment recommended)
  • Node.js 16+ and npm (for frontend)

Installation

  1. Clone or navigate to the project directory:
cd S:\Trackify
  1. Install backend dependencies:
pip install -r backend\requirements.txt
  1. Install frontend dependencies:
cd frontend
npm install
cd ..

Running the Full System

Use the provided PowerShell script to start all components:

.\start.ps1

This will launch:

Components

1. Activity Tracker

Monitors your active window every second and logs:

  • Application name (e.g., chrome.exe, Code.exe)
  • Window title
  • Duration spent
  • Auto-assigned category (Work, Learning, Entertainment, etc.)

Documentation: See tracker/README.md

Manual start:

.venv\Scripts\python.exe tracker\main.py

2. Backend API

FastAPI server providing RESTful endpoints for analytics:

  • /api/summary?date=YYYY-MM-DD - Daily productivity summary
  • /api/apps?date=YYYY-MM-DD - Time breakdown by application
  • /api/raw?date=YYYY-MM-DD - Raw activity logs
  • /api/range?start_date=YYYY-MM-DD&end_date=YYYY-MM-DD - Date range summary

Documentation: See backend/README.md

Manual start:

.venv\Scripts\python.exe run_backend.py

3. Frontend Dashboard

Modern React + TypeScript interface with:

  • Interactive charts and visualizations
  • Date range selector
  • Productivity metrics
  • Application usage breakdown
  • Category distribution

Documentation: See frontend/README.md

Manual start:

cd frontend
npm run dev

Configuration

Category Mapping

Customize how applications are categorized by editing backend/config/categories.json:

{
  "categories": {
    "Work": {
      "apps": ["code.exe", "pycharm64.exe"],
      "keywords": ["github", "jira", "documentation"]
    },
    "Learning": {
      "apps": ["kindle.exe"],
      "keywords": ["tutorial", "course", "udemy"]
    }
  },
  "default_category": "Other",
  "productivity_categories": ["Work", "Learning"]
}

Tracking Interval

Adjust polling frequency in tracker/main.py (default: 1 second).

Data Storage

  • Database: SQLite database stored in data/trackify.db
  • Schema: Automatically created on first run
  • Privacy: All data is stored locally on your machine

Project Structure

Trackify/
├── README.md                 # This file
├── start.ps1                # Launch script for all components
├── run_backend.py           # Backend entry point
├── DEVELOPER_DOCS.md        # Developer documentation
├── SYSTEM_OVERVIEW.md       # System architecture overview
├── backend/                 # FastAPI server
│   ├── main.py
│   ├── requirements.txt
│   ├── config/
│   ├── database/
│   ├── models/
│   ├── routes/
│   └── services/
├── frontend/                # React dashboard
│   ├── src/
│   ├── package.json
│   └── vite.config.ts
├── tracker/                 # Activity monitoring service
│   └── main.py
└── data/                    # SQLite database storage
    └── trackify.db

Development

Backend Development

cd backend
.venv\Scripts\python.exe -m uvicorn backend.main:app --reload --port 8000

Frontend Development

cd frontend
npm run dev

Testing

See QUICK_TEST.md for testing procedures.

API Documentation

Once the backend is running, visit:

Features

  • ✅ Real-time activity tracking
  • ✅ Automatic categorization
  • ✅ Productivity scoring
  • ✅ Daily and range-based analytics
  • ✅ Visual dashboard with charts
  • ✅ Local-first data storage
  • ✅ Customizable categories
  • ✅ CORS-enabled API

Troubleshooting

Tracker not detecting windows

  • Ensure you're running with appropriate permissions
  • Check that pywin32 is properly installed

Backend API not responding

  • Verify port 8000 is not in use
  • Check data/trackify.db exists and is writable
  • Review console output for error messages

Frontend can't connect to backend

  • Confirm backend is running on http://localhost:8000
  • Check browser console for CORS errors
  • Verify API endpoint in frontend/src/api.ts

Contributing

  1. Review DEVELOPER_DOCS.md for architecture details
  2. Make your changes
  3. Test thoroughly using QUICK_TEST.md
  4. Submit pull request with clear description

License

MIT License - feel free to use and modify for personal or commercial use.

Privacy

All activity data is stored locally on your machine. No data is transmitted to external servers.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

trackify_pc-1.0.1.tar.gz (10.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

trackify_pc-1.0.1-py3-none-any.whl (6.1 kB view details)

Uploaded Python 3

File details

Details for the file trackify_pc-1.0.1.tar.gz.

File metadata

  • Download URL: trackify_pc-1.0.1.tar.gz
  • Upload date:
  • Size: 10.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for trackify_pc-1.0.1.tar.gz
Algorithm Hash digest
SHA256 48cecaa78fcae25c68ab058d9aa9dcad88e5a5168f2ffd7108a826301715aa30
MD5 500ca29a357001503d3215f1b1008281
BLAKE2b-256 adddc7510cce525361d00c404812212fd17dd014e5d7b3d53a0963d93d223575

See more details on using hashes here.

File details

Details for the file trackify_pc-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: trackify_pc-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 6.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for trackify_pc-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4aed45a3154143024aedf015300a0b6b3f4bf3551809baf8a54abb1ecacb490b
MD5 a435274a7ed8fe16c3cd15971822d1f9
BLAKE2b-256 d14255d6021e2a070b69f2ad39803eac2fc49e1d2177868f32dbaf2c3828a065

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page