A professional, full-featured gym membership management system with automated email notifications.
🔗 https://gym-membership-project-lhfv.onrender.com
⚠️ Note: The site is hosted on Render's free tier. First load may take ~1 minute to wake up the server.
- 📊 Dashboard with key statistics
- 👥 Member management (add, edit, delete)
- 💳 Membership plans (Monthly, Quarterly, Half-Yearly, Yearly)
- 📧 Automatic email notifications for expiring memberships
- 🔔 Notification history
- 🔐 Secure login/registration
- ⏱️ Live countdown timer for membership expiry
- 🔔 In-app notifications
- 👤 Profile management
- 🔑 Password reset with OTP
- ✉️ Email reminders sent automatically:
- 5 days before expiry
- 2 days before expiry
- On expiry
- 📧 Both member AND admin receive notifications
Go to render.com and create a free account.
- Push this project to your GitHub
- In Render, click New → Web Service
- Connect your GitHub and select the repository
| Setting | Value |
|---|---|
| Name | your-gym-name |
| Root Directory | backend |
| Runtime | Node |
| Build Command | npm install |
| Start Command | npm start |
| Plan | Free |
Add these in the Environment section:
| Variable | Value |
|---|---|
EMAIL_USER |
Your Gmail address |
EMAIL_PASS |
Gmail App Password (see below) |
EMAIL_FROM |
YourGymName <your-email@gmail.com> |
- Go to Google Account Security
- Enable 2-Step Verification
- Go to App Passwords
- Create new app password for "Mail"
- Use the 16-character password in
EMAIL_PASS
Click Deploy Web Service and wait 2-3 minutes.
- Email:
admin@gympro.com - Password:
admin123
⚠️ Important: Change admin password after first login!
├── backend/
│ ├── server.js # Main server file
│ ├── database/db.js # Database setup
│ ├── routes/
│ │ ├── auth.js # Authentication
│ │ ├── admin.js # Admin API
│ │ └── user.js # User API
│ ├── services/
│ │ ├── emailService.js # Email templates
│ │ └── notificationService.js # Auto notifications
│ └── .env.example # Environment template
│
└── frontend/
├── index.html # Landing page
├── admin/ # Admin portal
└── user/ # Member portal
cd backend
npm install
cp .env.example .env
# Edit .env with your email credentials
npm start| Plan | Duration | Default Price |
|---|---|---|
| Monthly | 30 days | ₹1,500 |
| Quarterly | 90 days | ₹4,000 |
| Half-Yearly | 180 days | ₹7,000 |
| Yearly | 365 days | ₹12,000 |
Prices can be customized when creating memberships.
Edit backend/database/db.js line 73-82
Edit frontend/index.html and other HTML files
Edit backend/services/emailService.js
For technical support, contact the developer.
Built with ❤️ for Fitness