![Logo](https://private-user-images.githubusercontent.com/75678927/285658154-4867b00c-4dc6-4a52-ae05-6d994a875528.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk4MjExMTksIm5iZiI6MTcxOTgyMDgxOSwicGF0aCI6Ii83NTY3ODkyNy8yODU2NTgxNTQtNDg2N2IwMGMtNGRjNi00YTUyLWFlMDUtNmQ5OTRhODc1NTI4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAxVDA4MDAxOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTY2ZjI4MWI2NTg2ZDBkZDU3ZGYyZGY2ZDBiNjUxZDQxNDQ5YjJmZGY2YTYwY2YxOGUwYzVkYmIwZGZjNDhmZjgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.zmdlpFQsgVlHT_LW3FUtEBN2t_Zw8cBWAYeyxVtUuRk)
A real-time video calling application built using WebRTC for peer-to-peer communication.
View Demo
·
Report Bug
·
Table of Contents
A peer-to-peer video calling application built using webRTC. The project supports multi-user video calling with in-call real-time messaging.
![Chats](https://private-user-images.githubusercontent.com/75678927/285659394-75f1af97-2296-4881-ac5f-ed0cde897b17.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk4MjExMTksIm5iZiI6MTcxOTgyMDgxOSwicGF0aCI6Ii83NTY3ODkyNy8yODU2NTkzOTQtNzVmMWFmOTctMjI5Ni00ODgxLWFjNWYtZWQwY2RlODk3YjE3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAxVDA4MDAxOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWY3MzllOTFhZGEyYjhiMDIwYmQxNmRlZGVjYTM1YmYyOTg4ZWZjNGIxNjZlZGVkMGU1MDc1NzAzNzhmNTJmZDgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.hIH2Q1PUBMfX2dQXKyB5Xo2BHaMW0RTNXDLaeVfR4pk)
![Participants](https://private-user-images.githubusercontent.com/75678927/285659446-2cfaeec4-001c-4cf9-9192-a83e547da10f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk4MjExMTksIm5iZiI6MTcxOTgyMDgxOSwicGF0aCI6Ii83NTY3ODkyNy8yODU2NTk0NDYtMmNmYWVlYzQtMDAxYy00Y2Y5LTkxOTItYTgzZTU0N2RhMTBmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAxVDA4MDAxOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTE5NGNjNjQxOTUyN2I3NmYyODFlOGZjZjAwYTJjODE0NWEwOTExZjBkMTUyOWRjMDIxYzEwYzU1MjRlNThjYzkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.XGby4uva_okE2HAQmzcDLI2G4_pQu76AEwbrAokKZDY)
-
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.
-
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.
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.
-
- 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
Peer.to.Peer.Video.Communication.demo.mp4
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!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the GNU License. See LICENSE
for more information.