View my SDLC journey. github.com/jschilling12
by Jordan Schilling
Implemented a time tracking application capable of detecting the active window and recording time spent per application, with CSV export functionality for persistence.
After further consideration, a more robust system was required to give users control over where their data is saved. This led to a pivot from a simple local OS-based script toward a more realistic and distributable application architecture.
As part of this evolution, the project introduced Tkinter and basic GUI concepts to support user interaction.
The original implementation wrote CSV output directly to the working directory. While functional, this approach was not suitable for a packaged application.
To address this, a configurable save point was introduced:
This significantly improves usability and aligns the project with real-world distribution requirements.
A Tkinter directory selection dialog was implemented to allow the user to choose where CSV files are saved. The selected directory path is written to a configuration file and reused on future launches.
This feature was implemented successfully on the first attempt.
def save_folder(self, config_path: Path):
# Prompt a file dialog for directory selection.
PathFileName = str(
Path(
tkinter.filedialog.askdirectory(
mustexist=True,
title="Select Directory to Save Time Tracking CSV"
)
)
)
if PathFileName:
config_path.write_text(PathFileName)
# Save the selected directory path for future use.
# Check on subsequent launches if a path is already saved.