Skip to content

ApEdu/Video-Call-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Microsoft Engage 2021 Challenge


View Demo · Live Site

Table of Contents
  1. About The Project
  2. Getting Started
  3. Snapshots
  4. Scope
  5. Contact
  6. Acknowledgements

About The Project

Microsoft Engage 2021 is a program created by Microsoft engineers, in association with Ace Hacker, for students to work on projects with live interaction and help from engineers and mentors at Microsoft. The challenge was to build a teams clone with the mandatory functionality - a minimum of two participants should be able connect with each other to have a video conversation. Microsoft Engage 2021

Development Methodology

Scrum methodology

Scrum is an agile development methodology used in the development of software based on an iterative and incremental processes. Each iteration consists of two- to four-week sprints, where each sprint’s goal is to build the most important features first and come out with a potentially deliverable product.

Sprint Map

Below image provides insight to sprint wise deliverables and bugs

Sprint Map

Built With

Additional packages used

Architecture

Kall uses a Peer-to-Peer Mesh architecture to provide group video chat functionality. It uses WebRTC which allows real time media communications directly between browser and devices. Since WebRTC inherently does not provide signaling which is essential for establishing connection, Peerjs wrapper is used which provides signaling and eases establishing connection. Socket.io enables bidirectional, real-time and event based browser server communication and is required for communication of each peer with the node server. Additionally nodemailer is used for email invite functionality.

mesh
WebRTC conference with Mesh Architecture

Articles to know more -

Getting Started

Prerequisites

Kall uses npm as package manager and is required to install necessary libraries and packages. Node is used for backend development. Therefore node and npm are required which can be downloaded from here

Installation

  1. Clone the repo
    git clone https://github.com/ApEdu/Video-Call-App.git
  2. Install NPM packages
    npm install
  3. All necessary files and modules are setup now !

Running on local network

  1. You need to run a peerserver to connect peers in terminal
    peer --port 443 --path /peerjs
  2. In separate terminal run the node server
    npm run start
  3. Go to your localhost:3030

Snapshots

home
Home Screen
room
Video Chat room

Scope

Features

  • Connectivity for 4-5 participants ( network dependent )
  • Email invite functionality to bypass url copy pasting practise
  • In-call text chat to allow textual interchange

Possible Improvements

  • Kall uses P2P mesh architecture for video calling, an SFU/MCU implementation can be worked upon which will reduce connection load
  • Kall uses public cloud PeerServer which does not provide very well cross network connectivity, deploying a custom turn server,stun server and peerserver can improve network connectivity issues
  • Have tried other alternatives not much improvement

Contact

Gmail : gargapoorv12@gmail.com

LinkedIn : www.linkedin.com/in/apoorv-garg-24q34

Project Link : https://github.com/ApEdu/Video-Call-App

Acknowledgements

I would like to thank acehacker and microsoft team for conducting the Microsoft Engage 2021 Program. I would also like to thank my mentors , Mayank Rawat and Deepak Kumar for their constant guidance.

Videos by Traversy Media were a great source for learning web development.

Special thanks to Ritik Taneja and Varsha Jangir for their help in sticky situations.

Lastly, Thank you youtube and stackoverflow !!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors