A full-featured web-based gym membership management system with real-time dashboard, member/staff management, Firebase authentication, and responsive dark-mode UI.
- Overview
- Features
- Tech Stack
- Screenshots
- Getting Started
- Project Structure
- Firebase Setup
- Usage Guide
- Contributing
- License
- Author
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.
- 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
- 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
- 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
- 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
- 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
- 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
| 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 coming soon β run the app locally to preview the UI.
- 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
-
Clone the repository
git clone https://github.com/YOUR_USERNAME/DstarsFitnessGym.git cd DstarsFitnessGym -
Configure Firebase (see Firebase Setup below)
-
Launch locally
- Open the project in VS Code
- Right-click
index.htmlβ Open with Live Server - Or simply open
index.htmlin your browser
β οΈ ES Modules require a local server β openingindex.htmldirectly as a file may cause CORS issues. Use Live Server or any HTTP server.
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
To run this project with your own Firebase backend:
-
Create a Firebase project at console.firebase.google.com
-
Enable services:
- Authentication β Email/Password provider
- Firestore Database β Start in test mode
-
Get your config: Project Settings β General β Your apps β Web app β Copy config object
-
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" };
-
Set Firestore rules (for production):
rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if request.auth != null; } } }
- Open the app β Click Sign Up
- Enter your name, email, and password
- You'll be redirected to the Dashboard
- Dashboard β Members section β Click Add Member
- Fill in name, membership type, dates β Submit
- A unique 6-digit ID is auto-generated
- View, search, or delete members from the Members table
- Dashboard β Staff section β Click Add Staff
- Fill in name, role, status β Submit
- Staff appear in the Staff directory
- Dashboard β Settings (sidebar)
- Toggle Dark Mode / Light Mode
- Preference is saved automatically
Contributions are welcome! To contribute:
- Fork the repository
- Create a feature branch (
git checkout -b feature/your-feature) - Commit your changes (
git commit -m 'feat: add your feature') - Push to the branch (
git push origin feature/your-feature) - Open a Pull Request
- π 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
This project is licensed under the MIT License β see the LICENSE file for details.
Dayle Angelo PeΓ±a
- π§ daylepena@gmail.com
- π B.S. Computer Science β Notre Dame of Dadiangas University
- π General Santos City, Philippines