Welcome to the D-Meet app, a sophisticated video conferencing application built with the MERN stack and TypeScript. This app leverages modern technologies to offer seamless video calling, chat functionality, and robust user authentication.
The Video Meet App is a powerful video conferencing solution that allows users to create rooms, join rooms, and interact via video calls and chat. Built using a rich tech stack, the app provides a robust and scalable solution for virtual meetings.
- User Authentication: Secure login and logout with GitHub OAuth 2.0 integration.
- Room Management: Create and join rooms with unique IDs.
- WebRTC Integration: Establish peer-to-peer connections for video calls.
- Real-Time Communication: Use Socket.IO for real-time chat and connection management.
- Robust Validation: Four levels of validation implemented for both frontend and backend.
- Frontend:
React,
TypeScript,
Chakra UI,
- Backend:
Node.js,
Express,
TypeScript
- Database:
MongoDB,
- Authentication:
OAuth2.0,
GitHub Login
- Real-Time Communication:
Socket.IO,
WebRTC
- Validation:
Zod,
Joi, Joi Password Complexity
To get started with the Video Meet App, follow these steps:
- Clone the Repository:
git clone https://github.com/Datamaverik/D-Meet
- Navigate to the Project Directory
cd D-Meet-App
- Install Dependencies
npm install
- Set Up Environment Variables
Create a
.env
file in the root directory ofServer
and add the necessary environment variable. Refer to.env.example
for required variables. - Start the Application
Opent a new terminal in the root directory
cd Server npm start
cd Client npm run dev
- Access the App:
Open your browser and navigate to
http:localhost:5173
.
- Login: Use your GitHub account to log in.
- Create Room: Generate a unique ID and share it with other.
- Join Room: Enter the room ID to join an existing room.
- Video Call: Connect with others in the room using WebRTC.
- Chat Send and recieve real-time messages in the chat window.
We’ve integrated GitHub OAuth 2.0 for seamless user authentication. Users can log in using their GitHub credentials, enhancing security and user experience.
- User Authentication: User login via GitHub OAuth 2.0 or normal register themselves to the MongoDB
- Room Creation: Users create or join rooms using unique IDs.
- WebRTC Connection: WebRTC is used for video and audio communication.
- Reat-Time Communication: Socket.IO manages real-time chant and signalling.