This repository contains the codebase for a online real-time multi-communication video conferencing platform ZenMeet, inspired by applications like Microsoft Teams, Zoom, Google Meet. ZenMeet is designed to facilitate seamless and interactive online meetings with features to create meeting rooms, make video and audio calls, messaging, screen sharing, and interactive controls like reactions and hand-raising.
The platform uses WebRTC for video and audio calls, public STUN servers for establishing connection between peers and custom Pub-Sub channels for messaging and sharing connections details.
Checkout Live Demo : zenmeet.web.app
For a detailed explanation of the system design and implementation, checkout System Design Blog.
- Web App: Angular, Bootstrap 5
- Custom Pub-Sub channels
- GCP Firestore (NoSQL) Database
- Firebase Hosting
- Web-sockets
- WebRTC peer connections
- Node.js (Version 20.9.0)
- npm (Version 10.1.0)
- Angular CLI (Version 16.2.14)
- Git (Download)
- Firebase Firestore database setup for the project
- Clone the repository:
git clone https://github.com/SameerKhurd/zen-meet.git
- Install app dependencies:
cd frontend/zen-meet-web-app npm install
-
Start the server:
cd frontend/zen-meet-web-app npm start
or
cd frontend/zen-meet-web-app ng serve
- Set up Firebase CLI and configure it for the respective project.
- Deploy the cloud functions manually:
firebase deploy --only hosting:zenmeet
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch
). - Make your changes and commit them (
git commit -m 'Add new feature'
). - Push to the branch (
git push origin feature-branch
). - Open a pull request.
-
Screen Sharing - Runtime Error Result More Screenshots