Desktop time tracker for busy bees
BeeTrack is a lightweight desktop time tracking app built with Python, pywebview, and SQLite. It uses an embedded web UI served from local HTML/CSS/JS assets and stores users, projects, categories, tasks, and time tracks in a local database.
beetrack.db— local SQLite database created automatically at runtimeconfig.json— user settings file that stores app state such aslast_logged_user_idindex.html— main application shell loaded byBeeTrack.pycss/,js/,html/, andimg/— frontend assets used by the app UI
- User management: create and select users
- Task tracking: start/stop task timers and record elapsed time
- Task metadata: associate tasks with projects and categories
- Persistent storage: tasks, tracks, users, categories, and projects persist in SQLite
- Native notifications using
plyer - Buildable as a single executable via
pyinstaller
BeeTrack.py— main Python app andpywebviewbridgejs/pyapi.js— JavaScript wrapper for Python API calls (execute_sql,loadHtml,saveConfig,loadConfig,osNotify)js/app.js— app startup logic and user/session flowjs/tplFunctions.js— dynamic template rendering for viewsjs/models/— app data models such asUser.js,Task.js,Track.jsjs/tpls/— HTML template classes for UI screensBuildExe.py— helper script to package the app with PyInstallerversion.txt— build version metadata (currently0.1.1)
- Python 3.8+ recommended
pywebviewplyerpyinstaller(for building the executable)
- Install dependencies:
pip install pywebview plyer pyinstaller
- Run the app:
python BeeTrack.py
To create a standalone Windows executable, run:
python BuildExe.pyThe output will be placed in the dist folder if the build succeeds.
- The app automatically creates the required SQLite tables when first run.
- UI content is loaded from the
html/folder and rendered in the webview window. - Native desktop notifications are supported via
plyer.notification.
Update this section with your preferred license if needed.