The Video Calling App is a real-time communication application built with Express.js, MongoDB, React.js, Socket.IO, and PeerJS. It allows users to host and join video calls seamlessly, manage meetings effectively, and provides a secure registration and login process.
- Real-Time Video Communication: Achieved using Socket.IO and PeerJS for smooth and interactive video calls.
- Secure Account Management: Improved user registration and login processes for enhanced application security.
- Easy Meeting Management: Allows users to create and join meetings effortlessly for a streamlined experience.
- Frontend: React.js
- Backend: Express.js
- Database: MongoDB
- Real-Time Communication: Socket.IO, PeerJS
- Node.js
- MongoDB
- PeerJS
git clone https://github.com/TechThrives/Video-Calling-Appcd video-calling-backendnpm install-
In the root directory of your Server, create a file named
.env.Open the
.envfile and add the following environment variables:-
PORT: Specifies the port on which the backend server will listen. -
MONGO_URI: Connection string for MongoDB, including credentials and database information. -
JWT_SECRET: Secret key used for signing JSON Web Tokens. -
FRONTEND_URL: URL of the frontend application for CORS configuration. -
PASSPHRASE: Passphrase for SSL certificate, used for encryption. -
SSL_CRT_FILE: Path to the SSL certificate file used for HTTPS communication. For example,../credentials/rootCA.cert. -
SSL_KEY_FILE: Path to the SSL key file associated with the SSL certificate. For example,../credentials/rootCA.key.
By setting these environment variables, you ensure that your application is configured correctly for different environments and scenarios.
-
npm startcd peerjs-servernpm install-
In the root directory of your PeerJs Server, create a file named
.env.Open the
.envfile and add the following environment variables:-
FRONTEND_URL: URL of the frontend application for CORS configuration. -
PASSPHRASE: Passphrase for SSL certificate, used for encryption. -
SSL_CRT_FILE: Path to the SSL certificate file used for HTTPS communication. For example,../credentials/rootCA.cert. -
SSL_KEY_FILE: Path to the SSL key file associated with the SSL certificate. For example,../credentials/rootCA.key.
By setting these environment variables, you ensure that your application is configured correctly for different environments and scenarios.
-
npm startcd video-calling-frontendnpm install-
In the root directory of your React App, create a file named
.env.Open the
.envfile and add the following environment variables:-
REACT_APP_SERVER: URL of the backend server that the React application will communicate with. -
REACT_APP_PEER_SERVER: Hostname or IP address of the PeerJS server used for real-time communication. -
REACT_APP_PEER_PORT: Port on which the PeerJS server is listening. -
REACT_APP_PEER_PATH: Path to the PeerJS server endpoint used for establishing connections. -
HTTPS: Set totrueto enable HTTPS for secure communication. -
SSL_CRT_FILE: Path to the SSL certificate file used for HTTPS communication. For example,../credentials/rootCA.cert. -
SSL_KEY_FILE: Path to the SSL key file associated with the SSL certificate. For example,../credentials/rootCA.key.
By setting these environment variables, you ensure that your application is configured correctly for different environments and scenarios.
-
npm startOpen your browser and go to http://localhost:3000 to start using the app.
Registration & Login: Securely register and log in using your credentials.
Create a Meeting: Set up a new meeting with a unique ID and invite participants.
Join a Meeting: Enter the meeting ID to join an ongoing video call.
Chat with Participants: Send and receive messages with other participants in the ongoing chat conversation.
We welcome contributions from the community. To contribute to this project, please follow these guidelines:
- Fork the repository
- Create a new branch for your feature or bug fix
- Make your changes and ensure they are well-tested
- Create a pull request to the main branch of the original repository
- Swarup Kanade @swarupkanade
- Omkar Kanade @omkarkanade