![Logo](https://private-user-images.githubusercontent.com/75678927/285658154-4867b00c-4dc6-4a52-ae05-6d994a875528.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjIwMjIyMzYsIm5iZiI6MTcyMjAyMTkzNiwicGF0aCI6Ii83NTY3ODkyNy8yODU2NTgxNTQtNDg2N2IwMGMtNGRjNi00YTUyLWFlMDUtNmQ5OTRhODc1NTI4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzI2VDE5MjUzNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWNiMTJmMmQ3N2Y2OTU1ZmUwZjcyMjU3ZGEzMTgyNTk0NWNmZmIxMTM5ZTgzMGNmZGNmNTNmNTJiNmM3MWUxMTYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.BZ4u4QA-UQXV7UvER6QiqzzvuayfpQBCWB_Cys0g5Os)
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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjIwMjIyMzYsIm5iZiI6MTcyMjAyMTkzNiwicGF0aCI6Ii83NTY3ODkyNy8yODU2NTkzOTQtNzVmMWFmOTctMjI5Ni00ODgxLWFjNWYtZWQwY2RlODk3YjE3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzI2VDE5MjUzNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTE1OGE0MTQxZDg1YjBmOGVmNmYyNmQyZDRiZmEyNjQzNWViOTk5MzIyYWJkMTViNTJmMjUzZjQwODU4ZDI0NjAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.rg4ZHE7tr3KlctRfDfX8iyf7JWr9Ki3iTpP0HHfmhv4)
![Participants](https://private-user-images.githubusercontent.com/75678927/285659446-2cfaeec4-001c-4cf9-9192-a83e547da10f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjIwMjIyMzYsIm5iZiI6MTcyMjAyMTkzNiwicGF0aCI6Ii83NTY3ODkyNy8yODU2NTk0NDYtMmNmYWVlYzQtMDAxYy00Y2Y5LTkxOTItYTgzZTU0N2RhMTBmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzI2VDE5MjUzNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTMwZGZmZWIyMzRkOGEzMzBhZmU0NjZjMjJhMTQwYTFmY2I0ZmU4Njc5YjIzZTk3YjRlYjFmODY3Y2RiMmIwMTgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.VlY1IVp3MFh7lIOT6iXCu2aedcDNOv4HaCv3dPmlbeA)
-
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.