{"id":28297458,"url":"https://github.com/tanzeebul-tamim/mtb-coaching-client","last_synced_at":"2026-04-12T00:02:11.990Z","repository":{"id":177198906,"uuid":"656710011","full_name":"Tanzeebul-Tamim/MTB-Coaching-Client","owner":"Tanzeebul-Tamim","description":"This repository houses the client-side codebase for the \"Professional Mountain Biking Coaching Network\" website. As the front-end component of the project, it contains all the necessary files responsible for delivering an engaging user experience.","archived":false,"fork":false,"pushed_at":"2025-11-30T09:31:26.000Z","size":269576,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-02T11:24:45.121Z","etag":null,"topics":["animation","firebase-authentication","javascript","mern-stack","mongodb","react-awesome-reveal","react-awesome-slider","react-credit-cards","react-leaflet","react-router-dom","reactjs","responsive-design","stripe-payments","tailwindcss","vite","web-development"],"latest_commit_sha":null,"homepage":"https://mtbcoachingnetwork.vercel.app","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Tanzeebul-Tamim.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-06-21T13:30:10.000Z","updated_at":"2025-11-30T09:31:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"ebf85896-3796-4fa1-9500-fbd220f2dce2","html_url":"https://github.com/Tanzeebul-Tamim/MTB-Coaching-Client","commit_stats":null,"previous_names":["tanzeebul-tamim/pmbia-client-assignment-12","tanzeebul-tamim/pmbia-client","tanzeebul-tamim/mtb-coaching-client"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Tanzeebul-Tamim/MTB-Coaching-Client","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tanzeebul-Tamim%2FMTB-Coaching-Client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tanzeebul-Tamim%2FMTB-Coaching-Client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tanzeebul-Tamim%2FMTB-Coaching-Client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tanzeebul-Tamim%2FMTB-Coaching-Client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Tanzeebul-Tamim","download_url":"https://codeload.github.com/Tanzeebul-Tamim/MTB-Coaching-Client/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tanzeebul-Tamim%2FMTB-Coaching-Client/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31568577,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["animation","firebase-authentication","javascript","mern-stack","mongodb","react-awesome-reveal","react-awesome-slider","react-credit-cards","react-leaflet","react-router-dom","reactjs","responsive-design","stripe-payments","tailwindcss","vite","web-development"],"created_at":"2025-05-23T02:15:01.508Z","updated_at":"2026-04-08T18:31:15.431Z","avatar_url":"https://github.com/Tanzeebul-Tamim.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 style=\"display: flex; align-items: center;\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/Tanzeebul-Tamim/MTB-Coaching-Client/refs/heads/assets/doc/logo.png\" alt=\"Logo\" width=\"100\"/\u003e\n    \u003cspan\u003eMTB-Coaching - Client End\u003c/span\u003e\n\u003c/h1\u003e\n\nWelcome to the client-side repository of the **_Professional Mountain Biking Coaching Network_** website. This platform is dedicated to connecting aspiring mountain bikers with professional instructors, offering a comprehensive range of courses and resources to enhance their skills.\n\n\u003cbr\u003e\n\n\u003cp align=\"center\"\u003e\n   \u003cimg src=\"https://raw.githubusercontent.com/Tanzeebul-Tamim/MTB-Coaching-Client/refs/heads/assets/doc/main-banner.png\" alt=\"Banner\" /\u003e\n\u003c/p\u003e\n\n\u003cbr\u003e\n\n## 📚 Table of Contents\n\n-   [🧰 Packages \u0026 Technologies Used](#-packages--technologies-used)\n-   [📁 Project Structure](#-project-structure)\n-   [🚀 Website Features](#-website-features)\n-   [✅ Prerequisites](#-prerequisites)\n-   [🔧 Installation, Configuration \u0026 Running Locally](#-installation-configuration--running-locally)\n-   [🔑 Demo Access \u0026 Credentials](#-demo-access--credentials)\n-   [💳 Test Payment Info (Stripe)](#-test-payment-info-stripe)\n-   [💻 Checkout the Server End](#-checkout-the-server-end)\n-   [🌐 Live Deployment](#-live-deployment)\n-   [🤝 Contributing](#-contributing)\n-   [📄 License](#-license)\n\n\u003cbr\u003e\n\n## 🧰 Packages \u0026 Technologies Used\n\n\u003cdiv style=\"display: flex; gap: 10px; flex-wrap: wrap;\"\u003e  \n   \u003ca href=\"https://reactjs.org/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n      \u003cimg src=\"https://img.shields.io/badge/React-20232A?style=for-the-badge\u0026logo=react\u0026logoColor=61DAFB\" alt=\"React\" /\u003e\n   \u003c/a\u003e\n\n   \u003ca href=\"https://reactrouter.com/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/React_Router-CA4245?style=for-the-badge\u0026logo=react-router\u0026logoColor=white\" alt=\"React Router\" /\u003e\n  \u003c/a\u003e\n\n   \u003ca href=\"https://react-leaflet.js.org/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n   \u003cimg src=\"https://img.shields.io/badge/React_Leaflet-44A4AE?style=for-the-badge\u0026logo=leaflet\u0026logoColor=white\" alt=\"React Leaflet\" /\u003e\n   \u003c/a\u003e\n\n   \u003ca href=\"https://github.com/timarney/react-youtube\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n   \u003cimg src=\"https://img.shields.io/badge/React_Youtube-FF0000?style=for-the-badge\u0026logo=youtube\u0026logoColor=white\" alt=\"React YouTube\" /\u003e\n   \u003c/a\u003e\n\n   \u003ca href=\"https://developers.google.com/youtube/v3\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/YouTube_API-FF0000?style=for-the-badge\u0026logo=youtube\u0026logoColor=white\" alt=\"YouTube API\" /\u003e\n  \u003c/a\u003e\n\n   \u003ca href=\"https://vitejs.dev/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n   \u003cimg src=\"https://img.shields.io/badge/Vite-646CFF?style=for-the-badge\u0026logo=vite\u0026logoColor=white\" alt=\"Vite\" /\u003e\n   \u003c/a\u003e\n\n   \u003ca href=\"https://firebase.google.com/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Firebase-FFCA28?style=for-the-badge\u0026logo=firebase\u0026logoColor=black\" alt=\"Firebase\" /\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://stripe.com/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Stripe-635BFF?style=for-the-badge\u0026logo=stripe\u0026logoColor=white\" alt=\"Stripe\" /\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://vercel.com/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Vercel-000000?style=for-the-badge\u0026logo=vercel\u0026logoColor=white\" alt=\"Vercel\" /\u003e\n  \u003c/a\u003e\n\n   \u003ca href=\"https://tailwindcss.com/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Tailwind_CSS-06B6D4?style=for-the-badge\u0026logo=tailwind-css\u0026logoColor=white\" alt=\"Tailwind CSS\" /\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://daisyui.com/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/DaisyUI-5C6BC0?style=for-the-badge\u0026logo=tailwind-css\u0026logoColor=white\" alt=\"DaisyUI\" /\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://react-pdf.org/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n   \u003cimg src=\"https://img.shields.io/badge/React--PDF-FF5252?style=for-the-badge\u0026logo=adobeacrobatreader\u0026logoColor=white\" alt=\"React PDF\" /\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://www.framer.com/motion/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Framer--Motion-0055FF?style=for-the-badge\u0026logo=framer\u0026logoColor=white\" alt=\"Framer Motion\" /\u003e\n\u003c/a\u003e\n\n\u003c/div\u003e\n\n\u003cbr\u003e\n\n\u003cdetails\u003e\n   \u003csummary\u003e\n      \u003cstrong\u003e\n         Full list of \u003ci\u003ePackages \u0026 Technologies Used\u003c/i\u003e (Click to expand)\n      \u003c/strong\u003e\n   \u003c/summary\u003e\n\n#### **UI \u0026 Styling**\n\n-   **React.js**: Core library for building user interfaces\n-   **Tailwind CSS**: Utility-first CSS framework\n-   **DaisyUI**: Tailwind component library\n-   **React Icons**: Icon collection\n-   **React Credit Cards**: Interactive credit card UI\n-   **React Spinners**: Loading indicators\n\n#### **Animations**\n\n-   **Framer Motion**: Modern animation library for React\n-   **React Awesome Slider** \u0026 **Swiper**: Image and content sliders\n-   **React Simple Typewriter**: Typewriter animation\n-   **React Awesome Reveal**: Scroll and reveal animations\n\n#### **Routing \u0026 Navigation**\n\n-   **React Router**: Routing system\n-   **React Router HashLink**: Smooth scroll to page sections\n\n#### **State, Data \u0026 Utilities**\n\n-   **LocalForage**: Local storage wrapper with async support\n-   **Moment.js**: Date formatting and manipulation\n-   **match-sorter**: Fuzzy search and sorting\n-   **sort-by**: Sorting utility\n-   **libphonenumber-js**: Phone number formatting\n-   **i18n-iso-countries**: Country code utilities\n-   **html-react-parser**: Safely render HTML inside React\n\n#### **Authentication \u0026 Security**\n\n-   **Firebase**: Authentication and backend services\n\n#### **Payments**\n\n-   **Stripe (react-stripe-js \u0026 stripe-js)**: Payment integration\n\n#### **Notifications \u0026 Alerts**\n\n-   **SweetAlert2** \u0026 **Theme Dark**: Stylish modals\n-   **React Toastify**: Toast notifications\n-   **use-sound**: Play sounds via hooks\n\n#### **PDF, Media \u0026 Embeds**\n\n-   **@react-pdf/renderer**: Generate PDFs from React components\n-   **React YouTube**: Embed and control YouTube players\n\n#### **Maps**\n\n-   **React Leaflet**: Interactive mapping\n\n#### **PWA, Build \u0026 Deployment**\n\n-   **vite-plugin-pwa**: Progressive Web App functionality\n-   **Vite**: Lightning-fast build tool\n-   **Vercel**: Deployment platform\n\n#### **Development Tools**\n\n-   **ESLint \u0026 React Hooks Plugin**: Linting and code checks\n-   **PostCSS \u0026 Autoprefixer**: Styles processing\n-   **Globals**: Shared global env vars for ESLint\n-   **@vitejs/plugin-react**: React fast-refresh \u0026 transformations\n-   **TypeScript type definitions**: React \u0026 ReactDOM types (even if you're writing JS)\n\n\u003c/details\u003e\n\n\u003cbr\u003e\n\n## 📁 Project Structure\n\n#### Short Overview\n\n```\nMTB-Coaching-Client/\n├── public/           # Static assets (images, cursors, favicon, etc.)\n├── src/\n│   ├── api/          # API layer\n│   ├── components/   # Reusable UI \u0026 layout components\n│   ├── firebase/     # Firebase config\n│   ├── hooks/        # Custom React hooks\n│   ├── layout/       # Main \u0026 Dashboard layout definitions\n│   ├── pages/        # Page-level views\n│   ├── providers/    # Context providers\n│   ├── routes/       # Route configs \u0026 guards\n│   └── styles/       # CSS \u0026 styling resources\n└── root configs      # ESLint, Tailwind, Vite, PostCSS, Vercel, etc.\n```\n\n\u003cbr\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003e\u003cstrong\u003eDetailed \u003ci\u003eProject Structure\u003c/i\u003e (Click to expand)\u003c/strong\u003e\u003c/summary\u003e\n\u003cbr\u003e\n\n```\nMTB-Coaching-Client/\n├── public/\n│   ├── assets/                       # Static assets used in the app\n│   ├── cursors/                      # Custom mouse cursor icons used in the app\n│   ├── favicon.png                   # Favicon for the website\n│   └── manifest.json                 # PWA manifest file defining app metadata (name, icons, theme color, etc.)\n│\n├── src/\n│   ├── api/                          # API utility functions (authentication, bookings, messages, and general API calls)\n│   ├── components/                   # Organized UI components (layout, pages, skeletons, and reusable UI widgets)\n│   │   ├── layout/                   # Main UI Components (Navbar, Footer, SideNav, and Leaflet map integrations)\n│   │   ├── pages/                    # Splash Screen, Error page \u0026 No Internet warning page\n│   │   ├── skeletons/                # Skeleton loaders for all UI components\n│   │   └── ui/                       # Reusable UI components (theme togglers, pagination, banners, etc.)\n│   │\n│   ├── firebase/                     # Firebase configuration for auth and services\n│   ├── hooks/                        # Custom React hooks (auth, theme, screen size, etc.)\n│   ├── layout/                       # Layout components for route structure (Main \u0026 Dashboard)\n│   ├── pages/                        # All route-level views, grouped by feature/domain\n│   │   ├── AboutUs/                  # Static About page content\n│   │   ├── AddClass/                 # Instructor class creation form\n│   │   ├── Authentication/           # Login, Register, Instructor Register + shared logic\n│   │   ├── Classes/                  # Class listings, cards, and filter logic\n│   │   ├── EnrolledClass/            # Student's enrolled class dashboard\n│   │   ├── Faq/                      # Static FAQ \u0026 Support section\n│   │   ├── Home/                     # Main homepage – banner, testimonials, popular sections\n│   │   ├── Instructors/              # Public instructor directory view\n│   │   ├── Legal/                    # Privacy policy, terms \u0026 conditions\n│   │   ├── Messages/                 # User's submitted ticket dashboard\n│   │   ├── MyCourses/                # Instructor's own published classes\n│   │   │   └── ...                   # Other files and folders\n│   │   │       └── MyStudents/       # Instructor's course specific enrolled students\n│   │   │\n│   │   ├── MyProfile/                # Profile page with update/edit capability\n│   │   ├── PaymentHistory/           # Record of past transactions for users\n│   │   ├── SelectedClasses/          # Student's Cart-like system before course enrollment\n│   │   │   ├── ...                   # Other files and folders\n│   │   │   └── PaymentConfirmation/  # Checkout page + Stripe form, success/fail feedback\n│   │   │\n│   │   └── SingleInstructorsClasses/ # Detail page showing all classes information of a specific instructor\n│   │\n│   ├── providers/                    # React context providers (auth, screen size, network status, etc.)\n│   ├── routes/\n│   │   ├── config/                   # Route definitions for main and dashboard views (mainRoutes, dashboardRoutes \u0026 router)\n│   │   ├── guard/                    # Route-level protection for components (private route \u0026 role based route protection)\n│   │   └── utils/                    # Route-related utilities (scroll behavior and route tracking)\n│   │\n│   ├── styles/                       # Centralized theme colors for Tailwind and component styling\n│   └── App.jsx                       # Root application component\n│\n├── .env.example                      # Sample environment variable file for local development\n├── .eslintrc.cjs                     # ESLint configuration\n├── .gitignore                        # Git ignored files and folders\n├── FEATURES.md                       # Documentation of implemented features\n├── index.html                        # Main HTML file served by Vite\n├── LICENSE                           # MIT license for open source distribution\n├── package.json                      # Project metadata and dependencies\n├── package-lock.json                 # Auto-generated lockfile for npm dependencies\n├── postcss.config.js                 # PostCSS setup for Tailwind and plugin usage\n├── README.md                         # Project documentation (this file)\n├── tailwind.config.js                # Tailwind CSS custom configuration\n├── vercel.json                       # Vercel rewrites and deployment rules (SPA routing)\n└── vite.config.js                    # Vite build and plugin configuration\n```\n\n\u003c/details\u003e\n\n\u003cbr\u003e\n\n## 🚀 Website Features\n\n-   Dynamic and animated home page featuring embedded _YouTube videos_\n-   Role-based dashboards tailored for students and instructors\n-   Secure authentication with email verification and social login options\n-   Smooth and secure payment processing via _Stripe_\n-   Real-time image uploads powered by _imgbb_ integration\n-   Complete course lifecycle management for instructors and students\n-   Dedicated informative pages for _Legal_, _FAQ_, _About Us_, _No Internet_, and custom _404 errors_\n-   Fully responsive design optimized for all devices\n\n##### See full breakdown with screenshots ➡️ [FEATURES.md](./FEATURES.md)\n\n\u003cbr\u003e\n\n## ✅ Prerequisites\n\n-   [**_Node.js_**](https://nodejs.org/) (v18 or higher recommended)\n-   [**_npm_**](https://www.npmjs.com/) (comes with Node.js) (running locally or accessible remotely)\n-   A [**_`.env`_**](./.env.example) file with required environment variables  \n    _(See the detailed guide in the [**Installation, Configuration \u0026 Running Locally**](#-installation-configuration--running-locally) section below)_\n\n\u003cbr\u003e\n\n## 🔧 Installation, Configuration \u0026 Running Locally\n\n1.  **_Clone the repository:_**\n\n    ```sh\n    git clone https://github.com/Tanzeebul-Tamim/MTB-Coaching-Client\n    cd MTB-Coaching-Client\n    ```\n\n2.  **_Install dependencies:_**\n\n    ```sh\n    npm install\n    ```\n\n3.  **_Set up Environment Variables:_**\n\n    -   **Rename the `.env.example` file in the project root to `.env`:**\n\n        All the following values can be found in the [`.env.example`](./.env.example) file:\n\n        ```env\n        VITE_APIKEY=firebase_api_key\n        VITE_AUTHDOMAIN=firebase_auth_domain\n        VITE_PROJECTID=firebase_project_id\n        VITE_STORAGEBUCKET=firebase_storage_bucket\n        VITE_MESSAGINGSENDERID=firebase_messaging_sender_id\n        VITE_APPID=firebase_app_id\n        VITE_API_URL=backend_api_url\n        VITE_IMGBB_API_URL=imgbb_api_url\n        VITE_IMGBB_KEY=imgbb_api_key\n        VITE_PAYMENT_GATEWAY_PK=stripe_public_key\n        VITE_YOUTUBE_API_KEY=your_youtube_api_key_here\n        ```\n\n    -   \u003cdetails\u003e\n         \u003csummary\u003e\u003cstrong\u003eConfiguration Details (Click to expand)\u003c/strong\u003e\u003c/summary\u003e\n\n        -   **Firebase Configuration:**\n\n            -   **`VITE_APIKEY`**: Firebase project's API key\n            -   **`VITE_AUTHDOMAIN`**: Firebase project's authentication domain\n            -   **`VITE_PROJECTID`**: Firebase project ID\n            -   **`VITE_STORAGEBUCKET`**: Firebase project's storage bucket\n            -   **`VITE_MESSAGINGSENDERID`**: Firebase messaging sender ID\n            -   **`VITE_APPID`**: Firebase app ID\n                \u003cbr\u003e\n\n        -   **imgbb Configuration:**\n\n            -   **`VITE_IMGBB_API_URL`**: The base URL for [**_imgbb_**](https://imgbb.com/) API for image uploads.\n            -   **`VITE_IMGBB_KEY`**: [**_imgbb_**](https://imgbb.com/) API key for image uploads.\n                \u003cbr\u003e\n\n        -   **Backend API URL:**\n            **`VITE_API_URL`**: The base URL for backend API (hosted server for this website).\n            For more details about the server, see the [**server GitHub repository**](https://github.com/Tanzeebul-Tamim/MTB-Coaching-Server).\n            \u003cbr\u003e\n\n        -   **STRIPE PUBLIC KEY:**  \n             **`VITE_PAYMENT_GATEWAY_PK`**: [**_Stripe_**](https://stripe.com/) public key for payment processing.\n            \u003cbr\u003e\n\n        -   **VITE_YOUTUBE_API_KEY**:\n        **`VITE_YOUTUBE_API_KEY`**: Your Google Cloud YouTube Data API v3 key used to fetch video data dynamically.\n        \u003c/details\u003e\n\n      \u003cbr\u003e\n\n    \u003e ⚠️ **Important Notes:** \u003cbr\u003e\n    \u003e\n    \u003e -   Public keys (_Firebase_, _Stripe_, _imgbb_, etc.) are safe to expose. They’re required for client-side setup and do not pose security risks.\n    \u003e -   Unlike some public keys, the YouTube API key should be kept **private and not exposed publicly** in your repository or documentation. \u003cbr\u003e\n    \u003e -   Make sure to restrict the key in Google Cloud Console to only be used by your app's domain and for the YouTube Data API v3. \u003cbr\u003e\n    \u003e -   Never commit your actual `.env` file. This file may contain sensitive info and should always be listed in `.gitignore`.\n\n4.  **_Running the Project_**\n\n    ```sh\n       npm run dev\n    ```\n\n\u003cbr\u003e\n\n## 🔑 Demo Access \u0026 Credentials\n\nTry out the app with the following demo credentials:\n\n-   **Student Account**\n\n    -   **Email:** `demo.student@example.com`\n    -   **Password:** `Demo12345$`\n\n\u003cbr\u003e\n\n-   **Instructor Account**\n\n    -   **Email:** `demo.instructor@example.com`\n    -   **Password:** `Demo12345$`\n\n\u003cbr\u003e\n\n### 💳 Test Payment Info (Stripe)\n\nUse the following **Visa** test card during checkout:\n\n-   **Card Number**: `4242 4242 4242 4242` (Visa)\n-   **Expiry:** `1234`\n-   **CVC:** `123`\n-   **ZIP/Postal:** `12345` or any 5-digit number\n\n\u003cbr\u003e\n\n\u003e [!IMPORTANT]\n\u003e **Please avoid submitting any sensitive personal information or inappropriate content (e.g., images, names, course titles).**\n\n\u003cbr\u003e\n\n\u003e **Note:** \u003cbr\u003e\n\u003e\n\u003e -   This is a demo project. You can explore the app fully using the provided student or instructor credentials.\n\u003e -   All users and data are dummy/test entries.\n\u003e -   No real transactions occur. Payments are simulated and no real charges are made.\n\u003e -   The system is open for demo purposes only.\n\n\u003cbr\u003e\n\n## 💻 Checkout the Server End\n\nVisit the [**_server-end repository_**](https://github.com/Tanzeebul-Tamim/MTB-Coaching-Server) of the website.\n\n\u003cbr\u003e\n\n## 🌐 Live Deployment\n\nThe site is deployed on [**_Vercel_**](https://vercel.com/) and is live at [**this following URL**](https://mtbcoachingnetwork.vercel.app/).\n\n\u003cbr\u003e\n\n## 🤝 Contributing\n\nHave ideas to improve this platform? Found a bug?\nLet’s make it better together! [Open an issue](https://github.com/Tanzeebul-Tamim/MTB-Coaching-Client/issues) or submit a pull request.\n\n\u003cbr\u003e\n\n## 📄 License\n\nThis project is licensed under the **_MIT License_** - see the [**LICENSE**](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftanzeebul-tamim%2Fmtb-coaching-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftanzeebul-tamim%2Fmtb-coaching-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftanzeebul-tamim%2Fmtb-coaching-client/lists"}