{"id":22447518,"url":"https://github.com/boddepallyvenkatesh06/learnhub-e-learning-platform","last_synced_at":"2025-10-16T05:31:55.949Z","repository":{"id":231899914,"uuid":"782972812","full_name":"BoddepallyVenkatesh06/LearnHub-E-Learning-Platform","owner":"BoddepallyVenkatesh06","description":"LearnHub is a fully functional ed-tech platform that enables users to create, consume, and rate educational content. The platform is built using the MERN stack, which includes ReactJS, NodeJS, MongoDB, and ExpressJS.","archived":false,"fork":false,"pushed_at":"2024-04-22T17:39:25.000Z","size":20983,"stargazers_count":4,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-06T04:17:25.465Z","etag":null,"topics":["edtech","javascript-library","lms","mern-stack-development","netlify-deployment","reactjs","responsive-web-design"],"latest_commit_sha":null,"homepage":"https://learnhub-opju.netlify.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/BoddepallyVenkatesh06.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}},"created_at":"2024-04-06T15:19:44.000Z","updated_at":"2024-11-27T20:37:11.000Z","dependencies_parsed_at":"2024-04-06T17:38:29.809Z","dependency_job_id":null,"html_url":"https://github.com/BoddepallyVenkatesh06/LearnHub-E-Learning-Platform","commit_stats":null,"previous_names":["boddepallyvenkatesh06/learnhub-e-learning-platform"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BoddepallyVenkatesh06%2FLearnHub-E-Learning-Platform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BoddepallyVenkatesh06%2FLearnHub-E-Learning-Platform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BoddepallyVenkatesh06%2FLearnHub-E-Learning-Platform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BoddepallyVenkatesh06%2FLearnHub-E-Learning-Platform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BoddepallyVenkatesh06","download_url":"https://codeload.github.com/BoddepallyVenkatesh06/LearnHub-E-Learning-Platform/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":236684476,"owners_count":19188642,"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":["edtech","javascript-library","lms","mern-stack-development","netlify-deployment","reactjs","responsive-web-design"],"created_at":"2024-12-06T04:17:29.180Z","updated_at":"2025-10-16T05:31:49.593Z","avatar_url":"https://github.com/BoddepallyVenkatesh06.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003cimg  height=\"70\" src='https://learnhub-opju.netlify.app/images/logo2.svg' /\u003e\n\n# Project Description 📝\nLearnHub is a fully functional ed-tech platform that enables users to create, consume, and rate educational content. \u003cbr/\u003e\nThe platform is built using the **MERN stack**, which includes ReactJS, NodeJS, MongoDB, and ExpressJS.\n\n\n\u003ch2\u003eLive link 🌍📡 - [  https://learnhub-opju.vercel.app/  ]\u003c/h2\u003e\n\u003chr/\u003e\n\n\n\u003cimg width='100%' src='https://github.com/BoddepallyVenkatesh06/LearnHub-E-Learning-Platform/blob/main/screenshots/home.png' /\u003e\n\n\n\n## Table of Contents\n\n\n| Section                 | Description                                  |\n|-------------------------|----------------------------------------------|\n| [LearnHub](#LearnHub-aim-)        | 📚 Overview of LearnHub goals            |\n| [Tech Stack](#tech-stack-)             | 💻🔧 Technologies used in the project         |\n| [System Architecture](#system-architecture-)    | 🏰 Overview of the system architecture      |\n| [Architecture Diagram](#architecture-diagram-)   | 🏗️ Diagram illustrating the architecture   |\n| [Schema](#schema-)                  | 🗂 Explanation of data schemas used          |\n| [React Hooks](#react-hooks-)            | 🎣 Overview of React Hooks utilized          |\n| [React Library](#react-library-)         | ⚛️📚 Overview of React Libraries used        |\n| [Screen Preview](#screen-preview-)         | 🖥️ Screen Preview        |\n\n\n\n\n\n\n## LearnHub Aim 📚 \n\u003cbr/\u003e\n1️⃣ A seamless and interactive learning experience for students, making education more accessible and engaging.\u003cbr/\u003e\n2️⃣ A platform for instructors to showcase their expertise and connect with learners across the globe.\u003cbr/\u003e\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\u003cimg width='100%' src='https://github.com/BoddepallyVenkatesh06/LearnHub-E-Learning-Platform/blob/main/screenshots/gif.gif' /\u003e\n\n\n## Tech Stack 💻🔧 \n\n## Frontend 🎨 : \n\u003ccode title=\"React.js\"\u003e\u003cimg height=\"40\" src=\"https://github.com/BoddepallyVenkatesh06/LearnHub-E-Learning-Platform/blob/main/screenshots/React.png\"\u003e\u003c/code\u003e\n\u003ccode title=\"Vite\"\u003e\u003cimg height=\"40\" src=\"https://github.com/BoddepallyVenkatesh06/LearnHub-E-Learning-Platform/blob/main/screenshots/Vitejs-logo.png\"\u003e\u003c/code\u003e\n\u003ccode title=\"Redux.js\"\u003e\u003cimg height=\"35\" src=\"https://github.com/BoddepallyVenkatesh06/LearnHub-E-Learning-Platform/blob/main/screenshots/redux-logo.png\"\u003e\u003c/code\u003e\n\u003ccode title=\"css\"\u003e\u003cimg height=\"40\" src=\"https://github.com/BoddepallyVenkatesh06/LearnHub-E-Learning-Platform/blob/main/screenshots/css%20logo.png\"\u003e\u003c/code\u003e\n\u003ccode title=\"Tailwind css\"\u003e\u003cimg height=\"35\" src=\"https://github.com/BoddepallyVenkatesh06/LearnHub-E-Learning-Platform/blob/main/screenshots/tailwind%20css%20logo.png\"\u003e\u003c/code\u003e\n\n\n## Backend ⚙️ :\n\u003ccode title=\"Nodejs\"\u003e\u003cimg height=\"50\" src=\"https://github.com/BoddepallyVenkatesh06/LearnHub-E-Learning-Platform/blob/main/screenshots/nodejs-logo.png\"\u003e\u003c/code\u003e\n\u003ccode title=\"Express\"\u003e\u003cimg height=\"70\" src=\"https://github.com/BoddepallyVenkatesh06/LearnHub-E-Learning-Platform/blob/main/screenshots/express%20logo.png\"\u003e\u003c/code\u003e\n\n\n## Database 🛢️ :\n\u003ccode title=\"Mongodb\"\u003e\u003cimg height=\"40\" src=\"https://github.com/BoddepallyVenkatesh06/LearnHub-E-Learning-Platform/blob/main/screenshots/mongodb%20logo.png\"\u003e\u003c/code\u003e\n\n## Cloudinary Integration ☁️\n\u003ccode title=\"Mongodb\"\u003e\u003cimg height=\"40\" src=\"https://github.com/BoddepallyVenkatesh06/LearnHub-E-Learning-Platform/blob/main/screenshots/cloudinary-logo.jpg\"\u003e\u003c/code\u003e\n\n\u003chr/\u003e\n\n\n\n\n## System Architecture 🏰\n\u003cbr/\u003e\n☝ The LearnHub ed-tech platform consists of three main components:  \u003cbr/\u003e\nThe front end, the back end, and the database. The platform follows a client-server architecture, with the front end serving as the client and the back end and database serving as the server.\n\n🎨 Front-end  \u003cbr/\u003e\nThe front end of the platform is built using ReactJS, which is a popular JavaScript library for building user interfaces. ReactJS allows for the creation of dynamic and responsive user interfaces also **Loading Skeleton**, which are critical for providing an engaging learning experience to the students. The front end communicates with the back end using RESTful API calls.\n\n⚙️ Back-end  \u003cbr/\u003e\nThe back end of the platform is built using NodeJS and ExpressJS, which are popular frameworks for building scalable and robust server-side applications. The back end provides APIs for the front end to consume, which include functionalities such as user authentication, course creation, and course consumption. The back end also handles the logic for processing and storing the course content and user data.\n\n🛢️ Database  \u003cbr/\u003e\nThe database for the platform is built using MongoDB, which is a NoSQL database that provides a flexible and scalable data storage solution. MongoDB allows for the storage of unstructured and semi-structured data, which is useful for storing course content such as videos, images, and PDFs. The database stores the course content, user data, and other relevant information related to the platform.\n\n\n\n## Architecture Diagram 🏗️\n\u003cbr/\u003e\nHere is a high-level diagram that illustrates the architecture of the LearnHub ed-tech platform:\n\u003cimg width='60%' src='https://github.com/BoddepallyVenkatesh06/LearnHub-E-Learning-Platform/blob/main/screenshots/Architecture%20Diagram.png' /\u003e\n\n\n\u003chr/\u003e\n\n#### The front end of LearnHub has all the necessary pages that an ed-tech platform should have. Some of these pages are: \n\nFor Students:\n- **Homepage 🏠:** A brief introduction to the platform with links to the course list user details and a random background.\n- **Course List 📚:** A list of all the courses available on the platform, along with their descriptions and ratings.\n- **Wishlist 💡:** Displays all the courses that a student has added to their wishlist.\n- **Cart Checkout 🛒 :** Allows the user to complete course purchases.\n- **Course Content 🎓:** Presents the course content for a particular course, including videos and related material.\n- **User Details 👤:** Provides details about the student's account, including their name, email, and other relevant information.\n- **User Edit Details ✏️:** Allows students to edit their account details.\n\nFor Instructors:\n- **Dashboard 📊:** Offers an overview of the instructor's courses, along with ratings and feedback for each course.\n- **Insights 📈:** Provides detailed insights into the instructor's courses, including the number of views, clicks, and other relevant metrics.\n- **Course Management Pages 🛠️:** Enables instructors to create, update, and delete courses, as well as manage course content and pricing.\n- **View and Edit Profile Details 👀:** Allows instructors to view and edit their account details.\n\n\n\n### Back-end ⚙️\n\nThe back-end of the platform is built using NodeJS and ExpressJS, providing APIs for the front-end to consume. These APIs include functionalities such as user authentication, course creation, and course consumption. The back-end also handles the logic for processing and storing the course content and user data.\n\n#### Back-end Features\n\n- **User Authentication and Authorization 🔐:** Students and instructors can sign up and log in to the platform using their email addresses and passwords. The platform also supports OTP (One-Time Password) verification and forgot password functionality for added security.\n- **Course Management 🛠️:** Instructors can create, read, update, and delete courses, as well as manage course content and media. Students can view and rate courses.\n- **Payment Integration 💳:** Students will purchase and enroll in courses by completing the checkout flow, followed by Razorpay integration for payment handling.\n- **Cloud-based Media Management ☁️ :** StudyNotion uses Cloudinary, a cloud-based media management service, to store and manage all media content, including images, videos, and documents.\n- **Markdown Formatting ✍️:** Course content in document format is stored in Markdown format, allowing for easier display and rendering on the front-end.\n\n\n\n#### Data Models and Database Schema\n\nThe back-end of StudyNotion uses several data models and database schemas to manage data, including:\n\n- **Student Schema 🧑‍🎓:** Includes fields such as name, email, password, and course details for each student.\n- **Instructor Schema 👩‍🏫:** Includes fields such as name, email, password, and course details for each instructor.\n- **Course Schema 📚:** Includes fields such as course name, description, instructor details, and media content.\n\n\n### Database 🛢️\nThe database for the platform is built using MongoDB, a NoSQL database that provides a flexible and scalable data storage solution. MongoDB allows for the storage of unstructured and semi-structured data. The database stores the course content, user data, and other relevant information related to the platform.\n\n## Schema 📋\n\u003cimg width='100%' src='https://github.com/BoddepallyVenkatesh06/LearnHub-E-Learning-Platform/blob/main/screenshots/Schema.png' /\u003e\n\n\u003chr/\u003e\n\n\n## React Hooks 🎣\n\nUtilized several React hooks for efficient state management and dynamic behavior:\n\n- `useState`\n- `useEffect`\n- `useDispatch`\n- `useParams`\n- `useSelector`\n- `useLocation`\n- `useNavigate`\n- `useRef`\n- `useForm`\n- `useDropzone`\n- `Custom-Hook`\n\n\u003cbr/\u003e\n\n## 📚 **React Library**:\n\n- 🚀 **Lazy Loading**: Enhance performance by lazily loading images using the react-lazy-load-image library.\n- 📊 **Chart.js:**  Versatile charting library for creating interactive and visually appealing charts.\n- 🎭**Framer Motion:**  Animation library for React, providing smooth and expressive motion.\n- 📁 **React Dropzone:**  Drag-and-drop file uploader for React applications.\n- 🍞 **React Hot Toast:**  Elegant and customizable toast notifications for React applications.\n- 🔢 **React OTP Input:**  Input component for one-time password entry in React forms.\n- 📊 **React Super Responsive Table:**  Highly responsive and feature-rich table component for React.\n- 🔄 **Swiper:**  Modern touch slider for mobile and desktop browsers.\n- 🖋️ **React Type Animation:**  Simple and configurable typing animation component for React.\n- 🎥 **Video React:**  React-based video player for building rich multimedia experiences in web applications.\n\n\n## API Design\n\nThe StudyNotion platform's API is designed following the REST architectural style. The\nAPI is implemented using Node.js and Express.js. It uses JSON for data exchange and\nfollows standard HTTP request methods such as GET, POST, PUT, and DELETE.\nSample list of API endpoints and their functionalities: \n1. /api/auth/signup (POST) - Create a new user (student or instructor) account.\n2. /api/auth/login (POST) – Log in using existing credentials and generate a JWT\ntoken.\n3. /api/auth/verify-otp (POST) - Verify the OTP sent to the user's registered email.\n4. /api/auth/forgot-password (POST) - Send an email with a password reset link to\nthe registered email.\n5. /api/courses (GET) - Get a list of all available courses.\n6. /api/courses/:id (GET) - Get details of a specific course by ID.\n7. /api/courses (POST) - Create a new course.\n8. /api/courses/:id (PUT) - Update an existing course by ID.\n9. /api/courses/:id (DELETE) - Delete a course by ID.\n10. /api/courses/:id/rate (POST) - Add a rating (out of 5) to a course.\nSample API requests and responses: \n1. GET /api/courses: Get all courses\n   * Response: A list of all courses in the database\n2. GET /api/courses/:id: Get a single course by ID\n   * Response: The course with the specified ID\n3. POST /api/courses: Create a new course\n   * Request: The course details in the request body\n   * Response: The newly created course\n4. PUT /api/courses/:id: Update an existing course by ID\n   * Request: The updated course details in the request body\n   * Response: The updated course\n5. DELETE /api/courses/:id: Delete a course by ID\n   * Response: A success message indicating that the course has been deleted.\n\n\n##  🖥️ Screen Preview :\n\n# Home Page Background 🏠 \n\u003cimg width='100%' src='https://github.com/BoddepallyVenkatesh06/LearnHub-E-Learning-Platform/blob/main/screenshots/home.png' /\u003e\n\n# About Page\n\u003cimg width='100%' src='https://github.com/BoddepallyVenkatesh06/LearnHub-E-Learning-Platform/blob/main/screenshots/about.png' /\u003e\n\n# Contact Page\n\u003cimg width='100%' src='https://github.com/BoddepallyVenkatesh06/LearnHub-E-Learning-Platform/blob/main/screenshots/contact.png' /\u003e\n\n# Ai Content Page\n\u003cimg width='100%' src='https://github.com/BoddepallyVenkatesh06/LearnHub-E-Learning-Platform/blob/main/screenshots/AI%20content.png' /\u003e\n\n# Footer\n\u003cimg width='100%' src='https://github.com/BoddepallyVenkatesh06/LearnHub-E-Learning-Platform/blob/main/screenshots/footer.png' /\u003e\n\n# 404 Page\n\u003cimg width='100%' src='https://github.com/BoddepallyVenkatesh06/LearnHub-E-Learning-Platform/blob/main/screenshots/404%20page.png' /\u003e\n\n\n\n\n\n\n\n\n\n\n\n\n \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboddepallyvenkatesh06%2Flearnhub-e-learning-platform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fboddepallyvenkatesh06%2Flearnhub-e-learning-platform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboddepallyvenkatesh06%2Flearnhub-e-learning-platform/lists"}