Skip to content

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.

Notifications You must be signed in to change notification settings

TechThrives/Video-Calling-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Video Calling App

Overview

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.

Features

  • 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.

Technologies Used

  • Frontend: React.js
  • Backend: Express.js
  • Database: MongoDB
  • Real-Time Communication: Socket.IO, PeerJS

Installation

Prerequisites

  • Node.js
  • MongoDB
  • PeerJS

1. Clone the Repository

git clone https://github.com/TechThrives/Video-Calling-App

2. Set Up the Back-End

  • Navigate to the Back-End Directory

cd video-calling-backend
  • Install Dependencies

npm install
  • Configure Environment Variables

    In the root directory of your Server, create a file named .env.

    Open the .env file 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.

  • Start the Back-End

npm start

2. Set Up the PeerJS Server

  • Navigate to the PeerJS Directory

cd peerjs-server
  • Install Dependencies

npm install
  • Configure Environment Variables

    In the root directory of your PeerJs Server, create a file named .env.

    Open the .env file 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.

  • Start the PeerJS Server

npm start

4. Set Up the Front-End

  • Navigate to the Front-End Directory

cd video-calling-frontend
  • Install Dependencies

npm install
  • Configure Environment Variables

    In the root directory of your React App, create a file named .env.

    Open the .env file 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 to true to 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.

  • Start the Front-End

npm start

5. Access the Application

Open your browser and go to http://localhost:3000 to start using the app.

Usage

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.

Contributing

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

Developers

About

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.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •