Skip to content

A Web RTC application that allows text and video chatting. Just create a room with a unique ID and and add your friends to it.

Notifications You must be signed in to change notification settings

chetanshahra/Microsoft-Teams-Clone

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Microsoft Teams Clone

View Demo · Report Bug

Table of Contents
  1. About The Project
  2. Usage
  3. Resources Used
  4. Notes
  5. Contact

About The Project

Microsoft Engage 2021

This project is a part of Microsoft Engage Mentorship Program 2021. It was a 4 week program organized by Microsoft India Team. The task was to build a Microsoft Teams Clone with at least one mandatory functionality, that is, a minimum of two participants should be able connect with each other to have a video conversation. Throughout this project, my fellow mentees and I had constant support from the mentors(Ms. Salona Sinha and Mr. Nikhil Arora). Also, various AMA Sessions, Webinars and Leader talks were organized by Microsoft and Team Ace Hacker during this period. Microsoft Engage 2021 Website

Features

  1. Group Video Calling
    • Unlimited participants support
    • Video On/Off Feature during call
    • Audio Mute/Unmute Feature during call
    • Access to chat during call
  2. Chat associated with every meeting
    • Chat before or after the meeting
    • Add new participants
    • All the participants(including newly added) will have access to the old chats
    • Option to join the call
    • Navigation Bars on side and top showing options to join other meets
  3. Authentication and Authorization
    • Only authenticated users have access to create and join meetings
    • Only the users allowed can join a specific meeting
    • Login on multiple devices allowed
    • Users can join multiple meetings and chats at the same time from same or multiple devices
  4. Completely a web-based Application: No need to install any application locally.

Agile Methodology

This project is built using Agile Methodology. Agile scrum methodology is a project management system that relies on incremental development. Usually, each iteration consists of 2-4 week sprints, where each sprint's goal is to build the most important features first and come out with a potentially deliverable product. More features are built into the product in subsequent sprints and are adjusted based on stakeholder and customer feedback between sprints. Microsoft divided the project into 3 sprints: Design, Build & Adapt . Since this was a small project, so after the design phase I further divided the project into 2-3 days sprints. They are:

  • [Initialization] Setting up the server (locally)
  • [Minimum Functionality] Enabling the connection (videos/audios) between two tabs on the same device
  • Adding the in-call chat feature
  • Adding User Authentication and basic Authorization
  • Adding Join Meeting feature and Create Meeting feature
  • Adding basic Error Handling
  • Deploying the App
  • Giving basic User Interface
  • Adding Private Meeting feature
  • Adding Add Participants Feature
  • [Adapt Stage] Integrating the before and after meeting chat option with already built chat feature
  • Adding/improving styling in the app

Usage

Register and Sign In

Anyone can register to the App giving their basic details such as:

  • Firstname and Secondname (Both must have atleast 3 characters)
  • Username (Must be unique)
  • Password
  • Email Id (Must be unique and in the correct syntax)

Register

For logging in, the registered username and password must be used

Login

Create New Meetings

Anyone who is logged in can create a new meeting by entering the details:

  • Meeting Name
  • Meeting Id : This field can also be left empty for auto-generation of id
  • Participants List (includes Email Ids of the Participants with each id sepereted by a space)

Create_1

Example: Create_2

On the meeting page, list of all other meetings is on the left. On the right side, going from top to bottom the option of joining the video call, list of participants and option of adding new participants to the meeting are given.

Create_3

Join Meetings

User can also join a meeting by entering the Meeting Code

Join

Resources Used

Languages/Technologies

  • CSS
  • JavaScript
  • NodeJS
  • MongodDB/Mongoose

Frameworks

  • ExpressJS
  • Ejs
  • Socket.io
  • WebRTC
  • PeerJS
  • uuid
  • PassportJS
  • Express Flash.
  • Express Session
  • dotenv

Deployment

The app is deployed using Heroku at https://true-mountie-86521.herokuapp.com/ .

Notes

  • If you are not able to join a meeting, make sure that you have been added to the Allowed Participants list of that meeting. Ask someone in the meeting to add you using the option provided.
  • While registering, enter the details in correct format as mentioned here
  • In case you are providing custom meeting id, the meeting id must be unique.
  • If you are facing any issue in loading/working of a particular feature, try refreashing the website. If the problem persist try changing the browser/device.

Contact

Report issues: https://github.com/chetanshahra/Microsoft-Teams-Clone/issues

About

A Web RTC application that allows text and video chatting. Just create a room with a unique ID and and add your friends to it.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published