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/frankiedl/TimeTracker.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.batThe 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.batorpython 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
- 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_uimethod to be properly inside theTimeTrackerAppclass - Added debug print in
check_activityto track inactivity detection
- 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
- Excel file is created on first run
- All times are saved in local timezone



