A desktop time-tracking application built with C# and WPF, designed to track working time per client (company or individual), manage breaks, calculate pay, and export work records to Excel-friendly formats.
The application follows a local-first approach, requiring no database or internet connection.
WPF Time Tracker allows users to record work sessions, associate them with specific clients, account for breaks, and calculate earnings based on an hourly rate and currency.
All data is stored locally and can be filtered and exported, making the app suitable for freelancers, contractors, and personal productivity tracking.
- Add, edit, and delete clients
- Clients can be marked as:
- Company
- Individual
- Store default:
- Hourly rate
- Currency symbol per client
- Start and finish work sessions
- Take multiple breaks during a session
- Resume work after breaks
- Automatic calculation of:
- Total worked time
- Total break time
- Net worked time (breaks excluded)
- Estimated pay
- No database required
- Data stored locally using JSON files
- Data persists between application launches
Stored files:
clients.jsonsessions.json
- View all recorded work sessions
- Filter sessions by:
- Client
- Company or Individual
- Date range
- Export:
- All sessions
- Filtered sessions only
- Export format:
- CSV (Excel-compatible)
Break time is automatically subtracted from worked time in exported data.
The UI is divided into three main sections:
- Select a client
- Start work
- Start break / resume
- Finish session
- Live session summary
- Manage companies and individuals
- Set default hourly rates and currencies
- View recorded sessions
- Apply filters
- Export to CSV
- Language: C#
- Framework: WPF (.NET)
- UI: XAML
- Persistence: JSON (
System.Text.Json) - Export: CSV
This project was created to demonstrate practical desktop application development using C# and WPF, focusing on real-world problems rather than purely academic examples.
It showcases:
- ✔ State management (active sessions, break tracking, resuming work)
- ✔ Data persistence without a database
- ✔ Clean separation of concerns (models, services, UI)
- ✔ User-driven workflows (client selectionpanic)
- ✔ Filtering and export logic commonly required in business software
- ✔ Incremental extensibility (easy to add invoicing, reports, or cloud sync)
The project reflects how production desktop tools are designed and built, emphasizing maintainability, usability, and correctness.
✔ Core functionality implemented
✔ Local persistence via JSON
✔ CSV export implemented
- Project / task tagging per session
- Weekly & monthly summaries
- XLSX export
- Invoice generation
- Improved UI styling
- MVVM refactor
- Clone the repository
- Open the solution in Visual Studio
- Build and run the project
- Add clients and start tracking time
(Screenshots to be added)
This project is intended for personal and portfolio use.
Feel free to adapt or extend it for your own needs.