Skip to content

A modern Gym and Padel Club management system built with Qt6 and C++ featuring user management, scheduling, subscriptions, and analytics.

License

Notifications You must be signed in to change notification settings

Nouran252/Gym_Management_System

 
 

Repository files navigation

🏋️‍♂️🎾 Gym & Padel Management System

🌟 Our Team

💫 Team Members

Fady Gerges

Fady Ehab Kareem Amr Peter Emad Abdulrahman Ali Fatma Alzhraa Nouran Mahmoud

📑 Table of Contents

  1. Features
  2. Technical Implementation
  3. Project Structure
  4. Installation

✨ Features

👥 User Management

  • Member Profiles

    • ✅ Unique ID generation and management
    • ✅ Personal information storage (Name, DOB, Contact)
    • ✅ Profile picture support
    • ✅ Subscription status tracking
    • ✅ Workout history access
  • Staff Management

    • 🔐 Role-based access control (Receptionist, Coach, Manager)
    • 📅 Staff scheduling and availability
    • 👤 Member information management
    • 🏋️‍♂️ Class assignment tracking
    • 📊 Performance monitoring

🕒 Class Scheduling

  • Class Management

    • 📅 Monthly class scheduling
    • 🧮 Capacity tracking and management
    • 👨‍🏫 Coach assignment system
    • 🔄 Real-time availability updates
    • � Class type categorization
  • Waitlist System

    • ⏳ Automatic waitlist management
    • 🔔 Priority-based notification system
    • 🆕 Real-time slot availability updates
    • ⭐ VIP member priority handling
    • ❌ Cancellation and rescheduling support

💪 Workout Tracking

  • Progress Monitoring
    • 📈 Detailed workout history
    • 🎯 Performance metrics tracking
    • 🏆 Achievement system
    • 📊 Progress visualization
    • ✏️ Custom workout plans

💳 Subscription Management

  • Subscription Types

    • 📅 Monthly plans
    • 🗓️ 3-month packages
    • 📆 6-month packages
    • 🎉 Yearly memberships
    • ⭐ VIP subscriptions
  • Renewal System

    • 🔔 Automatic renewal reminders
    • 💰 Early renewal discounts
    • 💳 Payment processing
    • 📊 Subscription status tracking
    • ❌ Cancellation management

🎾 Padel Court Booking

  • Booking System

    • ⏱️ Real-time court availability
    • 📅 Advanced booking options
    • 📍 Location-based search
    • ⏰ Time slot management
    • ❌ Cancellation policies
  • VIP Features

    • ⭐ Priority booking access
    • 🕒 Exclusive time slots
    • 🏟️ Premium court selection
    • 📅 Extended booking windows
    • ❌ Special cancellation privileges

📊 Reporting System

  • Analytics Dashboard
    • 👥 Member activity reports
    • 💰 Revenue tracking
    • 🏋️‍♂️ Class attendance statistics
    • 🎾 Court utilization metrics
    • 👨‍💼 Staff performance analysis

💻 Technical Implementation

🏗️ Data Structures

  • User Management

    • 🗃️ Hash Maps for quick member lookup
    • ⏭️ Priority Queues for waitlist management
    • 🔗 Linked Lists for workout history
  • Scheduling System

    • 🌳 Binary Search Trees for time slot management
    • 🚶‍♂️ Queues for class waitlists
    • 📊 Graphs for staff scheduling
  • Data Storage

    • 📄 JSON files for persistent storage
    • 🔄 Efficient data serialization
    • ⚡ Optimized file I/O operations

🔒 Security Features

  • 🔐 Encrypted user data storage
  • 💳 Secure payment processing
  • 👥 Role-based access control
  • ⏱️ Session management
  • 💾 Data backup system

🏗️ Project Structure

🧱 Core Components

  • DataManager/
    • userdatamanager.cpp/h: Comprehensive user data operations
    • Implements secure CRUD operations
    • Data validation and sanitization

🔐 Authentication System

  • src/auth/
    • authpage.cpp/h: Secure authentication system
    • Role-based access control
    • Session management

🖥️ UI Components

  • UI/
    • leftsidebar.cpp/h: Navigation system
    • TopPanel.cpp/h: User interface controls
    • UIUtils.cpp/h: Common UI components

🌍 Language & Theme

  • Language/

    • 🌐 Multi-language support
    • 🔄 Dynamic language switching
  • Theme/

    • ☀️🌙 Light/Dark mode
    • 🎨 Customizable interface
    • ♿ Accessibility features

⚙️ Installation

  1. Prerequisites

    • Qt 6.10 or later
    • C++17 compatible compiler
    • CMake 3.15 or later
    • Git
  2. Build Steps

    git clone https://github.com/Fady2024/DS_Project.git
    cd gym-padel-system
    mkdir build
    cd build
    cmake ..
    cmake --build .
  3. Initial Setup

    • Configure database settings
    • Set up user permissions
    • Initialize system parameters
    • Create admin account

License

This project is licensed under the GNU Affero General Public License v3.0 - see the LICENSE file for details.

About

A modern Gym and Padel Club management system built with Qt6 and C++ featuring user management, scheduling, subscriptions, and analytics.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 97.5%
  • C 1.4%
  • CMake 1.1%