This project enables you to initiate a video chat with a friend in one click, including screen sharing capabilities. Built with cutting-edge technologies, StreamMate leverages WebRTC for real-time communication, Socket.IO for efficient signaling, and a modern frontend stack for a seamless user experience.
- One-Click Video Chat: Start a video call with a friend with a single click.
- Screen Sharing: Share your screen during the video call for enhanced collaboration.
- Perfect Negotiation: Ensures seamless WebRTC connections.
- Real-time Communication: Utilizes Socket.IO for efficient signaling and real-time updates.
- Frontend:
- Backend:
Make sure you have the following installed on your machine:
-
Clone the repository:
git clone https://github.com/senbo1/StreamMate.git cd StreamMate
-
Install dependencies:
cd web npm install cd ../server npm install
-
Start the Signaling Server:
cd server npm run dev
-
Start the Next.js Application:
cd ../web npm run dev
-
Open your browser and navigate to
http://localhost:3000
.
- Open the Application: Visit the application URL in your browser.
- Start a Video Chat: Click the button to start a video chat. Share the generated link with your friend.
- Screen Sharing: Use the screen sharing option during the call to share your screen.
The signaling server is deployed on a free instance on Render. This instance will spin down with inactivity, which can delay requests by up to 50 seconds when it starts up again.
We welcome contributions from the community! To contribute:
- Fork the repository.
- Create a new branch (
git checkout -b feature/your-feature
). - Commit your changes (
git commit -m 'Add your feature'
). - Push to the branch (
git push origin feature/your-feature
). - Open a pull request.
This project is licensed under the MIT License.