/zen-meet

ZenMeet: Online Video Conferencing Platform like Zoom, Microsoft Teams, and Google Meet [Full Stack]. 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.

Primary LanguageTypeScript

ZenMeet : Online Video Conferencing Platform [Full Stack]

Overview

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.

Demo

Checkout  Live Demo :  zenmeet.web.app

System Design Blog

For a detailed explanation of the system design and implementation, checkout System Design Blog.


ZenMeet

Contents

Technology Stack

  • Web App: Angular, Bootstrap 5
  • Custom Pub-Sub channels
  • GCP Firestore (NoSQL) Database
  • Firebase Hosting
  • Web-sockets
  • WebRTC peer connections

App Setup

Prerequisites

Installation

  1. Clone the repository:
    git clone https://github.com/SameerKhurd/zen-meet.git
  2. Install app dependencies:
    cd frontend/zen-meet-web-app
    npm install

Running Locally

  1. Start the server:

    cd frontend/zen-meet-web-app
    npm start

    or

    cd frontend/zen-meet-web-app
    ng serve

Deployment

  1. Set up Firebase CLI and configure it for the respective project.
  2. Deploy the cloud functions manually:
    firebase deploy --only hosting:zenmeet

Contributing

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature-branch).
  3. Make your changes and commit them (git commit -m 'Add new feature').
  4. Push to the branch (git push origin feature-branch).
  5. Open a pull request.

Screenshots

  • Landing Page Landing Page

  • Video Call Video Call

  • Participant Reations Participant Reations

  • Messaging Messaging

  • People Tab People Tab

  • Screen Sharing - Runtime Error Result Screen Sharing More Screenshots