Skip to content

KishorBalgi/Peer-to-Peer-Video-Communication

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Logo

Peer To Peer Video Communication

A real-time video calling application built using WebRTC for peer-to-peer communication.
View Demo · Report Bug ·

Table of Contents
  1. About The Project
  2. Installation
  3. Demonstration
  4. Contributing
  5. License
  6. Contact

About The Project

A peer-to-peer video calling application built using webRTC. The project supports multi-user video calling with in-call real-time messaging.

Home Page Home Page

Signup Page Signup Page

Login Page Login Page

Video Call Video Call

Chats Participants

Key Features

  • Multi-User Video Calling: Engage in video calls with multiple participants simultaneously.

  • Real-Time Messaging: Stay connected during calls with in-call real-time messaging, enhancing the overall user experience.

Architecture

  • Signalling Server: The client utilizes a Socket.io-powered signalling server to facilitate call initiation and in-call messaging.

  • Data Persistence: All user and call records are securely stored in PostgreSQL, managed by the Prisma ORM.

Project Goal

This project serves as an exploration of WebRTC technology, pushing the boundaries of real-time communication. While it's an experiment, the application provides a functional environment for multi-user video calling with added real-time messaging.

Built With

Front-End:

Next Redux WebRTC Tailwind

Back-End:

TypeScript Express Socket.io PostgreSQL Prisma ORM

Installation

    • Fork the repo
    • Clone the repo to your local system
    git clone https://github.com/KishorBalgi/Peer-to-Peer-Video-Communication peer-to-peer-video-communication
    cd peer-to-peer-video-communication
    
    • Front End: Install all the dependencies
    cd client/
    npm install # This will install all the required dependencies for the front-end
    • Front End Enivronment Configurations: create a .env file in the root directory and add the following env variables
     NEXT_PUBLIC_API_URL = "Server URL"
     NEXT_PUBLIC_SOCKET_URL = "Server URL"
    
    • Run Front End:
     npm run dev # For Development purposes
     npm start
    • Back End: Install all the dependencies
    cd backend/
    npm install # This will install all the required dependencies for the back-end
    • Backend End Enivronment Configurations: create a .env file in the backend directory and add the following env variables
     PORT=8080
     NODE_ENV=development
     DATABASE_URL="Create a postgreSQL DB and add the DB URL"
     JWT_SECRET="Random 32 char string"
    
    • Run Back End:
    npm run dev # For Development with nodemon
    npm start # Without nodemon

Demonstration

Peer.to.Peer.Video.Communication.demo.mp4

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the GNU License. See LICENSE for more information.

Contact

Linkedin Twitter

(back to top)

Releases

No releases published

Packages

No packages published

Languages