An open API service indexing awesome lists of open source software.

https://github.com/yours7himanshu/edumatrix-virtual-classroom

Edumatrix is a state-of-the-art virtual classroom platform designed to revolutionize online education. Built with a user-friendly interface and robust features, Edumatrix empowers educators and students by providing seamless tools for interactive learning.Admin Server is running on this url - https://virtual-classroom-admin.vercel.app/
https://github.com/yours7himanshu/edumatrix-virtual-classroom

collaborate contributions-welcome e-learning-platform express mern-stack mongodb node-js react restful-api socket-io student-vscode webrtc websocket

Last synced: about 1 year ago
JSON representation

Edumatrix is a state-of-the-art virtual classroom platform designed to revolutionize online education. Built with a user-friendly interface and robust features, Edumatrix empowers educators and students by providing seamless tools for interactive learning.Admin Server is running on this url - https://virtual-classroom-admin.vercel.app/

Awesome Lists containing this project

README

          

# πŸŽ“ **EduMatrix Virtual Classroom** – _Making Virtual College for Everyone_

**Main Aim: To make all colleges run virtually and make learning accessible to everyone, anywhere!** 🌐

EduMatrix is a **full-stack web application** designed to revolutionize online education by providing a seamless and interactive virtual classroom experience. Built using the **MERN stack** (MongoDB, Express, React, Node.js), the platform incorporates **real-time communication features** to support live classes, video conferencing, and collaborative tools like a shared whiteboard and chat.

![EduMatrix Home Page](assets/homepage.png)

---

## πŸ“š **About the Project**

The **EduMatrix Virtual Classroom** platform offers a comprehensive solution for institutions and educators to conduct classes online with minimal setup. The system provides **real-time video conferencing**, **chat**, and **interactive whiteboards** to bridge the gap between traditional classrooms and virtual learning.

---

## 🎯 **Goals**

1. **Enhance Online Education**: Create an engaging virtual learning environment for students and educators.
2. **Accessibility**: Make quality education available globally through a reliable, easy-to-use platform.
3. **Real-Time Interaction**: Support effective communication with tools like video conferencing and chat.
4. **Scalability**: Build a system that can handle a large number of concurrent users.
5. **Customization**: Allow educators to personalize the platform to suit their specific needs.

---

## πŸ“‹ **Table of Contents**

- [Features](#features)
- [Project Structure](#project-structure)
- [Setup Instructions](#setup-instructions)
- [Contributing](#contributing)
- [License](#license)

---

## ✨ **Features**

βœ… **Frontend**: Built with **React**, configured with **Vite** for faster builds and optimized development.
βœ… **Backend**: Powered by **Node.js** with **Express** API server.
βœ… **Admin Panel**: A dedicated admin interface to manage users, courses, and sessions.
βœ… **Real-Time Communication**: Supports **live video conferencing** and **chat** using **WebRTC** and **Socket.IO**.
βœ… **Interactive Tools**: Includes a **shared whiteboard** for collaborative learning during classes.
βœ… **Secure Authentication**: Implements **JWT-based login** and user management.
βœ… **Responsive Design**: Works seamlessly across devices – desktops, tablets, and smartphones.

---

## πŸ—‚ **Project Structure**

```bash
root
β”œβ”€β”€ client # Frontend (React with Vite)
β”œβ”€β”€ server # Backend (Node.js with Express)
└── admin # Admin Panel (React with Vite)
```

### **Directory Overview**
- **client**: Contains the user-facing frontend interface.
- **server**: Handles the backend API logic, authentication, and database interactions.
- **admin**: A dedicated panel for administrators to manage users, courses, and other platform settings.

---

## πŸ›  **Setup Instructions**

### πŸ“‹ **Prerequisites**

Ensure you have the following installed on your machine:
- **Node.js** (v20.9.0 or later)
- **npm** or **yarn**

---

### πŸ“₯ **1. Clone the Repository**

```bash
git clone https://github.com/your-username/edumatrix-virtual-classroom.git
cd edumatrix-virtual-classroom
```

---

### πŸ“¦ **2. Install Dependencies**

Navigate to the respective folders and run the following commands:

#### Frontend (Client)

```bash
cd client
npm install
```

#### Backend (Server)

```bash
cd ../server
npm install
```

#### Admin Panel

```bash
cd ../admin
npm install
```

---

### πŸ›  **3. Configure Environment Variables**

Create a `.env` file in the `server` and `admin` directories with the required environment variables.

Example `.env` file for the server:

```env
MONGO_URI=your_mongo_db_uri
JWT_SECRET=your_jwt_secret
FRONTEND_URL=http://localhost:5173
ADMIN_URL=http://localhost:5174
```

---

### ▢️ **4. Start the Application**

#### Backend Server

From the `server` folder:

```bash
npm run dev
```

#### Frontend Server (Client)

From the `client` folder:

```bash
npm run dev
```

#### Admin Panel

From the `admin` folder:

```bash
npm run dev
```

---

### 🌐 **5. Access the Application**

- **Frontend (User)**: [http://localhost:5173](http://localhost:5173)
- **Admin Panel**: [http://localhost:5174](http://localhost:5174)

---

## 🀝 **Contributing**

We welcome contributions to improve EduMatrix! πŸ› οΈ

### Steps to Contribute

1. **Fork the repository** and clone it to your local machine.
2. **Create a new branch** for your feature or bug fix:
```bash
git checkout -b feature/new-feature
```
3. **Commit your changes** with a clear message:
```bash
git commit -m "Added a new feature for admin management"
```
4. **Push to your fork** and open a **pull request**:
```bash
git push origin feature/new-feature
```

---

## πŸ’‘ **Development Guidelines**

- Ensure **code consistency** using **ESLint** and **Prettier**.
- Write **clear and concise commit messages**.
- **Test your changes** before submitting a pull request.

---

## πŸ“œ **License**

This project is licensed under the **Apache License 2.0**. See the [LICENSE](LICENSE) file for more details.

---

## πŸŽ‰ **Let’s Make Virtual Learning Accessible for All!**

Thank you for contributing to EduMatrix Virtual Classroom! Together, we can revolutionize the way education is delivered. πŸš€

---