A desktop application for managing gym memberships and clients, built with Python, PyQt6, and SQLAlchemy.
- Add new gym clients with customizable membership types and durations
- Delete clients from the database with filtering options
- View the list of all clients in a table view
- Automatically calculates membership expiry date
- RODO and underage status tracking
- Comment field for additional notes per client
- Data persistence via SQLite and SQLAlchemy ORM
- Python 3.9+
- pip
- Clone the repository
git clone https://github.com/witkovskyy/gym_manager.git
cd gym_manager- Create a virtual environment (optional but recommended)
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies
pip install -r requirements.txt- Initialize the database (if not already created)
Make sure the database schema is set up. You can use Alembic, or ensure db_setup.py is run to create tables via SQLAlchemy.
Run the main application:
python main.pyYou will see the main window with options to add or delete gym members.
gym_manager/
├── main.py # Main entry point
├── models/
│ └── db_setup.py # SQLAlchemy models and engine
├── views/
│ ├── add_client_popup.py # Add client dialog
│ └── del_client_popup.py # Delete client dialog
├── resources/
│ └── (icons, styles, etc.)
├── gym_manager.db # SQLite database (created on first run)
└── README.md
- Edit client information
- Export data to CSV/PDF
- Membership history tracking
- Responsive design improvements
- PyQt6 — GUI Framework
- SQLAlchemy — ORM for database interaction
- SQLite — Embedded database
- Python 3.9+
- Witkovskyy — @witkovskyy
This project is licensed under the MIT License — see the LICENSE file for details.