{"id":25727174,"url":"https://github.com/chowdhuryjoy108/fitforge","last_synced_at":"2026-04-06T21:32:41.467Z","repository":{"id":278238014,"uuid":"927540416","full_name":"ChowdhuryJoy108/FitForge","owner":"ChowdhuryJoy108","description":"This project is a full-stack fitness website developed using the MERN (MongoDB, Express.js, React.js, Node.js) stack. The website provides a seamless user experience for fitness enthusiasts to browse and book trainers, participate in classes, and engage with the community.","archived":false,"fork":false,"pushed_at":"2025-02-19T13:06:55.000Z","size":9640,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-20T00:51:30.366Z","etag":null,"topics":["express","firebase-auth","jwt","material-tailwind","mongodb","nodejs","react","reactrouter6","stripe"],"latest_commit_sha":null,"homepage":"https://fit-forge-ac99e.web.app/","language":"JavaScript","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/ChowdhuryJoy108.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,"zenodo":null}},"created_at":"2025-02-05T05:57:43.000Z","updated_at":"2025-04-04T05:42:56.000Z","dependencies_parsed_at":"2025-02-25T23:28:36.204Z","dependency_job_id":null,"html_url":"https://github.com/ChowdhuryJoy108/FitForge","commit_stats":null,"previous_names":["chowdhuryjoy108/fitforge"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ChowdhuryJoy108/FitForge","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChowdhuryJoy108%2FFitForge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChowdhuryJoy108%2FFitForge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChowdhuryJoy108%2FFitForge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChowdhuryJoy108%2FFitForge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ChowdhuryJoy108","download_url":"https://codeload.github.com/ChowdhuryJoy108/FitForge/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChowdhuryJoy108%2FFitForge/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31491097,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-06T17:22:55.647Z","status":"ssl_error","status_checked_at":"2026-04-06T17:22:54.741Z","response_time":112,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["express","firebase-auth","jwt","material-tailwind","mongodb","nodejs","react","reactrouter6","stripe"],"created_at":"2025-02-25T23:28:32.442Z","updated_at":"2026-04-06T21:32:41.445Z","avatar_url":"https://github.com/ChowdhuryJoy108.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FitForge [assignment12_category_010]\n\n\n## Overview\nThis project is a full-stack fitness website developed using the MERN (MongoDB, Express.js, React.js, Node.js) stack. The website provides a seamless user experience for fitness enthusiasts to browse and book trainers, participate in classes, and engage with the community.\n\n---\n\n## Features\n\n### General\n- **Visually Appealing Design:** A well-structured layout with pleasing color contrast, proper alignment, and customized components.\n- **Responsive Design:** Ensures compatibility across different devices.\n- **Persistent Navbar and Footer:** Present on all pages except the 404 page, providing navigation and contact information.\n\n### Navbar\n- **Conditional Rendering:** \n  - If logged in, displays profile picture, dashboard, and logout button.\n  - If not logged in, displays login and register options.\n- Includes links to:\n  - Home Page\n  - All Trainers Page\n  - All Classes Page\n  - Conditional Dashboard\n  - Community/Forums Page\n  - Conditional User Profile\n\n### Authentication\n- **Registration Page:**\n  - Fields: Name, Email, Photo URL, Password.\n  - Stores user information in MongoDB with default role as `member`.\n- **Login Page:**\n  - Fields: Email, Password.\n  - Social login system.\n  - Error messages for invalid credentials.\n  - Toggle between login and registration pages.\n\n### Homepage Implementation\n- **Banner Section:** Displayed a heading, short description, and a button redirecting to the Classes page.\n- **Featured Section:** Highlighted website features through cards with titles, descriptions, and icons/images.\n- **About Section:** Provided organizational information in a visually appealing layout.\n- **Featured Classes:** Displayed top six most booked classes using MongoDB's `$sort` method.\n- **Testimonials/Reviews:** Carousel slider for user-submitted reviews.\n- **Latest Community Posts:** Displayed six recent forum posts with links for further reading.\n- **Newsletter Section:** Allows users to subscribe without logging in. Data saved to MongoDB.\n- **Team Section:** Displayed trainer profiles with name, biography, expertise, and photo.\n\n### All Trainers Page\n- Displayed all trainer profiles with:\n  - Trainer name\n  - Profile image\n  - Years of experience\n  - Social icons\n  - Available slots\n  - \"Know More\" button to redirect to Trainer Details page.\n\n### Trainer Details Page\n- **Trainer Information Section:** Provides comprehensive details about the trainer.\n- **Available Slots Section:** Displays trainer's schedule for booking.\n- **Be a Trainer Section:** Includes a CTA button redirecting to the \"Become a Trainer\" page.\n\n### Trainer Booking Page\n- Displayed:\n  - Trainer name\n  - Selected slot\n  - Classes\n  - Membership packages (Basic, Standard, Premium).\n- Stripe-based payment system.\n\n### Payment Page\n- Displays:\n  - Trainer name\n  - Slot name\n  - Package name\n  - Price\n  - User info.\n- Saves payment information in MongoDB and updates class booking count.\n\n### \"Become a Trainer\" Page\n- Form fields:\n  - Full Name\n  - Email (read-only)\n  - Age\n  - Profile Image\n  - Skills (checkbox).\n  - Available days (React Select).\n  - Available time.\n  - Status (default: pending).\n- Saves data to MongoDB.\n\n### Classes Page\n- Displayed all classes with:\n  - Class name\n  - Description\n  - Trainers specializing in the class.\n- Pagination (6 classes per page).\n\n### Forum Page\n- Displayed six posts per page with pagination.\n- Voting system for logged-in users.\n\n### Dashboard\n- Conditional pages based on user roles (Admin, Trainer, Member).\n\n#### Admin Can \n- **All Newsletter Subscribers:** Displayed subscribers in a table.\n- **All Trainers:**\n  - View and delete trainers.\n  - Change trainer role back to Member.\n- **Applied Trainer:**\n  - View applications.\n  - Accept or reject applications.\n- **Balance Overview:**\n  - Displayed total balance and last six transactions.\n  - Chart: Total newsletter subscribers vs. paid members.\n- **Add New Class:** Form to add a new class.\n\n#### Trainer\n- **Manage Slots:**\n  - View and delete slots.\n  - Add new slots.\n- **Add New Forum:** Post forums.\n\n#### Member\n- **Activity Log Page:**\n  - Displays status of trainer applications.\n  - Modal for rejection feedback.\n- **Profile Page:** Manage account details.\n- **Booked Trainer Page:**\n  - Displays trainer and class details.\n  - Review button to submit feedback.\n\n---\n\n## Technologies Used\n- **Frontend:** React.js, Tailwind CSS, axios, tenstackQuery\n- **Backend:** Node.js, Express.js\n- **Database:** MongoDB\n- **Authentication:** Firebase\n- **Payment:** Stripe\n- **Other Libraries:** React Select, Metarial Tailwind, swiper, helmet, React rating, sweetalert2 [for alerts generation], Lottie-React [for generating animations], react recharts [for shape chart in admin dashboard]\n\n\n\n## Deployment\n\n1. Deployed the frontend to a hosting service Firebasse \n\n\n## Github Repository and Live Link \n\n## Live Link - https://fit-forge-ac99e.web.app/\n\n## github Repository Link 01 - https://github.com/Programming-Hero-Web-Course4/b10a12-client-side-ChowdhuryJoy108/tree/main\n\n## Github Repository Link 02 - https://github.com/Programming-Hero-Web-Course4/b10a12-client-side-ChowdhuryJoy108\n\n## Documentation Link - https://docs.google.com/document/d/1peLQNTTwy8LqrWH1r6hw7jA5v2cZAbjYTNxDhqQUDoQ/edit?tab=t.0#heading=h.ehi5vvxeu2\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchowdhuryjoy108%2Ffitforge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchowdhuryjoy108%2Ffitforge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchowdhuryjoy108%2Ffitforge/lists"}