/KnowledgeHub

KnowledgeHub is a fully functional ed-tech platform built using the MERN stack. The platform enables users to create, consume, and rate educational content, offering a seamless and interactive learning experience for students and a robust platform for instructors to showcase their expertise.

Primary LanguageJavaScriptMIT LicenseMIT

KnowledgeHub

KnowledgeHub is a fully functional ed-tech platform built using the MERN stack. The platform enables users to create, consume, and rate educational content, offering a seamless and interactive learning experience for students and a robust platform for instructors to showcase their expertise.

Introduction

KnowledgeHub is designed to make education more accessible and engaging through an intuitive and versatile platform. It bridges the gap between students and instructors, offering a global reach for educational content and expertise.

Features

  • Interactive Learning: Students can access a wide range of educational content in various formats.
  • Content Creation: Instructors can create and upload educational content, courses, and materials.
  • Rating System: Users can rate and review courses, providing feedback to instructors and helping other learners choose the best content.
  • Global Connectivity: Connects learners and instructors from around the world.

System Architecture

KnowledgeHub is built on the MERN stack, consisting of the following components:

  • MongoDB: Database for storing user data, course content, and ratings.
  • ExpressJS: Web application framework for building the backend.
  • ReactJS: Front-end library for building the user interface.
  • NodeJS: JavaScript runtime for server-side scripting.

The platform's architecture is designed to be scalable and efficient, allowing for a seamless user experience.

Front-end

  • Framework: ReactJS
  • Design: Responsive and user-friendly interface
  • Features:
    • Course browsing and search
    • User authentication and profile management
    • Content consumption and interaction (videos, quizzes, etc.)
    • Ratings and reviews

Tools & Libraries:

  • React Router for navigation
  • Axios for API requests
  • Material-UI for design components

Back-end

  • Framework: ExpressJS
  • Features:
    • RESTful API for front-end communication
    • User authentication and authorization
    • Content management (CRUD operations)
    • Rating and review system

Tools & Libraries:

  • Mongoose for MongoDB interaction
  • JWT for authentication
  • bcrypt for password hashing

Data Models & Schema:

  • User
  • Course
  • Rating
  • Review

API Design

The API is designed to be RESTful, providing endpoints for all major functionalities:

Deployment

The platform can be deployed using various hosting services:

  • Frontend: Deployed using services like Netlify or Vercel.
  • Backend: Deployed on services like Heroku or AWS.
  • Database: Hosted on MongoDB Atlas.

Deployment Scripts:

  • npm run build for building the front-end.
  • npm start for starting the back-end server.

Testing

The platform includes comprehensive testing to ensure stability and performance:

  • Types of Testing:
    • Unit Testing
    • Integration Testing
    • End-to-End Testing
  • Tools:
    • Jest for unit testing
    • Supertest for API testing
    • Cypress for end-to-end testing

Installation

  1. Clone the repository:
    git clone https://github.com/AdarshMishra26/KnowledgeHub.git
  2. Install dependencies:
    cd KnowledgeHub
    npm install
  3. Set up environment variables:
    • Create a .env file and add the necessary environment variables (e.g., MongoDB URI, JWT secret).
  4. Run the development server:
    npm run dev

Contributing

Contributions are welcome! Please fork the repository and create a pull request with your changes. Ensure your code follows the project's coding standards.