Skip to content

AdityaKumar-01/MS-Teams-clone

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

59 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ”° MS Teams Clone πŸ”°

An attempt to make a clone of existing MS Team for Micorsoft Engage 2021πŸ”—.

It was a challenge given by Microsft to build a replica of MS Team with a mandatory feature where atleast 2 people can join a room and have video call. On my way of building this I used MERN stack for building its frontend and backend. I tried and added more featrues by myself to make it user-friendly

features

How to run in local system πŸ’»

This project containns 2 folder πŸ“ "client" and "server"
Client conatins frontend part and server contains backend part for this website

Prerequisites

‼️ You should have node version higher than 8
‼️ Get a free account of Twilio and pen down your Account sid, API key and API sid
‼️ Get a free account of Chat Engine and note down your project ID and API key

In client's .env.local file

REACT_APP_CHAT_ENGINE_API_KEY=XXXXXXXXXXXXXXXXXXXXX
REACT_APP_PROJECT_ID=XXXXXXXXXXXXXXXXXXXXX
REACT_APP_BACKEND_URL=XXXXXXXXXXXXXXXXXXXXX

Deploy your backend on heroku and save the URL or write http://localhost:5000 if your are running it locally

In server's .env file

TWILIO_ACCOUNT_SID = XXXXXXXXXXXXXXXXXXXXX
TWILIO_API_KEY = XXXXXXXXXXXXXXXXXXXXX
TWILIO_API_SECRET =XXXXXXXXXXXXXXXXXXXXX
PORT=XXXXXXXXXXXXXXXXXXXXX
MONGO_URL=XXXXXXXXXXXXXXXXXXXXX
CHAT_ENGINE_API_KEY =XXXXXXXXXXXXXXXXXXXXX
CHAT_ENGINE_PROJECT_ID =XXXXXXXXXXXXXXXXXXXXX
MAIL_ID=XXXXXXXXXXXXXXXXXXXXX
MAIL_SECRET=XXXXXXXXXXXXXXXXXXXXX

Create a database in Mongo Atlas and note the secret and url of the cluster



βœ”οΈ1. Clone this repository

 git clone https://github.com/AdityaKumar-01/MS-Teams-clone.git

βœ”οΈ2. cd into client and then run

 cd client
 npm install

βœ”οΈ3. cd into server and then run

 cd server
 npm install

This will install all the dependencies required and your are good to go πŸ’―


Working πŸ› 

Frontend

For frontend I used React to build components like form teams and other things. React is a go to option for projects like this where you have multiple repeating components and lot of rendering of components is required. Frontend was supported by lots of other NPM packages too to make the work easy and nice.


Here is a list of those NPM packages πŸ“

πŸ“ Material UI core
πŸ“ Material UI icons
πŸ“ Axios
πŸ“ React Avatar
πŸ“ React Chat Engine
πŸ“ React Scroll To Bottom
πŸ“ Use Animations
πŸ“ Twilio
πŸ“ UUID

Backend

For backend I used NodeJS for creating servers and routes. I used node for backend because it has support from a big community for its packages and twilio and chat Engine is very easy to integrate. For database I used MongoDB Atlas which is cloud based data storage.


Here is a list of those NPM packages πŸ“
πŸ“ Axios
πŸ“ Twilio
πŸ“ UUID
πŸ“ Cors
πŸ“ Express
πŸ“ Mongoose
πŸ“ Nodemon
πŸ“ SHA256

Tools in SpotlightπŸ”†

Chat Engine helps you to build chat app. You dont have to write all the componets from scratch and every part of it is customizable. In this project I reconfigured most of the components like created own form to send message, created own custom styled chat messages and added functionality like sending pictures and starting a video call with memebers of chat room and many more. It also has its REST API with which you can interact with teh database it has.


Twilio is a very superb tool for communication. It has various feature like bulk message sender, audio and video call and many more. I used its video calling API which is a wrapper around WebRTC. It provide you support at both frontend and backend to listend various activity like people joining and leaving call, their tracks like audio and video and many more. It gives you a JWT token which is used for sessions to add people in a video conference.

Releases

Packages

Used by

Contributors

Languages