Skip to content

Latest commit

Β 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ’ͺ Dstars Fitness Gym β€” Membership Management System

A full-featured web-based gym membership management system with real-time dashboard, member/staff management, Firebase authentication, and responsive dark-mode UI.

HTML5 CSS3 JavaScript Firebase License


πŸ“‹ Table of Contents


Overview

Dstars Fitness Gym Management System is a web application designed to streamline gym operations β€” from member registration and staff management to dashboard analytics and task tracking. Built with vanilla HTML/CSS/JavaScript and powered by Firebase for real-time data and authentication, the system provides a modern, responsive interface that works across desktop and mobile devices.

Who It's For

  • Gym owners managing memberships and tracking revenue
  • Front desk staff registering new members and processing check-ins
  • Managers monitoring member counts, staff assignments, and daily operations

Features

πŸ” Authentication

  • Email/password sign-up with validation (minimum 6 characters, password confirmation)
  • Secure login with Firebase Authentication
  • Password reset via email
  • Protected routes β€” unauthorized users are redirected to login

πŸ“Š Dashboard

  • Real-time member count β€” updates instantly when members are added/removed
  • Staff count β€” total staff overview
  • New members feed β€” shows members who joined in the last 30 days (live listener)
  • Quick Tasks β€” built-in to-do list with add/check-off functionality

πŸ‘₯ Member Management

  • Add members with auto-generated unique 6-digit ID
  • Member profiles: name, membership type (Basic/Premium/Standard), join date, expiry date
  • View individual profiles with detailed member information
  • Delete members with one click (ID preserved to prevent reuse)
  • Search and filter members in real-time
  • Real-time data sync via Firestore onSnapshot

πŸ‘” Staff Management

  • Add staff with role assignment (Fitness Instructor, Personal Trainer, Receptionist, Gym Floor Attendant)
  • Track employment status (Part-time / Full-time)
  • Staff directory with search functionality

🎨 UI/UX

  • Dark mode (default) with sleek red/black gradient theme
  • Light mode toggle with persistent preference (localStorage)
  • Fully responsive β€” desktop, tablet, and mobile layouts
  • Collapsible sidebar navigation
  • Mobile hamburger menu
  • Clean, modern card-based design

Tech Stack

Layer Technology
Frontend HTML5, CSS3, Vanilla JavaScript (ES Modules)
Backend/Database Firebase Firestore (NoSQL, real-time)
Authentication Firebase Auth (email/password)
Analytics Firebase Analytics
Icons Font Awesome 6
Charts Chart.js 3.7 (integrated, expandable)
Hosting Any static host (Firebase Hosting, GitHub Pages, Netlify)

Screenshots

πŸ“Œ Screenshots coming soon β€” run the app locally to preview the UI.


Getting Started

Prerequisites

  • A modern web browser (Chrome, Firefox, Edge, Safari)
  • A code editor (VS Code recommended)
  • A Firebase project (create one free)
  • (Optional) Live Server VS Code extension for local development

Installation

  1. Clone the repository

    git clone https://github.com/YOUR_USERNAME/DstarsFitnessGym.git
    cd DstarsFitnessGym
  2. Configure Firebase (see Firebase Setup below)

  3. Launch locally

    • Open the project in VS Code
    • Right-click index.html β†’ Open with Live Server
    • Or simply open index.html in your browser

    ⚠️ ES Modules require a local server β€” opening index.html directly as a file may cause CORS issues. Use Live Server or any HTTP server.


Project Structure

DstarsFitnessGym/
β”œβ”€β”€ index.html              # Landing page (login + signup + about)
β”œβ”€β”€ dashboard.html          # Main dashboard with sidebar navigation
β”œβ”€β”€ addmember.html          # New member registration form
β”œβ”€β”€ addstaff.html           # New staff registration form
β”œβ”€β”€ profile.html            # Individual member profile view
β”œβ”€β”€ css/
β”‚   └── style.css           # Main stylesheet (1,200+ lines)
β”œβ”€β”€ light-mode.css          # Light theme override styles
β”œβ”€β”€ js/
β”‚   β”œβ”€β”€ firebase-config.js  # Firebase project configuration
β”‚   β”œβ”€β”€ firebaseauth.js     # Login, signup, password reset logic
β”‚   β”œβ”€β”€ script.js           # Landing page interactions
β”‚   β”œβ”€β”€ dashboard.js        # Dashboard data, members, staff, tasks
β”‚   β”œβ”€β”€ addmember.js        # Member form validation & submission
β”‚   β”œβ”€β”€ addstaff.js         # Staff form validation & submission
β”‚   └── profile.js          # Member profile data loading
β”œβ”€β”€ images.png              # Gym logo
β”œβ”€β”€ .gitignore
β”œβ”€β”€ LICENSE
└── README.md

Firebase Setup

To run this project with your own Firebase backend:

  1. Create a Firebase project at console.firebase.google.com

  2. Enable services:

    • Authentication β†’ Email/Password provider
    • Firestore Database β†’ Start in test mode
  3. Get your config: Project Settings β†’ General β†’ Your apps β†’ Web app β†’ Copy config object

  4. Update js/firebase-config.js:

    const firebaseConfig = {
      apiKey: "YOUR_API_KEY",
      authDomain: "YOUR_PROJECT.firebaseapp.com",
      projectId: "YOUR_PROJECT_ID",
      storageBucket: "YOUR_PROJECT.appspot.com",
      messagingSenderId: "YOUR_SENDER_ID",
      appId: "YOUR_APP_ID"
    };
  5. Set Firestore rules (for production):

    rules_version = '2';
    service cloud.firestore {
      match /databases/{database}/documents {
        match /{document=**} {
          allow read, write: if request.auth != null;
        }
      }
    }
    

Usage Guide

First Time Setup

  1. Open the app β†’ Click Sign Up
  2. Enter your name, email, and password
  3. You'll be redirected to the Dashboard

Managing Members

  1. Dashboard β†’ Members section β†’ Click Add Member
  2. Fill in name, membership type, dates β†’ Submit
  3. A unique 6-digit ID is auto-generated
  4. View, search, or delete members from the Members table

Managing Staff

  1. Dashboard β†’ Staff section β†’ Click Add Staff
  2. Fill in name, role, status β†’ Submit
  3. Staff appear in the Staff directory

Switching Themes

  1. Dashboard β†’ Settings (sidebar)
  2. Toggle Dark Mode / Light Mode
  3. Preference is saved automatically

Contributing

Contributions are welcome! To contribute:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/your-feature)
  3. Commit your changes (git commit -m 'feat: add your feature')
  4. Push to the branch (git push origin feature/your-feature)
  5. Open a Pull Request

Ideas for Contribution

  • πŸ“ˆ Implement Chart.js analytics on the dashboard
  • πŸ’³ Add payment tracking and billing history
  • πŸ“§ Email notifications for membership expiry
  • πŸ‹οΈ Workout tracking and scheduling
  • πŸ“± Progressive Web App (PWA) support

License

This project is licensed under the MIT License β€” see the LICENSE file for details.


Author

Dayle Angelo PeΓ±a

  • πŸ“§ daylepena@gmail.com
  • πŸŽ“ B.S. Computer Science β€” Notre Dame of Dadiangas University
  • πŸ“ General Santos City, Philippines

About

Web-based gym membership management system with Firebase authentication, real-time Firestore database, and responsive dark/light mode UI

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages