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