Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏋️ Peak Performance Club

A Django-based web application for managing a fitness club, including branches, members, trainers, classes, and equipment.


🚀 Overview

Peak Performance Club is an educational Django project that simulates a real-world gym management system. It demonstrates how to design scalable Django applications using models, views, templates, and advanced ORM features.


📚 Learning Purpose

This project is part of a hands-on learning journey to understand how Django works in real-world scenarios, from database design to UI rendering.

I logged my steps in Project_Steps.md


✨ Features

  • 🏢 Manage gym Branches
  • 👤 Track Members and balances
  • 🧑‍🏫 Manage Trainers and specializations
  • 🧘 Organize Gym Classes with enrollments
  • 🏋️ Monitor Equipment and maintenance status
  • 🔥 Identify Trending Classes (based on members count)
  • 💰 Apply Early Bird Discounts
  • ⭐ Detect VIP Members
  • ⚠️ Track Damaged Equipment using Proxy Models

🧠 Key Django Concepts Used

  • Abstract Models (BaseModel)

  • Custom QuerySets & Managers

  • Model Properties (@property)

  • Proxy Models

  • Relationships:

    • ForeignKey
    • ManyToMany
  • Django Admin customization

  • Template inheritance


🏗️ Project Structure

Peak-Performance-Club/
│
├── venv/
├── src/
│   ├── peak_performance_club/
│   ├── club_app/
│   ├── templates/
│   ├── generate_dummy_data.py
│   └── manage.py
│
└── README.md

⚙️ Setup & Installation

1. Clone the repository

git clone https://github.com/a7madmostafa/Peak-Performance-Club.git
cd Peak-Performance-Club

2. Create virtual environment

python -m venv venv

3. Activate it

  • Windows:
venv\Scripts\activate
  • Mac/Linux:
source venv/bin/activate

4. Install dependencies

pip install django==6.0.4

5. Run migrations

cd src
python manage.py makemigrations
python manage.py migrate

6. Generate Dummy Data

python manage.py shell

Then, in the shell, run the following code:

from generate_dummy_data import run
run()

7. Create superuser to access the admin panel

python manage.py createsuperuser

8. Run the server

python manage.py runserver

🌐 Available Routes

Page URL
Home /
Branches /branches/
Members /members/
Trainers /trainers/
Classes /classes/
Equipment /equipments/
Admin /admin/

💡 Example Features in Code

VIP Member

@property
def is_vip(self):
    return self.balance > 1000

Trending Classes

GymClass.objects.trending()

Early Bird Pricing

def early_bird_price(self):
    if self.start_date > timezone.now() + timedelta(days=30):
        return self.base_price * 0.8
    return self.base_price

👨‍💻 Author

Ahmad Mostafa


📄 License

This project is for educational purposes.

About

Educational Project in Django

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages