A modern web application for managing gym workouts, coaches, and client interactions. Built with React, TypeScript, Material-UI, Node.js, Express, and MongoDB.
-
Seamless Account Management
- Sign up/Login with email
- Customize profile settings
- Select preferred language
-
Effortless Workout Booking
- Explore available workout sessions
- Filter by activity, date, time, and coach
- Book or cancel sessions easily
- View all scheduled workouts
- Provide feedback after sessions
-
Engage with Coaches
- Browse coach profiles & testimonials
- Schedule workouts with preferred coaches
- Rate & review coaching sessions
- Manage Workout Sessions
- View and organize scheduled sessions
- Adjust workout slots & availability
- Track client attendance
- Receive and review client feedback
- User & Coach Management
- Approve, suspend, or delete users and coaches
- Monitor overall system activity
- Manage testimonials and feedback
Ensure you have the following installed:
- Vite (for frontend)
- Node.js (v14 or higher)
- MongoDB
- npm or yarn
- Git
-
Clone the repository:
git clone https://github.com/adityasinghz/gym-management.git cd gym_management
-
Install dependencies for both frontend and backend:
cd gym_management-fe npm install cd ../gym_management-be npm install
-
Create a
.env
file in the backend root directory and add:MONGO_URI=<your_mongodb_connection_string> PRIVATE_KEY=<your_private_key> PUBLIC_KEY=<your_public_key>
-
Start the backend server:
npm start
The API will be running on
http://localhost:5000
. -
Start the frontend:
npm run dev
The application will be running on
http://localhost:5173
.
Technology | Usage |
---|---|
React + TypeScript | Frontend development |
Material-UI (MUI) | UI components & design system |
Redux | State management |
React Hook Form + Zod | Form handling & validation |
React Router v6 | Client-side navigation |
Axios | HTTP client for API requests |
Node.js + Express | Backend server |
MongoDB + Mongoose | Database & ODM |
JWT + bcrypt | Authentication & security |
CORS & dotenv | Environment & security configs |
react-i18next | Language Translation |
- Sign Up & Login: Create an account, log in, and get redirected based on your role.
- Find Workouts: Browse and filter sessions by time, activity, and coach.
- Book a Session: Select a preferred date/time, confirm, and receive a booking confirmation.
- Manage Bookings: View upcoming sessions, cancel if needed, and leave feedback after completion.
- Session Dashboard: Track upcoming workouts and client bookings.
- Availability Management: Adjust time slots and update professional details.
- Client Interaction: Receive ratings, reviews, and feedback from clients.
- User & Coach Management: View, approve, or suspend users and coaches.
- Monitor Activity: Track all bookings, testimonials, and feedback.
- Ensure System Integrity: Remove spam testimonials or flag inappropriate activities.
POST /api/users/register
- Register a new userPOST /api/users/login
- Log in a userGET /api/users/coach
- Get a list of coachesPUT /api/users/update/:userId
- Update user informationPOST /api/users/filter
- Filter coaches based on criteria
POST /api/workouts/book
- Book a workoutGET /api/workouts/:userId/:isCoach
- Get workouts for a user or coachPATCH /api/workouts/:workoutId/status
- Cancel a workout
POST /api/testimonials
- Create a new testimonialGET /api/testimonials/:coachId
- Get testimonials for a specific coach
- JWT-based authentication for secure user sessions
- HTTP-only cookies for better security
- Protected routes to prevent unauthorized access
- Form validation to ensure data integrity
- Secure password handling with encryption
- Responsive Design: Works seamlessly across devices
- Dark/Light Mode: Choose your preferred theme
- Smooth Navigation: Intuitive UI for easy access
- Loading States & Error Handling: Improves app performance
- Toast Notifications: Instant feedback on actions
-
Frontend:
- Vercel (
vercel.json
configured) - Render (
_redirects
file for routing) - Any static hosting service
- Vercel (
-
Backend:
- Deployed on Render or Railway.app
- MongoDB hosted on MongoDB Atlas
- Can be hosted on AWS EC2, Heroku, or DigitalOcean
Want to contribute? Follow these steps:
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to your branch
- Open a Pull Request
This project is licensed under the MIT License. See the LICENSE file for details.
🔗 Happy coding & fitness tracking! 🚀💪