FitZone is a gym and fitness center management system built to keep member, trainer, and administrator workflows organized in one place. It combines secure authentication, structured data management, and a clean desktop interface designed for day-to-day operations.
- Member, trainer, and admin management in a single desktop application
- Secure authentication with Argon2 password hashing
- Fuzzy search for faster lookup across records
- Reusable UI components for a consistent experience
- Live CRUD flows with validation and immediate feedback
- Clear relationships between trainers and their manager accounts
The main navigation hub for moving quickly between the most important modules.
A centralized table for searching, reviewing, and maintaining administrator accounts.
A clear directory for managing trainer profiles, specialties, and work schedules.
A complete member registry with the key data needed for day-to-day gym administration.
A secure form for creating new administrator accounts with role-based access control.
A structured registration form for adding trainers with the relevant profile details.
A friendly enrollment screen designed to capture member information with clarity.
A configuration panel for administrative settings and user management tasks.
- Python 3.8 or higher
- pip package manager
-
Clone the repository
git clone https://github.com/vanstrouble/fitzone.git cd fitzone -
Install dependencies
pip install -r requirements.txt
-
Run the application
python app.py
The application will launch with a login interface and automatically create the database on first run. The default credentials are admin for both username and password.
The application requires the following packages (automatically installed via requirements.txt):
- CustomTkinter: Modern UI framework
- SQLAlchemy: Database ORM
- Argon2: Password hashing
- PrettyTable: Data visualization for development
- Python: Core programming language
- SQLAlchemy: ORM for database interactions
- SQLite: Lightweight database engine
- Argon2: Modern password hashing algorithm
- CustomTkinter: Enhanced Tkinter UI library for a modern interface
- PrettyTable: For formatted data visualization during development and testing
- Unittest: For testing application components
The application follows a domain-driven design with clean separation of concerns:
- Inheritance hierarchy: Base
Personclass with specializedUser,Trainer, andAdminsubclasses - Type safety: Comprehensive type hints and validation throughout
- Business logic: Rich domain models with embedded validation rules
- Database abstraction: Clean ORM layer with SQLAlchemy
- CRUD operations: Complete Create, Read, Update, Delete functionality
- Data conversion: Seamless transformation between domain and database models
- Dashboard analytics: Centralized business logic for reporting
- Component architecture: Reusable UI components with consistent styling
- Form validation: Real-time input validation with user feedback
- Dynamic tables: Live data updates with instant CRUD operations
- Advanced search: Fuzzy matching for improved user experience
- Clean Architecture: Domain-driven design with clear separation of concerns
- Security First: Argon2 password hashing with salt for maximum security
- Real-time Updates: Dynamic UI updates without page refreshes
- Type Safety: Comprehensive type hints throughout the codebase
- Error Handling: Graceful error boundaries across all application layers
- Component Reusability: Modular UI widgets with consistent interfaces
- Fuzzy matching algorithm: Sophisticated string similarity for user-friendly search
- Real-time filtering: Instant search results across all data tables
- Multi-field search: Simultaneous search across names, emails, and other fields
- Data integrity: Foreign key constraints and referential integrity
- Component composition: Reusable UI components with consistent styling
- Responsive layouts: Adaptive interface using CustomTkinter's modern styling
- Interactive data tables: Live CRUD operations with immediate feedback
- Color theming: Centralized color management for brand consistency
- Dynamic validation: Real-time input validation with user-friendly feedback
- Input sanitization: Comprehensive data cleaning before database operations
- State management: Proper handling of create/edit modes with data pre-population
- Password hashing: Industry-standard Argon2 algorithm with salt
- Session management: Secure authentication with proper lifecycle management
- Role-based access: Multi-level access control for different user types
- Input validation: Protection against injection attacks








