Welcome to the Gym Management System Project built using the MERN (MongoDB, Express.js, React, Node.js) Stack. This project provides a robust gym management system for the University Gym with various functionalities to enhance the user experience.
App Demo : We'll soon update the link to see and interact using the live app demo
- Equipment Booking System: Efficient booking system for gym equipment with time slot allocation.
- Leaderboard Integration: Implement leaderboard functionality to track users' gym activity and rank them based on workout duration.
- Equipment Reviews and Ratings: Users can leave reviews and provide ratings for gym equipment.
- Top Equipments Carousel: Display a carousel of top-rated or featured gym equipment.
- Equipment Pagination: Navigate through equipment listings efficiently with pagination.
- Equipment Search Feature: Easily search for gym equipment based on keywords.
- User Profile with Booking History: Users can create profiles and track their booking history.
- Admin Dashboard: Comprehensive dashboard for administrators to manage admins, equipment, users, and bookings.
- Admin Admin Management: Manage admin accounts.
- Admin Equipment Management: Add, edit, and delete gym equipment from the platform.
- Admin User Management: Manage user accounts.
- Admin Booking Details Page: Access detailed information about each booking.
- Mark Bookings as Completed Option: Ability to update booking status to "completed."
- Email Notifications: Send email notifications for booking confirmations and updates.
- Database Seeder: Easily populate the database with sample equipment and users.
- Fork the repository to your GitHub account.
- Clone the forked repository to your local machine
git clone https://github.com/HackerGirl99/gym-management-system.git
cd gym-management-system
-
Create a MongoDB database and obtain your MongoDB URI from MongoDB Atlas.
-
Create a Brevo account and generate a new SMTP Key from Brevo //Not currently functional
- Rename the
.env.example
file to.env
and add the following environment variables:
NODE_ENV=development
PORT=5000
JWT_SECRET=ADD_YOUR_JWT_SECRET_HERE
MONGO_URI=ADD_YOUR_MONGO_URI_HERE //Example: mongodb://127.0.0.1:27017
PAGINATION_MAX_LIMIT=12 # This will show 12 equipments per page; you can change it.
EMAIL_HOST=smtp-relay.brevo.com
EMAIL_PORT=587
EMAIL_USER=ADD_YOUR_BREVO_LOGIN
EMAIL_PASS=ADD_YOUR_BREVO_PASSWORD
EMAIL_FROM=ADD_YOUR_BREVO_LOGIN
Run the following commands to install dependencies for both the frontend and backend:
npm install
cd frontend
npm install
install the following dependencies in the backend:
npm install concurrently
npm install nodemon
To run both the frontend and backend concurrently, use:
npm run dev
To run only the backend:
npm run server
To create a production build for the frontend:
cd frontend
npm run build
Use the following commands to seed the database with sample users and products, or destroy all data:
# Import data
npm run data:import
# Destroy data
npm run data:destroy
-
For Admin Dashboard Login::
- Email: admin@admin.com
- Password: admin123
-
For User Login::
- John Doe
- Email: john@email.com
- Password: john123
- Alice Smith
- Email: alice@email.com
- Password: alice123
- John Doe
We welcome and appreciate contributions from the community to enhance and improve the eCommerce Platform Project. Whether you're a developer, designer, tester, or someone with valuable feedback, your input is valuable. Here's how you can contribute:
-
Fork the repository to your GitHub account.
-
Clone the forked repository to your local machine:
git clone https://github.com/HackerGirl99/gym-management-system.git
-
Navigate to the project directory:
cd gym-management-system
-
Create a new branch for your contributions:
git checkout -b feature/your-feature-name git checkout -b issues/your-issue-name
-
Implement your changes and improvements.
-
Ensure that your changes adhere to the project's coding style and conventions.
-
Test your changes thoroughly to avoid introducing bugs.
-
Update the project documentation if necessary.
-
Commit your changes with a descriptive commit message:
git add . git commit -m "Add your descriptive commit message here"
-
Push your changes to your forked repository:
git push origin feature/your-feature-name git push origin issues/your-issue-name
-
Visit your forked repository on GitHub.
-
Switch to the branch containing your changes.
-
Click on the "New Pull Request" button.
-
Provide a clear title and description for your pull request, explaining the purpose and scope of your changes.
-
Submit the pull request.
Your contribution will be reviewed by the project maintainers. Be prepared to address any feedback or suggestions to ensure the quality and compatibility of your changes.
Thank you for considering contributing to the UOV-GYM Project. Your efforts help make this project better for everyone.