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:
- Activity Tracker - Background service that monitors active windows and logs activity
- Backend API - FastAPI server providing analytics endpoints
- 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
- Clone or navigate to the project directory:
cd S:\Trackify
- Install backend dependencies:
pip install -r backend\requirements.txt
- 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:
- Activity tracker (background monitoring)
- Backend API server (http://localhost:8000)
- Frontend development server (http://localhost:5173)
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:
- Interactive API docs: http://localhost:8000/docs
- Alternative docs: http://localhost:8000/redoc
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.dbexists 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
- Review DEVELOPER_DOCS.md for architecture details
- Make your changes
- Test thoroughly using QUICK_TEST.md
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
48cecaa78fcae25c68ab058d9aa9dcad88e5a5168f2ffd7108a826301715aa30
|
|
| MD5 |
500ca29a357001503d3215f1b1008281
|
|
| BLAKE2b-256 |
adddc7510cce525361d00c404812212fd17dd014e5d7b3d53a0963d93d223575
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4aed45a3154143024aedf015300a0b6b3f4bf3551809baf8a54abb1ecacb490b
|
|
| MD5 |
a435274a7ed8fe16c3cd15971822d1f9
|
|
| BLAKE2b-256 |
d14255d6021e2a070b69f2ad39803eac2fc49e1d2177868f32dbaf2c3828a065
|