Desktop Time Tracker is a lightweight offline desktop app for tracking work time by project. Built with Python, Tkinter, and SQLite, it supports live timer sessions, manual entries, editing, search, sorting, CSV export, and Windows EXE packaging.
- Start and stop a live active timer.
- Manage projects (add and delete).
- Create manual time entries.
- Edit and delete entries.
- Search by project or description.
- Sort table columns by clicking headers.
- Zebra table rows and auto-fit column widths.
- Filter entries by date range.
- Export filtered entries to CSV.
- Restore active session on next launch.
- Safe close dialog when timer is active.
- Date hints:
- manual entry:
YYYY-MM-DD HH:MM:SS - filters:
YYYY-MM-DD
- manual entry:
- Timer status color changes when tracking is active.
- Hotkeys:
Ctrl+Ffocus searchDeletedelete selected table rowCtrl+Ssave manual entry- edit dialog:
Ctrl+Ssave,Esccancel
python main.pyAfter first launch, local database is created at:
data/time_tracker.db
Install build dependencies and build in folder mode:
powershell -ExecutionPolicy Bypass -File .\build_exe.ps1Build as single executable:
powershell -ExecutionPolicy Bypass -File .\build_exe.ps1 -OneFileBuild output:
- Folder mode:
dist\DesktopTimeTracker\DesktopTimeTracker.exe - One-file mode:
dist\DesktopTimeTracker.exe
Use this in repository settings:
- Repository name:
desktop-time-tracker-python - Project title:
Desktop Time Tracker (Python + Tkinter + SQLite) - About description:
Offline desktop time-tracking app with projects, manual entries, edit/delete, search, sorting, CSV export, and EXE build script. - Topics:
python, tkinter, sqlite, desktop-app, time-tracker, productivity, csv-export, pyinstaller, windows, offline - License:
MIT
First release:
- Tag:
v1.0.0 - Title:
First stable release: Desktop Time Tracker - Notes:
Live timer, projects, manual/edit entries, filters, search, sorting, CSV export, and EXE build script.
main.py- app entry pointapp.py- UI and app logicdatabase.py- SQLite data layerbuild_exe.ps1- EXE build scriptrequirements.txt- runtime dependencies (none)requirements-dev.txt- dev/build dependencies.gitignore- Git ignore rulesLICENSE- MIT license
git init
git add .
git commit -m "Initial commit: Desktop Time Tracker app"
git branch -M main
git remote add origin <YOUR_REPO_URL>
git push -u origin main