GymBase is a lightweight, modern desktop application designed to streamline gym management. Built with Python and CustomTkinter, it offers a robust solution for access control, membership tracking, and facility administration without the bloat of web-based SaaS platforms.
- Real-time Verification: Instantly verify member status by ID.
- Visual Status Indicators: Clear color-coded feedback (Granted, Expired, Frozen).
- Serial Integration: Supports keypad/RFID readers via serial port connection.
- Easy Registration: Quick onboarding flow for new members.
- Full Tracking: Manage personal details, contact info, and registration dates.
- Searchable Database: Fast lookup by Name or ID.
- Granular Extensions: Renew memberships by weeks, months, or years with a single click.
- Freeze/Unfreeze: Pause memberships for injured or traveling members (automatically adjusts expiry dates).
- Expiration Tracking: Automatic calculation of remaining days.
- Configurable Settings: Customize gym name and terminal settings directly from the app.
- Hardware Connection: seamless setup for serial devices (COM ports / TTY).
- Detailed Logging: Comprehensive audit logs for troubleshooting and tracking entry events.
- Core: Python 3
- GUI: CustomTkinter (Modern, High DPI aware)
- Database: SQLite (Zero configuration, local storage)
- Hardware: PySerial for serial communication
- Packaging: PyInstaller + GitHub Actions (Automated Builds)
- Python 3.10 or higher
- Git
-
Clone the repository
git clone https://github.com/sacoco/gymbase.git cd gymbase -
Set up Virtual Environment (Recommended)
# Linux / macOS python3 -m venv venv source venv/bin/activate # Windows python -m venv venv .\venv\Scripts\activate
-
Install Dependencies
pip install -r requirements.txt
-
Run the Application
python main.py
No Python installed? No problem. Go to the Releases page to download the latest standalone executable for your operating system:
GymBase.exe(Windows)GymBase(Linux)
GymBase supports serial input devices (like numpads or RFID scanners) for the Access Control screen.
- Connect your device to the computer.
- Go to the Administration tab in the app.
- Select the correct COM Port and Baud Rate.
- Click Connect.
- The device will now input IDs directly into the access check field.
The application maintains a gymbase.log file in the root directory. This log includes:
- Application startup/shutdown events
- Database transaction errors
- Access granted/denied events
- Serial communication status
Contributions are welcome! Please feel free to submit a Pull Request.
Developed by sacoco