A simple yet powerful desktop application for tracking time spent on projects and calculating billable amounts. Built with Python and Tkinter, this application supports multiple currencies and provides a user-friendly interface for time tracking and project management.
- Real-time Time Tracking: Start and stop timer for tracking work sessions
- Project Management: Create and manage multiple projects
- Rate Management: Set different rates for different projects
- Multi-currency Support:
- Euro (€)
- US Dollar ($)
- British Pound (£)
- Japanese Yen (¥)
- Chinese Yuan (元)
- Automatic Calculations:
- Total time per project
- Billable amount based on rate and time
- Data Persistence: All data is stored in Excel format
- Clean Interface: Modern, intuitive user interface
- Session History: Keeps track of all work sessions
- Python 3.6 or higher
- Required Python packages (automatically installed on first run):
- pandas
- openpyxl
- tkinter (usually comes with Python)
- Clone this repository:
git clone https://github.com/yourusername/time-tracker.git
cd time-tracker
- Run the application using one of these methods:
Double click on time-tracker.bat
or run it from the command line:
time-tracker.bat
The batch file will:
- Check if required packages (pandas and openpyxl) are installed
- Install missing packages automatically
- Launch the Time Tracker application
Install required packages and run the Python script directly:
pip install pandas openpyxl
python time_tracker.py
- Launch the application using
time-tracker.bat
orpython time_tracker.py
- Click the '+' button next to the Project dropdown
- Enter the project name when prompted
- Click OK to create the project
- Click the '+' button next to the Rate dropdown
- Enter the rate for 8 hours of work
- Select the desired currency from the Currency dropdown
- The rate will be automatically converted to a per-minute rate for calculations
- Select a project from the dropdown
- Select a rate from the rate dropdown
- Click the START button to begin tracking
- Click the STOP button when finished
- The total time and billable amount will be automatically updated
- Total project time and billable amount are displayed at the bottom of the application
- These totals are automatically updated when switching between projects or after tracking sessions
time-tracker/
│
├── time_tracker.py # Main application script
├── time-tracker.bat # Windows batch file for easy execution
├── time_tracking.xlsx # Data storage file (created on first run)
├── README.md # This documentation
└── screenshots/ # Application screenshots
All data is stored in an Excel file (time_tracking.xlsx
) with the following columns:
- Project
- Date
- Start_Time
- End_Time
- Duration_Minutes
- Rate
- Currency
- Currency conversion support
- Data export functionality
- Detailed reporting
- Multi-language support
- Dark mode theme
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with Python and Tkinter
- Uses Pandas for data management
- Modern UI design inspired by Material Design principles
If you encounter any problems or have suggestions, please open an issue in the GitHub repository.
The included time-tracker.bat
file provides the following functionality:
- Changes to the directory where the script is located
- Checks if pandas is installed, installs it if missing
- Checks if openpyxl is installed, installs it if missing
- Launches the Time Tracker application
This makes the application easy to run on Windows systems without manually installing dependencies or running Python commands.
- Fixed indentation of
setup_ui
method to be properly inside theTimeTrackerApp
class - Added debug print in
check_activity
to track inactivity detection
- Reduced inactivity threshold from 10 minutes to 5 minutes (300 seconds)
- Changed inactivity check interval to run every second
- Added immediate activity checking on tracking start
- Added multi-currency support
- English UI
- Automatic dependency installation
- Excel-based data storage with proper data types
- Project and rate management
- DataFrame handling improvements
- Activity detection optimization
- UI responsiveness improvements
- Functionality requires Windows for inactivity detection
- Excel file is created on first run
- All times are saved in local timezone
To test inactivity detection:
- Start tracking a project
- Do not move mouse or use keyboard
- The app should stop after 5 minutes of inactivity