Skip to content

vanstrouble/fitzone

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

160 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FitZone logo FitZone - Gym Management System

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.

FitZone login screen

Why It Stands Out

  • 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

Screenshots

Dashboard Overview

FitZone dashboard overview

The main navigation hub for moving quickly between the most important modules.

Admin Management

Admin management view

A centralized table for searching, reviewing, and maintaining administrator accounts.

Trainer Directory

Trainer directory view

A clear directory for managing trainer profiles, specialties, and work schedules.

Member Management

Member management view

A complete member registry with the key data needed for day-to-day gym administration.

Admin Account Creation

Admin account creation form

A secure form for creating new administrator accounts with role-based access control.

Trainer Registration

Trainer registration form

A structured registration form for adding trainers with the relevant profile details.

Member Registration

Member registration form

A friendly enrollment screen designed to capture member information with clarity.

Admin Configuration

Admin configuration panel

A configuration panel for administrative settings and user management tasks.

Installation & Setup

Prerequisites

  • Python 3.8 or higher
  • pip package manager

Quick Start

  1. Clone the repository

    git clone https://github.com/vanstrouble/fitzone.git
    cd fitzone
  2. Install dependencies

    pip install -r requirements.txt
  3. 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.

Dependencies

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

Technologies Used

Backend

  • Python: Core programming language
  • SQLAlchemy: ORM for database interactions
  • SQLite: Lightweight database engine
  • Argon2: Modern password hashing algorithm

Frontend

  • CustomTkinter: Enhanced Tkinter UI library for a modern interface

Development Tools

  • PrettyTable: For formatted data visualization during development and testing
  • Unittest: For testing application components

Project Architecture

The application follows a domain-driven design with clean separation of concerns:

Core Components

Model Layer (/models)

  • Inheritance hierarchy: Base Person class with specialized User, Trainer, and Admin subclasses
  • Type safety: Comprehensive type hints and validation throughout
  • Business logic: Rich domain models with embedded validation rules

Controller Layer (/controllers)

  • 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

View Layer (/views)

  • 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

Technical Highlights

  • 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

Key Technical Features

Advanced Search & Data Management

  • 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

Modern UI/UX Design

  • 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

Robust Form System

  • 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

Enterprise-Grade Security

  • 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

About

Gym management system from scratch using pure Python and CustomTkinter.

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages