A Python-based desktop application to track job applications, manage events, and streamline the job search process. Built with PyQt6 for the GUI and SQLite for database management.
- Add, edit, and delete job applications.
- Track events (interviews, rejections, offers, etc.) for each application.
- Filter applications by status (Pending, Active, Closed).
- User-friendly GUI built with PyQt6.
This project requires Python 3.9 or later and the following packages:
- PyQt6: GUI framework for building the desktop application
- PyInstaller: Creates standalone executables from Python applications
- pyqt6-tools: Development tools for PyQt6 including Qt Designer
- qt6-applications: Additional Qt6 applications and utilities
- pip-tools: (Optional) For managing project dependencies
For a complete list of dependencies and their versions, see requirements.txt. To install all required packages, run:
pip install -r requirements.txtThis application uses the Google Maps API for location services. To use these features:
- Get a Google Maps API key from the Google Cloud Console
- Create a
config.pyfile in the root directory (copy fromconfig_template.py) - Add your API key to the
config.pyfile:
GOOGLE_MAPS_API_KEY = "your-api-key-here"Note: The config.py file is ignored by git to keep your API key secure. Never commit your actual API key to version control.
git clone https://github.com/yourusername/job-application-tracker.git
cd job-application-trackerpython -m venv venv
# Activate the virtual environment
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # WindowsUsing 'requirements.txt'
pip install -r requirements.txtRun the following command to build the app
pyinstaller app.specThe build will appear in the dist folder
The application automatically initializes the database when you first run it. Ensure the Data folder and the job_tracker_template.db file are in place.
- app.py: Main entry point for the application.
- constants.py: Contains constants used throughout the project.
- UI/: Contains the GUI design files.
This project is licensed under the MIT License.
- PyQt6 for the amazing GUI toolkit.
- SQLite for lightweight database management.
- PyInstaller for creating standalone executables.