{"id":26776876,"url":"https://github.com/adityasinghz/gym-management","last_synced_at":"2026-04-12T09:07:36.107Z","repository":{"id":265515722,"uuid":"895368330","full_name":"adityasinghz/gym-management","owner":"adityasinghz","description":"This is a fullstack project of Gym Management App","archived":false,"fork":false,"pushed_at":"2025-02-26T07:26:53.000Z","size":53024,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-26T08:28:20.537Z","etag":null,"topics":["material-ui","mongodb","nodejs","postgresql","reactjs","typescript"],"latest_commit_sha":null,"homepage":"https://gym-management-fe.onrender.com/home","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adityasinghz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-28T04:38:03.000Z","updated_at":"2025-02-26T07:26:56.000Z","dependencies_parsed_at":"2025-02-26T08:34:04.247Z","dependency_job_id":null,"html_url":"https://github.com/adityasinghz/gym-management","commit_stats":null,"previous_names":["adityasinghz/gym-management"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adityasinghz%2Fgym-management","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adityasinghz%2Fgym-management/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adityasinghz%2Fgym-management/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adityasinghz%2Fgym-management/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adityasinghz","download_url":"https://codeload.github.com/adityasinghz/gym-management/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246140572,"owners_count":20729797,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["material-ui","mongodb","nodejs","postgresql","reactjs","typescript"],"created_at":"2025-03-29T04:37:01.257Z","updated_at":"2025-10-28T17:10:04.547Z","avatar_url":"https://github.com/adityasinghz.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🏋️ Gym Management System\n\nA modern web application for managing gym workouts, coaches, and client interactions. Built with **React, TypeScript, Material-UI, Node.js, Express, and MongoDB**.\n\n---\n\n## 🌟 Key Features\n\n### 🏃 For Clients\n- **Seamless Account Management**\n  - Sign up/Login with email\n  - Customize profile settings\n  - Select preferred language\n\n- **Effortless Workout Booking**\n  - Explore available workout sessions\n  - Filter by activity, date, time, and coach\n  - Book or cancel sessions easily\n  - View all scheduled workouts\n  - Provide feedback after sessions\n\n- **Engage with Coaches**\n  - Browse coach profiles \u0026 testimonials\n  - Schedule workouts with preferred coaches\n  - Rate \u0026 review coaching sessions\n\n### 🏋️‍♂️ For Coaches\n- **Manage Workout Sessions**\n  - View and organize scheduled sessions\n  - Adjust workout slots \u0026 availability\n  - Track client attendance\n  - Receive and review client feedback\n\n### 🔧 For Admins (upcoming)\n- **User \u0026 Coach Management**\n  - Approve, suspend, or delete users and coaches\n  - Monitor overall system activity\n  - Manage testimonials and feedback\n\n---\n\n## 🚀 Getting Started\n\n### ✅ Prerequisites\nEnsure you have the following installed:\n- **Vite** (for frontend)\n- **Node.js** (v14 or higher)\n- **MongoDB**\n- **npm** or **yarn**\n- **Git**\n\n### 📥 Installation\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/adityasinghz/gym-management.git\n   cd gym_management\n   ```\n\n2. Install dependencies for both frontend and backend:\n   ```bash\n   cd gym_management-fe\n   npm install\n   cd ../gym_management-be\n   npm install\n   ```\n\n3. Create a `.env` file in the backend root directory and add:\n   ```env\n   MONGO_URI=\u003cyour_mongodb_connection_string\u003e\n   PRIVATE_KEY=\u003cyour_private_key\u003e\n   PUBLIC_KEY=\u003cyour_public_key\u003e\n   ```\n\n4. Start the backend server:\n   ```bash\n   npm start\n   ```\n   The API will be running on `http://localhost:5000`.\n\n5. Start the frontend:\n   ```bash\n   npm run dev\n   ```\n   The application will be running on `http://localhost:5173`.\n\n---\n\n## 🛠️ Tech Stack\n\n| **Technology**      | **Usage**                          |\n|--------------------|---------------------------------|\n| React + TypeScript | Frontend development           |\n| Material-UI (MUI)  | UI components \u0026 design system  |\n| Redux             | State management               |\n| React Hook Form + Zod | Form handling \u0026 validation  |\n| React Router v6   | Client-side navigation         |\n| Axios            | HTTP client for API requests   |\n| Node.js + Express | Backend server                 |\n| MongoDB + Mongoose | Database \u0026 ODM               |\n| JWT + bcrypt     | Authentication \u0026 security      |\n| CORS \u0026 dotenv    | Environment \u0026 security configs |\n| react-i18next   | Language Translation |\n---\n\n## 📱 User Journeys\n\n### 🔹 Client Flow\n1. **Sign Up \u0026 Login**: Create an account, log in, and get redirected based on your role.\n2. **Find Workouts**: Browse and filter sessions by time, activity, and coach.\n3. **Book a Session**: Select a preferred date/time, confirm, and receive a booking confirmation.\n4. **Manage Bookings**: View upcoming sessions, cancel if needed, and leave feedback after completion.\n\n### 🔹 Coach Flow\n1. **Session Dashboard**: Track upcoming workouts and client bookings.\n2. **Availability Management**: Adjust time slots and update professional details.\n3. **Client Interaction**: Receive ratings, reviews, and feedback from clients.\n\n### 🔹 Admin Flow (Upcoming)\n1. **User \u0026 Coach Management**: View, approve, or suspend users and coaches.\n2. **Monitor Activity**: Track all bookings, testimonials, and feedback.\n3. **Ensure System Integrity**: Remove spam testimonials or flag inappropriate activities.\n\n---\n\n## 🔗 API Endpoints\n\n### **User Endpoints**\n- `POST /api/users/register` - Register a new user\n- `POST /api/users/login` - Log in a user\n- `GET /api/users/coach` - Get a list of coaches\n- `PUT /api/users/update/:userId` - Update user information\n- `POST /api/users/filter` - Filter coaches based on criteria\n\n### **Workout Endpoints**\n- `POST /api/workouts/book` - Book a workout\n- `GET /api/workouts/:userId/:isCoach` - Get workouts for a user or coach\n- `PATCH /api/workouts/:workoutId/status` - Cancel a workout\n\n### **Testimonial Endpoints**\n- `POST /api/testimonials` - Create a new testimonial\n- `GET /api/testimonials/:coachId` - Get testimonials for a specific coach\n\n---\n\n## 🔒 Security Measures\n\n- **JWT-based authentication** for secure user sessions\n- **HTTP-only cookies** for better security\n- **Protected routes** to prevent unauthorized access\n- **Form validation** to ensure data integrity\n- **Secure password handling** with encryption\n\n---\n\n## 🎨 User Experience Highlights\n\n- **Responsive Design**: Works seamlessly across devices\n- **Dark/Light Mode**: Choose your preferred theme\n- **Smooth Navigation**: Intuitive UI for easy access\n- **Loading States \u0026 Error Handling**: Improves app performance\n- **Toast Notifications**: Instant feedback on actions\n\n---\n\n## 🚀 Deployment Options\n\n- **Frontend**:\n  - Vercel (`vercel.json` configured)\n  - Render (`_redirects` file for routing)\n  - Any static hosting service\n\n- **Backend**:\n  - Deployed on **Render** or **Railway.app**\n  - MongoDB hosted on **MongoDB Atlas**\n  - Can be hosted on **AWS EC2, Heroku, or DigitalOcean**\n\n---\n\n## 🤝 Contributing\n\nWant to contribute? Follow these steps:\n1. **Fork the repository**\n2. **Create a feature branch**\n3. **Commit your changes**\n4. **Push to your branch**\n5. **Open a Pull Request**\n\n---\n\n## 📄 License\n\nThis project is licensed under the **MIT License**. See the LICENSE file for details.\n\n---\n\n🔗 Happy coding \u0026 fitness tracking! 🚀💪\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadityasinghz%2Fgym-management","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadityasinghz%2Fgym-management","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadityasinghz%2Fgym-management/lists"}