Developed a cross-platform GUI application to replace hardcoded values in a Python script with editable fields, persistent configuration via JSON, and single-file deployment using PyInstaller.
Issue
The original Python script suffered from:
- Hardcoded values for job details and generation parameters, requiring manual code edits.
- No persistence between sessions, forcing users to re-enter customizations.
- Lack of a visual interface, relying solely on command-line usage.
- Platform dependency, requiring Python installation on target machines.
- No real-time feedback during document generation.
Culprit
- Architectural limitations: Configuration mixed with business logic, no separation of concerns.
- No state management: All values reset on script restart.
- Single-threaded execution: No progress feedback or real-time updates.
- Manual parameter passing: No structured way to handle complex inputs.
- Path handling issues: Platform-specific compatibility problems.
Solution
- Tkinter-Based GUI: Implemented a 4-tab interface for job, candidate, settings, and generation.
- JSON Configuration: Added automatic serialization of user inputs for persistence.
- Cross-Platform Deployment: Used PyInstaller to bundle the application into a single executable.
- Real-Time Feedback: Added live logging and progress indicators during generation.
The solution provides a 100% backward-compatible GUI wrapper with no external dependencies beyond the standard library, supporting seamless cross-platform deployment and persistent user configurations.